Workflow-Skriptelemente, Aktionen und Richtlinien erfordern die Skripterstellung für häufige Workflowaufgaben. Sie können diese Beispiele in Ihre(n) Skriptelementen ausschneiden, einfügen und anpassen.

Zurückgeben aller Workflow, die vom aktuellen Benutzer ausgeführt werden

Das folgende JavaScript-Beispiel ruft alle Workflowausführungen von diesem Server ab und prüft, ob sie dem aktuellen Benutzer gehören.

var allTokens = Server.findAllForType('WorkflowToken');
var currentUser = Server.getCredential().username;
var res = [];
for(var i = 0; i<res.length; i++){
	if(allTokens[i].runningUserName == currentUser){
	  res.push(allTokens[i]);
	}
}
return res;

Zugriff auf den aktuellen Workflowtoken

Sie können auf den aktuellen Workflowtoken mithilfe der Variablen workflow zugreifen. Sie ist ein Objekt des Typs WorkflowToken und bietet den Zugriff auf den aktuellen Workflowdurchgang. Das folgende JavaScript-Beispiel ruft den Bezeichner des Workflowtokens und sein Startdatum ab.

System.log("Current workflow run ID: " + workflow.id);
System.log("Current workflow run start date: "+workflow.startDate);

Planen eines Workflows

Das folgende JavaScript-Beispiel startet einen Workflow mit einem gegebenen Satz von Eigenschaften und plant dann, ihn eine Stunde später zu starten.

var workflowToLaunch = myWorkflow ;  
// create parameters 
var workflowParameters = new Properties() ;
workflowParameters.put("name","John Doe") ;
// change the task name 
workflowParameters.put("__taskName","Workflow for John Doe") ; 

// create scheduling date one hour in the future
var workflowScheduleDate = new Date() ; 
var time = workflowScheduleDate.getTime() + (60*60*1000) ;
workflowScheduleDate.setTime(time) ; var scheduledTask =
workflowToLaunch.schedule(workflowParameters,workflowScheduleDate);

Ausführen eines Workflows mit einer Auswahl von Objekten in einer Schleife

Das folgende JavaScript-Beispiel übernimmt das Array von virtuellen Maschinen und führt einen Workflow für jede von ihnen in einer For-Schleife aus. VMs und workflowToRun sind Workfloweingaben.

var len=VMs.length;
for (var i=0; i < len; i++ )
{
 var VM = VMs[i];
 //var workflowToLaunch = Server.getWorkflowWithId("workflowId");
 var workflowToLaunch = workflowToRun;
 if (workflowToLaunch == null) {
 throw "Workflow not found";
 }
var workflowParameters = new Properties();
workflowParameters.put("vm",VM);
var wfToken = workflowToLaunch.execute(workflowParameters);
System.log ("Ran workflow on " +VM.name);
}