我正在设计一些工作流程。主工作流程调用一些子工作流程。如果子工作流失败,我需要等待一段时间,然后重新运行该子工作流。如果再次失败,则将任务发送到队列。 我在检查子工作流程的状态时遇到了麻烦。当它失败时,我将停止子工作流程并取消状态。
答案 0 :(得分: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
然后主要的工作流程步骤如下: