SAP Build Process Automationを使ってワークフローを開発してみました。(2)
2023年8月 2日
INDEX
今回の検証範囲
今回開発する範囲で動作する技術は、前回の記事で作成したワークフローにDMSに関する内容を追加したものです。
システムの大まかな流れは次のようになります。
- 申請者がSAP Build Process Automation上で動作するワークフローに申請
- ワークフローが実行され、SAP UI5で作成された承認画面を承認者が確認
- 承認画面上にDMSのファイル一覧とファイルへのリンク表示、承認者が確認
開発は、以下のように進めます。
- 承認画面のUIの編集
- DMSの接続処理の追加
- テスト実行
1. 承認画面のUIの編集
前回のUIでは、表示項目が少なかったので、【Semantic Page】【Input】【Label】【Text Area】【Title】の要素を配置し、承認画面における表示項目を増やします。
※各要素のテキストや初期値も前回の3-1にてご紹介したテキストボックスの例と同様に{context>/○○}の形式でワークフロー実行時に受け取る値として扱うことができます。
※要素のプロパティにEditableというオプションが存在する場合、このオプションの設定内容に応じて承認時にユーザが値を変更できるか否かを決められます。
2. DMSの接続処理の追加
2-1. Upload Collection要素の追加
Upload Collectionの要素を追加します。添付文書をファイルの個数に応じた回数ループで表示させる処理を2-2. にて追加するため、初期値として添付されている添付文書のうち2つを削除し、1つにします。(残った1つの添付文書のURLと名称を2-3. にて変数として設定します)
2-2. itemsオプションの設定
Text EditorでApp.view.xmlファイルを開き、sap.m:UploadCollection 要素のitemsオプションに {context>/dmsitems/objects} と記載します。(itemsオプションが無い場合は追記します)
この設定は、contextのobjectsリストの内容に応じて添付文書を複数表示するために必要です。
2-3. ファイル名と参照先URLの設定
添付文書のプロパティを開きFile Nameの項目を{context>object/Properties/cmis:name/value}に設定し、Urlの項目を次の内容に設定します。
https://Launchpadサービスのドメイン/comsapbpmworkflow.comsapbpmwusformdestination/bpmworkflowruntime_attachments/root?objectId={context>object/Properties/cmis:objectId/value}
DMSのファイル表示用URLのクエリパラメータに対してcontextから取得したファイルのIDを代入することによってDMSとの連携を実現します。ファイルのIDはDMSのアプリケーションにて確認でき、APIから取得することも可能です。
3. テスト実行
3-1. テスト実行用contextの設定
ワークフローモジュールのサンプルcontextに、ファイル名とオブジェクトIDをそれぞれjson形式で記入します。
必要に応じて “1.承認画面のUIの編集”で追加した要素に表示する内容も記入します。
3-2. ワークフローのデプロイ
MTA.yamlをビルドし、生成された.mtarファイルのデプロイを実行します。
生成された.mtarファイルをアップロードします。
Build Process Automationから、アップデートしたワークフローを新規インスタンスの開始ボタンから実行します。
新規インスタンスを開始し、「終了」を選択することで、ワークフローを実行しつつ、JSONコンテキスト入力用のポップアップを閉じることができます。
My inbox画面にて、今回作成したワークフローのタスクが更新したUIに表示され、添付ファイルが表示されていれば成功です。
添付ファイルをクリック後、DMSに保存してあるPDFファイルが新しいタブで表示されます。
おわりに
今回の記事では、SAP Build Process AutomationのワークフローとSAP DMSを連携する方法を中心に、承認画面のカスタマイズについてご紹介しました。
ワークフローは、他サービスとAPIで接続する機能もあるので、DMSのAPIから取得したファイルIDを参照して表示させるといった形での拡張も可能です。
本ブログで、ご紹介した内容以外にも、さまざまな機能がSAP Build Process Automationには備わっています。工夫次第では、高い拡張性を持ったシステムを手軽に開発できます。今後もブログを通じて、皆様にお役立ちする情報を提供していきます。