PlatioDeleteを使用してPlatioのデータを削除する

Platioのミニアプリで登録したデータを削除するには、Platioのミニアプリ上でレコードを1レコードずつ削除するか、Platioのデータビューアーで検索したレコードをまとめて削除するしかありません。Platioのデータポケットには最大で10万レコードしか登録できませんので定期的にレコードを削除する必要がありますが、上記のどちらの方法でも手でポチポチ削除するのはさすがにしんどいですね。

PlatioDeleteコンポーネントを使用すれば、いろいろな方法でPlatioのデータポケットのレコードを削除できます。フローの実行をスケジュール設定して、定期的にPlatioのデータポケットのレコードを削除することができるようになります。

この記事では、PlatioDeleteコンポーネントの基本的な使用方法を次の順で説明します。

上記のステップを説明するために、注文情報を閲覧するための次のような販売履歴データポケットがあるとします。販売履歴データポケットには「ID」、「顧客名」、「注文日」、「商品名」、「数量」、「小計」、「注文状況」フィールドがあります。

データビュワー_販売履歴.png

それでは、PlatioDeleteコンポーネントを使って販売履歴データポケットのレコードを削除してみましょう。

PlatioDeleteコンポーネントを配置する

フローデザイナーの左下にあるコネクションペインでPlatioコネクションを作成します。Platioコネクションの作成方法については、Platioコネクションの作成を参照してください。作成したPlatioコネクションをワークスペースにドロップして表示されるリストからPlatioDeleteコンポーネントを追加します。

drag.png

すべてのレコードを削除する

まずは、Platioのデータポケット内のすべてのレコードを削除してみましょう。最初に、PlatioDeleteコンポーネントをダブルクリックしてPlatioビルダーを開きます。上部の「削除方法」で「全レコード」を選択します。次に、その下のデータポケットリストの中から今回使用する販売履歴データポケットを選択します。

ビルダー_全レコード.png

Platioビルダーの下側にある「保存」をクリックするとPlatioDeleteコンポーネントのプロパティが自動的に設定されます。「コレクション」には「販売履歴」が、「削除方法」には「全レコード」が設定されます。

インスペクター_全レコード.png

PlatioDeleteコンポーネントの後ろにEndResponseコンポーネントを配置します。

フロー.png

このフローを実行すると、販売履歴のデータポケットからすべてのレコードが削除されます。

全レコードの削除はとても簡単ですね。社内のマスターデータをPlatioのデータポケットに連携しているような場合にこれを使えば、最初にPlatioDeleteコンポーネントでデータポケット内のすべてのレコードを削除して、それから、マスターデータをすべて登録し直すというようなフローを作成することもできます。

キーを指定してレコードを削除する

販売履歴データポケットの次のレコードを削除してみましょう。

データビュワー_キー.png

販売履歴データポケットでは「ID」がレコードを識別する一意のキーとなっていますので、キーを指定してレコードを削除します。

PlatioDeleteコンポーネントをダブルクリックしてPlatioビルダーを開きます。「削除方法」で「キーを指定」を選択します。

ビルダー_キー指定.png

「キーを指定」を選択すると画面が切り替わりますので、左側のペインで、「販売履歴」データポケットを選択し、右側のペインでキーとして使用する「ID」のチェックボックスをチェックします。

ビルダー_キー.png

「保存」をクリックすると、PlatioDeleteコンポーネントのプロパティが自動的に設定されます。「コレクション」には「販売履歴」が、「削除方法」には「キーを指定」が設定されます。

インスペクター_キー.png

PlatioDeleteの入力ストリームには、先ほど選択した「ID」フィールドが定義されていることが確認できます。

入力ストリーム_キー.png

削除したいレコードの「ID」は「2」です。PlatioDeleteコンポーネントの前にMapperコンポーネントを配置して「ID」に「2」をマッピングします。

マッパー_キー.png

フローを実行すると、IDが「2」のレコードが削除されます。

今回は「2」だけをマッピングしたので、1つのレコードのみが削除されましたが、Mapperコンポーネントの入力ストリームに複数のレコードを含むRecordストリームをつなげて、入力のRecordストリームのIDに対応するフィールドを出力の「ID」にマッピングすれば、入力の各IDに一致するすべてのレコードを削除することができます。

また、キーは複数のフィールドを指定することができます。キーとして複数のフィールドを指定した場合は、ANDで結合された条件となります。指定したキーが1つの場合でも複数の場合でも、キーがPlatioのデータポケットの複数のレコードにマッチした場合は、マッチしたすべてのレコードが削除されます。

PlatioDeleteコンポーネントのキー指定では、「=」(イコール)による比較でレコードを検索します。「!=」(ノットイコール)や不等号は使用できません。また、ORによる複合検索もできません。しかし、特殊なフィールドの$fromや$to、$fromTimestamp、$toTimestampを使用し、日付範囲を指定してレコードを検索することができます。例えば、$fromを使用して、レコードの更新時刻が指定日時より新しいレコードを検索することができます。詳しくはPlatioDeleteコンポーネントのヘルプをご覧ください。

注意:キーとして使用するフィールドは、Platio Studioのフィールドの設定で「検索可能」にチェックする必要があります。

条件を指定してレコードを削除する

先ほども説明しましたが、キーを指定して削除する場合は、キーの値の比較には「=」しか使用できません。また、複数のキーを指定してもANDで結合した条件となります。もう少し複雑な条件、例えば、「商品名」に「24本セット」が含まれるレコードを削除したいとか、複数の条件をORで結合した条件でレコードを削除したいということもあると思います。このような複雑な条件を指定する方法を順を追って説明します。

まずは、「商品名」に「24本セット」が含まれるレコードを削除してみます。いつものようにPlatioDeleteコンポーネントをダブルクリックしてPlatioビルダーを開きます。「削除方法」で「クエリーを指定」を選択します。

ビルダー_クエリー指定.png

「クエリーを指定」を選択すると画面が切り替わりますので、左側のペインで、「販売履歴」データポケットを選択します。

ビルダー_クエリーデータポケット選択.png

真ん中に表示されるフィールドリストで、「商品名」を右クリックして「検索条件へ追加」を選択します。

ビルダー_クエリーデータ検索条件追加メニュー.png

右上に検索条件を指定するための新しい行が追加されます。「演算子」列で、「:」(マッチ演算子)を選択し、「値」列に「24本セット」と入力します。

ビルダー_クエリーデータ検索条件商品名.png

結果として得られる条件は次のようになります。

"商品名":"24本セット"

演算子の「:」はフィールドの値に「24本セット」を含むという意味です。

Platioビルダー下部にある「保存」をクリックすると、PlatioDeleteコンポーネントのプロパティが自動的に設定されます。Platioビルダーで設定した検索条件は、Platio APIのレコード検索書式に変換されて「検索条件」に設定されます。

インスペクター_商品名.png

この検索条件は、次のレコードに一致します。

データビュワー_クエリー24本セット.png

フローを実行すると、検索条件に一致するすべてのレコードが削除されます。今回は「商品名」が「24本セット」を含むレコードが削除されます。レコードが削除されていることはPlatioのデータビューアーで確認できます。上の画像で赤線で囲んだレコードが削除されていますね。

データビュワー_クエリー24本セット結果.png

Platioビルダーで検索条件を指定すると、検索条件の比較する値を変更するには再度Platioビルダーを開いて検索条件の値を変更しなければなりません。でも、いつも固定の値で削除する訳ではありませんよね。この値を動的に変更するにはPlatioDeleteコンポーネントの前にMapperコンポーネントを配置し、Mapperコンポーネントで、次のような文字列を作成します。

"商品名":"24本セット"

そして、この文字列をPlatioDeleteコンポーネントの「検索条件」にマッピングします。この検索条件は状況に応じて「"商品名”:"セット"」でも「"商品名":"即席めん"」でもどのようにでも変更できます。これで、検索条件をフロー実行時の状況に応じて変更できるようになりますね。

Platioビルダーでは複数の検索条件を指定することもできますが、この場合、条件はANDで結合された条件になります。残念ながらPlatioビルダーでは複数の条件をORで結合したり、括弧で囲んで条件判定の優先順位を変更することはできません。しかし、そのような場合には、Mapperコンポーネントで検索条件を作成し、PlatioDeleteコンポーネントの「検索条件」にマッピングすることで対処できます。

「検索条件」に指定する文字列の書式の詳細につきましては、Platio APIのレコード検索書式ガイドを参照してください。

注意:検索条件に使用するフィールドは、Platio Studioのフィールドの設定で「検索可能」にチェックする必要があります。

ここまでで、PlatioDeleteコンポーネントを使用して様々な方法でPlatioのデータポケットのレコードを削除することができるようになりましたね。

PlatioDeleteコンポーネントを使えば、マスターデータとの連携時のレコードの削除や、Platioデータビューアー上で手作業で行うレコードの削除などの煩雑な作業を自動化することができるでしょう。

フィールドを検索可能にする

フィールドをキーまたは検索条件として使用するには、Platio Studioでフィールドを検索可能にする必要があります。Platio Studioのデータポケットの設定画面で、フィールドのヘッダーにある設定ボタンをクリックします。

データビュワー_フィールド設定.png

フィールドの編集画面で、フィールドを検索可能にするには「検索可能」をチェックします。

データビュワー_フィールド詳細設定.png

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています

他のキーワードで検索する