このコンテンツは D365BCのワークフロー作成方法(概要) | IT長のネタ帳 (d3654.be) のサブコンテンツです。
前回はBCの販売見積(Sales Quote)を承認するためのフローを Power Automate の テンプレートを使って作成しました。実はPower Automateのフローを作成した際にBCのワークフローが裏側で作成されています。今回はこのBC側のワークフローを確認します。
BCのワークフロー一覧画面を確認すると、”Sales Document Approval Workflow”という名前のワークフローが作成されています。ワークフローの名前をクリックします。

ワークフローのカードページが開きます。全体の構造を見てみましょう。
・1行目:承認が依頼された時にワークフローが起動条件と起動時の処理が記述されている。
・2行目:ワークフローが承認された場合の検知の方法と実行する処理が記述されている。
・3行目:ワークフローが却下された場合の検知の方法と実行する処理が記述されている。
・4行目:ワークフローが取消された場合の検知の方法と実行する処理が記述されている。
1行目の処理を確認するため、”Then Response”列の”Add record restriction”をクリックします。

レスポンスの1行目と2行目はPower Automateを使用しないBCのフローと同じです。1行目はRestriction recordを作成し、2行目は伝票のステータスを”Pending Approval”に設定しています。
3行目はPower Automateと連動するワークフローに特有のレスポンスです。Webhookで承認者に通知を送っているようです。

ワークフローのカードページに戻って2行目を見てみます。この行はPower Automate側で承認処理が完了した場合の処理を記述しています。”On Condition”列の設定値を確認するため、”Response Continue”をクリックします。

Webhookから引き渡される値の一覧を確認できます。”Continue”のフラグがONになっています。ほかの選択肢の名前を見る限り、承認された場合は”Continue”という値が引き渡されるようです。

2行目のレスポンスも確認します。”Then Response”列の”+Remove record restriction”をクリックします。

Restriction Recordを削除して、文書をリリースしています。 Power Automateを使用しないBCのフローと同じです。

3行目はPower Automateで承認却下された場合に文書のステータスを再度オープン状態にしているだけです。
4行目を見てみましょう。Power Automateでキャンセルされた場合の処理が記述されています。”Then Response”列をクリックします。

Restriction Recordを削除し、文書を再度オープンしています。 Power Automateを使用しないBCのフローと同じです。

確認が終わったらワークフローカードを閉じ、ワークフローが有効になっていることを確認します。

承認者が承認/却下の判断をする部分はPower Automate側で処理しており、BC側はその結果を受け取って伝票(この場合SalesQuote)の処理するだけの構造なので、BC側のワークフローの構造は非常にシンプルです。例えば、Power Automateを使用せずにBC標準のワークフローのみで処理する場合、承認処理が最終承認か最終承認でないかで後続処理を分ける必要があり、別の行で記述されます。
次回は実際に販売見積伝票を承認依頼して、PowerAutomateのフローを動かしてみましょう。
3件のコメント