※この記事はその1からの続き物です。
2. SAP Build Apps側の作成
まず、Application Variableとして変数を2つ設定します。
FolderIdとFolderNameです。この2つをテキスト型で作成します。Application VariableでなくPage Variableでも問題ないので実際の用途に合わせて使い分けてください。
SAP Build Apps側はこんな感じの単純な画面を用意しました。
ボタン2つだけです。ボタンのラベルの内容から何を行うかは推測できると思いますが、それぞれのロジックを作っていきます。
その前に、その1で解説したSAP Build Appsの新しい機能をインストールします。
MARKET PLACEに進み、「HTTP destination」と検索し
HTTP destination requestというモジュールをインストールしてください。同様の手順で「Pick Files」とも検索し、「Pick Files」コンポーネントもインストールします。
3.Upload Fileボタンのロジックの作成
それではUpload Fileボタンのロジックの作成です。
その1で説明した通り、SAP Build Process AutomationでDMSにアップロードしたファイルを使用するにはフォルダを作成し、そこにファイルをアップロードすることが必要です。ということでこのボタンでは
アップロードするファイルの選択DMSにフォルダを作成(&フォルダIDの取得)2で作成したフォルダにファイルをアップロード
というロジックを書くことになります。ロジックの全体は以下のとおりです。
全て説明すると長くなるので、重要と思われる数字を振った部分のみ解説します。
1.Pick Filesコントロールでファイルを選ばせる。
ここでは1つのファイルしか選択できないようにOPTIONAL INPUTSのPick multiple files?をFalseに変更してください。
2.set app variableでDMS上のフォルダ名を作成し、変数:FolderNameに設定する。
Assigned valueですが、Formulaを使用し、今回は
FromBuildApps-という前置詞をつけたタイムスタンプ値をフォルダ名にします。おそらくはこれはは一意になると思います。
3.HTTP destination requestを使用して、DMS上にフォルダーを作成する。
HTTP destination requestを使用してDMS上にフォルダーを作成します。
Destinationはその1で作成した「sap_process_automation_document_store_ForApps」を指定し、HTTP MethodはPOST、Request body typeとしてmultipart/form-dataを指定します。
Request bodyは”List of values”を使用して下記の表のように指定します。注意書きがない場合はStatic Textとして設定します。
keyvaluecmisactioncreateFolderpropertyId[0]cmis:namepropertyValue[0]変数FolderNameを選択propertyId[1]cmis:objectTypeIdpropertyValue[1]cmis:foldersuccincttrue
4.フォルダ作成APIの返り値からFolderId値を取得する。
3でDMS上にフォルダを作成した場合(成功した場合)、APIから以下のような値が返されます。
{
“succinctProperties”:
{
“cmis:objectId”: “fWtCFDH4ah2BGeFqzoorOLETNNq65cmp82KfYUSpWxA”,
“sap:parentIds”: [“5daf1b700094ead661934376”],
“cmis:name”: “FromBuildApps-1737086879955”,
“cmis:lastModifiedBy”: “sb-ab7437c3-137b-4c58-ac6f-a0fe26232136!b141614|sdm-di-sdm_di_prod-prod!b41064”,
“cmis:objectTypeId”: “cmis:folder”,
“cmis:lastModificationDate”: 1737086882353,
“cmis:createdBy”: “sb-ab7437c3-137b-4c58-ac6f-a0fe26232136!b141614|sdm-di-sdm_di_prod-prod!b41064”,
“cmis:baseTypeId”: “cmis:folder”,
“cmis:parentId”: “5daf1b700094ead661934376”,
“sap:owner”: “sb-ab7437c3-137b-4c58-ac6f-a0fe26232136!b141614|sdm-di-sdm_di_prod-prod!b41064”,
“cmis:creationDate”: 1737086882353,
“cmis:changeToken”: “0”,
},
“exactACL”: false,
}
SAP Build Process Automationのプロセスへ送らなければならないフォルダのObjectIdは“cmis:objectId”の値です。この値を変数FolderIdに代入します。
これはFormulaを用い、
STRING(<フォルダを作成するHTTP destination requestの出力>.resBodyParsed.succinctProperties[“cmis:objectId”])
と指定することで取得することが出来ます。<フォルダを作成するHTTP destination requestの出力>.resBodyParsedは左側に表示されるVariablesのoutput of another nodeから選択して入力すると間違いがないです。
5.DMSへファイルをアップロードする
これは3と同様にHTTP destination requestを使用してDMSのファイルアップロードAPIを操作します。
Destinationはその1で作成した「sap_process_automation_document_store_ForApps」を指定し、HTTP MethodはPOST、Request body typeとしてmultipart/form-dataを指定します。
Request bodyは”List of values”を使用して下記の表のように指定します。注意書きがない場合はStatic Textとして設定します。
keyvaluecmisactioncreateDocumentpropertyId[0]cmis:namepropertyValue[0]
Formulaを使用して1のPickFilesのfiles[0].nameを指定
propertyId[1]cmis:objectTypeIdpropertyValue[1]cmis:documentfilenamePropertyValue[0]と同様にFormulaを使用して1のPickFilesのfiles[0].nameを指定_charset_UTF-8includeAllowableActionstruesuccinctfalsemediaFormulaを使用して1のPickFilesのfiles[0]を指定
重要なポイントとしてDMSではファイルをフォルダにアップロードする場合、パスを指定する必要があります。これはAPIのエンドポイントにそのパス名(フォルダ名)が含まれる形です。従ってHTTP destination requestのOPTIONAL INPUTSを開き、PathにFormulaを使用して”/”+appVars.FolderNameという形でフォルダ名を追加したものが使われるようにします。
これでアップロードが出来ます。
File Uploadボタンのロジックはこれで完成です。次はこのアップロードしたファイルの情報を持ってSAP Build Process Automationのプロセスへ連携するExecute Workflowボタンのロジックの開発です。
長くなってしまいましたのでその3に続きます。
※この記事はその1からの続き物です。2. SAP Build Apps側の作成まず、Application Variableとして変数を2つ設定します。FolderIdとFolderNameです。この2つをテキスト型で作成します。Application VariableでなくPage Variableでも問題ないので実際の用途に合わせて使い分けてください。SAP Build Apps側はこんな感じの単純な画面を用意しました。ボタン2つだけです。ボタンのラベルの内容から何を行うかは推測できると思いますが、それぞれのロジックを作っていきます。その前に、その1で解説したSAP Build Appsの新しい機能をインストールします。MARKET PLACEに進み、「HTTP destination」と検索しHTTP destination requestというモジュールをインストールしてください。同様の手順で「Pick Files」とも検索し、「Pick Files」コンポーネントもインストールします。3.Upload Fileボタンのロジックの作成それではUpload Fileボタンのロジックの作成です。その1で説明した通り、SAP Build Process AutomationでDMSにアップロードしたファイルを使用するにはフォルダを作成し、そこにファイルをアップロードすることが必要です。ということでこのボタンではアップロードするファイルの選択DMSにフォルダを作成(&フォルダIDの取得)2で作成したフォルダにファイルをアップロードというロジックを書くことになります。ロジックの全体は以下のとおりです。全て説明すると長くなるので、重要と思われる数字を振った部分のみ解説します。1.Pick Filesコントロールでファイルを選ばせる。 ここでは1つのファイルしか選択できないようにOPTIONAL INPUTSのPick multiple files?をFalseに変更してください。2.set app variableでDMS上のフォルダ名を作成し、変数:FolderNameに設定する。Assigned valueですが、Formulaを使用し、今回はFromBuildApps-という前置詞をつけたタイムスタンプ値をフォルダ名にします。おそらくはこれはは一意になると思います。3.HTTP destination requestを使用して、DMS上にフォルダーを作成する。HTTP destination requestを使用してDMS上にフォルダーを作成します。Destinationはその1で作成した「sap_process_automation_document_store_ForApps」を指定し、HTTP MethodはPOST、Request body typeとしてmultipart/form-dataを指定します。Request bodyは”List of values”を使用して下記の表のように指定します。注意書きがない場合はStatic Textとして設定します。keyvaluecmisactioncreateFolderpropertyId[0]cmis:namepropertyValue[0]変数FolderNameを選択propertyId[1]cmis:objectTypeIdpropertyValue[1]cmis:foldersuccincttrue4.フォルダ作成APIの返り値からFolderId値を取得する。3でDMS上にフォルダを作成した場合(成功した場合)、APIから以下のような値が返されます。 {
“succinctProperties”:
{
“cmis:objectId”: “fWtCFDH4ah2BGeFqzoorOLETNNq65cmp82KfYUSpWxA”,
“sap:parentIds”: [“5daf1b700094ead661934376”],
“cmis:name”: “FromBuildApps-1737086879955”,
“cmis:lastModifiedBy”: “sb-ab7437c3-137b-4c58-ac6f-a0fe26232136!b141614|sdm-di-sdm_di_prod-prod!b41064”,
“cmis:objectTypeId”: “cmis:folder”,
“cmis:lastModificationDate”: 1737086882353,
“cmis:createdBy”: “sb-ab7437c3-137b-4c58-ac6f-a0fe26232136!b141614|sdm-di-sdm_di_prod-prod!b41064”,
“cmis:baseTypeId”: “cmis:folder”,
“cmis:parentId”: “5daf1b700094ead661934376”,
“sap:owner”: “sb-ab7437c3-137b-4c58-ac6f-a0fe26232136!b141614|sdm-di-sdm_di_prod-prod!b41064”,
“cmis:creationDate”: 1737086882353,
“cmis:changeToken”: “0”,
},
“exactACL”: false,
} SAP Build Process Automationのプロセスへ送らなければならないフォルダのObjectIdは”cmis:objectId”の値です。この値を変数FolderIdに代入します。これはFormulaを用い、STRING(<フォルダを作成するHTTP destination requestの出力>.resBodyParsed.succinctProperties[“cmis:objectId”])と指定することで取得することが出来ます。<フォルダを作成するHTTP destination requestの出力>.resBodyParsedは左側に表示されるVariablesのoutput of another nodeから選択して入力すると間違いがないです。5.DMSへファイルをアップロードするこれは3と同様にHTTP destination requestを使用してDMSのファイルアップロードAPIを操作します。Destinationはその1で作成した「sap_process_automation_document_store_ForApps」を指定し、HTTP MethodはPOST、Request body typeとしてmultipart/form-dataを指定します。Request bodyは”List of values”を使用して下記の表のように指定します。注意書きがない場合はStatic Textとして設定します。keyvaluecmisactioncreateDocumentpropertyId[0]cmis:namepropertyValue[0]Formulaを使用して1のPickFilesのfiles[0].nameを指定propertyId[1]cmis:objectTypeIdpropertyValue[1]cmis:documentfilenamePropertyValue[0]と同様にFormulaを使用して1のPickFilesのfiles[0].nameを指定_charset_UTF-8includeAllowableActionstruesuccinctfalsemediaFormulaを使用して1のPickFilesのfiles[0]を指定重要なポイントとしてDMSではファイルをフォルダにアップロードする場合、パスを指定する必要があります。これはAPIのエンドポイントにそのパス名(フォルダ名)が含まれる形です。従ってHTTP destination requestのOPTIONAL INPUTSを開き、PathにFormulaを使用して”/”+appVars.FolderNameという形でフォルダ名を追加したものが使われるようにします。これでアップロードが出来ます。File Uploadボタンのロジックはこれで完成です。次はこのアップロードしたファイルの情報を持ってSAP Build Process Automationのプロセスへ連携するExecute Workflowボタンのロジックの開発です。長くなってしまいましたのでその3に続きます。 Read More Technology Blogs by SAP articles
#SAP
#SAPTechnologyblog