ワークフローからカスタム アクションを作成または編集する
このトピックは、Dynamics 365 Customer Engagement (on-premises) に適用されます。 このトピックの Power Apps バージョンについては、以下を参照してください。 ワークフローからカスタム アクションを構成する
コードを記述することなく、ワークフローからユーザー定義アクションを有効にできます。 詳しくは、ワークフローからカスタム アクションを呼び出す を参照。
また、開発者がコード内で使用できるようにアクションを作成する必要があるかもしれませんし、または以前に定義されたアクションを編集する必要があるかもしれません。 ワークフロー プロセスのように、次のことを考慮します。
アクションを何を実行する必要がありますか?
どのような条件の下でアクションを実行する必要がありますか?
ワークフロー プロセスとは異なり、以下のオプションを設定する必要はありません。
開始時期: アクションに対して生成されたメッセージをコードが呼び出すと、アクションが開始されます。
スコープ: アクションは、常に呼び出し元ユーザーのコンテキストで実行されます。
バックグラウンドで実行: アクションは常にリアルタイム ワークフローになります。
アクションには、入力引数と出力引数もあり、これは、ワークフロー プロセスにはないものです。 詳細情報 : プロセスの引数を定義する
アクションの作成
重要
配布ソリューションの一部として含まれるアクションを作成する場合は、ソリューションのコンテキストで作成します。 設定>ソリューション に移動し、このアクションが含まれているアンマネージド ソリューションを特定します。 次に、メニュー バーで、新規>プロセスを選択します。 これにより、アクション名に関連付けられているカスタマイズ接頭辞が、ソリューション内の他のコンポーネントと確実に一致するようになります。 アクションを作成したら、接頭辞は変更できません。
ワークフロー プロセスのように、アクションのプロセスの作成ダイアログ ボックスには以下のプロパティがあります。
プロセス名
プロセスの名前を入力した後、プロセス名からスペース文字または特殊文字を削除することによって、一意の名前が作成されます。
カテゴリ
このプロパティは、これがアクション プロセスであることを確立します。 いったんエンティティを保存したら、これを変更できません。
エンティティ
アクション プロセスでは、そのほかの種類のプロセスと同様に、ワークフローにコンテキストを提供するエンティティを選択することができますが、なし (グローバル) を選択することもできます。 アクションが特定のエンティティのコンテキストを必要としない場合は、これを使用します。 いったんエンティティを保存したら、これを変更できません。
種類
このプロパティを使用して、アクションを新規に最初から作成するか、または既存のテンプレートから始めるかを選択します。
アクションの編集
プロセスを編集するには、その前にプロセスを非アクティブ化する必要があります。
アンマネージド ソリューションの一部として作成されたアクション、または組織にインストールされているソリューションに含まれているアクションを編集できます。 ソリューションが管理ソリューションである場合、そのソリューションは編集できない場合があります。 ソリューション発行者は、マネージド ソリューションとともにインストールされたアクションを編集できないように、管理プロパティを編集することもできます。
アクションが保存されるとき、[一意の名前] がプロセス名に基づいて生成されます。 この一意の名前には、ソリューション発行者からのカスタマイズ接頭辞が付加されています。 これは、開発者がコード内で使用するメッセージの名前です。
アクションを編集するとき、次のオプションがあります。
プロセス名
プロセスが作成され、一意の名前がプロセス名から生成されると、プロセス名を編集できます。 個別のプロセスを特定しやすくする命名規則を適用したいことがあるでしょう。
一意の名前
アクションが保存されるとき、[一意の名前] がプロセス名に基づいて生成されます。 この一意の名前には、ソリューション発行者からのカスタマイズ接頭辞が付加されています。 これは、開発者がコード内で使用するメッセージの名前です。 プロセスがアクティブ化され、この名前を使用してアクションを呼び出すようにコードが用意されている場合は、この一意の名前を変更しないでください。
重要
アクションがアクティブ化され、一意の名前を使用するコードが作成された後は、一意の名前は、その名前を参照するコードを変更しないかぎり変更はできません。
ロールバックを有効にする
通常、トランザクションをサポートするプロセスは、トランザクションのどの部分でも失敗すると、操作全体を "元に戻します" (またはロールバックします)。 これには、いくつかの例外があります。 アクションによって開始されるコード内で開発者が行う可能性のある一部のアクションは、トランザクションをサポートしないことがあります。 たとえば、コードが、トランザクションのスコープ外の他のシステムでアクションを実行する場合です。 これらは、アプリで実行しているアクションによってロールバックできません。 プラットフォームの一部のメッセージは、トランザクションをサポートしません。 しかし、アクションのユーザー インターフェイスだけで実行できるすべてが、トランザクションをサポートします。 リアルタイム ワークフローの一部であるすべてのアクションはイン トランザクションとみなされますが、アクションでは、トランザクションから抜け出ることを選択することもできます。
アクションがイン トランザクションであるかどうかを決定するためにこのメッセージを使用する開発者に相談する必要があります。 通常、業務プロセスによって実行されるアクションがすべて完了しなければアクションが意味をなさない場合、アクションはイン トランザクションである必要があります。 標準的な例が、2 つの銀行口座間での資金の転送です。 1 つの口座から資金を引き出す場合、もう 1 つの口座にその資金を預ける必要があります。 どちらが失敗した場合、両方が失敗する必要があります。
Note
ユーザー定義アクションをワークフロー内から直接実行した場合、ロールバックを有効にできません。 Dynamics 365 Customer Engagement (on-premises) web サービス メッセージによってアクションが呼び出される場合はロールバックを有効にできます。
次の種類としてアクティブ化:
すべてのプロセスと同様に、プロセスをテンプレートとしてアクティブ化し、同様のパターンに従ったプロセスの高度な開始点として使用できます。
プロセスの引数の定義
この領域では、アクションが開始する予定のデータと、アクションから渡されるデータを指定します。 詳細情報 : プロセスの引数を定義する
ステージ、条件、およびアクションの追加
他のプロセスと同様に、実行するアクションの内容と、それらを実行する時期を指定します。 詳細情報 : ステージ、条件、アクションの追加
プロセスの引数の定義
開発者はメッセージを使用するときは、メッセージに何らかのデータを渡し、そのデータで開始する場合があります。 たとえば、サポート案件レコードを新規に作成する場合、入力引数として渡されるサポート案件のタイトルの値を使用する場合があります。
開発者は、メッセージが完成すると、メッセージによって変更または生成された一部のデータを、コード内の別の操作へ渡すことが必要な場合があります。 このデータは出力引数です。
入力引数と出力引数の両方に、名前およびタイプと、引数が常に必須かどうかに関する情報を必要としています。 また、説明を与えることもできます。
メッセージ名とすべてのプロセス引数に関する情報が、メッセージの "特徴" を表します。 アクションがアクティブ化され、コードで使用されるようになった後、そのシグネチャは変更できません。 このシグネチャが変更されると、そのメッセージを使用するすべてのコードは失敗します。 これに対しての唯一の例外は、必ずしも必須でないようにパラメーターのいずれかを変更する場合です。
引数は順序ではなく名前で識別されるので、引数を並べ替えたり、上または下に移動して引数の順序を変更できます。 また、説明の変更によって、そのメッセージを使用するコードが壊されることはありません。
アクション プロセスの引数の種類
次の表は、アクション プロセスの引数の種類について説明しています。
種類 | 内容 |
---|---|
Boolean | true または false の値。 |
日時 | 日付と時刻の情報を格納する値。 |
小数 | 小数点以下の精度の数値。 精度が非常に重要な場合に使用します。 |
エンティティ | 指定したエンティティのレコード。 Entity を選択したとき、ドロップダウンが有効になり、エンティティの種類を選択できます。 |
エンティティ コレクション | エンティティ レコードのコレクションです。 |
エンティティ参照 | エンティティ レコードを一意に識別する、エンティティ レコードの名前、ID、および種類を含むオブジェクト。 EntityReference を選択したとき、ドロップダウンが有効になり、エンティティの種類を選択できます。 |
浮動小数 | 小数点以下の精度の数値。 データが完全に正確ではない測定に由来するときに使用されます。 |
Integer | 整数。 |
金額 | 金額のデータを保存する値。 |
候補リスト | OptionSet 属性のオプションを表す値。 |
String | テキスト値。 |
Note
EntityCollection 引数の値は、条件またはアクションのユーザー インターフェイスでは設定できません。 これらは、ユーザー定義コードで開発者が使用するために提供されます。 詳細 : 独自のアクションを作成する
ステージと手順の追加
アクションは、リアルタイム ワークフローに非常に似ている一種のプロセスです。 リアルタイム ワークフローで使用できるすべての手順は、アクションで使用できます。 リアルタイム ワークフローとアクションの両方に使用できるステップの詳細については、「ワークフローのステージとステップ」を参照してください。
リアルタイムのワークフローで使用できる手順に加えて、アクションには値の割り当てステップがあります。 アクションでは、これらは出力引数を設定するためにのみ使用できます。 フォーム アシスタントを使用して出力引数を特定の値に設定できます。より具体的には、アクションの実行対象のレコードからの値に、多対 1 の関連付けでレコードに関連付けられているレコードからの値に、これまでの手順で作成されたレコードからの値に、またはプロセス自体の一部となる値に設定できます。
関連項目
操作
ワークフローからのユーザー定義アクションの呼び出し
リアルタイム ワークフローとアクションの監視
ワークフロー プロセス
業務プロセス フローの概要
ワークフロー プロセスの監視と管理
独自のアクションの作成