前回の記事ではMS-Flowの画面からテンプレートを使ってDynamics365 for Financialsの品目マスタ承認ワークフローを作成しました。今回は実際に動かしてみます。
必要なもの:Dynamics365 for Finance and Operations, Business edition(長いので以下D365 Financial)のフリートライアル環境、Office365のアカウント(FreeTrial可)、MS-Flowのテンプレートから作成したD365 for Financialsの品目マスタ承認WF
D365の入手方法はこちらの記事を参照。Office365の入手方法はこちらの記事を参照
最初に1点訂正です。前回の記事では承認するユーザーを’Approver@xxxx.onmicrosoft.com’にしましたが、MS-Flow用の管理者アカウント’flowadmin@xxxx.onmicrosoft.com’にするべきでしたので、ワークフローを再度作り直しました。最終的にはApproverにしたいですが、動作確認するうえでは同じユーザーの方が問題特定が容易なので’flowadmin@xxxx.onmicrosoft.ocm’にします。具体的な修正箇所は以下。
さて、気を取り直して、、まずはサインインします。まずはD365 Financials上でWorkflowがどのようになっているかを確認します。例によって虫眼鏡から、、
Workflow機能を呼び出し。
一覧が表示されました。一番下に有効なWFが新たに作られています。中身を見てみましょう。
MS-Flowでワークフローを作ったことでD365 Financialsにも作成されました。ワークフローのコードの末尾が ’…-WH-xx’ になっていることがわかります。WHはおそらくWebHookの略だと思われます。あと、Workflow Step のEventの最後が ’from a subscribed webhook’になっています。ワークフローの構造もシンプルで、
① ワークフローの承認依頼が押されたら…
②-1 承認されたら…
②-2 却下されたら…
②-3 取下られたら…
となっています。承認のプロセス自体はMS-Flowにお任せして、結果だけを貰ってD365側の処理をする、という作りになっている感じです。
ワークフローの画面は閉じて、Item(品目)の一覧画面を見てみます。
アクションタブを見ると、’Create Approval Workflow’ ボタンが非活性で、’Manage Approval Workflow’ ボタンが押せるようになっています。つまり、品目のワークフローは既につくられた、と認識されています。作ったのだから当たり前だろうと思うかもしれませんが、作ったものが正しく紐づいているかどうかの確認が必要です。ボタンを押します。
先ほど確認したワークフローが紐づいていることが分かります。リボンのMS-Flowアイコンのボタンを押します。
MS-Flowの画面が起動し、’Request Approval for Dynamics 365 item’ ワークフロー画面が照会できます。どうやら正しく紐づいているようです。そして「実行履歴」には何も表示されていません。(後で出てきます。)
さていよいよ品目カードから実際にワークフローを起動してみましょう。品目一覧からサンプル品目を選んでViewボタンを押します。
サンプル品目のカード画面です。’Send Approval Request’ ボタンを押して承認を依頼します。これでワークフローが起動されるはずです。
’Send Approval Request’ ボタンは非活性になり、代わりに ’Cancel Approval Request’ ボタンが押せるようになりました。どうやら起動は成功したように見えます。’Approvals’ ボタンを押して承認依頼の状況を確認します。
承認依頼の明細が何も表示されていません。。どうやら失敗のようです。
MS-Flowの画面からエラーを追ってみます。ワークフローを照会すると、実行履歴にエラーが表示されています。ダブルクリックで中身を見れます。
Get Item というアクションに失敗した、というエラーが表示されます。ワークフローの2つ目のステップです。
先の画面のエラーメッセージを×ボタンで閉じると ’ Get Item’ のアクションの右肩に赤いマークがついています。ダブルクリックでこのアクションを展開します。
ステータスコードが400というのはワークフローのアクションが上手く行っていないというエラーです。(ざっくりですがw)
テーブル名が ’workflowitems’ というもの気になります。(そんなテーブルあったっけ??)
後々の事を考えて、品目の承認依頼は一応取り下げておきます。
このあと、色々調べてみましたがGetitemsアクションが失敗する原因は突き止められませんでした。。
手掛かりとして分かったのは ’Get Item’アクションで登場した ’workflowitems’ というテーブルは実はテーブルではなく、Web Serviceとして公開されているPageのようです。
次回はMS-Flowで受注伝票の承認ワークフローを回してみます。先に書いておきますが、無事成功していますのでご安心ください(笑)