Toggle menu
876
3.8K
30.2K
279.1K
Catglobe Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

WorkflowScript class: Difference between revisions

From Catglobe Wiki
Tungocman (talk | contribs)
No edit summary
Tungocman (talk | contribs)
No edit summary
Line 39: Line 39:
/* Input Parameters for this workflow */
/* Input Parameters for this workflow */
// Required - Set values here
// Required - Set values here
number inputWorkflow_RID;
number sourceWorkflowRID;
string nameOfTheCopy;
string nameOfCopy;
number parentResourceId;
number parentResourceId;  


/* Other variables */
/* Other variables */
Line 47: Line 47:
string CgScript;
string CgScript;
bool BatchMode;
bool BatchMode;
number ImpersonatedUser_RID;
number ImpersonatedUser;
number Questionnaire_RID;
number Questionnaire;
number DataCache_RID;
number DataCache;
object error;
object error;


/* Checking the required parameters */
/* Checking the required parameters */
if(inputWorkflow_RID == empty) {
if(sourceWorkflowRID == empty) {
print("Please set value for parameter: inputWorkflow_RID. Workflow failed.");
print("Please set value for parameter: sourceWorkflowRID. Workflow failed.");
return;
return;
}
}
if(nameOfTheCopy == empty) {
if(nameOfCopy == empty) {
print("Please set value for parameter: nameOfTheCopy. Workflow failed.");
print("Please set value for parameter: nameOfCopy. Workflow failed.");
return;
return;
}
}
Line 67: Line 67:


/* Now doing the job: Making the copy */
/* Now doing the job: Making the copy */
object source = new WorkflowScript(inputWorkflow_RID);
object source = new WorkflowScript(sourceWorkflowRID);
object dest;
object dest;


Line 85: Line 85:
// Get all properties of this Tabulation Script
// Get all properties of this Tabulation Script
CgScript = source.CgScript;
CgScript = source.CgScript;
DataCache_RID = source.DataCache;
DataCache = source.DataCache;
 
try
// because this property is not available for Tabulation Script in 581 version
ImpersonatedUser = source.ImpersonatedUser;
catch(error) {}
     dest = new WorkflowScript(CgScript, true);
     dest = new WorkflowScript(CgScript, true);
dest.DataCache = DataCache_RID;
dest.DataCache = DataCache;
try
// because this property is not available for Tabulation Script in 581 version
dest.ImpersonatedUser = ImpersonatedUser;
catch(error) {}
// Save the copied one
// Save the copied one
dest.Save(nameOfTheCopy, parentResourceId);
dest.Save(nameOfCopy, parentResourceId);
print("Completed! The resource if of new copyied one: " + dest.UniqueId);
print("Completed! The resource id of new copied one: " + dest.UniqueId);
return dest;
return dest;
Line 101: Line 112:
// Get all properties of this non-Tabulation Script
// Get all properties of this non-Tabulation Script
CgScript = source.CgScript;
CgScript = source.CgScript;
Questionnaire_RID = source.Questionnaire;
Questionnaire = source.Questionnaire;
BatchMode = source.BatchMode;
BatchMode = source.BatchMode;
ImpersonatedUser = source.ImpersonatedUser;
     dest = new WorkflowScript(CgScript, false);
     dest = new WorkflowScript(CgScript, false);
dest.Questionnaire = Questionnaire_RID;
dest.Questionnaire = Questionnaire;
dest.BatchMode = BatchMode;
dest.BatchMode = BatchMode;
dest.ImpersonatedUser = ImpersonatedUser;


// Save the copied one
// Save the copied one
dest.Save(nameOfTheCopy, parentResourceId);
dest.Save(nameOfCopy, parentResourceId);
print("Completed! The resource if of new copyied one: " + dest.UniqueId);
print("Completed! The resource id of new copied one: " + dest.UniqueId);
return dest;
return dest;
}
}
</source>
</source>

Revision as of 02:54, 20 February 2012

WorkflowScript



Class to manipulate workflows.

Constructors

  • (number resourceId "Resource id of the script to load") - Load existing workflow
  • (string script "The script to use.", bool isTabulation "Set if this is a tabulation script or not") - Make new workflow

Methods

  • AnyType Call(params AnyType) - Run the script with the given arguments
  • AnyType Invoke(array arguments "The arguments to the script") - Run the script with the given arguments
  • Empty Save(string name "Name of the resource. If empty it will not change the existing name. Required for new scripts.", number parentResourceId "Parent of the resource. If 0 it will not change the existing. Required for new scripts.") - Save the current workflowscript.
  • Empty Save() - Save the current workflowscript using the existing name and parent.
  • string ToString() - The string representation of the object.

Properties

  • bool BatchMode { get; set; } - Get/Set the if the non-tabulation script should run in batch mode.
  • string CgScript { get; } - The script.
  • number DataCache { get; set; } - Get/Set the DataCache under which to run the script under. 0 means clear setting. Only for tabulation scripts.
  • number ImpersonatedUser { get; set; } - Get/Set the user under which to run the script under. Must have Full access to the user to set as impersonation. 0 means clear impersonation.
  • string ObjectTypeName { get; } - The name of the type of object.
  • number Questionnaire { get; set; } - Get/Set the Questionnaire under which to run the script under. 0 means clear setting. Only for non-tabulation scripts.
  • TypeInformation TypeInformation { get; } - Get information about this class.
  • number UniqueId { get; } - The resource id of the workflow.


Examples

/*
 *    MAKE A COPY OF A SPECIFIED WORKFLOW
 */

/* Input Parameters for this workflow */
// Required - Set values here
number sourceWorkflowRID;
string nameOfCopy;
number parentResourceId;    

/* Other variables */
bool isTabulation;
string CgScript;
bool BatchMode;
number ImpersonatedUser;
number Questionnaire;
number DataCache;
object error;

/* Checking the required parameters */
if(sourceWorkflowRID == empty) {
	print("Please set value for parameter: sourceWorkflowRID. Workflow failed.");
	return;
}
if(nameOfCopy == empty) {
	print("Please set value for parameter: nameOfCopy. Workflow failed.");
	return;
}
if(parentResourceId == empty) {
	print("Please set value for parameter: parentResourceId. Workflow failed.");
	return;
}

/* Now doing the job: Making the copy */
object source = new WorkflowScript(sourceWorkflowRID);
object dest;

// Check that the source is Tabulation Script or non-Tabulation Script
try {
	if(source.DataCache != empty) // if throw error then the source is non-tabulation script
		isTabulation = true;
}
catch(error){
	// so the source is non-tabulation script
	isTabulation = false;
}

if(isTabulation == true) 
// The source is Tabulation Script
{
	// Get all properties of this Tabulation Script
	CgScript = source.CgScript;
	DataCache = source.DataCache;

	try 
		// because this property is not available for Tabulation Script in 581 version
		ImpersonatedUser = source.ImpersonatedUser;
	catch(error) {}
	

    dest = new WorkflowScript(CgScript, true);
	dest.DataCache = DataCache;
	
	try 
		// because this property is not available for Tabulation Script in 581 version
		dest.ImpersonatedUser = ImpersonatedUser;
	catch(error) {}
	
	// Save the copied one
	dest.Save(nameOfCopy, parentResourceId);
	
	print("Completed! The resource id of new copied one: " + dest.UniqueId);	
	
	return dest;
} 
// The source is non-Tabulation Script
else {
	// Get all properties of this non-Tabulation Script
	CgScript = source.CgScript;
	Questionnaire = source.Questionnaire;
	BatchMode = source.BatchMode;
	ImpersonatedUser = source.ImpersonatedUser;
	
    dest = new WorkflowScript(CgScript, false);
	dest.Questionnaire = Questionnaire;
	dest.BatchMode = BatchMode;
	dest.ImpersonatedUser = ImpersonatedUser;

	// Save the copied one
	dest.Save(nameOfCopy, parentResourceId);
	
	print("Completed! The resource id of new copied one: " + dest.UniqueId);	
	
	return dest;
}