透過呼叫 REST API 將工作流程專案安裝至離線伺服器
您可以呼叫 REST API 以匯出工作流程專案的版本,然後將它們安裝至離線伺服器。
開始之前
- 請確定您擁有讀取權或者是儲存庫管理者。 如需相關資訊,請參閱 授與儲存庫存取權。
- 從帳戶管理者取得一組服務認證(功能 ID 及密碼)。 使用這些服務認證來鑑別對 Business Automation Studio 伺服器及離線工作流程伺服器的 REST API 呼叫。
程序
請完成下列步驟:
- 使用下列格式建構包含服務認證的授權標頭: Authorization: functional_id
encoded_value_of_password。
為了節省空間,在這裡的範例中,我們假設 $ACCESS_TOKEN_HEADER 變數設為服務認證的值。 每一個 API 呼叫都需要此標頭。
- 使用 POST/system/login 為 Business Automation Studio 伺服器及離線工作流程伺服器建構 BPMCSRFToken 參數以取得它。 每一個後續的 API 呼叫都需要此標頭。例如,對於 Business Automation Studio 伺服器
以及針對離線工作流程伺服器curl -X POST -H "${ACCESS_TOKEN_HEADER}" -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{"refresh_groups": true, "requested_lifetime": 7200}' 'https://bas-dev-tenant-hostname/ops/system/login'curl -X POST -H "${ACCESS_TOKEN_HEADER}" -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{"refresh_groups": true, "requested_lifetime": 7200}' 'https://baw-awsins1-run-tenant-hostname/ops/system/login'您將會收到如下回應:
{"expiration":7200,"csrf_token":"eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2NDI2MTA2NjcsInN1YiI6ImNwNGFkbWluIn0.8742sRV3CTHN_fY45W-29_CrqeuOqRlFWPFItCKnodI"}回應具有您可以設為參數值的 csrf_token 值。 我們將假設個別伺服器的 $CSRF_TOKEN_HEADER 變數設為 BPMCSRFToken: csrf_token_value 。
- 在 Business Automation Studio 伺服器上,使用 POST
/std/bpm/containers/{container}/versions/{version}/offline_package建立安裝套件。 確保您正在對 Business Automation Studio 伺服器使用 ACCESS_TOKEN_HEADER 和 CSRF_TOKEN_HEADER ,例如
curl -X POST -H "$ACCESS_TOKEN_HEADER" -H "$CSRF_TOKEN_HEADER" -H 'Content-Type: application/json' -H 'Accept: application/json' 'https://bas-dev-tenant-hostname/ops/std/bpm/containers/PA1/versions/1/offline_package?server=OffLn1' - 使用前一個步驟中使用 GET
/system/queue/{id}所傳回的 URL 來檢查狀態,例如
curl -X GET -H "$ACCESS_TOKEN_HEADER" -H "$CSRF_TOKEN_HEADER" -H 'Accept: application/json' 'https://bas-dev-tenant-hostname/ops/system/queue/7?key=8b09658ae4fdb42ccfe33a20122265f4'</p>您將會收到如下回應:
{"state":"success","result":{"container":"PA1","server":"OffLn1","version":"SN03"},"last_modified":"2022-01-18T22:11:25.367Z"} - 使用 GET
/std/bpm/containers/{container}/versions/{version}/install_package匯出安裝套件,例如
curl -X GET -H "$ACCESS_TOKEN_HEADER" -H "$CSRF_TOKEN_HEADER" -H 'Accept: application/octet-stream' 'https://bas-dev-tenant-hostname/ops/std/bpm/containers/PA1/versions/1/install_package?server=OffLn1' -o /c/MyExportPkg.zip請記下您匯出之檔案的位置和名稱。
- 在離線工作流程伺服器上,安裝您剛才使用 POST /std/bpm/containers/install匯出的應用程式版本。 確保您對離線伺服器使用 ACCESS_TOKEN_HEADER 和 CSRF_TOKEN_HEADER,例如
curl -X POST -H "$ACCESS_TOKEN_HEADER" -H "$CSRF_TOKEN_HEADER" -H 'Content-Type: multipart/form-data' -H 'Accept: application/json' -F 'install_file=@C:\MyFiles\PA1 - 1.zip' 'https://baw-awsins1-run-tenant-hostname/ops/std/bpm/containers/install?inactive=false&caseOverwrite=false'您將會收到如下回應:
{"description":"Your request to import the specified file was submitted. You can check the progress of the import in the system log or by calling the returned url.","url":"https://baw-awsins1-run-tenant-hostname/ops/system/queue/9?key=d2772760f7bd30006e877164ba8a6ee9"} - 如步驟 5 所述,您可以使用回應中的 URL 檢查狀態,例如
curl -X GET -H "$ACCESS_TOKEN_HEADER" -H "$CSRF_TOKEN_HEADER" -H 'Accept: application/json' 'https://baw-awsins1-run-tenant-hostname/ops/system/queue/9?key=d2772760f7bd30006e877164ba8a6ee9'您將會收到如下回應:
{"state":"success","result":{"details":""},"last_modified":"2022-01-19T14:46:16.979Z"}您的專案現已安裝在離線伺服器上。
下一步
如需相關指引,請參閱呼叫外部 REST 服務。