適用於 Salesforce 的 Adobe Sign: Process Builder 的自動化流程

概覽

Salesforce 中的 Process Builder 是一種圖形化點選式工具,可讓您根據 Salesforce 環境中的觸發事件自動化動作。

流程是依據「若/則」類型的邏輯流程建立,且包含一個觸發事件、至少一個條件,以及至少一個可即時發生的動作,及/或做為已排程的事件。

Adobe Sign 支援兩種動作類型:「更新記錄」和「Apex」

每種動作類型都有多個可叫用的動作:

  • 傳送
  • 取消
  • 刪除
  • 提醒
  • 更新
  • 「載入」(範本) 只有在使用「Apex」動作類型時才能使用

Process Builder 是功能非常強大的工具,而其運作方式的完整說明不在本文件的探討範疇內。

本文件著重於說明透過適用於 Salesforce 的 Adobe Sign 套件第 20 版所提供的動作。

若要深入瞭解 Process Builder 的一般資訊,請參閱 Salesforce 提供的文件互動式起點


使用「更新記錄」做為動作類型的程序

此方法使用 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 或任何錯誤訊息
        • 執行觸發動作的使用者將無法看到錯誤

叫用「載入合約類型」類別時,有四個可設定的欄位選項:

  • 「主要記錄 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
      • 傳回任何錯誤訊息
  • 合約刪除可叫用的動作
    • AgreementDeleteInvocableAction.deleteAgreement
      • 傳遞合約 ID
      • 傳回任何錯誤訊息
  • 合約提醒可叫用的動作
    • AgreementRemindInvocableAction.sendReminder
      • 傳遞合約 ID
      • 傳回任何錯誤訊息
  • 合約傳送可叫用的動作
    • AgreementSendInvocableAction.sendAgreement
      • 傳遞合約 ID
      • 傳回任何錯誤訊息
  • 合約合約更新可叫用的動作
    • AgreementUpdateInvocableAction.updateAgreement
      • 傳遞合約 ID
      • 傳回任何錯誤訊息

「取消」「刪除」「提醒」「傳送」「更新」動作只需要所要執行動作之合約的合約 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));
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));
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));

更快、更輕鬆地獲得協助

新的使用者?