建立自訂程序動作

當您想要自動化系統中的一連串命令時,請使用自訂程序動作。 自訂程序動作會擴充開發人員可用的詞彙,以表示商務程序。 自訂程序動作使用由系統提供的核心動詞 (如 Create、Update、Delete 和 Assign),來建立更明確達意的動詞命令,如 Approve、Escalate、Route 或 Schedule。 如果商務程序的定義已變更,不是開發人員的人員可以編輯自訂程序動作,因此程式碼不需要變更。

備註

如果您想要撰寫外掛程式,而不是使用工作流程設計師來執行自訂程序動作的邏輯,那麼您應該改用自訂 API。 其他資訊:比較自訂程序動作和自訂 API

建立自訂程序動作

重要

如果您建立的自訂程序動作要納入成為分散式解決方案的一部分,請在解決方案的內容中建立自訂程序動作。 移至**設定** > 解決方案並找出未受管理的解決方案,使這個動作成為其中的一部分。 然後,在功能表列上,選取新增 > 程序。 這確保,與動作名稱相關聯的自訂首碼會與解決方案中的其他元件一致。 在您建立動作之後,無法變更首碼。

如同工作流程程序,自訂程序動作有建立程序對話方塊的下列屬性:

  • 程序名稱

    在您輸入程序的名稱之後,系統將會移除程序名稱的所有空格或特殊字元,以建立唯一名稱。

  • 類別

    這個屬性確定這是動作程序。 儲存程序後,就不能變更。

  • 資料表

    對於動作程序,您可以選取資料表,為工作流程提供內容,就如同其他類型的程序,不過,您也可以選擇 無 (全域)。 如果您的動作不需要特定資料表的內容,請使用這個選項。 儲存程序後,就不能變更。

  • 輸入

    使用這個屬性,選擇從頭開始建立新的自訂程序動作或從現有範本開始。

不同於工作流程程序,您不需要設定下列選項:

  • 開始時機:當程式碼呼叫為動作所產生的訊息時,動作開始。

  • 範圍:動作永遠在呼叫使用者的內容中執行。

  • 在背景執行:動作永遠是即時工作流程。

自訂程序動作也有工作流程程序沒有的項目:輸入和輸出引數。

備註

您不撰寫程式碼也可以啟用工作流程中的自訂程序動作。 詳細資訊:從工作流程叫用自訂程序動作

編輯自訂程序動作

您必須先停用自訂程序動作,才能編輯。

您可以編輯建立為未受管理的解決方案一部分或包括在您的組織中安裝之解決方案的自訂程序動作。 如果是受管理的解決方案,您可能無法進行編輯。 解決方案發行者可以選擇編輯受管理的屬性,讓隨受管理的解決方案一起安裝的動作無法編輯。

當動作儲存時,唯一名稱會根據程序名稱產生。 這個名稱會加入來自於解決方案的自訂首碼。 這是開發人員使用於其程式碼的訊息名稱。

當編輯動作時,您有下列選項:

  • 程序名稱

    在程序建立且唯一名稱從程序名稱產生之後,您可以編輯程序名稱。 您可能想要套用命名慣例,更容易找出特定的程序。

  • 唯一的名稱

    當動作儲存時,唯一名稱會根據程序名稱產生。 這個名稱會加入來自於解決方案的自訂首碼。 這是開發人員使用於其程式碼的訊息名稱。 如果程序已啟用,而且既有的程式碼預期使用這個名稱呼叫動作,請勿變更這個唯一名稱。

    重要

    在動作啟用後,而且程式碼已寫入使用唯一名稱時,無法變更唯一名稱,除非也變更參考它的程式碼。

  • 啟用回復

    通常,如果有任何部分的程序失敗,支援交易的程序會「復原」(回復) 整個作業。 有一些例外狀況。 在自訂程序動作啟始的程式碼中,開發人員可能執行不支援交易的一些動作。 例如,如果程式碼在其他系統中執行超出交易範圍的動作。 這些動作無法由應用程式中執行的動作進行復原。 平台中有些訊息不支援交易。 但是,只使用動作的使用者介面執行的所有動作都會支援交易。 為即時工作流程的一部分的所有動作被視為交易中,但是對於動作,您可以選擇禁用這個選項。

    您應該請教會使用這個訊息的開發人員,以決定它是否必須在交易中。 通常,如果商務程序執行的動作沒有意義,除非所有動作已成功完成,否則動作應該是在交易中。 傳統範例是在兩個銀行帳戶之間轉帳。 如果您從一個帳戶提款,必須將其存入另一個帳戶。 如果任一個動作失效,兩個動作都必須失敗。

    備註

    如果自訂程序動作是直接從工作流程中叫用,您就無法啟用回復。 如果動作是由 Power Apps Web 服務訊息觸發,您就可以啟用回復。

  • 啟用方式

    就像所有程序,您可以啟動程序做為範本,將它做為遵循類似模式的程序的進階起點。

  • 定義程序引數

    在這個區域,您會指定動作預期啟動的資料,以及哪些資料將會從動作傳出。 詳細資訊:定義程序引數

  • 物階段和步驟

    如同其他程序,您可以指定要執行之動作和何時執行它們。 詳細資訊:新增階段和步驟

定義程序引數

當開發人員使用訊息時,可能會從可以傳入訊息的某些資料開始。 例如,若要建立新的案例資料列,可能會將案例標題值當做輸入引數傳入。

當訊息完成時,開發人員可能需要將訊息所變更或產生的一些資料傳遞給其程式碼中的另一個作業。 此資料是輸出引數。

輸入和輸出引數都必須具有名稱、類型和一些有關引數是否永遠必要的資訊。 您也可以提供描述。

訊息名稱以及與所有程序引數的資訊表示訊息的簽章。 在自訂程序動作啟用並在程式碼中使用之後,簽章不能變更。 如果這個簽章變更,使用訊息的任何程式碼都會失敗。 唯一的例外狀況可能是變更其中一個參數,使其不一定永遠需要。

您可以透過排序或上下移動來變更引數的順序,因為引數是由名稱所識別,而不是由順序。 此外,變更描述也不會中斷使用訊息的程式碼。

動作程序引數類型

下表描述動作程序引數類型。

類型​​ 描述
布林值 truefalse 值。
日期時間 儲存日期和時間資訊的值。
小數 具有小數點有效位數的數字值。 當精確度是非常重要時使用。
資料表 指定資料表的資料列。 當您選取資料表時,下拉式清單會啟用並可讓您選取資料表類型。
entityCollection 資料表資料列的集合。
entityReference 物件,包含可唯一識別該資料表資料列的名稱、識別碼和類型。 當您選取 entityReference 時,下拉式清單會啟用並可讓您選取資料表類型。
Float 具有小數點有效位數的數字值。 來自測量的資料並非絕對精確時使用時。
整數 整數。
金額 儲存金額相關資料的值。
Picklist 表示 OptionSet 屬性的選項的值。
String 文字值。

備註

entityCollection 引數值無法在條件或動作的使用者介面中設定。 這些是供開發人員使用於自訂程式碼。 詳細資訊:建立您自己的訊息

物階段和步驟

自訂程序動作是非常類似於即時工作流程的程序類型。 可用於即時工作流程中的所有步驟都可以用於動作。 如需可用於即時工作流程和動作的步驟的詳細資訊,請參閱工作流程階段和步驟

除了可用於即時工作流程的步驟以外,動作也有指派值步驟。 在動作中,這些只能用來設定輸出引數。 您可以使用表單小幫手,將輸出引數設定為特定值,例如,動作執行之資料列的值、與多對一關聯中該資料列相關之資料列的值、先前步驟中建立之資料列的值,或程序本身的值。

受控屬性

自訂程式動作有兩個相關的受管理屬性

可自訂

可自訂受管理屬性控制項安裝包含自訂程式動作之受管理解決方案人員,是否可以編輯或刪除該動作。 如果想要在受管理的解決方案中包含自訂程序動作,請將此屬性設為 True。

是否允許其他發行者執行自訂處理步驟

是否允許其他發行者執行自訂處理步驟受管理屬性用於控制協力廠商外掛程式開發人員是否可以在由自訂程序動作建立的訊息上註冊外掛程式步驟。 當此屬性為 True 時,則任何人在此訊息上註冊的外掛程式都將執行,並且可以修改自訂程序動作的行為。 當為 False 時,只會執行來自相同解決方案發行者註冊的解決方案中的外掛程式步驟。

後續步驟

從工作流程叫用自訂程序動作