Workflow 指令碼式元素、動作和原則需要一般工作流程工作的指令碼範例。您可以將這些範例剪下並貼上至您的指令碼式元素中,然後調整成您需要的內容。

傳回目前使用者執行的所有工作流程

下列 JavaScript 範例包含從伺服器執行的所有工作流程,並檢查這些工作流程是否屬於目前使用者。

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;

存取目前工作流程 Token

您可使用 workflow 變數來存取目前工作流程 Token。這是提供執行目前工作流程之存取權的 WorkflowToken 類型物件。下列 JavaScript 範例會取得工作流程 Token 的識別碼及其開始日期。

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

排程工作流程

下列 JavaScript 範例會以指定的內容集啟動工作流程,然後將工作流程排程在一小時後啟動。

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);

針對在迴圈中選取的物件執行工作流程

下列 JavaScript 範例使用虛擬機器的陣列,並在 For 迴圈中針對每個虛擬機器分別執行工作流程。VMsworkflowToRun 均為工作流程輸入。

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);
}