管理工作流程例項 administering-workflow-instances
工作流程主控台提供了幾個用於管理工作流程執行個體的工具,以確保它們按預期執行。
有一系列的主控台可用來管理工作流程。 使用全域導覽開啟 工具 窗格,然後選取 工作流程:
- 模型:管理工作流程定義
- 執行個體:檢視及管理執行中的工作流程執行個體
- 啟動器:管理如何啟動工作流程
- 封存:檢視成功完成的工作流程歷史記錄
- 失敗:檢視已完成但發生錯誤的工作流程歷史記錄
- 自動指派:設定範本的自動指派工作流程
監控工作流程例項狀態 monitoring-the-status-of-workflow-instances
-
使用導覽功能選取 工具,然後選取 工作流程。
-
選取 執行個體,以便顯示目前進行中的工作流程執行個體清單。
暫停、恢復和終止工作流程例項 suspending-resuming-and-terminating-a-workflow-instance
-
使用導覽功能選取 工具,然後選取 工作流程。
-
選取 執行個體,以便顯示目前進行中的工作流程執行個體清單。
-
選取特定專案,然後視情況使用 終止、暫停 或 繼續;需要確認和/或進一步的詳細資料:
檢視已封存的工作流程 viewing-archived-workflows
-
使用導覽功能選取 工具,然後選取 工作流程。
-
選取「封存」,以便顯示順利完成的工作流程執行個體清單。
note note NOTE 中止狀態會被視為成功終止,因為它是使用者動作的結果;例如: - 使用 終止 動作
- 當受工作流程約束的頁面被(強制)刪除時,工作流程會終止
-
選取特定專案,然後 開啟歷程記錄 以檢視詳細資料:
修正工作流程例項失敗 fixing-workflow-instance-failures
當工作流程失敗時,AEM會提供 失敗 主控台,讓您在原始原因得到處理之後,立即調查並採取適當的動作:
-
失敗詳細資料
開啟視窗以顯示 失敗訊息、步驟 和 失敗棧疊。 -
開啟歷程記錄
顯示工作流程記錄的詳細資料。 -
重試步驟 — 再次執行指令碼步驟元件執行個體。 修復原始錯誤的原因後,使用「重試步驟」指令。 例如,修正程式步驟所執行指令碼中的錯誤後,請重試該步驟。
-
終止 — 如果錯誤導致工作流程發生無法調解的情況,則終止工作流程。 例如,工作流程可以仰賴環境條件,例如存放庫中對工作流程例項不再有效的資訊。
-
終止並重試 — 類似 終止,不同之處在於新的工作流程執行個體是使用原始承載、標題和說明啟動。
若要調查失敗,然後恢復或終止工作流程,請使用下列步驟:
-
使用導覽功能選取 工具,然後選取 工作流程。
-
選取 失敗,以便顯示未成功完成的工作流程執行個體清單。
-
選取特定專案,然後選取適當的動作:
定期清除工作流程執行個體 regular-purging-of-workflow-instances
將工作流程例項的數目降至最低會提升工作流程引擎的效能,因此您可以定期從儲存庫中清除已完成或執行中的工作流程例項。
設定 AdobeGranite工作流程清除組態 以根據其年齡和狀態清除工作流程執行個體。 您也可以清除所有模型或特定模型的工作流程例項。
您也可以建立多個服務組態,以永久刪除滿足不同條件的工作流程例項。 例如,建立一個設定,當特定工作流程模型的執行個體執行時間超過預期時間時,該設定會清除這些執行個體。 建立另一個設定,以在特定天數後清除所有已完成的工作流程,將存放庫的大小降至最低。
若要設定服務,您可以使用網頁主控台或新增OSGi設定到存放庫。 下表說明任一方法所需的特性。
com.adobe.granite.workflow.purge.Scheduler
sling:OsgiConfig
節點的名稱需要識別碼尾碼,例如:com.adobe.granite.workflow.purge.Scheduler-myidentifier
設定收件匣大小上限 setting-the-maximum-size-of-the-inbox
您可以設定 AdobeGranite工作流程服務,使用網頁主控台或將OSGi設定新增至存放庫,以設定收件匣的大小上限。 下表說明您為任一方法設定的屬性。
com.adobe.granite.workflow.core.WorkflowSessionFactory
。對客戶擁有的資料存放區使用工作流程變數 using-workflow-variables-customer-datastore
工作流程處理的資料儲存在Adobe提供的儲存空間(JCR)。 此資料本質上可能是敏感資料。 您可能希望將所有使用者定義的中繼資料/資料儲存在您自己的受管理儲存空間中,而非Adobe提供的儲存空間。 以下各節說明如何為外部儲存設定這些變數。
設定模型以使用中繼資料的外部儲存 set-model-for-external-storage
在工作流程模型的層級,會提供旗標,指出模型(及其執行階段執行個體)具有中繼資料的外部儲存。 針對標籤為外部儲存的模型的工作流程例項,工作流程變數不會儲存在JCR中。
屬性 userMetadataPersistenceEnabled 儲存在工作流程模型的 jcr:content節點 上。 此旗標會以 cq:userMetaDataCustomPersistenceEnabled 保留在工作流程中繼資料中。
下圖說明如何在工作流程上設定標幟。
外部儲存空間中中繼資料的API apis-for-metadata-external-storage
若要在外部儲存變數,請實作工作流程公開的API。
UserMetaDataPersistenceContext
以下範例說明如何使用API。
@ProviderType
public interface UserMetaDataPersistenceContext {
/**
* Gets the workflow for persistence
* @return workflow
*/
Workflow getWorkflow();
/**
* Gets the workflow id for persistence
* @return workflowId
*/
String getWorkflowId();
/**
* Gets the user metadata persistence id
* @return userDataId
*/
String getUserDataId();
}
UserMetaDataPersistenceProvider
/**
* This provider can be implemented to store the user defined workflow-data metadata in a custom storage location
*/
@ConsumerType
public interface UserMetaDataPersistenceProvider {
/**
* Retrieves the metadata using a unique identifier
* @param userMetaDataPersistenceContext
* @param metaDataMap of user defined workflow data metaData
* @throws WorkflowException
*/
void get(UserMetaDataPersistenceContext userMetaDataPersistenceContext, MetaDataMap metaDataMap) throws WorkflowException;
/**
* Stores the given metadata to the custom storage location
* @param userMetaDataPersistenceContext
* @param metaDataMap metadata map
* @return the unique identifier that can be used to retrieve metadata. If null is returned, then workflowId is used.
* @throws WorkflowException
*/
String put(UserMetaDataPersistenceContext userMetaDataPersistenceContext, MetaDataMap metaDataMap) throws WorkflowException;
}