Bカートのカスタム項目を利用し、同じ受注・会員の繰り返し処理を防ぐ

実現したいこと

一度処理した受注が、次回以降のフレーズ実行において、処理の対象から外れるようにします。

たとえば、「受注に商品 A が含まれている場合、Chatwork に通知する」というフレーズがあります。このフレーズを単純に定期実行すると、実行のたびに、同じ受注が通知されることになります。

そのため、「一度通知した受注は、次回以降の実行の際に処理の対象から外す」という仕組みをフレーズに組み込み、繰り返しの処理を回避する必要があります。

■ 繰り返し処理を回避しなかった場合

15 分ごとの定期実行のたび、同じ受注が通知される

「フロー|重複実行ガード」ノートとの違いについて

「フロー|重複実行ガード」ノート(以下、重複実行ガード)を使えば、上記「実現したいこと」と同様の処理を実現できます。しかし、重複実行ガードには以下のような注意点があります。

  1. 繰り返し処理(重複実行)を防げるのは同一フレーズ内のみ
    まったく同じ構成の 2 つのフレーズがあった場合、1 つのフレーズ内での重複実行は防ぐことができますが、もう片方のフレーズでは処理されてしまいます。
  2. 「クリア」を誤って押してしまうと実行の履歴がリセットされる
    重複実行ガードは、一度処理した受注伝票の情報を保存し、それらの情報をもとに 2 回目以降の実行を防止しています。しかし、誤ってノート内の「クリア」を押してしまうと、保存されていた情報が削除され、実行の履歴がリセットされてしまいます。
  3. 業務フローや運用方法を柔軟に変更できない
    重複実行ガードを含むフレーズでは、フレーズ構成や処理の条件などを変更しても、過去に一度でも実実行された受注伝票は実行がガードされます。そのため、業務フローや運用方法の変更に対する柔軟性が低いフレーズとなる可能性があります。

以上から、Bカートの受注・会員における繰り返し処理を回避する場合、重複実行ガードではなく、カスタム項目を利用する方法を推奨します。

カスタム項目を利用し、受注・会員の繰り返し処理を回避する方法

受注を例に解説しますが、会員の場合も基本的な仕組みは変わりません。

事前準備

Bカートの管理画面にて、チェックボックス型の受注カスタム項目(会員なら、会員カスタム項目)を作成しておきます。すでに存在するカスタム項目を流用しても問題ありません。

参考:Bカートユーザーガイド|受注カスタム項目

次に、繰り返し処理を防ぎたいフレーズごとに、1 つの値を作成します。表示名は、「受注書き出しフレーズ処理済み」のように具体的に設定しておくと、フレーズを判別しやすいのでお勧めです。

1. 受注の検索時の設定

まず、「受注を検索」ノートに検索条件を追加し、事前準備で用意したカスタム項目を「フィールド」で指定します。

条件の種類は「…のどれも含まない」を選択します。

値は、事前準備で作成した、このフレーズ専用の値(以下の例では「受注書き出しフレーズ処理済み」)を指定します。

以上の設定により、「受注書き出しフレーズ処理済み」にチェックが付いた受注は、検索結果に含まれなくなります。

2. 受注の更新時の設定

次に、受注ごとのループ内で、1 つの受注に対する処理の最後に、「Bカート|受注を更新」ノート(会員なら「Bカート|会員を更新」ノート)を設置します。

更新内容の「フィールド」は、1 の検索条件と同じものを選択し、更新方法は「追加」を選びます。

値は、ドロップダウンメニューから、専用の値にチェックを付けます。

以上の設定により、このフレーズで処理された受注には、「受注書き出しフレーズ処理済み」にチェックが付きます。

よって、1 の受注の検索条件に合致しなくなるため、一度処理された受注は、次回以降の受注検索の対象外となり、繰り返し処理が起こりません。

この仕組みを利用しているテンプレート