概覽
Salesforce 中的 Process Builder 是一種圖形化點選式工具,可讓您根據 Salesforce 環境中的觸發事件自動化動作。
流程是依據「若/則」類型的邏輯流程建立,且包含一個觸發事件、至少一個條件,以及至少一個可即時發生的動作,及/或做為已排程的事件。
Adobe Sign 支援兩種動作類型:「更新記錄」和「Apex」
每種動作類型都有多個可叫用的動作:
- 傳送
- 取消
- 刪除
- 提醒
- 更新
- 「載入」(範本) 只有在使用「Apex」動作類型時才能使用
Process Builder 是功能非常強大的工具,而其運作方式的完整說明不在本文件的探討範疇內。
本文件著重於說明透過適用於 Salesforce 的 Adobe Sign 套件第 20 版所提供的動作。
使用「更新記錄」做為動作類型的程序
此方法使用 Salesforce Process Builder 中的「更新記錄」動作類型,設定合約記錄上的「背景動作」挑選清單欄位以叫用動作。
您可建立新程序 (根據記錄變更事件發生),接著即可在相關的 Adobe Sign 合約上叫用動作。使用者可以控制動作將於何時發生 (亦即該時間點後主要記錄上的欄位更新),以及要針對動作選取哪些相關合約。
目前支援下列動作:
- 傳送
- 取消
- 刪除
- 提醒
- 更新
注意事項:
- 在程序期間偵測到的任何錯誤都會儲存在「錯誤訊息」欄位中,而且可在對應的「合約」頁面上檢視
- 支援已排程的動作
- 支援 Adobe Sign 資料庫文件
- 可選取一或多個父項或子項合約
- 更新合約記錄時,相關記錄為 echosign_dev1 物件
- echosign_dev1 物件已與常用 Salesforce 物件 (「帳戶」、「機會」、「連絡人」等) 建立關聯。如果合約與某個自訂物件相關,此名稱將專屬於組織。
- 您可更新具有對應動作值的合約記錄上的「背景動作」挑選清單欄位,藉此觸發動作
- 合約記錄必須已經存在。您無法使用「更新記錄」動作類型來建立或從合約範本載入。
使用「Apex」做為動作類型的程序
此方法使用 Salesforce Process Builder 中的「Apex」動作類型,叫用受管理套件隨附的可叫用的方法以執行對應的動作。
您可建立新程序 (根據記錄變更事件發生),接著即可在相關的 Adobe Sign 合約上叫用動作。
已定義下列可叫用的動作:
- 合約範本載入可叫用的動作
- AgreementTemplateLoadInvocableAction.load
- 傳遞範本和主要 ID 和任何執行階段變數。
- 傳遞選用參數以控制範本產生是否會在非同步模式中執行
- 如果範本包含來自 Adobe Sign 資料庫的文件,則為必要
- 傳回產生的合約記錄 ID 或任何錯誤訊息
- 執行觸發動作的使用者將無法看到錯誤
- AgreementTemplateLoadInvocableAction.load
叫用「載入合約類型」類別時,有四個可設定的欄位選項:
- 「主要記錄 ID」- 合約應與之相關的物件的 Salesforce 記錄 ID。
- 通常設為「欄位參照」類型和「[Object].Id」值,其中物件為「機會」、「帳戶」等。
- 「合約範本 ID」- 要載入之合約範本的 Salesforce 記錄 ID。將類型設為「ID」並將值設為記錄 ID
- 「合約範本執行階段變數」- 來自某個變數的收件者和/或文件。
- 一個變數: myRecipient=auserguy@adobe.com
- 兩個變數: myRecipient=auserguy@adobe.com,myAttachment=00Pf4000002df0q
- 「非同步處理」- 此為選用,除非必要,否則請勿指定。根據預設,這會是 False,因此範本叫用將在同步模式中執行 (亦即相同的交易/執行緒)
- 如果合約範本載入 Adobe Sign 資料庫文件,則設為 True
- 如果範本的 AutoSend 為 True,請確保值為 False
- 自動傳送無法與 Adobe Sign 資料庫文件同時並存
- 如果程序是從批次或其他非同步程序叫用,請注意內建的 Salesforce 限制
- 合約取消可叫用的動作
- AgreementCancelInvocableAction.cancelAgreement
- 傳遞合約 ID
- 傳回任何錯誤訊息
- AgreementCancelInvocableAction.cancelAgreement
- 合約刪除可叫用的動作
- AgreementDeleteInvocableAction.deleteAgreement
- 傳遞合約 ID
- 傳回任何錯誤訊息
- AgreementDeleteInvocableAction.deleteAgreement
- 合約提醒可叫用的動作
- AgreementRemindInvocableAction.sendReminder
- 傳遞合約 ID
- 傳回任何錯誤訊息
- AgreementRemindInvocableAction.sendReminder
- 合約傳送可叫用的動作
- AgreementSendInvocableAction.sendAgreement
- 傳遞合約 ID
- 傳回任何錯誤訊息
- AgreementSendInvocableAction.sendAgreement
- 合約合約更新可叫用的動作
- AgreementUpdateInvocableAction.updateAgreement
- 傳遞合約 ID
- 傳回任何錯誤訊息
- AgreementUpdateInvocableAction.updateAgreement
「取消」、「刪除」、「提醒」、「傳送」和「更新」動作只需要所要執行動作之合約的合約 ID:
注意事項:
- 支援已排程的動作
- 支援具有自動傳送選項的合約範本 (亦即產生並傳送)
- 所有動作都能在一個叫用中接受多個要求
- 所有例外狀況都會記錄並儲存在結果記錄中,並在 Apex 偵錯記錄檔中記錄為錯誤,以免封鎖程序執行作業。
- 「範本載入」功能的參數 (「非同步處理」) 可控制範本處理是否會在同步或非同步模式中發生。呼叫者必須指定範本載入是否應在同步或非同步模式中執行
- 預設程序會在同步模式中執行。大多數程序應該會以同步的方式執行
- 如果啟用了「自動傳送」,程序必須處於同步模式
- 如果您需要載入 Adobe Sign 資料庫文件,則會是顯著的非同步程序
限制:
- 由於 Salesforce 中的限制 (一個執行緒無法開始執行另一個執行緒),因此不支援
結合自動傳送範本與 Adobe Sign 資料庫文件 - 針對傳遞至可叫用動作的任何參數,只能參照父項欄位 (無法參照子項欄位)。您無法對主要記錄底下的子項合約執行動作
- 您無法在 Process Builder 中使用來自 Apex 叫用的傳回值。支援傳回值的無動作 (亦即取得文件資訊或取得簽署 URL)。
可排入佇列的服務
已實作新服務層,以透過 Salesforce 可排入佇列的介面叫用合約動作。您可在這裡取得更多有關「可排入佇列」的完善資訊。動作會叫用核心服務 API,然後呼叫 Adobe Sign API。
支援下列動作:
- 傳送
- 取消
- 刪除
- 提醒
- 更新
全域 echosign_dev1.AdobeSignApiQueueableService 是服務 Apex 類別,它包含 echosign_dev1.QueueableServiceParameter 類型的參數,這包含要叫用的動作和合約記錄 ID:
echosign_dev1.AdobeSignApiQueueableService.QueueableServiceParameter param = new echosign_dev1.AdobeSignApiQueueableService.QueueableServiceParameter(); param.actionType = EchoSignApiService.ACTION_TYPE.AGREEMENT_REMIND; param.agreementId = 'a0I0S000000KwkaUAC'; ID jobID = System.enqueueJob(new echosign_dev1.AdobeSignApiQueueableService(param));