Användningsexempel: övervaka dina arbetsflöden supervising-workflows
Här beskrivs hur du skapar ett arbetsflöde där du kan övervaka statusen för en uppsättning arbetsflöden som är"pausade","stoppade" eller"med fel".
Syftet är att
- Använd ett arbetsflöde för att övervaka en grupp av affärsarbetsflöden.
- Skicka ett meddelande till en ansvarig via en leveransaktivitet.
Om du vill övervaka statusen för en uppsättning arbetsflöden måste du följa dessa steg:
- Skapa övervakningsarbetsflödet.
- Skriv JavaScript för att avgöra om arbetsflöden pausas, stoppas eller innehåller fel.
- Skapa aktiviteten Test.
- Förbered leveransmallen.
Steg 1: Skapa övervakningsarbetsflödet step-1--creating-the-monitoring-workflow
Den arbetsflödesmapp som vi ska övervaka är mappen "CustomWorkflows" som lagras i noden Administration > Produktion > Tekniska arbetsflöden . Den här mappen innehåller en uppsättning affärsarbetsflöden.
Övervakningsarbetsflödet lagras i roten i mappen Tekniska arbetsflöden. Etiketten som används är "Övervakning".
I följande schema visas aktivitetssekvensen:
Det här arbetsflödet består av:
- en "Start"-aktivitet.
- en "JavaScript-kod"-aktivitet som ansvarar för att analysera arbetsflödesmappen för företag.
- en "Test"-aktivitet som skickar en leverans till den ansvarige eller startar om arbetsflödet.
- en "Leverans"-aktivitet som ansvarar för meddelandelayout.
- en "Vänta"-aktivitet som styr ledtider mellan arbetsflödesiterationer.
Steg 2: Skriva JavaScript step-2--writing-the-javascript
Den första delen av JavaScript-koden sammanfaller med en fråga (queryDef) som gör att du kan identifiera arbetsflödena med statusen "pause" (@state == 13), "error" (@failed == 1) eller "stopped" (@state == 20).
Det interna namnet för arbetsflödesmappen som ska övervakas anges i följande villkor:
<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();
I den andra delen av JavaScript-koden kan du visa ett meddelande för varje arbetsflöde baserat på den status som återställdes under frågan.
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;
Steg 3: Skapa aktiviteten Test step-3--creating-the--test--activity
Med aktiviteten Testa kan du avgöra om en leverans behöver skickas eller om övervakningsarbetsflödet behöver köra en annan cykel baserat på aktiviteten Vänta.
En leverans skickas till den ansvarige om minst en av de tre händelsemodellerna "vars.strWorkflowError", "vars.strWorkflowPaused" eller "vars.strWorkflowStop" inte är void.
Vänta-aktiviteten kan konfigureras för att starta om övervakningsarbetsflödet med regelbundna intervall. I det här fallet är väntetiden inställd på en timme.
Steg 4: Förbereder leveransen step-4--preparing-the-delivery
Aktiviteten Leverans baseras på en leveransmall som lagras i noden Resurser > Mallar > Leveransmallar .
Den här mallen måste innehålla:
-
e-postadressen till den ansvarige.
-
HTML-innehåll för infogning av anpassad text.
De tre deklarerade variablerna (WF_Stop, WF_Paused, WF_Error) matchar de tre arbetsflödeshändelsevariablerna.
Dessa variabler måste deklareras på fliken Variabler i leveransmallsegenskaperna.
Om du vill återställa innehållet i arbetsflödeshändelsevariablerna måste du deklarera de variabler som är specifika för leveransen som ska initieras med värden som returneras av JavaScript-koden.
Leveransmallen har följande innehåll:
När mallen har skapats och godkänts måste du konfigurera aktiviteten Delivery till:
- länka aktiviteten "Leverans" till leveransmallen som skapades tidigare.
- länka arbetsflödets händelsevariabler till de som är specifika för leveransmallen.
Dubbelklicka på aktiviteten Leverans och välj följande alternativ:
-
Leverans: välj Nytt, skapat från en mall och välj den leveransmall som skapats tidigare.
-
För fälten Mottagare och Innehåll väljer du Angivet i leveransen.
-
Åtgärd som ska köras: välj Förbered och starta.
-
Avmarkera alternativet Processfel.
-
Gå till fliken Skript i aktiviteten Leverans och lägg till tre teckensträngsvariabler via menyn för anpassningsfältet.
De tre deklarerade variablerna är:
code language-none delivery.variables._var[0].stringValue = vars.strWorkflowError; delivery.variables._var[1].stringValue = vars.strWorkflowPaused; delivery.variables._var[2].stringValue = vars.strWorkflowStop;
När det här övervakningsarbetsflödet har startats skickas en sammanfattning till mottagarna.