開發和延伸工作流程

AEM提供數種工具和資源,用於建立工作流程模型、開發工作流程步驟,以及以程式設計方式與工作流程互動。

工作流程可讓您自動化在AEM環境中管理資源和發佈內容的程式。 工作流程由一系列步驟組成,每個步驟都會完成個別工作。 您可以使用邏輯和執行階段資料來決定何時可以繼續處理,並從多個可能步驟之一中選取下一步。

例如,建立和發佈網頁的業務流程包括由不同參與者進行審批和簽核任務。 這些程式可使用AEM工作流程建模,並套用至特定內容。

主要方面如下所述,而下列各頁則涵蓋更多詳情:

注意

關於後述資訊::

模型

WorkflowModel表示工作流的定義(模型)。 它由WorkflowNodesWorkflowTransitions組成。 這些轉變會連接節點並定義​flow。 「模型」(Model)始終包含起始節點和終止節點。

運行時模型

工作流程模型版本化。 當您運行工作流實例時,它將使用(並保留)工作流的運行時模型(在啟動工作流時可用)。

在工作流模型編輯器🔗中觸發​同步​時,會產生執行階段模型。

對發生的工作流模型和/或產生的執行階段模型的編輯(在​啟動特定執行個體後)將不會套用至該執行個體。

注意

執行的步驟由運行時模型定義;這會在工作流程模型編輯器中觸發​Sync​動作時產生。

如果在此時間點後變更了工作流程模型(未觸發​同步),則執行階段例項不會反映這些變更。 只有更新後產生的執行階段模型才會反映變更。 除了基礎ECMA指令碼之外,它們僅保留一次,因此會對這些指令碼進行更改。

步驟

每個步驟都完成一個離散任務。 有不同類型的工作流步驟:

  • 參與者(用戶/組):這些步驟將生成工作項並將其分配給用戶或組。 用戶必須完成工作項以推進工作流。
  • 進程(指令碼、Java方法調用):這些步驟由系統自動執行。 ECMA指令碼或Java類實施此步驟。 可開發服務,以監聽特殊的工作流程事件,並根據業務邏輯執行任務。
  • 容器(子工作流):此類型的步驟將啟動另一個工作流模型。
  • 或分割/連接:使用邏輯決定要在工作流程中執行下一個步驟。
  • 和分割/連接:允許同時執行多個步驟。

所有步驟共用下列共同屬性:AutoadvanceTimeout警報(可編寫指令碼)。

切換

WorkflowTransition表示WorkflowModel的兩個WorkflowNodes之間的轉變。

  • 它定義了兩個連續步驟之間的連結。
  • 可以套用規則。

工作項目

WorkItem是通過WorkflowModelWorkflow實例傳遞的單位。 它包含執行個體所執行的WorkflowData,以及描述基礎工作流步驟的WorkflowNode參考。

  • 它用於識別任務,並放入相應的收件箱。
  • 工作流實例可以同時具有一個或多個WorkItems(取決於工作流模型)。
  • WorkItem引用工作流實例。
  • 在儲存庫中,WorkItem儲存在工作流實例的下方。

裝載

參考必須透過工作流程進階的資源。

裝載實作會參照存放庫中的資源(依路徑、UUID或URL),或依序列化的Java物件。 在存放庫中參考資源非常有彈性,與Sling搭配使用可產生非常高的生產力;例如,引用的節點可以呈現為表單。

生命週期

會在啟動新工作流程時建立(方法是選擇個別工作流程模型並定義裝載),並在處理結束節點時結束。

可在工作流程例項上執行下列動作:

  • 終止
  • 擱置
  • 繼續
  • 重新啟動

封存已完成和終止的執行個體。

收件匣

每個用戶帳戶都有其自己的工作流收件箱,可在其中訪問指派的WorkItems

WorkItems會直接指派給使用者帳戶或其所屬的群組。

工作流類型

工作流模型控制台中指出了各種類型的工作流:

wf-upgraded-03

  • 預設

    這些是標準AEM例項中隨附的現成可用工作流程。

  • 自訂工作流程(主控台中無指標)

    這些工作流程已建立為全新工作流程,或是來自已覆蓋自訂的現成可用工作流程。

  • 舊版

    在舊版AEM中建立的工作流程。 可在升級期間保留這些檔案,或從舊版匯出為工作流程套件,然後匯入至新版本。

暫時性工作流程

標準工作流程在執行期間會儲存執行階段(歷史記錄)資訊。 您也可以將工作流程模型定義為​暫時,以避免此類歷史記錄持續存在。 這用於效能調整,因為它可節省/避免用於保存資訊的時間/資源。

暫時性工作流程可用於任何具備下列條件的工作流程:

  • 經常執行。
  • 不需要工作流程歷史記錄。

導入了暫時性工作流程以載入大量資產,其中資產資訊很重要,但工作流程執行階段歷史記錄則不重要。

注意

如需詳細資訊,請參閱建立暫時工作流

注意

當工作流程模型已標示為「暫時」時,有些情況會持續保存執行階段資訊:

  • 裝載類型(例如視訊)需要外部步驟來處理;在這種情況下,需要運行時歷史記錄才能確認狀態。
  • 工作流輸入​AND Split;在這種情況下,需要運行時歷史記錄才能確認狀態。
  • 當臨時工作流進入參與者步驟時,它將模式(在運行時)更改為非臨時工作流;當任務傳遞給某個人時,歷史需要持續存在
注意

在暫時性工作流程中,您不應使用​轉至步驟

這是因為​Goto Step​會建立Sling工作以在goto點繼續工作流程。 這否定了讓工作流程暫時性的目的,並在記錄檔中產生錯誤。

若要在暫時性工作流程中進行決策,您可以使用​OR Split

注意

如需暫時性工作流程如何影響資產效能的詳細資訊,請參閱資產最佳實務

多重資源支援

為工作流模型激活​多資源支援​意味著即使您選擇多個資源,也將啟動單個工作流實例;這些會以套件形式附加。

如果未為工作流模型激活​多資源支援​並且選擇了多個資源,則將為每個資源啟動單個工作流實例。

注意

有關詳細資訊,請參閱為多資源支援配置工作流

工作流階段

工作流程階段有助於視覺化處理任務時的工作流程進度。 它們可用來提供工作流程經過處理的程度的概述,例如當工作流程執行時,使用者可以檢視​Stage​所述的進度(與個別步驟相反)。

由於各個步驟名稱可以是特定的、技術的,因此可以定義階段名稱以提供工作流進程的概念視圖。

例如,對於具有六個步驟和四個階段的工作流程:

  1. 您可以配置工作流階段(顯示工作流進度),然後將適當的階段分配給工作流中的每個步驟:

    • 可以建立多個階段名稱。
    • 然後,將單個階段名稱分配給每個步驟(階段名稱可分配給一個或多個步驟)。
    步驟名稱 階段(分配給步驟)
    步驟 1 建立
    步驟 2 建立
    步驟 3 評論
    步驟 4 批准
    步驟 5 完成
    步驟 6 完成
  2. 運行工作流時,用戶可以根據階段名稱(而非步驟名稱)查看進度。 工作流進度將顯示在收件箱中所列工作項🔗的任務詳細資訊窗口的工作流資訊頁簽中。

工作流程和Forms

工作流程通常用於在AEM中處理表單提交。 這可以是透過標準AEM例項中可用的核心元件表單元件,或透過AEM Forms解決方案

建立新表單時,表單提交可輕鬆與工作流模型關聯;例如,將內容儲存在儲存庫的特定位置,或通知使用者表單提交及其內容。

工作流程和翻譯

工作流程也是翻譯程式的一個完整部分。

本頁內容