If you execute the timereventcron.php file manually, do you see any errors when those script tasks are executed?
Have you executed the triggers in those script tasks as normal triggers inside a normal task to verify that they work? Run with the debugger enabled to see whether there were any errors.
Some system variables aren't updated correctly in script tasks. From the documentation
Note: The system variables which are available during a script task are the variables that were set during the previous normal task in the process, so the value of the @@USR_USERNAME and @@USER_LOGGED variables will be set to the last user who worked on the case. Similarly, @%INDEX will be set to the delegation index of the previous normal task in the process. If the delegation index of the current script task is necessary, then it will be @%INDEX + 1 if the script task follows a normal task, or @%INDEX + 2 for the second script task after a normal task.
If none of those things is the problem and you can't figure it out, then you can always create three PHP files to execute the triggers using web services. Each of the files would have code like the following:
Code: Select all
//If not executing this on your ProcessMaker server, then change the domain/IP address:
$client = new SoapClient('http://localhost/sysworkflow/en/neoclassic/services/wsdl2');
$username = 'admin'; //set to username
$pass = '[email protected]'; //set to password
$params = array(array('userid'=>$username, 'password'=>$pass));
$result = $client->__SoapCall('login', $params);
if ($result->status_code == 0)
$sessionId = $result->message;
print "Unable to connect to ProcessMaker.\nError Number: $result->status_code\n" .
"Error Message: $result->message\n";
$params = array(array(
'caseId'=>'9782409664a7c94433d0920003544388', //set to the ID of the case
'triggerIndex'=>'3126831054a7dd8781e84a7046772575', //set to ID of trigger
$result = $client->__SoapCall('executeTrigger', $params);
if ($result->status_code != 0)
print "Error: $result->message \n";
Then, your process to execute the trigger would be just a single task:
Then, start a case with the debugger enabled to see the Case ID in the APPLICATION system variable, so you can set it in the above code. Don't end the case, so it will be open forever and triggers can be executed in it forever.
Amos B. Batto ♦ Independent BPM consultant ♦ email: amosbatto[at]yahoo[dot]com
(former ProcessMaker Forum Manager between May 2009 and September 2019)