Hoofdlettergebruik: toezicht op uw workflows supervising-workflows
In dit geval wordt het maken van een workflow beschreven waarmee u de status kunt controleren van een set werkstromen die worden gepauzeerd, gestopt of met fouten.
Het doel van de verordening is:
- Gebruik een werkschema om een groep bedrijfswerkschema's te controleren.
- Verzend een bericht naar een supervisor via een "levering"activiteit.
Als u de status van een set workflows wilt controleren, moet u de volgende stappen uitvoeren:
- Maak de controleworkflow.
- Schrijf de JavaScript om te bepalen of workflows worden gepauzeerd, gestopt of met fouten.
- Maak de Test -activiteit.
- Bereid het leveringsmalplaatje voor.
Stap 1: De controleworkflow maken step-1--creating-the-monitoring-workflow
De werkschemamap die wij gaan controleren is "CustomWorkflows" omslag die in het Beleid > Productie > Technische werkschema's knoop wordt opgeslagen. Deze map bevat een set bedrijfsworkflows.
Het werkschema van de Controle wordt opgeslagen bij de wortel van de omslag van Technische Werkschema's. Het gebruikte etiket is "Controle".
Het volgende schema toont de opeenvolging van activiteiten:
Deze workflow bestaat uit:
- a "Begin" activiteit.
- a "JavaScript code" activiteit verantwoordelijk voor het analyseren van de omslag van bedrijfswerkschema's.
- a "Test" activiteit om een levering naar de supervisor te verzenden of het werkschema opnieuw te beginnen.
- a "Levering" activiteit verantwoordelijk voor berichtlay-out.
- a "wacht" activiteit die de loodtijden tussen werkschemariteraties controleert.
Stap 2: De JavaScript schrijven step-2--writing-the-javascript
Het eerste deel van de code van JavaScript valt met a vraag (queryDef) samen die u de werkschema's met een "pauze"laat identificeren (@state == 13), "fout" (@failed == 1) of "tegengehouden" (@state == 20) status.
De interne naam van de werkschemamap aan controle wordt gegeven in de volgende voorwaarde:
<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();
Het tweede deel van de code van JavaScript laat u een bericht voor elk werkschema tonen dat op de status wordt gebaseerd die tijdens de vraag wordt teruggekregen.
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;
Stap 3: De 'test'-activiteit maken step-3--creating-the--test--activity
De "Test"activiteit laat u bepalen of een levering moet worden verzonden of of het controlewerkschema een andere die cyclus moet in werking stellen op de "Wacht"activiteit wordt gebaseerd.
Een levering wordt verzonden naar de supervisor als minstens één van de drie gebeurtenisvariabelen "vars.strWorkflowError", "vars.strWorkflowPaused", of "vars.strWorkflowStop"niet-void is.
De activiteit "wacht"kan worden gevormd om het controlewerkschema met regelmatige intervallen opnieuw te beginnen. Voor dit gebruiksgeval, de wachttijdtijd wordt geplaatst aan één uur.
Stap 4: De levering voorbereiden step-4--preparing-the-delivery
De "activiteit van de Levering"is gebaseerd op a leveringsmalplaatje opgeslagen in de Middelen > Malplaatjes > de malplaatjes van de Levering knoop.
Deze sjabloon moet het volgende bevatten:
-
het e-mailadres van de supervisor.
-
inhoud van HTML voor het opnemen van gepersonaliseerde tekst.
De drie gedeclareerde variabelen (WF_Stop, WF_Paused, WF_Error) komen overeen met de drie workflowgebeurtenisvariabelen.
Deze variabelen moeten in het lusje van Variabelen van de eigenschappen van het leveringsmalplaatje worden verklaard.
Om de inhoud van de variabelen van de werkschemagebeurtenis terug te krijgen, moet u de variabelen verklaren specifiek voor de levering die met waarden zullen worden geïnitialiseerd die door de code van JavaScript zijn teruggekeerd.
De leveringssjabloon heeft de volgende inhoud:
Zodra het malplaatje is gecreeerd en goedgekeurd, moet u de activiteit van de Levering vormen aan:
- Koppel de activiteit van de "Levering"aan eerder gecreeerd leveringsmalplaatje.
- Koppel de de gebeurtenisvariabelen van het werkschema aan die specifiek voor het leveringsmalplaatje.
Dubbelklik de activiteit van de Levering en selecteer de volgende opties:
-
Levering: selecteer Nieuw, die van een malplaatje wordt gecreeerd, en selecteer het eerder gecreeerde leveringsmalplaatje.
-
Voor de Ontvangers en de gebieden van de Inhoud, uitgezocht die in de levering wordt gespecificeerd.
-
Uit te voeren actie: selecteer voorbereidingen treffen en beginnen.
-
Uncheck de optie van de Fouten van het Proces.
-
Ga naar het lusje van het Manuscript van de Levering activiteit, voeg drie karakterkoord typevariabelen via het menu van het verpersoonlijkingsgebied toe.
De drie gedeclareerde variabelen zijn:
code language-none delivery.variables._var[0].stringValue = vars.strWorkflowError; delivery.variables._var[1].stringValue = vars.strWorkflowPaused; delivery.variables._var[2].stringValue = vars.strWorkflowStop;
Zodra deze controlewerkstroom wordt gelanceerd, verzendt het het volgende overzicht naar de ontvanger: