オーケストレーション計画でのビジネスプロセスの変更
動的収益オーケストレーターの段階的な実装をロールアウトする場合、ロールアウトフェーズごとにビジネスプロセスを変更したり、複数の設定を共存させたりする必要があります。
必要なエディション
| 使用可能なインターフェース: Lightning Experience |
| 使用可能なエディション: Revenue Management の Enterprise Edition、Unlimited Edition、および Developer Edition |
条件は、注文、商品、または取引先の属性を確認し、ステップ、ステップグループ、またはシナリオのどれが適用されるかを判断するルールです。選択した属性によって条件の動作が決まります。すべての注文で 1 つのカットオーバーを実行する日付ベースの条件、サービス種別によって異なるロジックを実行する商品属性条件、パイロットまたは特定のセグメントを実行する取引先属性条件、リスクベースのワークフローを実行する注文値条件、注文または履行イベントが発生したときに適用されるビジネスマイルストーン条件を使用します。変更が複数の要素に依存している場合、条件を組み合わせます。構築条件についての詳細は、「注文履行の実行条件の理解」を参照してください。
ロールアウトフェーズでオーケストレーション計画のビジネスプロセスを置換、追加、または変更する必要がある場合は、有効な設定を編集しないでください。実行時間の長い注文は、次のロールアウトフェーズになっても未処理のままになることがよくあり、編集中に中断される可能性があります。代わりに、各変更に条件を適用し、変更が重要な場合は古い設定と新しい設定を並列で実行します。
従来の構成は、注文が終了すると自然に廃止されます。変更がサービスレベルに影響する場合、Sandbox テスト、ドキュメントの更新、顧客への通知を行う時間を確保し、ビジネスプロセスの置き換えや新しいシナリオの導入など、より大きな変更のリードタイムを長く取ることができます。
次のパターンは、独自のロールアウトに適応できる推奨事項であり、これらの変更を行う唯一の方法ではありません。それぞれについて、すでに実行中の注文を中断することなく、新しい注文に適用されるように変更をモデル化します。1 つのロールアウトフェーズでこれらの変更を複数組み合わせることができます。ビジネスシナリオと進行中の注文の種別に適した組み合わせを選択して、リスクを最小限に抑えます。
- 既存のビジネスプロセスを置き換える
- 置き換えを新しいステップグループまたはシナリオとしてリリースし、新しい注文を条件を指定して転送します。すでに使用している注文の既存のステップグループを保持し、それらの注文の完了後に廃止します。
- 新しいビジネスプロセスの追加
- 新しいステップグループ (または外部コールアウト用の新しいステップ) を追加して、そのステップグループを条件が設定されたシナリオにリンクし、そのステップグループが必要な注文にのみ適用されるようにします。すでに配送中の注文は影響を受けません。
- ビジネスプロセスの実行方法の変更 (手動から自動など)
- 実行中のステップを編集するのではなく、新しいステップ定義または条件で制御される新しいシナリオとして新しい実行をモデル化します。新規注文では自動化パスが使用され、進行中の注文は開始されたプロセスで完了します。
- ビジネスプロセスの一部の変更
- 条件を変更する特定のステップに条件を適用して、対象注文のみが新しい動作に対応できるようにします。条件は、処理中の注文がまだ参照している間に、新しい注文の古いステップを削除するのではなく抑制します。
- ビジネスプロセスの背後にある履行システムを置き換える
- 変更によってダウンストリームまたはバックエンドシステム全体が置き換えられる場合、分離のレベルを選択します。同じ技術商品がまだ適用される場合は、ビジネスプロセスを置き換えるときのように、新しい注文を別のシナリオまたはステップグループに転送します。履行ロジックを完全に分離する必要がある場合 (完了まで古いシステムに対して未処理の注文を修正またはキャンセルし続ける必要がある場合など)、代わりに商品または注文属性に基づく実行ルールを使用して別の技術商品に転送します。実行ルールでテクニカル製品を選択する方法については、「分解リレーションタイプ」を参照してください。実行ルールの条件を設定するには、「分解ルールの実行ルールの定義」を参照してください。
たとえば、変更によって新しい条件付き実行ステップが既存のプロセスに挿入される場合の「ビジネスプロセスの一部の変更」パターンは次のようになります。
新規または置換ビジネスプロセスのモデル化方法の選択
上記のパターンで新規または置換ビジネスプロセスが導入された場合、そのビジネスプロセスをステップグループとしてモデル化するかステップとしてモデル化するかを決定します。選択した内容によって、後でどの程度簡単に変更できるかが決まります。
- 履行ステップ定義グループとして
- Salesforce 内で完全に実行されるビジネスプロセスを履行ステップ定義グループ (ステップグループとも呼ばれる) としてモデル化します。ステップグループには、プロセスの順序付きステップが保持されます。より大きなビジネスプロセスは 1 つのステップグループに対応付ける必要はありません。複数のステップグループでそれぞれフラグメントを表すことができます。オーケストレーション計画のステップグループとステップの定義についての詳細は、「オーケストレーション計画コンポーネントの定義」を参照してください。
- ステップとして
- 下流または外部履行システムをコールアウトステップなどのステップグループ内の 1 つのステップとしてコールするビジネスプロセスをモデル化します。
履行シナリオでは、注文に対して実行されるステップグループに商品がリンクされます。最初からライフサイクルフェーズ別にステップをグループ化します。まず、商品間で共通のステップを特定し、次に商品固有のロジックのみを個別のステップグループに分け、可能な場合はシナリオレベルで条件を適用します。この構造により、リファクタリングすることなくロジックパスを後から簡単に追加できます。
ビジネスプロセスの複数の設定の管理
多くの場合、ロールアウトフェーズでは、同じビジネスプロセスの複数の設定を一定期間共存させる必要があります。古い設定と新しい設定を一緒に実行する必要がある期間に適した共存モデルを選択します。
- 長期的な共存
- 耐久性のある条件で転送される並列シナリオを無期限に保持します。このモデルは、異なる商品または地域など、両方のバリエーションを保持する場合に使用します。
- 古い設定の注文が完了するまで共存
- 条件で新規注文の古い設定を抑制し、実行中の注文を期限切れにします。古い設定を参照するすべての注文が完了したら、古いステップグループ、ステップ、またはシナリオを破棄します。動的収益オーケストレーターでは、ステップグループ、ステップ、またはシナリオがまだ不完全なままである間にこの削除がブロックされます。処理中の注文が破損するリスクがあるため、メタデータの上書きでブロックをスキップするように強制しないでください。注文がすべて完了した抑制されたステップと廃止されたシナリオを定期的に確認し、削除します。多くの条件がある計画では、特に大規模注文の場合、処理遅延が増加し、プラットフォームの制限に近づく可能性があります。具体的な制限については、「動的収益オーケストレーターの制限」を参照してください。
- 中断後に新しい設定が古い設定を上書きする
- 日付ベースの条件を使用して、カットオフ前の注文では古い設定を使用し、カットオフ以降の注文では新しい設定を使用します。このモデルでは、ロジックが混在することなく、時間ベースのクリーンな移行が提供されます。
オーケストレーションの変更でコードを使用するケース
ほとんどのオーケストレーション計画の変更は、カスタムコードではなく、設定 (シナリオ、ステップ定義、条件、ステップ連動関係の変更) を使用して処理できます。設定変更は、条件を使用して制御し、既存のロジックと並行して実行できるため、段階的なロールアウト全体にリリースする方が安全です。Apex やフローなどのカスタムコードは、条件では表現できないロジックが変更で必要な場合にのみ使用します。
| ToDo | コードの使用方法 |
|---|---|
| データの変換 | コードを使用して、ステップがダウンストリームシステムに渡すペイロードデータを再形成、マッピング、強化します。 |
| ビジネス価値の計算 | 価格設定や対象資格ロジックなど、条件の項目値の比較の範囲を超える計算にはコードを使用します。 |
| インテグレーションエンドポイントのコール | コードを使用して、コールアウトでステップを外部履行システムに接続します。 |
| API 契約を適用する | ステップでダウンストリームシステムに必要な特定の要求または応答契約を生成または消費する必要がある場合は、コードを使用します。 |
同じステップ定義を維持しながら、Apex やフローなどの基礎となるロジックを変更するのは、入力契約と出力契約が同じである場合にのみ安全です。パラメーターまたは必須のペイロードプロパティを変更すると、実行ステップが失敗する可能性があります。
注文の状態別のエンティティレベルの変更の影響
上記のパターンと共存モデルは、履行シナリオ、ステップ定義、条件、ステップ連動関係の 4 つのエンティティの 1 つ以上を編集することで機能します。次の表に、新規注文、実行注文、追加注文に対する各エンティティレベルの変更の影響をすべて示します。これにより、実行している特定の変更の結果を確認できます。
| エンティティ | 変更の種別 | 新規注文 | 実行中の注文 | 追加注文 |
|---|---|---|---|---|
| 履行シナリオ | 新規レコードの追加 | 新規注文に適用されます。 | 影響はありません。 | シナリオが追加注文の対象となる場合、ステップを含む新しいステップグループが計画に追加されます。 |
| レコードを削除する | リンクされたステップグループは計画で考慮されません。そのステップグループに属するステップは作成されません。 | 影響はありません。 | このシナリオが存在するために作成されたステップは、ステップの実行状態に応じてキャンセルまたは破棄されます。 | |
| 既存のレコードの商品またはステップグループの変更 | 新しい設定が新しい注文に適用されます。新しい条件がある場合は評価され、ステップが作成されます。 | 影響はありません。 | ステップの実行状態に応じて、古い設定で作成されたステップがキャンセルまたは破棄され、新しい設定が追加注文の対象となる場合、ステップを含む新しいステップグループが計画に追加されます。 | |
| 履行シナリオの条件 | 新しい条件の追加 | 新しい条件が評価され、該当する場合はステップが作成されます。 | 影響はありません。 | 条件が原因でシナリオの適用が停止した場合、ステップの実行状態に応じてステップがキャンセルまたは破棄されます。 |
| 条件の削除 | ステップグループに含まれるステップ定義は、新しいステップの作成に使用されます。 | 影響はありません。 | シナリオで対象になる可能性があります。追加された場合、ステップは追加注文の計画調整プロセス中に追加されます。 | |
| 既存の条件の変更条件 | 新しい条件が評価されます。結果に基づいて、ステップは作成されるか無視されます。 | 影響はありません。 | シナリオが新しい条件で対象になり始めると、追加注文の計画調整プロセス中にステップが追加されます。対象が停止した場合、ステップの実行状態に応じてステップがキャンセルまたは破棄されます。 | |
| 履行ステップ定義 | 新規レコードの追加 | 新しいステップ定義のステップが作成されます。 | 影響はありません。 | 新しいステップ定義のステップが作成されます。 |
| レコードを削除する | 不完全なステップで参照されている場合は削除できません。 | 不完全なステップで参照されている場合は削除できません。 | 不完全なステップで参照されている場合は削除できません。ステップが完了すると、補償がプランに挿入されます。 | |
| 新規ステップの追加 | シナリオが該当する場合、ステップが計画に追加されます。 | 影響はありません。 | シナリオが引き続き対象となる場合、ステップは補足計画の調整プロセス中に追加されます。 | |
| ステップの削除 | 削除されたステップ定義は無視されます。指定されたステップ定義に基づいて計画に不完全なステップがある場合、ステップ定義を削除できません。 | 不完全なステップで参照されている場合は削除できません。 | ステップは、実行の状態に応じてキャンセルまたは破棄されます。指定されたステップ定義に基づいて計画に不完全なステップがある場合、ステップ定義を削除できません。 | |
| ステップ種別の変更 | ステップが新しいステップ種別で作成されます。 | 影響はありません。 | 計画の調整時に無視されます。 | |
| ステップ範囲の変更 | ステップは新しい範囲で作成されます。 | 影響はありません。 | 追加注文は却下されます。 | |
| 返品なしの変更点 (PONR) | ステップは新しい PONR 値で作成されます。 | 影響はありません。 | 計画の調整時に無視されます。 | |
| 修正ステップグループの変更またはキャンセル | ステップは修正グループとキャンセルグループを参照して作成されます。 | 影響はありません。 | 計画の調整時に無視されます。 | |
| Apex、フロー、インテグレーション定義、または割り当てルールの変更 | ステップは、新しい Apex またはフローを参照して作成されます。フローの最新の有効なバージョンが使用されます。 | Apex またはフローが変更される前に実行が開始された場合、現在実行中のステップは古いバージョンを実行します。変更後にステップが実行されると、新しいバージョンが実行されます。新しい実装で契約 (入力、出力、事前条件と事後条件) が変更されると、ステップが失敗する可能性があります。 | ステップの契約 (入力、出力、実装された機能) が変更されるかどうかによって異なります。ステップが実行された場合、ステップは失敗する可能性があります。定義で Apex クラスまたはフローを変更し、古い Apex クラスまたはフローはそのままにすると、連動するクラス、設定、およびサブフローの他の変更に応じて、これらのステップを問題なく実行できます。 | |
| 新しい条件の追加 | 新しい条件は、作成された履行ステップレコードから参照されます。 | 影響はありません。 | ステップの作成後に定義に追加された条件は無視されます。 | |
| 条件の削除 | 履行ステップレコードは、条件への参照なしで作成されます。 | 定義から削除された条件 (ルールセット参照値に対する実行または再開) は、実行中のステップからも削除されます。 | ステップの作成後に定義から削除された条件は無視され、古い条件が評価されます。 | |
| 既存の条件の変更条件 | 履行ステップレコードがルールセットを参照します。 | 履行ステップレコードがルールセットを参照します。条件を変更すると、ステップをスキップまたは実行して実行に影響します。 | 履行ステップにはルールセットへの参照のみが保存されます。条件が変更されると、オーケストレーションの実行時に新しい条件が評価されます。 | |
| ステップの連動関係の定義 | 既存のステップ間に新しい連動関係を追加する | 新規注文に適用されます。 | 影響はありません。 | 新しい連動関係レコードは、計画の調整時に追加されます。この連動関係レコードは、実際のオーケストレーションの実行に影響する場合と影響しない場合があります。 |
| 既存のステップと新しく追加されたステップ間の連動関係を追加する | 新規注文に適用されます。 | 影響はありません。 | 新しい連動関係レコードは、計画の調整時に追加されます。 | |
| 新しく追加されたステップと既存のステップ間の連動関係を追加する | 新規注文に適用されます。 | 影響はありません。 | 新しい連動関係レコードは、計画の調整時に追加されます。この連動関係レコードは、実際のオーケストレーションの実行に影響する場合と影響しない場合があります。 | |
| 新しく追加された 2 つのステップ間の連動関係を追加する | ステップが適切な範囲内にある限り、ステップ間に履行ステップの連動関係レコードが含まれるステップが作成されます。 | 影響はありません。 | 新しい連動関係レコードは、計画の調整時に追加されます。 | |
| 連動関係の削除 | ステップは、履行ステップの連動関係レコードなしで作成されます。 | 影響はありません。 | 連動関係レコードは一度作成すると削除されません。 | |
| 連動関係範囲の変更 | 新規注文に適用されます。 | 影響はありません。 | 影響はありません。 |
