業務プロセス フローのスクリプトを作成する

 

公開日: 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 月の更新プログラム (オンラインおよび設置型) 以降、さまざまな業務プロセス フロー定義をさまざまなロールに関連付けることができ、インスタンスを同じエンティティ レコードに対して同時に実行できます。 ユーザーは同時のビジネス プロセス インスタンスを切り替えでき、プロセスの現在の段階での作業を再開できます。

詳細:TechNet: 業務プロセス フロー

自動化できるアクション

通常、業務プロセスの進行状況は、ユーザーの入力によって決まります。 開発者は、フォーム スクリプトで同じ操作をプログラム的に実行できます。

  • エンティティで使用できるプロセスが複数ある場合は、プロセスを変更します。
    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 つを使用できます。ActiveFinished、または 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. 著作権