27 $this->element_varname =
'$_v_' . $element_id;
29 $event_definition =
null;
30 if (count($element[
'children'])) {
31 foreach ($element[
'children'] as $child) {
32 if ($child[
'name'] ==
'messageEventDefinition') {
34 $child[
'attributes'][
'messageRef'],
39 if ($child[
'name'] ==
'signalEventDefinition') {
41 $child[
'attributes'][
'signalRef'],
46 if ($child[
'name'] ==
'timerEventDefinition') {
48 $child[
'attributes'][
'id'],
49 'intermediateCatchEvent',
56 $class_object->
registerRequire(
'./Services/WorkflowEngine/classes/nodes/class.ilBasicNode.php');
58 ' . $this->element_varname .
' = new ilBasicNode($this);
59 $this->addNode(' . $this->element_varname .
');
60 ' . $this->element_varname .
'->setName(\'' . $this->element_varname .
'\');
63 if (is_array($event_definition)) {
64 $class_object->registerRequire('./
Services/WorkflowEngine/classes/detectors/
class.ilEventDetector.php
');
66 ' . $this->element_varname . '_detector =
new ilEventDetector(
' . $this->element_varname . ');
67 ' . $this->element_varname . '_detector->setName(\
'' . $this->element_varname .
'\');
68 ' . $this->element_varname . '_detector->setEvent(
"' . $event_definition['type'] . '",
"' . $event_definition['content'] . '");
69 ' . $this->element_varname . '_detector->setEventSubject(
"' . $event_definition['subject_type'] . '",
"' . $event_definition['subject_id'] . '");
70 ' . $this->element_varname . '_detector->setEventContext(
"' . $event_definition['context_type'] . '",
"' . $event_definition['context_id'] . '");
72 if (isset($event_definition['listening_start
']) || isset($event_definition['listening_end
'])) {
73 $code .= $this->element_varname . '_detector->setListeningTimeframe(
' . (int) $event_definition['listening_start
'] .
74 ',
' . (int) $event_definition['listening_end
'] . ');
';
75 } elseif (isset($event_definition['listening_relative
']) && isset($event_definition['listening_interval
'])) {
76 $code .= $this->element_varname . '_detector->setTimerRelative(
true);
';
77 $code .= $this->element_varname . '_detector->setTimerLimit(
' . (int) $event_definition['listening_interval
'] . ');
';
81 $code .= $this->handleDataAssociations($element, $class_object, $this->element_varname);
An exception for terminatinating execution or to throw for unit testing.
static extractILIASEventDefinitionFromProcess($start_event_ref, $type, $bpmn2_array)
static extractTimeDateEventDefinitionFromElement($start_event_ref, $type, $bpmn2_array)
static xsIDToPHPVarname($xsID)
@noinspection PhpIncludeInspection
Class ilReceiveTaskElement.
getPHP($element, ilWorkflowScaffold $class_object)
Class ilWorkflowScaffold.
registerRequire($require)
Class ilCertificateAppEventListener.