Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
en:extensions:workflowdesigner:execute_workflows_from_php [2014/01/05 14:02] swarnat |
en:extensions:workflowdesigner:execute_workflows_from_php [2016/05/08 19:42] (current) swarnat |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Execution: Local with PHP ====== | ====== Execution: Local with PHP ====== | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | 2016-05-08: Updated to latest and easiest version | ||
+ | </WRAP> | ||
You could execute a workflow manually in your own vtigerCRM extension or PHP file. | You could execute a workflow manually in your own vtigerCRM extension or PHP file. | ||
Line 5: | Line 9: | ||
<code php> | <code php> | ||
- | $current_user = new Users(); | + | require_once(vglobal('root_directory')."/modules/Workflow2/autoload_wf.php"); |
- | $current_user->id = <executingUserID>; | + | |
- | $current_user = $current_user->retrieve_entity_info(<executingUserID>, "Users"); | + | // The ID of the Workflow you want to execute |
+ | $workflow_id = 1; | ||
+ | // The user, which will be used for execution | ||
+ | $executionUserId = 1; | ||
+ | // Specify a CRMID if you want to execute the record in context of this record. (Important for field values) | ||
+ | $crmid = false; | ||
+ | |||
+ | $wfExecuter = new \Workflow\Execute(); | ||
+ | $wfExecuter->setUser($executionUserId); | ||
+ | if(!empty($crmid)) { | ||
+ | $wfExecuter->setRecord($crmid); | ||
+ | } | ||
- | $objWorkflow = new WfMain(<workflowID>, false, $current_user); | + | // Set the $env Variable, which is initially available in Workflow |
+ | $wfExecuter->setEnvironment(array("variable" => "value", "variable2" => "value2")); | ||
- | # If you have a recordID use: | + | $wfExecuter->runById($workflow_id); |
- | $newObj = Workflow_VTEntity::getById("<recordID>"); | + | |
- | # If you don't have a associated recordID and the workflow don't access fields you could use: | + | |
- | # $newObj = Workflow_VTEntity::getDummy(); | + | |
- | + | ||
- | $newObj->loadEnvironment(array("asd" => "asd")); // [optional] Variables, which will be available inside the Workflow in $env | + | |
- | $objWorkflow->setContext($newObj); | + | // If you have created your own trigger to execute multiple workflows, you could use the following function |
- | $objWorkflow->start(); | + | // Notice: Handling of configuration in Settings will be improved in future versions of Workflow Designer |
+ | // $wfExecuter->runByTrigger("TriggerKey"); | ||
</code> | </code> | ||
- | ==== Variables you need ==== | ||
- | | **<executingUserID>** | UserID which is used for permissions ("1" = admin) | | ||
- | | **<workflowID>** | Which workflow you want to execute (ID you get from URL of the editor) | | ||
- | | **<recordID>** | Which record is associated with the execution //(If no record, use the alternative with "getDummy()")// | |