工作流程處理序參考

提AEM供幾個流程步驟,可用於建立工作流模型。 您也可以針對內建步驟未涵蓋的工作新增自訂流程步驟(請參閱建立工作流程模型)。

流程特性

對於每個過程步驟,描述了以下特性。

Java類或ECMA路徑

流程步驟由Java類或ECMAScript定義。

  • 對於Java類進程,提供完全限定的類名。
  • 對於ECMAScript處理指令碼的路徑。

裝載

裝載是工作流實例所依據的實體。 裝載由啟動工作流實例的上下文隱式選擇。

例如,如果將工作流應用到頁面AEM P,則當工作流推進時,會逐步傳遞​P,每個步驟可選地以某種方式對​P​起作用。

在最常見的情況下,裝載是儲存庫中的JCR節點(例如,頁AEM面或資產)。 JCR節點裝載作為字串傳遞,該字串是JCR路徑或JCR標識符(UUID)。 在某些情況下,裝載可能是JCR屬性(以JCR路徑傳遞)、URL、二進位物件或一般Java物件。 實際作用於裝載的個別處理步驟通常會預期某種類型的裝載,或根據裝載類型採取不同的作用。 對於下面描述的每個過程,將說明預期的裝載類型(如果有)。

引數

某些工作流進程接受管理員在設定工作流步驟時指定的參數。

在工作流編輯器的​屬性​窗格中的​處理參數​屬性中,將參數作為單個字串輸入。 對於下面描述的每個過程,參數字串的格式以簡單的EBNF語法進行描述。 例如,以下指示引數字串由一個或多個逗號分隔的對組成,其中每對都由名稱(即字串)和值(以雙冒號分隔)組成:

    args := name '::' value [',' name '::' value]*
    name := /* A string */
    value := /* A string */

逾時

在此逾時期間後,工作流程步驟便不再運作。 有些工作流程程式會遵守逾時,而有些則不適用,因此會被忽略。

權限

傳遞給WorkflowProcess的會話由工作流進程服務的服務用戶支援,該服務在儲存庫的根目錄中具有以下權限:

  • jcr:read
  • rep:write
  • jcr:versionManagement
  • jcr:lockManagement
  • crx:replicate

如果該權限集對於您的WorkflowProcess實施不夠,則必須使用具有所需權限的會話。

建議的方法是使用使用使用所需權限子集(但最小)建立的服務用戶。

注意

如果您是從6.2之前的版本AEM升級,則可能需要更新實作。

在舊版中,管理會話會傳遞給WorkflowProcess實施,然後可以完全訪問儲存庫,而無需定義特定ACL。

權限現在定義為上述(Permissions)。 建議的實作更新方法亦同。

當程式碼變更不可行時,短期解決方案也可用於回溯相容性的目的:

  • 使用Web控制台(/system/console/configMgr找到​Adobe花崗岩工作流配置服務

  • 啟用​工作流進程舊模式

這將恢復為向WorkflowProcess實施提供管理會話的舊行為,並再次提供對整個儲存庫的無限制訪問。

工作流控制進程

下列程式不會對內容執行任何動作。 它們可用來控制工作流程本身的行為。

AbsoluteTimeAutoAdvancer(絕對時間自動進階器)

AbsoluteTimeAutoAdvancer(絕對時間自動提前器)進程與​AutoAdvancer​的運行方式相同,只不過它在指定的時間和日期而不是在指定的時間長度後超時。

  • Java類: com.adobe.granite.workflow.console.timeout.autoadvance.AbsoluteTimeAutoAdvancer
  • 裝載:沒有。
  • 引數:沒有。
  • 逾時:到達設定的時間和日期時,處理超時。

AutoAdvancer(Auto Advancer)

AutoAdvancer進程會自動將工作流推進到下一步。 如果有多個可能的下一步(例如,如果存在OR拆分),則此進程將沿​預設路由​推進工作流,如果已指定,則不進行工作流。

  • Java類: com.adobe.granite.workflow.console.timeout.autoadvance.AutoAdvancer

  • 裝載:沒有。

  • 引數:沒有。

  • 逾時:在設定的時間長度後,處理逾時。

ProcessAssembler(Process Assembler)

ProcessAssembler進程在單個工作流步驟中按順序執行多個子進程。 要使用ProcessAssembler,請在工作流中建立此類型的單個步驟,並設定其參數以指明要執行的子進程的名稱和參數。

  • Java類: com.day.cq.workflow.impl.process.ProcessAssembler

  • 裝載:DAM資產、頁AEM面或無裝載(視子程式需求而定)。

  • 引數:

        args := arg [',' arg]
        arg := processname ['::' processargs]
        processname := /* A fully qualified Java Class or absolute
        repository path to an ECMAScript */
        processargs := processarg [';' processarg]*
        processarg := '[' nobracketprocessarg ']' | nobracketprocessarg
        nobracketprocessarg := listitem [':' listitem]*
        listitem := /* A string */
  • 逾時:受尊敬。

例如:

  • 從資產擷取中繼資料。
  • 建立3種指定大小的縮圖。
  • 從資產建立JPEG影像,假設資產原本不是GIF或PNG(在這種情況下不會建立JPEG)。
  • 在資產上設定上次修改的日期。
com.day.cq.dam.core.process.ExtractMetadataProcess,
    com.day.cq.dam.core.process.CreateThumbnailProcess::[140:100];[48:48];[319:319:false],
    com.day.cq.dam.core.process.CreateWebEnabledImageProcess::dimension:1280:1280;mimetype:image/jpeg,
    com.day.cq.dam.core.process.AssetSetLastModifiedProcess

基本進程

下列程式會執行簡單工作或做為範例。

注意

您​必須​不要變更/libs路徑中的任何項目。

這是因為下次升級實例時會覆寫/libs的內容(當您套用修補程式或功能套件時可能會覆寫)。

刪除

指定路徑上的項目即會刪除。

  • ECMAScript路徑: /libs/workflow/scripts/delete.ecma

  • 裝載:JCR路徑

  • 引數:無

  • 逾時:已忽略

noop

這是空進程。 它不執行任何操作,但會記錄調試消息。

  • ECMAScript路徑: /libs/workflow/scripts/noop.ecma

  • 裝載:無

  • 引數:無

  • 逾時:已忽略

rule-false

這是一個在check()方法上返回false的空進程。

  • ECMAScript路徑: /libs/workflow/scripts/rule-false.ecma

  • 裝載:無

  • 引數:無

  • 逾時:已忽略

範例

這是ECMAScript程式示例。

  • ECMAScript路徑: /libs/workflow/scripts/sample.ecma

  • 裝載:無

  • 引數:無

  • 逾時:已忽略

urlcaller

這是呼叫指定URL的簡單工作流程程式。 通常,URL將是執行簡單任務的JSP(或其它等效servlet)的引用。 此程式僅應用於開發和展示,而不應用於生產環境。 引數指定URL、登入和密碼。

  • ECMAScript路徑: /libs/workflow/scripts/urlcaller.ecma

  • 裝載:無

  • 引數:

        args := url [',' login ',' password]
        url := /* The URL to be called */
        login := /* The login to access the URL */
        password := /* The password to access the URL */

例如:http://localhost:4502/my.jsp, mylogin, mypassword

  • 逾時:已忽略

LockProcess

鎖定工作流的裝載。

  • Java類: com.day.cq.workflow.impl.process.LockProcess

  • 裝載: JCR_PATH和JCR_UUID

  • 引數:

  • 逾時:已忽

在下列情況下,該步驟不具效力:

  • 裝載已鎖定
  • 裝載節點不包含jcr:content子節點

UnlockProcess

解除鎖定工作流程的裝載。

  • Java類: com.day.cq.workflow.impl.process.UnlockProcess

  • 裝載: JCR_PATH和JCR_UUID

  • 引數:

  • 逾時:已忽

在下列情況下,該步驟不具效力:

  • 裝載已解除鎖定
  • 裝載節點不包含jcr:content子節點

版本修訂流程

以下進程將執行與版本相關的任務。

CreateVersionProcess

建立新版的工作流程裝載(頁AEM面或DAM資產)。

  • Java類: com.day.cq.wcm.workflow.process.CreateVersionProcess

  • 裝載:參照頁面或DAM資產的JCR路徑或UUID

  • 引數:無

  • 逾時:受尊重

本頁內容

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now