再生指令碼
再生指令碼允許您手動執行指令碼。 它也用於從其他指令碼或外部流程啟動指令碼。 您也可以使用它來測試指令碼。 測試時可以與指令碼追蹤一起使用。
若要測試指令碼,您可以從Studio使用追蹤選項產生指令碼。
若要從其他指令碼或流程啟動指令碼:
- 在呼叫指令碼中使用SPAWN 動作。
- 使用 POST/scripts/start
API。 這是從任何外部流程再生產生指令碼的建議解決方案。
除非另有配置,業務單元最多可運行 15,000 個指令碼。 達到該限制時,在一個或多個指令碼停止運行之前,不能使用本頁描述的任何方法啟動或產生其他指令碼。
指令碼參數
指令碼參數可以將資料傳遞到指令碼中。 資料可能來自其他指令碼,包括系統指令碼,或來自外部來源,例如 CRM
管理聯絡人、銷售資訊、支援詳情和案例歷史的第三方系統。 或 API。 它透過 p1 到 pN,傳遞到pX變數中的指令碼中,其中 N 是再生方法支援的參數的最大數量 。 您可以使用上一部分中列出的任何選項指定在再生指令碼時要傳遞到指令碼中的資料。
若要變更參數變數的名稱,可以使用新名稱在再生的指令碼中配置 Begin 動作。 當指令碼處理 BEGIN動作時,pX變數將轉換為新名稱。 如果不指定新名稱,變數將保留 pX名稱。
當資料傳遞到指令碼時,您可以在 追蹤中看到它。 選擇 BEGIN動作以查看追蹤輸出變數清單中的參數變數。 如果您已使用新變數名稱配置 BEGIN 動作,請選擇指令碼追蹤中 BEGIN 後面的動作來查看它們。 參數變數僅在包含值時才存在。
- 最多支援:
- 使用 SPAWN 動作再生時,每個值 32 KB。
- 由 API 再生時,所有參數(包括豎線分隔符)總計 32 KB。
- 支援變數替換。 在大括號 ( { } ) 中輸入變數名稱。
- 透過SPAWN動作或API生成時支援 1-20 個參數。
- 不支援動態資料物件。 物件必須先轉換為 JSON 字串。
Studio動作比較
共有三個Studio動作可從目前指令碼啟動新指令碼。 然而,它們之間也存在一些差異:
- Runscript:當觸發另一個指令碼時,它不會從第二個指令碼回到第一個指令碼。
- Runsub:當 觸發子指令碼時,該指令碼可返回第一個指令碼,只要子指令碼擁有 動作。 該子指令碼完成後, 動作將向 動作傳回一個值。
- SPAWN:啟動與第一個指令碼並行運行的第二個指令碼。 再生的指令碼無法將資料傳回第一個指令碼,除非您在再生的指令碼中包含 動作。
使用 SPAWN 動作從另一個指令碼再生
如果您不需要向子指令碼傳遞參數值,您只需在父指令碼中新增並配置 SPAWN 動作即可。 如果需要傳遞參數,需要進行如下配置:
- 在父指令碼中進行以下更改:
- 將 SPAWN動作放置在您想要再生子指令碼的位置。 使用您需要傳遞給子指令碼的任何值來配置 SPAWN 動作中的參數屬性。 值在變數 p1 到p9中傳遞。
- 配置SPAWN動作的其他屬性。
-
在子指令碼中進行以下更改:
- 在 動作中配置 Parameters 屬性以變更自訂參數變數的名稱。 如果您不執行任何操作,自訂參數值將保留在 變數中。
- 如果您需要將值傳回父指令碼或呼叫應用程式,請新增並配置 動作。
透過 API 再生指令碼
使用 POST/scripts/start
API 再生指令碼。
使用該 API 時,需要注意的是:
- 需要以下參數:
- skillId:當作為 JSON 傳送時,該值必須是整數,但如果作為查詢參數傳送,則不須是整數。 技能必須:
- 處於活躍狀態。
- 符合指令碼媒體類型。 例如,電話指令碼必須與電話技能相關聯。 您可以在技能的「詳細資料」標籤上找到技能類型。 Generic 類型的指令碼適用於任何活躍技能。
scriptId或scriptPath:推薦使用scriptPath。 每次儲存指令碼變更時,指令碼 ID 都會發生變化,因此必須在參數中更新它。
- skillId:當作為 JSON 傳送時,該值必須是整數,但如果作為查詢參數傳送,則不須是整數。 技能必須:
- 您最多可以包含 20 個參數。
- 參數必須以豎線分隔的清單的形式傳送。
- API 支援所有參數最大為 32 KB,包括豎線分隔符。
- 參數不能包含豎線字元,除非它們是分隔符。
- 如果以 JSON 形式傳送請求,則必須正確轉義保留字元。
- 如果透過 URL 查詢參數傳送請求,則參數必須進行 URL 編碼。