お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の
英語版を参照してください。
1. このページの概要
バッチワークフローを使用して、大規模なタスクを小さなバッチに効率よく分割し、業務量の少ない時間帯に処理する方法を説明します。
2. 利用条件
バッチワークフロー機能は、
- Creatorの有料プランでのみ利用できます。プランごとに作成できるバッチブロック数には上限があります(「留意事項」を参照)。
- 特権管理者、管理者、開発者のみが作成、有効化、管理できます。その他のユーザーも、反復タスクの自動実行によるメリットを得られます。
- すべてのデータセンターで利用できます。
3. 概要
バッチ処理では、大量かつ反復的なデータ処理を効率よく定期的に完了するため、対象データを処理可能な単位のバッチに分割します。各バッチは、非同期フローで個別に処理されます。この方法では人による操作を最小限に抑えられ、1日を通して順次実行したり、指定した間隔で実行したりできます。バッチ処理を利用できる一般的な業務プロセスには、レポートの生成、ドキュメントの印刷、終業時の情報更新などがあります。
4. Creatorのバッチワークフロー
Creatorのワークフローは、アプリケーション内の定型処理を自動化するため、特定のタイミングで実行するよう設定できる一連の処理で構成されます。バッチワークフローを使用すると、インポートの成功後または指定したスケジュールで、大量のデータに対してカスタマイズしたDelugeスクリプトを効率よく実行できます。大量のデータを、1バッチあたり10~1,000件の小さなバッチに分割し、[実行中]セクションでバッチブロック(グループ化されたデータの集合)内の各データに対して実行する処理を設定できます。続いて表示される[実行前]と[実行後]のセクションでは、上記のDelugeスクリプトの実行前後に実行する処理を指定できます。たとえば、注文が発生するたびに処理する代わりに、毎日の終業時にすべての注文を収集して受注処理チームと共有するよう、バッチワークフローを設定できます。このようにデータ処理を分割することで、Delugeの実行上限(ステートメント数の上限:1万~5万件)を回避し、大規模なデータセットを円滑に処理できます。
- スクリプト全体の実行時間とリソース使用量を最適化するバッチサイズを選択し、パフォーマンスと処理効率のバランスを調整できます。
- バッチワークフローの実行中にいずれかのバッチでエラーが発生した場合、該当するバッチのみが元に戻されます。つまり、あるバッチのエラーが、同じバッチブロック内にある他のバッチの正常な実行に影響することはありません。
4.1 バッチワークフローで自動化できるプロセスの例
バッチワークフローは、さまざまな種類のデータ要求を処理するよう設定できます。一般的な例は次のとおりです。
- 定期請求 - 請求日ごとに合計金額を定期的に計算します。
- 請求書の生成 - 要件に応じて売上請求書を生成します。
- 給与処理 - 組織内の各従業員に毎月の給与明細をメールで送信します。
- 在庫管理 - 商品が在庫切れにならないよう、在庫数を定期的に追跡します。
- 不正取引の検出 - 不正を検出するため、クレジットカードの月次利用明細を生成します。
バッチワークフローは、反復タスクに対する手動での監視を減らしながら、業務効率を高め、反復タスクを自動化し、ビジネスの生産性を最大化します。
5. バッチワークフロー実行の各段階
バッチワークフローには次の3つの段階があり、段階ごとに個別の処理を設定できます。
メモ:[実行前]ブロックと[実行後]ブロックは、必要に応じて使用する任意のブロックです。ただし、[実行中]ブロックには実行するスクリプトを設定する必要があります。
- バッチワークフローの実行前:変数の定義と初期化(他の2つのブロックでも使用可能)を行い、バッチワークフローの実行開始前に必要な処理を設定できます。初期化処理の例として、処理開始前の通知送信、在庫から在庫数を取得して応答内容からリストを作成するためのWebhook呼び出しなどがあります。詳細はこちら
[実行前]ブロックは、バッチワークフローの実行開始時に最初に実行され、実行回数は1回のみです。
- バッチワークフローの実行中:バッチブロック内の各データに対して実行する処理を1つ設定できます。この処理は、バッチワークフローの実行中に各データに対して行われます。たとえば、税金や福利厚生などを含む各従業員の月給を計算するよう設定できます。詳細はこちら
[実行中]ブロックは、そのバッチワークフロー内のすべてのバッチブロックが完了するまで繰り返し実行されます。
- バッチワークフローの実行後:すべてのバッチの実行後に実行する処理を、成功時と失敗時の両方について設定できます。たとえば、クリーンアップ処理、結果に応じた(成功/失敗)通知の表示、エラー処理などです。たとえば、バッチワークフローが正常に完了した後、従業員に月次給与明細をメールで通知するよう設定できます。詳細はこちら
6. 前提条件
- バッチワークフローの設定基準となるフォームがアプリケーションに必要です。
- バッチワークフローを開始するタイミングと、データ件数(各バッチのサイズ)を事前に決める必要があります。
7. 動作の確認
クレジットカードを発行する組織が、クレジットカード管理というCreatorアプリケーションを作成したとします。毎月1日に、各顧客の請求明細を生成して送信する必要があります。そのためには、関連する明細を生成する処理を設定し、毎月1日に実行されるようバッチワークフローをスケジュールできます。また、顧客ごとの請求総額を算出するなど、動的な計算に変数を利用することもできます。正常に実行された場合、月次のクレジットカード請求明細をメールの添付ファイルとして送信するよう設定できます。
8. 活用例
ケース1:データのインポート成功後
営業やマーケティングの分野では、コンバージョンと売上の増加を促進するうえで、見込み客を効率よく管理することが不可欠です。見込み客管理というCreatorアプリケーションを作成したとします。
組織には、外部サービスからインポートしたものを含め、さまざまな経路から大量の見込み客が登録されます。見込み客ごとに、エンゲージメントレベル、属性データ、過去のやり取りなど、さまざまな特性に基づいてスコアを計算する必要があります。また、地域、専門分野、業務量に基づいて適切な見込み客の担当者を割り当てることは、迅速なフォローアップやコンバージョンのために重要です。しかし、大量の見込み客に対してこれらのタスクを手動で処理すると時間がかかり、人為的ミスも発生しやすくなります。
これらの見込み客をアプリケーションにインポートする場合を考えてみましょう。このプロセスを効率化するため、見込み客のインポートが正常に完了した後に実行するバッチワークフローを作成できます。インポートした見込み客のスコアを計算し、担当者を割り当てる処理を設定できます。
[実行前]ブロック
- 見込み客の処理開始を関係者に通知するなど、初期化タスクを実行します。
バッチブロックの実行中
- 見込み客を処理可能な単位に分けられるよう、バッチサイズを設定します。
- 事前定義した条件に基づいて見込み客のスコアを計算し、地域の対応付けや業務量の分散アルゴリズムを使用して適切な担当者を割り当てるスクリプトを作成します。
[バッチ実行後]ブロック
- バッチの実行結果(成功または失敗)に応じた処理を実装します。
- 見込み客の処理完了を関係者に通知し、見込み客のスコアや担当者の割り当てに関する統計など、処理済みの見込み客に関する分析を提供します。
- この機能により、見込み客データを処理可能なバッチ単位で自動処理し、効率性と正確性を確保できます。
ケース2:カスタムスケジュールの設定
1日を通して注文を受け付けるECシステムを管理しているとします。注文管理というCreatorアプリケーションを作成しました。マーケティングマネージャーとして、アプリケーションのレポートから顧客のフィードバックを毎月集計し、顧客満足度に関するレポートを生成する処理を実行したいと考えています。バッチワークフローを作成してデータソースを指定し、必要なスクリプトを指定した時刻に実行するよう設定することで、収集したデータを関係者と簡単に共有できます。
9. バッチワークフロー作成画面への移動
[ソリューション]モジュールに移動し、対象のアプリケーションを開きます。次に、画面上部の
[ワークフロー]タブをクリックして、ワークフローのダッシュボードに移動します。バッチワークフローのセクションを選択し、
こちらに記載されている手順に従います。
10. 留意事項
- バッチワークフローは、アプリケーションのデータのインポート成功後または指定した時刻に実行するよう設定できます。
- 同じフォームを基準に、異なる条件または同一の条件を設定した複数のバッチワークフローを作成できます。
- バッチブロック内のすべてのバッチは、順番に実行されます。
- アプリケーションログのセクションで、バッチワークフローの実行状況を確認できます。キューの状態、実行中の処理、完了状況(成功または失敗)が表示されます。
- 最初の5件のバッチブロックの失敗についてエラーログを表示し、実行に失敗した理由を分析できます。
- ブロック内の1つ以上のバッチが失敗した場合、該当するバッチのみが元に戻され、バッチワークフローは他のバッチの実行を継続します。そのブロックのエラーメッセージはログで確認できます。
- 15件のバッチが連続して失敗すると、バッチワークフローは終了します。その時点までに正常に完了したバッチは元に戻されません。
- 1日あたりのバッチワークフローの上限に達した場合も、実行は終了します。
- バッチワークフローでは、バッチサイズとして10件、50件、100件、200件、500件、1,000件のデータを指定できます。
- アカウントには、一度に最大100件のバッチワークフローを作成できます。
- 料金プランに応じて、アカウントごとに1日に実行できるバッチブロック数の上限が決まります。
- 各バッチの実行タイムアウトは1分です。たとえば、バッチブロックのサイズを1,000件に設定した場合、この1,000件のデータの実行タイムアウトは1分です。
- 同様に、[実行前]と[実行後]の各バッチブロックのタイムアウトは30秒です。
11. 制限事項
- 現在、このワークフローは連携フォームでは利用できません。
- ユーザーは、1つのバッチワークフロー内に最大5つの変数を作成できます。
- アカウントごとに同時実行できるバッチワークフローは1つのみです(作成日に基づきます)。追加のバッチワークフローは実行待ちのキューに追加されるため、リソースが公平に割り当てられ、システムリソースへの過負荷を防止できます。
Delugeの制限事項
- 「old」キーワードは、バッチワークフローではサポートされていません。
- 情報メッセージは、50KB以下にする必要があります。超過した場合、メッセージは切り詰められます。
- 添付できるファイルの最大サイズは15MBです。添付ファイルがこの上限を超える場合、添付ファイルなしでメールが配信されます。
- 指定したファイルの内容を取得する場合、または必要な内容を使用してファイルオブジェクトを作成する場合、対象ファイルのサイズは5MB未満にする必要があります。
- getUrl()タスクとpostUrl()タスクは、現在サポートされていません。
- グローバル変数に値を割り当てることはできません。
- 範囲を指定した取得と削除の操作は、最大5,000件のレコードに制限されています。
- 次のDeluge操作は、バッチワークフローではサポートされていません。
- 項目のすべての値の取得
- 取得したレコードにdistinct(集計関数)を使用する
- getAll組み込み関数の使用
- クライアント関数
メモ:上記の制限は、バッチワークフローから実行される関数呼び出しにも適用されます。
- レコードについて
- バッチワークフローの作成と管理