リアルタイム ワークフローのステージとステップを構成する
ワークフローを設計する際は、ステージおよびステップで実行するロジックを選択して含めることができます。
段階
ステージはリアルタイム ワークフローのロジックを読みやすくし、リアルタイム ワークフローのロジックを説明します。 ただし、ワークフローのロジックや動作が影響を受けることはありません。 プロセスにステージが存在する場合、プロセス内のすべてのステップをステージに含める必要があります。
ステップ
ステップは、ワークフロー内のビジネス ロジックの単位です。 ステップには、条件、アクション、他のステップ、またはこれらの要素の組み合わせを含めることができます。
リアルタイム ワークフロー プロセスで実行できるアクション
リアルタイム ワークフロー プロセスでは次の表のアクションを実行できます :
操作 | 内容 |
---|---|
行の作成 | テーブルの新しい行を作成し、属性に選択した値を割り当てます。 |
行を更新する | リアルタイムのワークフローが実行されている行、N:1 の関連付けの行にリンクされている行、または前のステップで作成された任意の行を更新できます。 |
行の割り当て | リアルタイムのワークフローが実行されている行、N:1 の関連付けの行にリンクされている行、または前のステップで作成された任意の行を割り当てできます。 |
メールを送信する | メールを送信します。 リアルタイムワークフローが実行されている行のテーブル、またはテーブルと N:1 の関係を持つテーブル、または前述の手順で作成された行のテーブルに設定されたメール テンプレートを使用して、新しいメールメッセージを作成する、または使用することを選択できます。 |
子ワークフローの開始 | 子ワークフローとして設定されているリアルタイム ワークフロー プロセスを開始します。 |
状態の変更 | プロセスが実行されている行、N:1 の関連付けのレコードにリンクされている行、または前述の手順で作成された任意の行の状態を変更できます。 |
ワークフローの停止 | 現在のワークフローを停止します。 成功または取り消し済みのいずれかの状態を設定し、ステータス メッセージを指定できます。 イベントにリアルタイム ワークフローが設定されている場合、キャンセルされた状態でリアルタイム ワークフローを停止すると、イベント アクションが完了しません。 詳細については、リアルタイム ワークフローを使用する を参照してください。 |
カスタム ステップ | 開発者は、アクションを定義するカスタム リアルタイム ワークフローの手順を作成することができます。 既定では、カスタム ステップは利用できません。 |
行の値を設定する
行を作成すると、行に値を設定することができます。 行を更新する際は、値を設定、追加、増加、減少、乗算、クリアすることができます。
プロパティの設定を選択すると、行の既定のフォームを示すダイアログ ボックスが開きます。
ダイアログ ボックスの下部には、フォームに表示されない追加の列の一覧が表示されます。
どの列についても、静的な値を設定することができ、それはワークフローによって設定されます。
ダイアログ ボックスの右側のフォーム アシスタントでは、現在の行のコンテキストから動的な値を設定または追加できます。 これには、テーブルに対する N:1 (多対一) の関連付けからアクセスできる関連する行の値が含まれます。
フォーム アシスタントで使用できるオプションは、フォームで選択した列によって決まります。 動的値を設定すると、"置換フィールド" と呼ばれる黄色いプレースホルダーが表示され、動的データが含まれる場所が示されます。 この値を削除する場合は、置換フィールドを選択して削除します。 テキスト列に対しては、静的データと動的データを組み合わせて使用できます。
動的な値では、列や関連するテーブルが設定したい値を持っているかどうかを確実に把握することができません。 実際にいくつかの列に値を設定して、緑の矢印を使って順番に並べ替えることができます。 最初の列にデータが含まれていない場合は、2番目の列で試行されます。 列にデータが含まれていない場合は、使用する既定値を指定できます。
リアルタイム ワークフロー アクションの設定条件
適用するアクションは条件によって異なります。 リアルタイムのワークフロー プロセスでは、条件を設定して分岐ロジックを作成し、望む結果を得るためのいくつかの方法が用意されています。 リアルタイム ワークフロー プロセスが実行されている行の値、その行に N:1 の関連付けでリンクされている行の値、プロセス内の値を確認することができます。
条件タイプ | 内容 |
---|---|
条件の確認 | 論理的な "if <condition> then" 構文。 リアルタイム ワークフローが実行されている行の現在の値、N:1 の関連付けででその行にリンクされている行、または前述の手順で作成された行を確認することができます。 これらの値に基づいて、条件が 「True」 の場合に追加のステップを定義できます。 "if-<condition> then" 文で使用できる演算子は、次の値と等しい, 次の値と等しくない、次のデータを含む、次のデータ含まない、に属する、に属さないです。 注: に属するとに属さないは、階層演算子です。 階層関係が定義されているテーブルでのみ使用できます。 階層関係が定義されていないテーブルに対して、これらの演算子を使用した場合、次のエラー メッセージが表示されます : 「階層関係が定義されていないテーブルで階層演算子を使用しています。 テーブルを階層化する (関連付けを階層化する) か、別の演算子を使用してください」 階層の関係の詳細については、階層に関連するデータの定義とクエリ を参照してください。 表に後に続くスクリーンショットは、に属するとに属さないの階層演算子を使用したリアルタイム ワークフロー プロセスの定義例です。 |
条件分岐 | "else-if-then" は論理的な構文であり、エディターではテキスト “さもなければ, if <condition> then:” を使用します。 以前に定義したチェック条件を選択し、チェック条件が false を返すときに追加のステップを定義する条件分岐を追加できます。 |
既定の操作 | 論理的な "else" ステートメント。 エディターはテキスト “Otherwise:” を使用します。 以前定義した条件、条件分岐、待機状態、または並列待機分岐を選択します。条件要素や分岐要素で定義した基準に適合しないすべてのケースに対して、既定のアクションを使用してステップを定義できます。 |
待機状態 | リアルタイム ワークフローでは、待機条件を使用できません。 ただし、待機条件はバックグラウンド ワークフローで使用できます。 詳細情報: バックグラウンド ワークフロー アクションの設定条件 |
並列待機分岐 | 最初の基準を満たした場合にのみ実行される追加ステップを含む、リアルタイム ワークフローの代代替待機条件を定義します。 リアルタイム ワークフロー ロジックでは、並列待機分岐を使用して時間制限を作成することができます。 これにより、待機条件で定義されている基準が満たされるまでワークフローが無期限に待機することを防ぐのに役立ちます。 |
カスタム ステップ | 開発者は、条件を定義するカスタム リアルタイム ワークフローの手順を作成することができます。 既定では、使用できるカスタム ステップはありません。 |
次のスクリーンショットには、に属するとに属さないの演算子を使用するワークフロー プロセスの定義の例が含まれています。 この例では、2 つの異なる値引きを 2 つのグループの取引先企業に適用します。 ステップの追加では、条件の確認を選択して、に属するまたはに属さないの演算子を含む if-then 条件を指定しました。 最初の if-then 条件がアルペン スキー ハウスの取引先企業に属するすべての取引先企業に適用されます。 これらの取引先企業は、購入した商品やサービスで 10% の値引きを受けます。 2 番目の if-then の条件がアルペン スキー ハウスの取引先企業に属さないすべての取引先企業に適用され、これらの取引先企業は 5% の値引きを受けます。 その後、行の更新を選択して、条件に基づいて実行されるアクションを定義しました。
状態の変更前または変更後のリアルタイム ワークフローの起動
リアルタイム ワークフローの自動プロセスのオプションを構成するとき、状態変更のイベントの開始時期オプションによって、状態の変更時期の 後 または 前 を選択できます。 既定のオプションは 後 です。
前 を選択すると、状態を変更するデータが保存される前に、ワークフローのロジックを適用するように指示することになります。 これにより、操作後に他のロジックが適用される前に値をチェックして、以降のロジックが実行されないようにすることができます。 たとえば、プラグインに追加のロジックがある場合や、別のシステムでアクションを開始できるカスタム リアルタイム ワークフローのアクションがある場合があります。 以降の処理を停止することで、外部システムが影響を受ける状況を回避することができます。 このイベントの前にリアルタイム ワークフローを適用すると、他のリアルタイム ワークフローや保存されたデータがある可能性のあるプラグインのアクションは、操作がキャンセルされたときに「ロールバック」する必要がなくなります。
操作 | 開始時期 | 説明 |
---|---|---|
行が作成されました | 後 | 後 のみを使用できます。 行は、内部の MainOperation ステージが終了するまで一意の識別子を持たないため、行の作成前にはできません。 |
行の状態の変更 | 前 後 |
ステータスが変更された後、または変更される前にリアルタイム ワークフロー ロジックを適用する機能を実現する更新操作に対応しています。 前preoperation の段階に対応します。 後postoperation の段階に対応します。 |
行が割り当てられます | 前 後 |
ステータスが変更された後、または変更される前にリアルタイム ワークフロー ロジックを適用する機能を実現する更新操作に対応しています。 前preoperation の段階に対応します。 後postoperation の段階に対応します。 |
行の列が変更されます | 前 後 |
ステータスが変更された後、または変更される前にリアルタイム ワークフロー ロジックを適用する機能を実現する更新操作に対応しています。 前preoperation の段階に対応します。 後postoperation の段階に対応します。 |
行が削除されました | 前 | 前 のみを使用できます。 行の削除は、PreOperation ステージに対応します。 MainOperation が発生すると、行が削除され、状態はそれ以上変更されることはありません。 |
preoperation、mainoperation、postoperation の各段階については、イベント実行パイプライン を参照してください。
リアルタイム ワークフローの使用
リアルタイム ワークフローを構成できますが、そのワークフローの使用には注意する必要があります。 バックグラウンド ワークフローは、サーバー上のリソースが利用可能な場合にシステムが適用できるため、一般的に推奨されています。 これにより、サーバーが実行する必要のある作業がスムーズになり、システムを利用しているすべてのユーザーに最高のパフォーマンスを維持することができます。 欠点は、ワークフローで定義されたアクションが即時ではないことです。 いつ適用されるかは予測できませんが、通常は数分間かかります。 ビジネス プロセスの大部分の自動化については、システムのユーザーがプロセスが実行されていることを意識する必要がないため、問題ありません。
業務プロセスでプロセスの結果をすぐに確認する必要がある場合、または操作を取り消したい場合は、リアルタイム ワークフローを使用します。 たとえば、最初に行を保存する際に特定の既定値を設定したい場合や、ある行を削除しないようにしたい場合などです。
リアルタイム ワークフローとバックグラウンド ワークフロー間の変換
ツール バーのバックグラウンドのワークフローに変換を選択することで、リアルタイム ワークフローをバックグラウンドのワークフローに変更できます。
ツール バーのリアルタイムのワークフローに変換を選択することで、バックグラウンドのワークフローをリアルタイム ワークフローに変更できます。 バックグラウンド ワークフローで待機条件を使用している場合、待機条件は無効となり、待機条件を解除するまで有効にすることができません。
状態の変更前または変更後のリアルタイム ワークフローの起動
リアルタイム ワークフローの自動プロセスのオプションを構成するとき、状態変更のイベントの開始時期オプションによって、状態の変更時期の 後 または 前 を選択できます。 既定のオプションは 後 です。
前 を選択すると、状態を変更するデータが保存される前に、リアルタイム ワークフローのロジックを適用することになります。 これにより、操作後に他のロジックが適用される前に値を確認することができ、それ移行のロジックが実行されないようにすることができます。 たとえば、プラグインやカスタム リアルタイム ワークフロー アクションに追加のロジックを追加して、別のシステムでアクションを開始することができます。 以降の処理を停止することで、外部システムが影響を受ける状況を回避することができます。 このイベントの前にリアルタイムワークフローを適用すると、他のリアルタイムワークフローや、データを保存している可能性のあるプラグインのアクションは、操作がキャンセルされたときに「ロールバック」する必要がなくなります。
リアルタイム ワークフローでワークフロー アクションを停止を使用
リアルタイム ワークフローで ワークフローの停止 アクションを適用する際は、ステータス条件として成功またはキャンセルのいずれかを指定することができます。 ステータスを [取り消し済み] に設定すると、その操作は行われません。 アクション停止のステータス メッセージのテキストを含むエラー メッセージが、ビジネス プロセス エラーの見出しでユーザーに表示されます。
次の手順
リアルタイム ワークフロー プロセスの監視と管理
リアルタイム ワークフロー プロセスのベスト プラクティス
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。