Show Menu
主題×

建立工作流模型

如需使用傳統UI,請參閱 AEM 6.3檔案以取得參考
您可以建立工 作流程模型 ,以定義使用者啟動工作流程時所執行的一系列步驟。 您也可以定義模型屬性,例如工作流程是暫時性的,還是使用多個資源。
當用戶啟動工作流時,會啟動一個實例;這是對應的執行時期模型,在您同步變更時 建立

建立新工作流程

首次建立新的工作流模型時,它包含:
  • 步驟:流 開始 流結束 。 這些代表工作流程的開始和結束。 這些步驟是必要的,無法編輯/移除。
  • 名為「步 1」的「參與 者」步驟示例 。 此步驟配置為將工作項目分配給工作流啟動器。 編輯或刪除此步驟,並視需要新增步驟。
要使用編輯器建立新工作流,請執行以下操作:
  1. 開啟「工 作流模型 」控制台;通過 Tools Workflow Models 或例如: https://localhost:4502/aem/workflow
  2. 依次選擇 建立 、創 建模型
  3. 此時將 顯示「添加工作流模型 」(Add Workflow Model)對話框。 在選擇「 完成 」之前,輸入「標題 」和「名稱」(可選)
  4. 新模型列在「工作流模型」( Workflow Models )控制台中。
  5. 選擇您的新工作流程,然後使用「編 輯​ :
如果以寫程式方式建立模型(使用crx包),則還可以在以下位置建立子資料夾:
/var/workflow/models
例如, /var/workflow/models/prototypes
然後,此資料夾可用於管 理對該資料夾中模型的訪問

編輯工作流程

您可以編輯任何現有的工作流模型,以:
完成工作流程的更新後,您必須使用「同步 」(Sync ) 來生成運行時模型 。 如需詳 細資訊,請參閱同步您的工作流

同步您的工作流程——產生執行階段模型

Sync (位於編輯器工具列中)會產生執行 時期模型 。 執行時期模型是使用者啟動工作流程時實際使用的模型。 如果您未同 步變更 ,則在執行時期將無法使用變更。
當您(或任何其他使用者)對工作流程進行任何變更時,您必須使用 Sync 來產生執行階段模型,即使個別對話方塊(例如步驟)有其自己的儲存選項亦然。
當變更與執行階段(儲存)模型同步時, 會改 為顯示同步。
有些步驟包含必填欄位和/或內建驗證。 當這些條件不滿足時,當您嘗試同步模型時,會顯示 錯誤 。 例如,當沒有為「參與者」( Participant )步驟定義參與者時:

首次編輯預設或舊版工作流程

開啟「預設」( Default)和/或「舊模型 」(Legacy model)進行編輯時:
  • 「步驟」瀏覽器不可用(左側)。
  • 工具列( 右側 )中提供「編輯」(Edit)動作。
  • 最初,模型及其屬性以只讀模式顯示為:
    • 預設工作流程位於 /libs
    • 舊式工作流程位於「選 /etc 擇編 」中:
  • 將工作流程復本放入 /conf
  • 使步驟瀏覽器可用
  • 可讓您進行變更

向模型添加步驟

您需要將步驟新增至模型以表示要執行的活動——每個步驟都會執行特定活動。 標準AEM例項中提供一系列步驟元件。
編輯模型時,可用步驟會顯示在「步驟」( Steps)瀏覽器的各組中 。 例如:
如需隨AEM安裝的主要步驟元件的詳細資訊,請參閱工作 流程步驟參考
要向工作流模型添加步驟:
  1. 開啟現有的工作流程模型以進行編輯。 從「工作 流模型 」(Workflows Model )控制台中,選擇所需模型,然後選 ​擇編輯。
  2. 開啟「步驟」瀏覽器;使用 頂端工具列最左側的「切換側面板 」(Toggle Side Panel)。 您可以:
    • 篩選 ,以瞭解特定步驟。
    • 使用下拉式選擇器,將選取範圍限制為特定的步驟群組。
    • 選擇「顯示說明」圖 ,以顯示有關相應步驟的詳細資訊。
  3. 將適當的步驟拖動到模型中的所需位置。
    例如,參與 者步驟
    新增至流程後,您就可 以設定步驟
  4. 視需要新增多個步驟或其他更新。
    在運行時,會按照步驟在模型中的顯示順序執行步驟。 添加步驟元件後,可將它們拖動到模型中的不同位置。
    您也可以複製、剪下、貼上、群組或刪除現有步驟;和頁面編輯 器一樣。
    使用工具欄選項也可折疊/展開拆分步驟:
  5. 使用 Sync (編輯器工具列)確認變更,以產生執行階段模型。

設定工作流程步驟

您可以 使用 「步驟屬性」對話方塊來設定和自訂工作流程 步驟的行為
  1. 要開啟步 驟的「步驟屬性 」對話框,請執行以下操作:
    • 按一下/點選工作流程模型中的* *步驟,然後從元件工具列 選取 「設定」。
    • 按兩下該步驟。
    如需隨AEM安裝的主要步驟元件的詳細資訊,請參閱工作 流程步驟參考
  2. 視需要 設定步驟 「屬性」;可用的屬性取決於步驟類型,可能還有幾個頁籤可用。 例如,新工作流中 的預設「參與者步驟 」(Participant Step Step 1 )顯示為:
  3. 以勾號確認更新。
  4. 使用 Sync (編輯器工具列)確認變更,以產生執行階段模型。

建立臨時工作流

建立新模型時, 可以建立「瞬態 」工作流模型,或通過編輯現有模型來建立:
  1. 開啟工作流程模
  2. 從工 具欄中選擇「工作流模型 」(Workflow Model)「屬性」(Properties)。
  3. 在對話方塊中,啟 用「暫時工作流程 」(Transient Workflow)(或視需要停用):
  4. 使用「儲存並關閉」 確認變更 ;接著是 Sync (編輯器工具列),以產生執行時期模型。
當您在瞬態模式中執行 工作流程 ,AEM不會儲存任何工作流程記錄。 因此, Timeline 不會顯示任何與該工作流程相關的資訊。 時間軸

在Touch UI中提供工作流程模型

如果Classic UI中有工作流程模型,但Touch UI的 Timeline rail中的選取範圍快顯功能表中遺失,請依照設定進行,以便使用。 以下步驟說明如何使用稱為「請求啟 動」的工作流程模型
  1. 確認該型號未在啟用觸控的UI中使用。 使用路徑存取 /assets.html/content/dam 資產。 選取資產。 在左 側欄中 ,開啟時間軸。 按一 下「開始工作流程 」,並確認快顯 清單中不存在「要求啟動 」模型。
  2. 瀏覽「工 具>一般>標籤」 。 選擇「 工作流 」。
  3. 選擇「 建立>建立標籤 」。 將「 標題 」設 DAM ,將「 名稱 dam 」設為。 選擇 提交
  4. 導覽至「 工具>工作流程>模型」 。 選取「 要求啟動」 ,然後選 取「編輯」
  5. 「Edit」(編輯),開啟「 Page Information 」(頁面資訊)菜單,然後從此處選擇「 Open Properties 」(開啟屬性),然後轉到「 ​Basic Edit」(如果尚未開啟)頁籤。
  6. 新增 Workflow : DAM 標籤 欄位。 使用勾選(勾選)確認選取範圍。
  7. 確認新增標籤與「儲存並 關閉」
  8. 使用同步完成 程式 。 現在可在觸控式UI中使用工作流程。

為多資源支援配置工作流

建立新模型或編輯現有模 型時 ,可為「多資源支援」配置工作流模型:
  1. 開啟工作流程模
  2. 從工 具欄中選擇「工作流模型 」(Workflow Model)「屬性」(Properties)。
  3. 在對話方塊中啟 用「多資源支援 」(或視需要停用):
  4. 使用「儲存並關閉」 確認變更 ;接著是 Sync (編輯器工具列),以產生執行時期模型。

配置工作流階段(顯示工作流進度)

工作流程階段 ,有助於在處理工作時視覺化工作流程的進度。
如果工作流階段在「頁面屬性」中定義,但未用於任何工作流步驟 ,則進度列將不顯示任何進度(無論當前工作流步驟如何)。
可用階段在工作流模型中定義;可更新現有的工作流程模型以包含階段定義。 可以為工作流模型定義任意數量的階段。
要為工作流 定義階段 ,請執行以下操作:
  1. 開啟您的工作流程模型以進行編輯。
  2. 從工 具欄中選擇「工作流模型 」(Workflow Model)「屬性」(Properties)。 然後開啟「階 」標籤。
  3. 新增(並定位)您所需的 階段 。 可以為工作流模型定義任意數量的階段。
    例如:
  4. 按一 下「儲存並關閉 」以儲存屬性。
  5. 為工作流模型中的每個步驟指定一個階段。 例如:
    一個階段可指派給多個步驟。 例如:
    步驟
    分段
    步驟 1
    建立
    步驟 2
    建立
    步驟 3
    評論
    步驟 4
    批准
    步驟 5
    批准
    步驟 6
    完成
  6. 使用 Sync (編輯器工具列)確認變更,以產生執行階段模型。

導出包中的工作流模型

要導出包中的工作流模型,請執行以下操作:
  1. 使用「包管理器」( Package Manager)建立新包 :
    1. 通過「工具」、「部署」 、「包」 ,導航至「包 ​管理器」
    2. 按一 下「建立套件 」。
    3. 根據需要 指定「包名 」和任何其他詳細資訊。
    4. 按一下 確定
  2. 按一下 新包工具欄 上的「編輯」(Edit)。
  3. 開啟「篩 選器 」標籤。
  4. 選取「 新增篩選 」並指定工作流程模型設計的 路徑 :
    /conf/global/settings/workflow/models/<*your-model-name*>
    按一 下完成
  5. 選取「 新增篩選 」並指定執行階段工作 流程模型的路徑 :
    /var/workflow/models/<*your-model-name*>
    按一 下完成
  6. 為模型使用的任何自訂指令碼新增其他篩選器。
  7. 按一 下「儲存 」以確認您的篩選定義。
  8. 從包定 義的工具欄 中選擇「生成」。
  9. 從包工 具欄 ,選擇「下載」。

使用工作流程處理表單提交

您可以設定表單,以便由選取的工作流程處理。 當使用者送出表單時,會建立新的工作流程例項,並將表單提交的資料當做其負載。
要配置要與表單一起使用的工作流,請執行以下操作:
  1. 建立新頁面並開啟以供編輯。
  2. 將表 單元 件新增至頁面。
  3. 設定 在頁 面中顯示的 「表單開始」元件。
  4. 使用「 開始工作流程 」,從可用的工作流程中選擇所需的工作流程:
  5. 使用勾號確認新表格設定。

測試工作流程

在測試工作流使用多種負載類型時,這是一個很好的做法;包括與已開發的不同類型。 例如,如果您想要處理「資產」的工作流程,請將「頁面」設為裝載來測試,並確定不會擲回錯誤。
例如,請依下列方式測試您的新工作流程:
  1. 從主控台啟動您的 「工作流程」模型。
  2. 定義裝 ,並確認。
  3. 視需要採取動作,以便工作流程繼續進行。
  4. 在工作流程執行時監控記錄檔。
您也可以設定AEM,在記錄檔 中顯示 DEBUG訊息。 請參 閱記錄 ,以取得詳細資訊,當開發完成時,將記錄層級設 資訊

範例

範例:建立(簡單)工作流以接受或拒絕發佈請求

為了說明建立工作流的一些可能性,以下示例建立了工作流的變 Publish Example 化。
  1. 新工作流程將包含:
    • 流程啟動
    • Step 1
    • 流程結束
  2. Step 1 除(因為此示例的步驟類型錯誤):
    • 按一下該步驟,然後從元件工具欄 中選擇 「刪除」(Delete)。 確認動作。
  3. 從步驟瀏 覽器的 「工作流」選擇中,將「參與者步驟 」拖到工作流上,並將其置於 Flow Start (流開始)和 Flow End(流結束)之間。
  4. 要開啟屬性對話框,請執行以下操作:
    • 按一下參與者步驟,然後從元件工具欄 中選擇 「配置」(Configure)。
    • 按兩下參與者步驟。
  5. 在「公 」標籤 Validate Content 中,輸入「 標題 」和「 說明」
  6. 開啟「使 用者/群組 」標籤:
    • Activate Notify user via email .
    • 為「 Administrator 使用者/ admin 群組」欄 位選取( )。
    對於要發送的電子郵件, 需要配置郵件服務和用戶帳戶詳細資訊
  7. 用勾號確認更新。
    您將返回至工作流模型的概述,其中參與者步驟將重新命名為 Validate Content
  8. 將「或 分割 」拖曳至工作流程,並將其置於 Validate Content 「流程 端」之間
  9. 開啟 Or Split for configuration。
  10. 設定:
    • 常見 :指定拆分名稱。
    • 分支1 :選擇 預設路由
    • 分支2 :確 保未選擇預設路由
  11. 確認您對 OR Split的更新
  12. 將「參 與者步驟 」拖曳至左側分支、開啟屬性、指定下列值,然後確認變更:
    • 標題 : Reject Publish Request
    • 使用者/群組 :例如, projects-administrators
    • 透過電子郵件通知使用者 :啟用,讓使用者透過電子郵件獲得通知。
  13. 將「 流程步驟 」拖曳至右側的分支,開啟屬性,指定下列值,然後確認變更:
    • 標題 : Publish Page as Requested
    • 流程 :選擇「 Activate Page Select(選擇)」。 此程式會將選取的頁面發佈至發佈者例項。
  14. 按一 下「同步 (編輯器工具列)」以產生執行時期模型。
    您的新工作流程模型如下:
  15. 將此工作流應用到您的頁面,這樣當用戶移至「完成驗證內容 ​」步驟時,他們可以選擇是按請求發佈頁面 ,還是 ​按請求發佈請求拒絕發佈。

範例:使用ECMA指令碼定義OR拆分的規則

「OR分割 」步驟可讓您在工作流程中引入條件式處理路徑。
要定義OR規則,請按如下步驟進行:
  1. 建立兩個指令碼並將其保存到儲存庫中,例如:
    /apps/myapp/workflow/scripts
    指令碼必須具有傳 布林值的函式。
  2. 編輯工作流並將 OR分割 添加到模型。
  3. 編輯 OR Split Branch 1屬性 :
    • 將「值」(Value)設 置為 ,將其定義為「缺 省路由 」(Default Route) true
    • 作為 規則 ,設定指令碼的路徑。 例如:
      /apps/myapp/workflow/scripts/myscript1.ecma
    您可以視需要切換分支順序。
  4. 編輯 OR Split Branch 2屬性
    • 作為 規則 ,設定指向其他指令碼的路徑。 例如:
      /apps/myapp/workflow/scripts/myscript2.ecma
  5. 設定每個分支中各步驟的屬性。 請確定已 設定「使用者 /群組」。
  6. 按一 下「同步 (編輯器工具列)」,將變更保留至執行階段模型。

函式檢查()

如果節點位於 true 以下位置,則返回以 JCR_PATH 下示例指令碼 /content/we-retail/us/en :
function check() {
    if (workflowData.getPayloadType() == "JCR_PATH") {
      var path = workflowData.getPayload().toString();
      var node = jcrSession.getItem(path);

      if (node.getPath().indexOf("/content/we-retail/us/en") >= 0) {
       return true;
      } else {
       return false;
      }
     } else {
      return false;
     }
}

範例:自訂啟動要求

您可以自訂任何現成可用的工作流程。 若要進行自訂行為,請覆蓋適當工作流程的詳細資訊。
例如,請 求啟動 。 此工作流程用於發佈 Sites 內的頁面,當內容作者沒有適當的複製權限時會自動觸發。 如需詳 細資訊,請參閱自訂頁面製作——自訂啟動工作流程要求