カスタム プロセス アクションを作成する

システムで一連のコマンドを自動化する際にはカスタム プロセス アクションを使用します。 カスタム プロセス アクションにより、開発者がビジネス プロセスを表現するために使用できるボキャブラリが拡張されます。 カスタムプロセスアクションは、システムが提供する作成する、更新する、削除する、および割り当てるなどの中核となる動詞を使用して、承認する、エスカレートする、ルーティングする、またはスケジュールするなどの、さらに説明的な動詞を作成します。 ビジネス プロセスの定義が変わった場合に、開発者以外でもカスタム プロセス アクションを編集することができ、コードを変更する必要はありません。

注意

ワークフロー デザイナーを使用する代わりに、カスタム プロセス アクションのロジックを実装するプラグインを作成する場合は、カスタム API を使用する必要があります。 詳細: カスタム プロセス アクションとカスタム API を比較する

カスタム プロセス アクションを作成する

重要

カスタム プロセス アクションを作成して、配布されるソリューションの一部として含める場合は、ソリューションのコンテキストで作成します。 設定 > ソリューション に移動し、このアクションが含まれているアンマネージド ソリューションを特定します。 次に、メニュー バーで、新規 > プロセスを選択します。 これにより、アクション名に関連付けられているカスタマイズ接頭辞が、ソリューション内の他のコンポーネントと確実に一致するようになります。 アクションを作成したら、接頭辞は変更できません。

ワークフロー プロセスのように、カスタム プロセス アクションのプロセスの作成ダイアログ ボックスには以下のプロパティがあります。

  • プロセス名

    プロセスの名前を入力した後、プロセス名からスペース文字または特殊文字を削除することによって、一意の名前が作成されます。

  • カテゴリ

    このプロパティは、これがアクション プロセスであることを確立します。 いったんエンティティを保存したら、これを変更できません。

  • テーブル

    アクション プロセスでは、そのほかの種類のプロセスと同様に、ワークフローにコンテキストを提供するテーブルを選択することができますが、なし (グローバル) を選択することもできます。 これは、アクションで特定テーブルのコンテキストを必要としない場合に使用します。 いったんエンティティを保存したら、これを変更できません。

  • タイプ

    このプロパティを使用して、カスタム プロセス アクションを新規に最初から作成するか、または既存のテンプレートから始めるかを選択します。

ワークフロー プロセスとは異なり、次のオプションを設定する必要はありません。

  • 開始時期: アクションに対して生成されたメッセージをコードが呼び出すと、アクションが開始されます。

  • スコープ: アクションは、常に呼び出し元ユーザーのコンテキストで実行されます。

  • バックグラウンドで実行: アクションは常にリアルタイム ワークフローになります。

カスタム プロセス アクションには、ワークフロー プロセスにはない、入力引数と出力引数もあります。

注意

コードを記述することなく、ワークフローからカスタム プロセス アクションを有効にできます。 詳細 : ワークフローからカスタム プロセス アクションを呼び出す

カスタム プロセス アクションを編集する

カスタム プロセス アクションを編集するには、その前にプロセスを非アクティブ化する必要があります。

アンマネージド ソリューションの一部として作成された、または組織にインストールされているソリューションに含まれているカスタム プロセス アクションを編集できます。 ソリューションが管理ソリューションである場合、そのソリューションは編集できない場合があります。 ソリューション発行者は、マネージド ソリューションとともにインストールされたアクションを編集できないように、管理プロパティを編集することもできます。

アクションが保存されるとき、[一意の名前] がプロセス名に基づいて生成されます。 この一意の名前には、ソリューション発行者からのカスタマイズ接頭辞が付加されています。 これは、開発者がコードで使用するメッセージの名前です。

アクションを編集する際には、次のオプションを使用できます :

  • プロセス名

    プロセスが作成され、一意の名前がプロセス名から生成されると、プロセス名を編集できます。 個別のプロセスを特定しやすくする命名規則を適用したいことがあるでしょう。

  • 一意の名前

    アクションが保存されるとき、[一意の名前] がプロセス名に基づいて生成されます。 この一意の名前には、ソリューション発行者からのカスタマイズ接頭辞が付加されています。 これは、開発者がコード内で使用するメッセージの名前です。 プロセスがアクティブ化され、この名前を使用してアクションを呼び出すようにコードが用意されている場合は、この一意の名前を変更しないでください。

    重要

    アクションがアクティブ化され、一意の名前を使用するコードが作成された後は、一意の名前は、その名前を参照するコードを変更しないかぎり変更はできません。

  • ロールバックを有効にする

    通常、トランザクションをサポートするプロセスは、トランザクションのどの部分でも失敗すると、操作全体を "元に戻します" (またはロールバックします)。 これには、いくつかの例外があります。 カスタム プロセス アクションによって開始されるコード内で開発者が行う可能性のある一部のアクションは、トランザクションをサポートしないことがあります。 たとえば、コードが、トランザクションのスコープ外の他のシステムでアクションを実行する場合です。 これらは、アプリで実行しているアクションによってロールバックできません。 プラットフォームの一部のメッセージは、トランザクションをサポートしません。 しかし、アクションのユーザー インターフェイスだけで実行できるすべてが、トランザクションをサポートします。 リアルタイム ワークフローの一部であるすべてのアクションはイン トランザクションとみなされますが、アクションでは、トランザクションから抜け出ることを選択することもできます。

    アクションがイン トランザクションであるかどうかを決定するためにこのメッセージを使用する開発者に相談する必要があります。 通常、業務プロセスによって実行されるアクションがすべて完了しなければアクションが意味をなさない場合、アクションはイン トランザクションである必要があります。 標準的な例が、2 つの銀行口座間での資金の転送です。 1 つの口座から資金を引き出す場合、もう 1 つの口座にその資金を預ける必要があります。 どちらが失敗した場合、両方が失敗する必要があります。

    注意

    カスタム プロセス アクションをワークフロー内から直接実行した場合、ロールバックを有効にできません。 Power Apps web サービス メッセージによってアクションが呼び出される場合はロールバックを有効にできます。

  • 次の種類としてアクティブ化:

    すべてのプロセスと同様に、プロセスをテンプレートとしてアクティブ化し、同様のパターンに従ったプロセスの高度な開始点として使用できます。

  • プロセスの引数の定義

    この領域では、アクションが開始する予定のデータと、アクションから渡されるデータを指定します。 詳細情報 : プロセスの引数を定義する

  • ステージと手順の追加

    他のプロセスと同様に、実行するアクションの内容と、それらを実行する時期を指定します。 詳細 : ステージとステップを追加する

プロセスの引数の定義

開発者がメッセージを使用する場合は、メッセージに渡すことができるいくつかのデータから始める場合があります。 たとえば、サポート案件行を新規に作成する際に、入力引数として渡されるサポート案件のタイトルの値を使用する場合があります。

開発者は、メッセージが完成すると、メッセージによって変更または生成された一部のデータを、コード内の別の操作へ渡すことが必要となる場合があります。 このデータは出力引数です。

入力引数と出力引数の両方に、名前およびタイプと、引数が常に必須かどうかに関する情報を必要としています。 また、説明を与えることもできます。

メッセージの名前とすべてのプロセスの引数に関する情報が、メッセージのシグネチャを表します。 カスタム プロセス アクションがアクティブ化され、コードで使用されるようになった後、そのシグネチャは変更できません。 このシグネチャが変更されると、そのメッセージを使用するすべてのコードは失敗します。 これに対しての唯一の例外は、必ずしも必須でないようにパラメーターのいずれかを変更する場合です。

引数は順序ではなく名前で識別されるので、引数を並べ替えたり、上または下に移動して引数の順序を変更できます。 また、説明の変更によって、そのメッセージを使用するコードが壊されることはありません。

アクション プロセスの引数の種類

次の表は、アクション プロセスの引数の種類について説明しています。

種類​​ 内容
Boolean true または false の値。
日時 日付と時刻の情報を格納する値。
小数 小数点以下の精度の数値。 精度が非常に重要な場合に使用します。
テーブル 指定されたテーブルの行。 テーブルを選択した際に、ドロップダウン リストが有効になり、テーブルの種類を選択できます。
entityCollection テーブル行のコレクション。
entityReference テーブルの行を一意に識別する、テーブル行の名前、ID、および種類を含むオブジェクト。 entityReference を選択した際に、ドロップダウン リストが有効になり、テーブルの種類を選択できます。
Float 小数点以下の精度の数値。 データが完全に正確ではない測定に由来するときに使用されます。
Integer 整数。
金額 金額のデータを保存する値。
候補リスト OptionSet 属性のオプションを表す値。
String テキスト値。

注意

entityCollection 引数の値は、条件またはアクションのユーザー インターフェイスでは設定できません。 これらは、ユーザー定義コードで開発者が使用するために提供されます。 詳細: 独自のメッセージの作成

ステージと手順の追加

カスタム プロセス アクションは、リアルタイム ワークフローとよく似たプロセスのタイプです。 リアルタイム ワークフローで使用できるすべての手順は、アクションで使用できます。 リアルタイム ワークフローとアクションの両方に使用できるステップの詳細については、「ワークフローのステージとステップ」を参照してください。

リアルタイムのワークフローで使用できる手順に加えて、アクションには値の割り当てステップがあります。 アクションでは、これらは出力引数を設定するためにのみ使用できます。 フォーム アシスタントを使用して出力引数を特定の値に設定できます。より具体的には、アクションの実行対象の行からの値に、多対一の関連付けで行に関連付けられている行からの値に、これまでの手順で作成された行からの値に、またはプロセス自体の一部となる値に設定できます。

マネージド プロパティ

カスタム プロセス アクションには、2 つの関連するマネージド プロパティがある

カスタマイズ可能

カスタマイズ可能マネージド プロパティは、カスタム プロセス アクションを含むマネージド ソリューションをインストールしたユーザーが、それを編集または削除できるかどうかを制御します。 カスタム プロセス アクションがマネージド ソリューションに含まれている場合に、カスタム プロセス アクションを編集または削除したい場合は、このプロパティを true に設定する必要があります。

他の公開元に許可されたカスタム処理手順

他の公開元に許可されたカスタム処理手順マネージド プロパティは、サード パーティのプラグイン開発者がカスタム プロセス アクションによって作成されたメッセージにプラグイン ステップを登録できるかどうかを制御します。 これが true の場合、このメッセージ上で誰が登録したプラグインであっても、そのプラグインは実行され、カスタム プロセス アクションの動作を変更できるようになります。 false の場合、同じソリューション発行者からソリューション内に登録されたプラグイン ステップのみが実行されます。

次の手順

ワークフローからカスタム プロセス アクションを呼び出す

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。