此使用案例詳細說明如何建立工作流程,讓您監視「暫停」、「停止」或「有錯誤」之工作流程集的狀態。
其目的是:
若要監控一組工作流程的狀態,您必須遵循下列步驟:
我們要監視的工作流資料夾是儲存在管理>生產>技術工作流節點中的"CustomWorkflows"資料夾。 此資料夾包含一組商業工作流程。
監控工作流儲存在「技術工作流」資料夾的根目錄中。 使用的標籤為「監控」。
下列結構模式顯示活動的序列:
此工作流由以下幾部分組成:
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"中至少有一個是無效的,則傳送給主管。
「等待」活動可配置為以定期間隔重新啟動監視工作流。 對於此使用案例,等待時間設為1小時。
「傳送」活動基於儲存在資源>模板>傳送模板節點中的傳送模板。
此範本必須包含:
主管的電子郵件地址。
HTML內 容,以插入個人化文字。
聲明的三個變數(WF_Stop、WF_Paused、WF_Error)與三個工作流事件變數匹配。
這些變數必須在傳送範本屬性的Variables標籤中宣告。
若要復原工作流程事件變數的內容,您必須聲明特定於傳送的變數,這些變數將會以JavaScript程式碼傳回的值進行初始化。
傳送範本包含下列內容:
在建立並核准範本後,您必須將Delivery活動設定為:
連按兩下Delivery活動,並選取下列選項:
傳送:選擇新建,從模板建立,並選擇以前建立的交付模板。
對於收件者和內容欄位,選擇在交貨中指定。
要執行的動作:選擇準備並啟動。
取消選中處理錯誤選項。
前往Delivery活動的Script標籤,透過個人化欄位選單新增三個字元字串類型變數。
宣告的三個變數為:
delivery.variables._var[0].stringValue = vars.strWorkflowError;
delivery.variables._var[1].stringValue = vars.strWorkflowPaused;
delivery.variables._var[2].stringValue = vars.strWorkflowStop;
啟動此監控工作流程後,會傳送下列摘要給收件者: