実現したいこと
一度処理した受注が、次回以降のフレーズ実行において、処理の対象から外れるようにします。
たとえば、「受注に商品 A が含まれている場合、Chatwork に通知する」というフレーズがあります。このフレーズを単純に定期実行すると、実行のたびに、同じ受注が通知されることになります。
そのため、「一度通知した受注は、次回以降の実行の際に処理の対象から外す」という仕組みをフレーズに組み込み、繰り返しの処理を回避する必要があります。
■ 繰り返し処理を回避しなかった場合
15 分ごとの定期実行のたび、同じ受注が通知される
「フロー|重複実行ガード」ノートとの違いについて
「フロー|重複実行ガード」ノート(以下、重複実行ガード)を使えば、上記「実現したいこと」と同様の処理を実現できます。しかし、重複実行ガードには以下のような注意点があります。
- 繰り返し処理(重複実行)を防げるのは同一フレーズ内のみ
まったく同じ構成の 2 つのフレーズがあった場合、1 つのフレーズ内での重複実行は防ぐことができますが、もう片方のフレーズでは処理されてしまいます。 - 「クリア」を誤って押してしまうと実行の履歴がリセットされる
重複実行ガードは、一度処理した受注伝票の情報を保存し、それらの情報をもとに 2 回目以降の実行を防止しています。しかし、誤ってノート内の「クリア」を押してしまうと、保存されていた情報が削除され、実行の履歴がリセットされてしまいます。 - 業務フローや運用方法を柔軟に変更できない
重複実行ガードを含むフレーズでは、フレーズ構成や処理の条件などを変更しても、過去に一度でも実実行された受注伝票は実行がガードされます。そのため、業務フローや運用方法の変更に対する柔軟性が低いフレーズとなる可能性があります。
以上から、Bカートの受注・会員における繰り返し処理を回避する場合、重複実行ガードではなく、カスタム項目を利用する方法を推奨します。
カスタム項目を利用し、受注・会員の繰り返し処理を回避する方法
受注を例に解説しますが、会員の場合も基本的な仕組みは変わりません。
事前準備
Bカートの管理画面にて、チェックボックス型の受注カスタム項目(会員なら、会員カスタム項目)を作成しておきます。すでに存在するカスタム項目を流用しても問題ありません。
次に、繰り返し処理を防ぎたいフレーズごとに、1 つの値を作成します。表示名は、「受注書き出しフレーズ処理済み」のように具体的に設定しておくと、フレーズを判別しやすいのでお勧めです。
1. 受注の検索時の設定
まず、「受注を検索」ノートに検索条件を追加し、事前準備で用意したカスタム項目を「フィールド」で指定します。
条件の種類は「…のどれも含まない」を選択します。
値は、事前準備で作成した、このフレーズ専用の値(以下の例では「受注書き出しフレーズ処理済み」)を指定します。
以上の設定により、「受注書き出しフレーズ処理済み」にチェックが付いた受注は、検索結果に含まれなくなります。
2. 受注の更新時の設定
次に、受注ごとのループ内で、1 つの受注に対する処理の最後に、「Bカート|受注を更新」ノート(会員なら「Bカート|会員を更新」ノート)を設置します。
更新内容の「フィールド」は、1 の検索条件と同じものを選択し、更新方法は「追加」を選びます。
値は、ドロップダウンメニューから、専用の値にチェックを付けます。
以上の設定により、このフレーズで処理された受注には、「受注書き出しフレーズ処理済み」にチェックが付きます。
よって、1 の受注の検索条件に合致しなくなるため、一度処理された受注は、次回以降の受注検索の対象外となり、繰り返し処理が起こりません。