此用例详细介绍了如何创建工作流,它允许您监视“已暂停”、“已停止”或“有错误”的工作流集的状态。
其目的是:
要监视一组工作流的状态,您需要执行以下步骤:
我们要监视的工作流文件夹是存储在管理>生产>技术工作流节点中的"CustomWorkflows"文件夹。 此文件夹包含一组业务工作流。
监视工作流存储在技术工作流文件夹的根目录下。 使用的标签为"Monitoring"。
以下模式显示了活动的顺序:
此工作流由以下部分组成:
JavaScript代码的第一部分与查询符(queryDef)一致,它允许您用"pause"(@state == 13)、"error"(@failed == 1)或"stopped"(@state == 20)状态标识工作流。
在以下条件下,将给出要监视的工作流文件夹的内部名称:
<condition boolOperator="AND" expr="[folder/@name] = 'Folder20'" internalId="1"/>
var strError = "";
var strPaused = "";
var strStop = "";
var queryWkfError = xtk.queryDef.create(
<queryDef schema="xtk:workflow" operation="select">
<select>
<node expr="@internalName"/>
<node expr="@state"/>
<node expr="@label"/>
<node expr="@failed"/>
<node expr="@state"/>
</select>
<where id="12837805386">
<condition boolOperator="AND" expr="[folder/@name] = 'Folder20'" internalId="1"/>
<condition boolOperator="AND" internalId="2">
<condition boolOperator="OR" expr="@state = 20" internalId="3"/>
<condition expr="@state = 13" internalId="4"/>
</condition>
</where>
</queryDef>
);
var ndWkfError = queryWkfError.ExecuteQuery();
JavaScript代码的第二部分允许您根据在查询期间恢复的状态显示每个工作流的消息。
创建的字符串必须加载到工作流的事件变量中。
for each ( var wkf in ndWkfError.workflow )
{
if ( wkf.@state == 13 ) // Status 13 = paused
{
if ( wkf.@failed == 1 )
strError += "<li>Workflow '" + wkf.@internalName + "' with the label '" + wkf.@label + "'</li>";
else
strPaused += "<li>Workflow '" + wkf.@internalName + "' with the label '" + wkf.@label + "'</li>";
}
if ( wkf.@state == 20 ) // Status 20 = stop
strStop += "<li>Workflow '" + wkf.@internalName + "' with the label '" + wkf.@label + "'</li>";
}
vars.strWorkflowError = strError;
vars.strWorkflowPaused = strPaused;
vars.strWorkflowStop = strStop;
“测试”活动允许您根据“等待”活动确定是否需要发送投放或监视工作流是否需要运行另一个周期。
如果三个投放变量“vars.strWorkflowError”、“vars.strWorkflowPaused”或“vars.strWorkflowStop”中的至少一个为非void,则向主管发送事件。
“等待”活动可以配置为定期重新开始监视工作流。 对于此用例, 等待时间设置为1小时。
“投放”活动基于存储在资源>模板>投放模板节点中的投放模板。
此模板必须包括:
主管的电子邮件地址。
用于 插入个性化文本的HTML内容。
声明的三个变量(WF_Stop、WF_Paused、WF_Error)与三个工作流事件变量匹配。
这些变量必须在投放模板属性的变量选项卡中声明。
要恢复工作流事件变量的内容,您需要声明特定于投放的变量,该变量将使用JavaScript代码返回的值进行初始化。
投放模板具有以下内容:
创建并批准模板后,您需要将投放活动配置为:
多次-单击投放活动,然后选择以下选项:
投放:选择“新建”,从模板创建,然后选择之前创建的投放模板。
对于收件人和Content字段,选择投放中的“指定”。
要执行的操作:选择准备和开始。
取消选中处理错误选项。
转到投放活动的脚本选项卡,通过个性化字段菜单添加三个字符串类型变量。
声明的三个变量是:
delivery.variables._var[0].stringValue = vars.strWorkflowError;
delivery.variables._var[1].stringValue = vars.strWorkflowPaused;
delivery.variables._var[2].stringValue = vars.strWorkflowStop;
启动此监视工作流后,它会向收件人发送以下摘要: