SAP Process Automation（トライアルアカウント）で作ったフォームをLaunchpadから開くには

## はじめに
先日、SAP Process Automationがトライアルアカウントで使えるようになったというアナウンスがありました。
この記事では、トライアルアカウントで作成したProcess AutomationのフォームをLaunchpadから呼び出す方法について紹介します。

https://blogs.sap.com/2022/09/09/sap-process-automation-now-available-in-your-trail-account/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/80f3a654-5d0d-bfce-62b4-54c044ddc561.png)

## 作成したプロセス
以下のチュートリアルに沿って簡単なプロセスを作成し、デプロイました。
フォームを使ってサプライヤに発注し、サプライヤ担当者が承認または却下（拒否？）するというものです。

https://developers.sap.com/mission.sap-process-automation.html

プロセスは以下のようになっています。"Order Processing Form"と名付けられたフォームを使ってワークフローを起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/5f2aa763-1158-8d7e-3203-fd56b6aca59a.png)

プロセスをデプロイした後、フォームのプロパティにあるURLからフォームにアクセスすることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/7b23be0b-a429-9a73-2c18-9cc852d340dc.png)

## Launchpadから開くには
### 有償アカウントまたはFree Tierの場合
以下のブログで説明されている方法でフォームをLaunchpadに組み込むことができます。

https://blogs.sap.com/2022/03/08/configure-process-visibility-dashboard-integration-with-fiori-launchpad-part-7/

ステップは以下のようになります。
1. Process Automationのサービスインスタンスを登録する
1. サービスインスタンスを参照してDestinationを登録する（これにより、LaunchpadでProcess Automationのアプリを使えるようになる）
1. Launchpadで"Process Trigger"というアプリを追加、コピーし、開きたいフォームのパラメータを設定する（フォームごとにProcess Triggerのタイルをコピー作成する）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/adf65249-cef6-3ada-430a-8db21e0a5dc8.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/55bb4d85-1944-9d9f-370b-505ec1b78803.png)

### トライアルアカウントの場合
トライアルアカウントの場合、Process Automationのサービスインスタンスを作成することができません。そこで、別の方法でできないか試してみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/6b6cca0f-921e-feb7-c327-b1689b36f6dc.png)

フォームのURLは以下の形になっています。

`https://<アカウント>.sap-process-automation.cfapps.eu10.hana.ondemand.com/comsapspaprocessautomation.comsapspabpiprocessformtrigger/index.html?packageId=<パッケージID>&packageVersionId=<パッケージバージョンID>&formId=<フォームID>&processId=<プロセスID>`

これは、先頭部分とURLパラメータ部分に分けられます。
**先頭部分**：`https://<アカウント>.sap-process-automation.cfapps.eu10.hana.ondemand.com/comsapspaprocessautomation.comsapspabpiprocessformtrigger/index.html`
**URLパラメータ部分**：`?packageId=<パッケージID>&packageVersionId=<パッケージバージョンID>&formId=<フォームID>&processId=<プロセスID>`

これらを使って以下のようにアプリの設定をしてみます。URLに先頭部分を、ParametersにURLパラメータ部分を項目ごと設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/23384177-1acb-ea07-ce2b-6694ab332ace.png)

タイルを開くと、以下の状態になりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/d4405575-5c05-dda9-d23f-1ada91353eda.png)
コンソールを見ると、`Refused to frame 'https://9e9ab65etrial.sap-process-automation.cfapps.eu10.hana.ondemand.com/' because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'self'".`というエラーが出ています。Process AutomaitionのフォームがLaunchpadにiframeとして埋め込まれることを拒否しているということです。

そこで、設定をちょっと変えてみます。Open Appの設定を"in a new tab"に変更します。これでURLがiframeに埋め込まれることなく、別タブで開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/04b111f4-dd7b-3679-58b3-dab4cc6b8786.png)
タイルを開くと別タブが立ち上がり、フォームが開けました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/faf04216-993e-8b54-92f5-c82c67951e14.png)