D365BCのワークフロー作成方法(3)


このコンテンツは D365BCのワークフロー作成方法(概要) | IT長のネタ帳 (d3654.be) のサブコンテンツです。

前々回前回は承認依頼のボタンを押すことでBCのワークフローが起動される例を説明しました。BCのワークフローを起動するにはもう一つのタイプが存在します。テーブルの値を変更した際にワークフローが自動的に起動されるようにワークフローを設定することが出来ます。今回はこの例を説明します。

まず最初に前回作成したワークフローを無効化します。厳密には無効化は必須ではありませんが、起動しているワークフローを明確にするために無効化します。
ワークフロー一覧ページを表示すると前回作成したワークフローが表示されます。Enabled列がYesになっています。ワークフローをクリックするか、ワークフローを選択した状態でManageタブからEditボタンをクリックします。

EnableのフラグをOffにします。これでこのワークフローは無効化され、得意先マスタの承認依頼ボタンを押せなくなります。画面中央上部の鉛筆マークをクリックして照会モードに切り替えて明示的に保存するとベターです。

ワークフロー一覧の画面に戻ります。Enabled列がブランクになっていることを確認します。これで無効化は完了です。余談ですが、複数のワークフローで起動条件が重複していると経験上、正しく動作しません。

Assisted Setup の画面に戻ります。前回のワークフロー作成時に使用した ”Set up a customer approval workflow” をクリックしてWizardを起動します。

前回設定済なので「もう一度設定しなおしますか?」という確認メッセージが表示されます。Yesを選択します。

説明を読み、Nextを選択して先に進みます。

Approverには前回指定したユーザーIDが設定されています。ここまでは前回と同じです。”The workflow start when” には ”The user changes a specific field” を選択します。ここが前回と異なる点です。プルダウンの説明の通りですが、「特定の項目が変更された時」にワークフローが起動される設定になります。プルダウンの値を選択したらNextボタンをクリックします。

次の画面では、どの項目がどのように変更されたらワークフローが起動するかを設定します。デフォルトでは Credit Limit(与信限度額)が増加した場合に起動する設定になっています。既定値から変更することもできますが、ここではそのままNextボタンをクリックして先に進みます。

完了画面です。Finishボタンをクリックして設定を完了させます。

ワークフローの一覧画面を見てみましょう。”Customer Change Approval Workflow”というワークフローが新しく作成され、EnabledがYesになっています。作成されたワークフローを見てみましょう。対象のワークフローをクリックするか、選択した状態でManageタブのEditボタンをクリックします。

ワークフローのカード画面が開きます。ヘッダー部分はコード、名称なので説明を省略します。ライン部分を見てみましょう。
1行目はワークフローの起動条件を設定しています。”When Event”には「得意先のレコードが変更された時」と記述されています。”On Condition”に具体的な変更条件として”Credit Limit is Increased”と記述されています。リンクをクリックしてみましょう。

Wizardで設定したように、変更を検知する対象の項目と変更内容が表示されます。この場合は「Credit Limit が増加した場合」と設定されています。”Credit Limit”が設定されている項目の右側の「…」をクリックしてみます。

得意先マスタの項目がリスト表示されます。既定では”Credit Limit”ですが、他の項目を指定できるようになっています。ここでは値を変更せずに”Cancel”をクリックして戻ります。

”Increased”のプルダウンで選択肢を見てみます。他に”Decreased”や”Changed”が選択可能です。例えば得意先マスタの項目”Blocked”がブランクになる場合にWorkflowを起動したい場合、”Field”には”Blocked”を指定し”Increased”ではなく”Decreased”を指定します。今回は”Increased”のまま変更せずに戻ります。

Credit Limitが増加した場合にWorkflowが起動するのですが、何を実行しているか見てみましょう。”Then Response”列の”Revert the value of…”のリンクをクリックします。

Workflowが起動された時のレスポンスが4つ記述されています。注目すべきは1行目の”Revert the value of the Credit Limit field on the record and save the change.” です。変更された値を別途保管したうえで変更前の値に戻しています。後ほどWorkflowを実行して挙動を確認しますが、例えば ”Credit Limit” を0から10,000,000に増やした場合、Workflowが起動して”Credit Limit”の値は一旦0に戻ります。

Workflowが最終的に承認されると”Credit Limit”の値は変更後の値(ex.10,000,000)が反映されます。逆に言えば、Workflowが承認されるまでは変更前の値(ex.0)のままです。ライン部分の2行目がこの挙動を定義しています。2行目の”When Event”は”An approval request is approved.”です。”Then Response”には”Apply the new values.” が設定されています。リンクをクリックしてみます。

Workflowの起動時に別途保管した変更後の値を”Credit Limit”にセットする設定になっています。この画面は設定内容を確認したら”Cancel”ボタンをクリックして戻ります。

承認が却下された時の挙動も見てみましょう。4行目に記述されています。”Then Response”列の”Discard the new values”をクリックします。

Responseは2行定義されています。1行目は”Discard the new values.”と記述されています。つまり、Workflowが却下された場合、Workflowをトリガーした原因である値は破棄されます。

Workflowの設定と内容の確認は以上です。Enabled列がONになっていることを確認してWorkflowカード画面を閉じます。

2件のコメント

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です