業務プロセス フローのスクリプトを作成する
公開日: 2017年1月
対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online
Microsoft Dynamics 365 (オンラインおよび設置型)には、スクリプトの業務プロセス フローとの対話に使用できるクライアント側のオブジェクトがあります。Xrm.Page.data 名前空間は、Xrm.Page.data.processのメソッドを含むように拡張されています。Xrm.Page.ui 名前空間は、Xrm.Page.ui.processのメソッドを含むように拡張されています。
このトピックの内容
業務プロセス フローの構造
自動化できるアクション
業務プロセス フローのイベント
業務プロセス フローの構造
業務プロセス フローは、それぞれいくつかのステップを含む一連のステージによって構成されています。 1 つのステージのみがアクティブ ステージです。 ステージに含まれる必須のステップが完了すると、プロセスは次のステージに進み、それがアクティブ ステージになります。 次のステージは、以下の図に示すように、業務プロセス フローの条件に基づいて定義できます。
ステージは、特定の関連エンティティに関連付けることができます。したがって、業務プロセス フローは複数のエンティティにまたがることができます。 ビジネス プロセスに変化はなく、ユーザーを適切な最終処理に導きます。
Dynamics 365 用 2016 年 12 月の更新プログラム (オンラインおよび設置型) 以降、さまざまな業務プロセス フロー定義をさまざまなロールに関連付けることができ、インスタンスを同じエンティティ レコードに対して同時に実行できます。 ユーザーは同時のビジネス プロセス インスタンスを切り替えでき、プロセスの現在の段階での作業を再開できます。
自動化できるアクション
通常、業務プロセスの進行状況は、ユーザーの入力によって決まります。 開発者は、フォーム スクリプトで同じ操作をプログラム的に実行できます。
エンティティで使用できるプロセスが複数ある場合は、プロセスを変更します。
Xrm.Page.data.process.getEnabledProcessesを使用して、ユーザーがエンティティのために選択できる、有効なプロセスに関する情報を取得します。 次に、Xrm.Page.data.process.setActiveProcess を使用し、有効化されたプロセス インスタンスの 1 つをアクティブにするか、または新しいプロセスのインスタンスを作成します。エンティティ レコードに対するプロセスのインスタンスの変更
getProcessInstances を使用して、エンティティ レコードに対するすべてのプロセス インスタンスに関する情報を取得し、setActiveProcessInstance を使用して、プロセス インスタンスをアクティブなインスタンスとして設定します。必要なすべてのステップが完了したら、次のステージに移動し、そのステージを現在のアクティブ ステージにします。
Xrm.Page.data.process.moveNextの使用前のステージに移動し、そのステージを現在のアクティブ ステージにします。
Xrm.Page.data.process.movePreviousの使用ステージを選択し、そのステージに含まれるステップの状態を表示します。
Xrm.Page.data.process.getActivePathを使用して、完了したステージ、現在のアクティブ ステージ、現在のアクティブ ステージから使用可能な有効なステージに関する情報を取得します。 このステージに含まれるステップを確認し、対応するフォームの属性値と比較して、ステップが完了したかどうかを判断します。ステップを完了します
フォームの対応するデータが入力されると、ステップは完了します。 ステップの getAttribute メソッドを使用すると、属性を判別できます。 これは、属性の論理名を返します。 次に、Xrm.Page.getAttribute を使用して、Xrm.Page.data.entity.attributes コレクションから属性を取得し、属性の 6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_setValue メソッドを使用して値を設定します。ステップが必要かどうかを検出します
ステップの isRequired メソッドを使用して、業務プロセス フローでステップが必要かどうかを判断します。業務プロセス フローのコントロールを展開または折りたたむ
Xrm.Page.ui.process.setDisplayStateの使用有効な完了したステージにスキップします。
Xrm.Page.data.process.setActiveStage を使用して、現在のエンティティに対する有効な完了したステージの 1 つを設定します。
また、ユーザーは実行できないものの、開発者は実行できる操作があります。
プロセス コントロールを非表示にします
Xrm.Page.ui.process.setVisible を使用すると、業務プロセス フローのコントロールを表示するかどうかを制御できます。現在表示されていないステージを含むプロセスの定義をクエリします。
Xrm.Page.data.process.getActiveProcess を使用して、業務プロセス フローの定義をクエリします。プロセスの分岐ロジックのために表示されていないステージも含みます。
業務プロセス フローのイベント
業務プロセス フローでは、フォームで提供される任意のイベントを操作できますが、次の新しいイベントでは、業務プロセス フローのコントロールのイベントに基づいてのみコードを実行できます。
業務プロセス フローのアクティブ ステージが変更されるか (d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageChange)、ステージが選択されるときに (d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageSelected)、コードを実行できます。
業務プロセス フロー インスタンスの状態が変更されるとコードを実行できます (d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnProcessStatusChange)。 ビジネス プロセス フロー インスタンスには、次の状態のうち 1 つを使用できます。Active、Finished、または Aborted です。
これらの新しいイベントのいずれにも、イベント ハンドラーを登録するユーザー インターフェイスはありません。 フォームの OnLoad イベントでこれらのイベントのハンドラーを追加または削除するには、提供されているメソッドを使用する必要があります。詳細:f451f339-bcee-4260-9904-abc8c0efa153#BKMK_BPFControl
関連項目
Xrm.Page オブジェクト モデルの使用
Xrm.Page.data.process (クライアント側の参照)
サンプル: Xrm.Page.data.process.getEnabledProcesses
サンプル: Xrm.Page.data.process.getActivePath
f451f339-bcee-4260-9904-abc8c0efa153#BKMK_BPFControl
TechNet: 業務プロセス フロー
Microsoft Dynamics 365
© 2017 Microsoft. All rights reserved. 著作権