Platioのミニアプリで登録したデータを削除するには、Platioのミニアプリ上でレコードを1レコードずつ削除するか、Platioのデータビューアーで検索したレコードをまとめて削除するしかありません。Platioのデータポケットには最大で10万レコードしか登録できませんので定期的にレコードを削除する必要がありますが、上記のどちらの方法でも手でポチポチ削除するのはさすがにしんどいですね。
PlatioDeleteコンポーネントを使用すれば、いろいろな方法でPlatioのデータポケットのレコードを削除できます。フローの実行をスケジュール設定して、定期的にPlatioのデータポケットのレコードを削除することができるようになります。
この記事では、PlatioDeleteコンポーネントの基本的な使用方法を次の順で説明します。
上記のステップを説明するために、注文情報を閲覧するための次のような販売履歴データポケットがあるとします。販売履歴データポケットには「ID」、「顧客名」、「注文日」、「商品名」、「数量」、「小計」、「注文状況」フィールドがあります。
それでは、PlatioDeleteコンポーネントを使って販売履歴データポケットのレコードを削除してみましょう。
PlatioDeleteコンポーネントを配置する
フローデザイナーの左下にあるコネクションペインでPlatioコネクションを作成します。Platioコネクションの作成方法については、Platioコネクションの作成を参照してください。作成したPlatioコネクションをワークスペースにドロップして表示されるリストからPlatioDeleteコンポーネントを追加します。
すべてのレコードを削除する
まずは、Platioのデータポケット内のすべてのレコードを削除してみましょう。最初に、PlatioDeleteコンポーネントをダブルクリックしてPlatioビルダーを開きます。上部の「削除方法」で「全レコード」を選択します。次に、その下のデータポケットリストの中から今回使用する販売履歴データポケットを選択します。
Platioビルダーの下側にある「保存」をクリックするとPlatioDeleteコンポーネントのプロパティが自動的に設定されます。「コレクション」には「販売履歴」が、「削除方法」には「全レコード」が設定されます。
PlatioDeleteコンポーネントの後ろにEndResponseコンポーネントを配置します。
このフローを実行すると、販売履歴のデータポケットからすべてのレコードが削除されます。
全レコードの削除はとても簡単ですね。社内のマスターデータをPlatioのデータポケットに連携しているような場合にこれを使えば、最初にPlatioDeleteコンポーネントでデータポケット内のすべてのレコードを削除して、それから、マスターデータをすべて登録し直すというようなフローを作成することもできます。
キーを指定してレコードを削除する
販売履歴データポケットの次のレコードを削除してみましょう。
販売履歴データポケットでは「ID」がレコードを識別する一意のキーとなっていますので、キーを指定してレコードを削除します。
PlatioDeleteコンポーネントをダブルクリックしてPlatioビルダーを開きます。「削除方法」で「キーを指定」を選択します。
「キーを指定」を選択すると画面が切り替わりますので、左側のペインで、「販売履歴」データポケットを選択し、右側のペインでキーとして使用する「ID」のチェックボックスをチェックします。
「保存」をクリックすると、PlatioDeleteコンポーネントのプロパティが自動的に設定されます。「コレクション」には「販売履歴」が、「削除方法」には「キーを指定」が設定されます。
PlatioDeleteの入力ストリームには、先ほど選択した「ID」フィールドが定義されていることが確認できます。
削除したいレコードの「ID」は「2」です。PlatioDeleteコンポーネントの前にMapperコンポーネントを配置して「ID」に「2」をマッピングします。
フローを実行すると、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ビルダーを開きます。「削除方法」で「クエリーを指定」を選択します。
「クエリーを指定」を選択すると画面が切り替わりますので、左側のペインで、「販売履歴」データポケットを選択します。
真ん中に表示されるフィールドリストで、「商品名」を右クリックして「検索条件へ追加」を選択します。
右上に検索条件を指定するための新しい行が追加されます。「演算子」列で、「:」(マッチ演算子)を選択し、「値」列に「24本セット」と入力します。
結果として得られる条件は次のようになります。
"商品名":"24本セット"
演算子の「:」はフィールドの値に「24本セット」を含むという意味です。
Platioビルダー下部にある「保存」をクリックすると、PlatioDeleteコンポーネントのプロパティが自動的に設定されます。Platioビルダーで設定した検索条件は、Platio APIのレコード検索書式に変換されて「検索条件」に設定されます。
この検索条件は、次のレコードに一致します。
フローを実行すると、検索条件に一致するすべてのレコードが削除されます。今回は「商品名」が「24本セット」を含むレコードが削除されます。レコードが削除されていることはPlatioのデータビューアーで確認できます。上の画像で赤線で囲んだレコードが削除されていますね。
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のデータポケットの設定画面で、フィールドのヘッダーにある設定ボタンをクリックします。
フィールドの編集画面で、フィールドを検索可能にするには「検索可能」をチェックします。