建立工作流模型

注意

若要使用傳統UI,請參閱AEM 6.3檔案以取得參考。

您可以建立工作流模型以定義使用者啟動工作流時執行的一系列步驟。 您也可以定義模型屬性,例如工作流是暫時性的,還是使用多個資源。

使用者啟動工作流程時,會啟動例項;這是在您同步變更時建立的對應執行階段模型。

建立新工作流程

首次建立新的工作流模型時,它包含:

  • 步驟: 流開始​和​流結束
    這些代表工作流程的開始和結束。 這些步驟為必要步驟,無法編輯/移除。
  • 名為​步驟1​的​參與者​步驟範例。
    此步驟配置為將工作項分配給工作流啟動器。 編輯或刪除此步驟,並視需要新增步驟。

若要使用編輯器建立新工作流程:

  1. 開啟​工作流模型​控制台;透過​工具工作流程模型​或,例如:https://localhost:4502/aem/workflow
  2. 選擇​建立,然後選擇​建立模型
  3. 將顯示​添加工作流模型​對話框。 在選擇​Done​之前,輸入​Title​和​Name(可選)。
  4. 新模型會列在​工作流模型​控制台中。
  5. 選擇新工作流,然後使用​Edit​開啟它以進行配置:
    wf-01
注意

如果以寫程式方式建立模型(使用crx套件),您也可以在以下項目中建立子資料夾:

/var/workflow/models

例如, /var/workflow/models/prototypes

然後,此資料夾可用於管理對該資料夾中模型的訪問。

編輯工作流程

您可以編輯任何現有的工作流模型以:

編輯​預設和/或舊版(現成可用)工作流有一個附加步驟,以確保在您進行更改之前執行安全副本

完成對工作流的更新後,必須使用​Sync​來​生成運行時模型。 如需詳細資訊,請參閱同步您的工作流程

同步工作流 — 生成運行時模型

同步 (在編輯器工具列中右側)會產生執 行階段模型。執行階段模型是使用者啟動工作流程時實際使用的模型。 如果您未​同步​您的更改,則這些更改將在運行時不可用。

當您(或任何其他用戶)對工作流進行任何更改時,必須使用​Sync​來生成運行時模型,即使單個對話框(例如,步驟)有各自的保存選項時也是如此。

當更改與運行時(已保存)模型同步時,將顯示​Synched

有些步驟包含必要欄位和/或內建驗證。 當這些條件不滿足時,當您嘗試​同步​模型時,將顯示錯誤。 例如,當未為​參與者​步驟定義參與者時:

wf-21

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

開啟預設和/或舊模型進行編輯時:

  • 步驟瀏覽器不可用(左側)。
  • 工具列(右側)中提供​Edit​動作。
  • 最初,模型及其屬性以只讀模式顯示為:
    • 預設工作流位於/libs
    • 舊式工作流程位於/etc
      選取
      ​編輯:
  • 將工作流程副本帶入/conf
  • 使步驟瀏覽器可用
  • 可讓您進行變更
注意

如需詳細資訊,請參閱工作流模型的位置

wf-22

向模型添加步驟

您需要將步驟新增至模型以代表要執行的活動 — 每個步驟都會執行特定活動。 標準AEM例項中提供一系列步驟元件。

編輯模型時,可用步驟將顯示在​步驟瀏覽器​的各組中。 例如:

wf-10

注意

有關隨AEM安裝的主要步驟元件的資訊,請參閱工作流步驟參考

若要將步驟新增至工作流程模型:

  1. 開啟現有的工作流模型進行編輯。 從​工作流模型​控制台中,選擇所需的模型,然後選擇​編輯

  2. 開啟步驟瀏覽器;使用​切換頂端面板,位於頂端工具列的最左側。 您可以在此:

    • ​篩選特定步驟。
    • 使用下拉式選取器,將選取範圍限制為特定的一組步驟。
    • 選擇「顯示說明」表徵圖wf-stepinfo-icon以顯示有關相應步驟的詳細資訊。

    wf-02

  3. 將適當的步驟拖曳至模型中的所需位置。

    例如,參與者步驟

    新增至流程後,您可以設定步驟

    wf-03

  4. 視需要新增多個步驟或其他更新。

    在運行時,按步驟在模型中的顯示順序執行步驟。 添加步驟元件後,可將它們拖動到模型中的不同位置。

    您也可以複製、剪下、貼上、分組或刪除現有步驟;與頁面編輯器相同。

    也可以使用工具欄選項收合/展開分割步驟:wf-coverseexpand-toolbar-icon

  5. 使用​Sync(編輯器工具欄)確認更改以生成運行時模型。

    如需詳細資訊,請參閱同步您的工作流程

設定工作流程步驟

您可以使用​步驟屬性​對話方塊,來​設定​及自訂工作流程步驟的行為。

  1. 要開啟步驟的​步驟屬性​對話框,請執行以下操作之一:

    • 按一下/點選工作流程模型中的* *步驟,然後從元件工具列選取​設定

    • 按兩下步驟。

    注意

    有關隨AEM安裝的主要步驟元件的資訊,請參閱工作流步驟參考

  2. 視需要設定​步驟屬性;可用的屬性視步驟類型而定,可能還有幾個可用的標籤。 例如,預設​參與者步驟​在新工作流中顯示為Step 1:

    wf-11

  3. 使用勾號確認更新。

  4. 使用​Sync(編輯器工具欄)確認更改以生成運行時模型。

    如需詳細資訊,請參閱同步您的工作流程

建立暫時性工作流程

建立新模型或編輯現有模型時,可以建立暫時工作流模型:

  1. 開啟editing的工作流模型。

  2. 從工具欄中選擇​工作流模型屬性

  3. 在對話方塊中,啟用​暫時工作流程(或視需要停用):

    wf-07

  4. 使用​儲存並關閉​確認變更;後跟​同步(編輯器工具列),以產生執行階段模型。

    如需詳細資訊,請參閱同步您的工作流程

注意

暫時模式AEM中執行工作流程時,不會儲存任何工作流程歷史記錄。 因此,時間軸不會顯示與該工作流程相關的任何資訊。

讓工作流程模型可在觸控式UI中使用

如果傳統UI中存在工作流模型,但觸控式UI的​時間軸​邊欄中的選取快顯功能表中遺失,請依照設定操作以使其可用。 下列步驟說明如何使用名為​Request for Activation​的工作流模型。

  1. 確認模型無法在觸控式UI中使用。 使用/assets.html/content/dam路徑存取資產。 選取資產。 在左側邊欄中開啟​時間軸。 按一下「啟動工作流」並確認彈出式清單中未顯示​啟動請求​模型。

  2. 瀏覽​工具>一般>標籤。 選擇​Workflow

  3. 選擇​建立>建立標籤。 將​Title​設定為DAM,將​Name​設定為dam。 選擇​Submit
    在工作流程模型中建立標籤

  4. 導覽至「工具>工作流程>模型」。 選擇​Request for Activation,然後選擇​Edit

  5. 選擇​編輯,開啟​頁資訊​菜單,然後從那裡選擇​開啟屬性​並轉至​基本​頁簽(如果尚未開啟)。

  6. Workflow : DAM新增至​標籤​欄位。 使用勾選(勾選)確認選取項目。

  7. 確認新增標籤(包含​儲存並關閉)。
    編輯模型的頁面屬性

  8. 使用​Sync​完成該過程。 現在,觸控式UI中提供工作流程。

為多資源支援配置工作流

建立新模型時,或編輯現有模型時,可以為多資源支援配置工作流模型:

  1. 開啟editing的工作流模型。

  2. 從工具欄中選擇​工作流模型屬性

  3. 在對話方塊中,啟用​多資源支援(或視需要停用):

    wf-08

  4. 使用​儲存並關閉​確認變更;後跟​同步(編輯器工具列),以產生執行階段模型。

    如需詳細資訊,請參閱同步您的工作流程

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

工作 流程階段可協助視覺化處理任務時工作流程的進度。

注意

如果已在​頁面屬性​中定義工作流階段,但未用於任何工作流步驟,則進度欄將不顯示任何進度(無論當前工作流步驟如何)。

可用的階段在工作流模型中定義;可以更新現有的工作流模型以包含階段定義。 您可以為工作流模型定義任意數量的階段。

要為工作流定義​階段,請執行以下操作:

  1. 開啟工作流程模型以進行編輯。

  2. 從工具欄中選擇​工作流模型屬性。 然後開啟​階段​標籤。

  3. 添加(並定位)所需的​階段。 您可以為工作流模型定義任意數量的階段。

    例如:

    wf-08-1

  4. 按一下「儲存並關閉」以儲存屬性。

  5. 為工作流模型中的每個步驟分配一個階段。 例如:

    wf-09

    可以將一個階段分配給多個步驟。 例如:

    步驟 分段
    步驟 1 建立
    步驟 2 建立
    步驟 3 評論
    步驟 4 批准
    步驟 5 批准
    步驟 6 完成
  6. 使用​Sync(編輯器工具欄)確認更改以生成運行時模型。

    如需詳細資訊,請參閱同步您的工作流程

導出包中的工作流模型

要導出包中的工作流模型,請執行以下操作:

  1. 使用包管理器建立新包:

    1. 通過​ToolsDeploymentPackages​導航到包管理器。

    2. 按一下「建立包」。

    3. 指定​封裝名稱,並視需要指定任何其他詳細資訊。

    4. 按一下​「確定」

  2. 按一下新包工具欄上的​編輯

  3. 開啟​Filters​頁簽。

  4. 選擇​添加篩選器​並指定工作流模型​design​的路徑:

    /conf/global/settings/workflow/models/<*your-model-name*>

    按一下​Done

  5. 選擇​添加篩選器​並指定​runtime​工作流模型的路徑:

    /var/workflow/models/<*your-model-name*>

    按一下​Done

  6. 為模型使用的任何自訂指令碼新增其他篩選器。

  7. 按一下​儲存​以確認您的篩選器定義。

  8. 從包定義的工具欄中選擇​Build

  9. 從包工具欄選擇​下載

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

您可以設定要由所選工作流程處理的表單。 當使用者提交表單時,會建立新的工作流程例項,並將表單提交的資料作為有效負載。

設定要與表單搭配使用的工作流程:

  1. 建立新頁面並開啟它以進行編輯。

  2. 將​Form​元件新增至頁面。

  3. ​設定 現在頁面中的「表單開始」元件。

  4. 使用​開始工作流​從可用的工作流中選擇所需的工作流:

    wf-12

  5. 使用勾號確認新的表單設定。

測試工作流程

在測試工作流程以使用各種裝載類型時,這是個好作法;包括與已開發的類型不同的類型。 例如,如果您想要處理資產,請將頁面設定為裝載以測試工作流程,並確定不會擲回錯誤。

例如,依照下列方式測試您的新工作流程:

  1. 從主控台啟 動工作流程模型。

  2. 定義​裝載​並確認。

  3. 視需要採取動作,以便工作流程繼續進行。

  4. 在工作流程執行時監控記錄檔。

您也可以設定AEM在記錄檔中顯示​DEBUG​訊息。 如需詳細資訊,並在開發完成時,將​記錄層級​設回​資訊🔗

範例

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

為了說明建立工作流的一些可能性,以下示例建立了Publish Example工作流的變化。

  1. 建立新的工作流模型

    新工作流程將包含:

    • 流程啟動
    • Step 1
    • 流程結束
  2. 刪除Step 1(因為此示例的步驟類型錯誤):

    • 按一下該步驟,然後從元件工具欄中選擇​Delete。 確認動作。
  3. 從步驟瀏覽器的​工作流​選擇中,將​參與者步驟​拖動到工作流,並將其置於​流開始​和​流結束​之間。

  4. 要開啟屬性對話框,請執行以下操作:

    • 按一下參與者步驟,然後從元件工具欄中選擇​配置
    • 按兩下參與者步驟。
  5. 在​Common​標籤中,為​Title​和​Description​輸入Validate Content

  6. 開啟​User/Group​頁簽:

    • 啟用​透過電子郵件​通知使用者。
    • 為​用戶/組​欄位選擇Administrator(admin)。
    注意

    對於要發送的電子郵件,需要配置郵件服務和用戶帳戶詳細資訊

  7. 使用勾號確認更新。

    您將返回至工作流模型的概述,此處參與者步驟將更名為Validate Content

  8. 將​Or Split​拖曳至工作流程,並將其置於Validate Content和​Flow End​之間。

  9. 開啟​或Split​進行配置。

  10. 設定:

    • 常見:指定拆分名稱。

    • 分支1:選 擇預設路由

    • 分支2:確 保未 選取預設路徑。

  11. 確認對​OR Split​的更新。

  12. 將​參與者步驟​拖曳至左側分支,開啟屬性,指定下列值,然後確認變更:

    • 標題: Reject Publish Request

    • 使用者/群組:例如, projects-administrators

    • 透過電子郵件通知使用者:啟動,透過電子郵件通知使用者。

  13. 將​處理步驟​拖曳至右側分支,開啟屬性,指定下列值,然後確認變更:

    • 標題: Publish Page as Requested

    • 程式:選取「 Activate Page」 。此程式會將選取的頁面發佈至發佈者例項。

  14. 按一下​Sync(編輯器工具欄)以生成運行時模型。

    如需詳細資訊,請參閱同步您的工作流程

    您的新工作流程模型將如下所示:

    wf-13

  15. 將此工作流程套用至您的頁面,以便當使用者移至​完成 驗證內容​步驟時,他們可以選取是要依請求​發佈頁面,還是​拒絕發佈請求​

    chlimage_1-72

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

或分 割步驟可讓您將條件式處理路徑引入工作流程中。

若要定義OR規則,請依照下列步驟進行:

  1. 建立兩個指令碼並儲存在存放庫中,例如:

    /apps/myapp/workflow/scripts

    注意

    指令碼必須具有函式check(),該函式返回布爾值。

  2. 編輯工作流程,並將​OR Split​新增至模型。

  3. 編輯​OR Split​的​Branch 1​的屬性:

    • 將​Value​設定為true,將此定義為​預設路由

    • 以​Rule​的形式,將路徑設定為指令碼。 例如:

      /apps/myapp/workflow/scripts/myscript1.ecma

    注意

    您可以視需要切換分支順序。

  4. 編輯​OR Split​的​Branch 2​的屬性。

    • 以​Rule​的形式,將路徑設定為其他指令碼。 例如:

      /apps/myapp/workflow/scripts/myscript2.ecma

  5. 設定每個分支中各個步驟的屬性。 請確定已設定​使用者/群組

  6. 按一下​Sync(編輯器工具欄),將更改保留到運行時模型。

    如需詳細資訊,請參閱同步您的工作流程

函式檢查()

注意

請參閱使用ECMAScript

如果節點位於/content/we-retail/us/en下,則以下示例指令碼返回true:JCR_PATH

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;
     }
}

範例:自訂的啟動請求

您可以自訂任何現成可用的工作流程。 若要具有自訂行為,請覆蓋適當工作流程的詳細資訊。

例如, Request for Activation。 此工作流程用於發佈​Sites​內的頁面,並會在內容作者沒有適當的復寫權限時自動觸發。 如需詳細資訊,請參閱自訂頁面編寫 — 自訂啟動工作流程的請求

本頁內容