2016-09-01 46 views
0

我正在設計一些工作流程。主工作流程調用某個子工作流程。如果子工作流失敗,我需要等待一段時間,然後重新運行該子工作流。如果再次失敗,則將任務發送到隊列。 我有麻煩檢查子工作流的狀態。當它失敗時,我停止狀態取消的子工作流。MS CRM:檢查子工作流程的狀態

回答

0

您可以創建自定義工作流步驟來查詢異步操作表並檢查子工作流的狀態。

查詢來獲取孩子的工作流程的狀態:

<?xml version='1.0' encoding='utf-8'?> 
<fetch distinct='false' no-lock='false' mapping='logical' page='1' count='100'> 
    <entity name='asyncoperation'> 
    <attribute name='statuscode' /> 
    <filter type='and'> 
     <filter type='and'> 
     <condition attribute='correlationid' operator='eq' value='{Correlation ID of workflow>' /> 
     <condition attribute='name' operator='eq' value='NAME OF CHILD WORKFLOW' /> 
     </filter> 
    </filter> 
    </entity> 
</fetch> 

它的樣本查詢,通過名稱和相關ID匹配的孩子。如果您只有一個對子工作流程的調用,它將起作用。

在這裏你可以找到異步流程狀態值的列表:https://msdn.microsoft.com/en-us/library/gg309288.aspx

然後主要工作流程步驟看起來像:

  • 呼兒的工作流程
  • 等待一段時間
  • 調用自定義檢查子工作流程狀態的步驟
  • 如果子狀態正常 - 與主進行
  • 如果不添加邏輯來處理故障
相關問題