SAP Build AppsでSAP Document Management Serviceへファイルをアップロードし、SAP Build Process Automationでそれを使う手法 その1

Estimated read time 3 min read

大分間が空いてしまいましたが、この記事は一応
https://community.sap.com/t5/technology-blogs-by-sap/sap-build-apps%E3%81%A8sap-build-process-automation%E3%81%AE%E9%80%A3%E6%90%BA-%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%83%88%E3%83%AA%E3%82%AC%E3%83%BC%E3%81%AE%E5%A0%B4%E5%90%88/ba-p/13683267
https://community.sap.com/t5/technology-blogs-by-sap/sap-build-apps-%E3%82%88%E3%82%8A%E7%B0%A1%E5%8D%98%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9Fsap-build-process-automation%E3%81%A8%E3%81%AE%E9%80%A3%E6%90%BA/ba-p/13682980
これらの記事の続き物です。

私は前者の方の記事で「ファイル添付機能を持ったSAP Build Process Automationトリガーフォームの代用としてSAP Build Appsを使用することは非常に厄介」という旨を説明しました。これはSAP Build AppsからSAP Document Management Serviceへのファイルのアップロードが非常に面倒(だった)というのが理由です。どのように解説しようかなと考えた上前説的な記事として
https://community.sap.com/t5/technology-blogs-by-sap/try-sending-data-in-multipart-form-data-format-on-sap-build-apps/ba-p/13949529
こちらを公開しましたが、私がかつて取っていた手法からすると遥かに簡単な方法でDMSへアップロードすることが出来る機能がSAP Build AppsのMARKET PLACEにて公開されましたのでそれを利用する方法で説明したいと思います。

前解説:SAP Build Process Automationのファイル添付機能について

SAP Build Process Automationでファイルの添付機能を利用した場合、ファイルはSAP Document Management Serviceに保存されます。SAP Document Management Service側でファイルがどのように格納されているか見たことはあるでしょうか?実はファイルごとにフォルダが作成され、そのフォルダーにファイルが格納されます。SAP Document Management Serviceでは管理上フォルダやファイル毎に一意のIDが付与されます。SAP Build Process Automation内では添付したファイルはファイルのIDではなく(自動作成された)フォルダのIDで扱います。これは正しくは
spa-res:cmis:folderid:<DMS上のフォルダID>
という形式で扱われます。

つまりは、SAP Build AppsでSAP Document Management Serviceにファイルをアップロードし、それをSAP Build Process Automationのワークフロー上で使用したいという場合、Build Apps側で
1. SAP Document Management Serviceのレポジトリ上にフォルダを作成する。その際にフォルダに対して発行されたIDを取得しておく。
2. 上記のフォルダにファイルをアップロードする
3. SAP Build AppsからSApBuild Process Automationのワークフローを起動する際、「spa-res:cmis:folderid:<DMS上のフォルダID>」という形式でファイルの保存先情報を渡す
ということが必要です。

前準備その1:Destinationを作成する

SAP Build AppsからSAP Document Management ServiceにアクセスするためにDestinationを作成します。これはSAP Build Process AutomationとSAP Document Management Serviceの連携のためにDestinationである「sap_process_automation_document_store」というDestinationをクローンして作成することにします。「sap_process_automation_document_store」にSAP Build Appsで使用するための追加プロパティを設定しても良いかなと考えたのですが、これは連携のために作り方が指定されている・自動的に作成されたDestinationであるため、ほぼ同一の内容となりますが、SAP Build Appsからの利用用にもう一つ作成することにします。

私は「sap_process_automation_document_store」をクローンして「sap_process_automation_document_store_ForApps」というDestinationを作成しました。
このDestinationは「sap_process_automation_document_store」から以下の部分を変更しています。
URL: 一番後ろに /rootを追加
更にAdditional Propertiesとして以下を追加しています。

BuildApps.ApiTyperestBuildApps.EnabledtrueHTML5.DynamicDestinationtrueMobileEnabledtrue

URLに/rootを追加したことに関しては正直必須ではないかなとも思います。しかしSAP Business Accelerator HubでDocument Management Serviceで使用するAPIを確認した際に/rootまで付与したURLが共通で使用できると判断したため労力を下げるために追加しました。Additional Propertiesに設定した項目はこのDestinationをSAP Build Appsで使用するための設定項目となります。

 

それでは簡単なアプリを作りながら解説します。

 

1. SAP Build Process Automation側のプロセスの作成

まず、添付ファイルの情報を受け取ることになるワークフローを作成します。単純なものを作成します。

トリガーとしてはAPIトリガーを使用し、以前解説した方法でSAP Build Appsから連携します。プロセスの入力変数としてFolderIdという

DocumentFolder型の変数を設定します。
ここからつながっているフォームも単純で

ファイルオブジェクトを配置します。このファイルオブジェクトはReadOnly属性にチェックを入れてください。
プロセス上でこのフォームに入力変数として設定したFolderIdを割り当てます。

フォームの件名や宛先などは適当に設定します。テストでは自分自身に来るように宛先を設定することにしましょう。宛先はProcess metadataの”Process started by”を指定します。
リリースしてデプロイします。SAP Build Appsから利用できるようにロビーから

Published to Libraryを選択してライブラリにパブリッシュすることを忘れずに。

 

長くなるのでその2に続きます。

 

 

​ 大分間が空いてしまいましたが、この記事は一応https://community.sap.com/t5/technology-blogs-by-sap/sap-build-apps%E3%81%A8sap-build-process-automation%E3%81%AE%E9%80%A3%E6%90%BA-%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%83%88%E3%83%AA%E3%82%AC%E3%83%BC%E3%81%AE%E5%A0%B4%E5%90%88/ba-p/13683267https://community.sap.com/t5/technology-blogs-by-sap/sap-build-apps-%E3%82%88%E3%82%8A%E7%B0%A1%E5%8D%98%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9Fsap-build-process-automation%E3%81%A8%E3%81%AE%E9%80%A3%E6%90%BA/ba-p/13682980これらの記事の続き物です。私は前者の方の記事で「ファイル添付機能を持ったSAP Build Process Automationトリガーフォームの代用としてSAP Build Appsを使用することは非常に厄介」という旨を説明しました。これはSAP Build AppsからSAP Document Management Serviceへのファイルのアップロードが非常に面倒(だった)というのが理由です。どのように解説しようかなと考えた上前説的な記事としてhttps://community.sap.com/t5/technology-blogs-by-sap/try-sending-data-in-multipart-form-data-format-on-sap-build-apps/ba-p/13949529こちらを公開しましたが、私がかつて取っていた手法からすると遥かに簡単な方法でDMSへアップロードすることが出来る機能がSAP Build AppsのMARKET PLACEにて公開されましたのでそれを利用する方法で説明したいと思います。前解説:SAP Build Process Automationのファイル添付機能についてSAP Build Process Automationでファイルの添付機能を利用した場合、ファイルはSAP Document Management Serviceに保存されます。SAP Document Management Service側でファイルがどのように格納されているか見たことはあるでしょうか?実はファイルごとにフォルダが作成され、そのフォルダーにファイルが格納されます。SAP Document Management Serviceでは管理上フォルダやファイル毎に一意のIDが付与されます。SAP Build Process Automation内では添付したファイルはファイルのIDではなく(自動作成された)フォルダのIDで扱います。これは正しくはspa-res:cmis:folderid:<DMS上のフォルダID>という形式で扱われます。つまりは、SAP Build AppsでSAP Document Management Serviceにファイルをアップロードし、それをSAP Build Process Automationのワークフロー上で使用したいという場合、Build Apps側で1. SAP Document Management Serviceのレポジトリ上にフォルダを作成する。その際にフォルダに対して発行されたIDを取得しておく。2. 上記のフォルダにファイルをアップロードする3. SAP Build AppsからSApBuild Process Automationのワークフローを起動する際、「spa-res:cmis:folderid:<DMS上のフォルダID>」という形式でファイルの保存先情報を渡すということが必要です。前準備その1:Destinationを作成するSAP Build AppsからSAP Document Management ServiceにアクセスするためにDestinationを作成します。これはSAP Build Process AutomationとSAP Document Management Serviceの連携のためにDestinationである「sap_process_automation_document_store」というDestinationをクローンして作成することにします。「sap_process_automation_document_store」にSAP Build Appsで使用するための追加プロパティを設定しても良いかなと考えたのですが、これは連携のために作り方が指定されている・自動的に作成されたDestinationであるため、ほぼ同一の内容となりますが、SAP Build Appsからの利用用にもう一つ作成することにします。私は「sap_process_automation_document_store」をクローンして「sap_process_automation_document_store_ForApps」というDestinationを作成しました。このDestinationは「sap_process_automation_document_store」から以下の部分を変更しています。URL: 一番後ろに /rootを追加更にAdditional Propertiesとして以下を追加しています。BuildApps.ApiTyperestBuildApps.EnabledtrueHTML5.DynamicDestinationtrueMobileEnabledtrueURLに/rootを追加したことに関しては正直必須ではないかなとも思います。しかしSAP Business Accelerator HubでDocument Management Serviceで使用するAPIを確認した際に/rootまで付与したURLが共通で使用できると判断したため労力を下げるために追加しました。Additional Propertiesに設定した項目はこのDestinationをSAP Build Appsで使用するための設定項目となります。 それでは簡単なアプリを作りながら解説します。 1. SAP Build Process Automation側のプロセスの作成まず、添付ファイルの情報を受け取ることになるワークフローを作成します。単純なものを作成します。トリガーとしてはAPIトリガーを使用し、以前解説した方法でSAP Build Appsから連携します。プロセスの入力変数としてFolderIdというDocumentFolder型の変数を設定します。ここからつながっているフォームも単純でファイルオブジェクトを配置します。このファイルオブジェクトはReadOnly属性にチェックを入れてください。プロセス上でこのフォームに入力変数として設定したFolderIdを割り当てます。フォームの件名や宛先などは適当に設定します。テストでは自分自身に来るように宛先を設定することにしましょう。宛先はProcess metadataの”Process started by”を指定します。リリースしてデプロイします。SAP Build Appsから利用できるようにロビーからPublished to Libraryを選択してライブラリにパブリッシュすることを忘れずに。 長くなるのでその2に続きます。    Read More Technology Blogs by SAP articles 

#SAP

#SAPTechnologyblog

You May Also Like

More From Author