diff --git a/workflow/engine/classes/class.derivation.php b/workflow/engine/classes/class.derivation.php
index 73e9c2403..e6e4718ba 100755
--- a/workflow/engine/classes/class.derivation.php
+++ b/workflow/engine/classes/class.derivation.php
@@ -112,7 +112,7 @@ class Derivation
$arrayTaskData["NEXT_TASK"]["TAS_PARENT"] = "";
}
- $arrayTaskData["NEXT_TASK"]["USER_ASSIGNED"] = (!in_array($arrayTaskData["NEXT_TASK"]["TAS_TYPE"], array("GATEWAYTOGATEWAY", "END-MESSAGE-EVENT", "END-EMAIL-EVENT")))? $this->getNextAssignedUser($arrayTaskData) : array("USR_UID" => "");
+ $arrayTaskData["NEXT_TASK"]["USER_ASSIGNED"] = (!in_array($arrayTaskData["NEXT_TASK"]["TAS_TYPE"], array("GATEWAYTOGATEWAY", "END-MESSAGE-EVENT", "SCRIPT-TASK", "END-MESSAGE-EVENT", "END-EMAIL-EVENT")))? $this->getNextAssignedUser($arrayTaskData) : array("USR_UID" => "", "USR_FULLNAME" => "");
}
//Return
diff --git a/workflow/engine/classes/class.processes.php b/workflow/engine/classes/class.processes.php
index fdbb566be..4841cab7d 100755
--- a/workflow/engine/classes/class.processes.php
+++ b/workflow/engine/classes/class.processes.php
@@ -3719,6 +3719,7 @@ class Processes
$oData->messageType = $this->getMessageTypes($sProUid);
$oData->messageTypeVariable = $this->getMessageTypeVariables($sProUid);
$oData->messageEventDefinition = $this->getMessageEventDefinitions($sProUid);
+ $oData->scriptTask = $this->getScriptTasks($sProUid);
$oData->emailEvent = $this->getEmailEvent($sProUid);
$oData->filesManager = $this->getFilesManager($sProUid);
$oData->groupwfs = $this->groupwfsMerge($oData->groupwfs, $oData->processUser, "USR_UID");
@@ -4820,6 +4821,7 @@ class Processes
$this->createMessageType((isset($oData->messageType))? $oData->messageType : array());
$this->createMessageTypeVariable((isset($oData->messageTypeVariable))? $oData->messageTypeVariable : array());
$this->createMessageEventDefinition($arrayProcessData["PRO_UID"], (isset($oData->messageEventDefinition))? $oData->messageEventDefinition : array());
+ $this->createScriptTask($arrayProcessData["PRO_UID"], (isset($oData->scriptTask))? $oData->scriptTask : array());
$this->createEmailEvent($arrayProcessData["PRO_UID"], (isset($oData->emailEvent))? $oData->emailEvent : array());
$this->createFilesManager($arrayProcessData["PRO_UID"], (isset($oData->filesManager))? $oData->filesManager : array());
}
diff --git a/workflow/engine/classes/model/map/EmailEventMapBuilder.php b/workflow/engine/classes/model/map/EmailEventMapBuilder.php
index c85defca8..83ea61ceb 100644
--- a/workflow/engine/classes/model/map/EmailEventMapBuilder.php
+++ b/workflow/engine/classes/model/map/EmailEventMapBuilder.php
@@ -77,7 +77,7 @@ class EmailEventMapBuilder
$tMap->addColumn('EMAIL_EVENT_SUBJECT', 'EmailEventSubject', 'string', CreoleTypes::VARCHAR, false, 150);
- $tMap->addColumn('EMAIL_EVENT_BODY', 'EmailEventBody', 'string', CreoleTypes::LONGVARCHAR, true, null);
+ $tMap->addColumn('PRF_UID', 'PrfUid', 'string', CreoleTypes::VARCHAR, false, 32);
} // doBuild()
diff --git a/workflow/engine/classes/model/map/TaskMapBuilder.php b/workflow/engine/classes/model/map/TaskMapBuilder.php
index fd9a2e867..56eeec381 100755
--- a/workflow/engine/classes/model/map/TaskMapBuilder.php
+++ b/workflow/engine/classes/model/map/TaskMapBuilder.php
@@ -159,7 +159,7 @@ class TaskMapBuilder
$tMap->addColumn('TAS_SELFSERVICE_EXECUTION', 'TasSelfserviceExecution', 'string', CreoleTypes::VARCHAR, false, 15);
- $tMap->addValidator('TAS_TYPE', 'validValues', 'propel.validator.ValidValuesValidator', 'NORMAL|ADHOC|SUBPROCESS|HIDDEN|GATEWAYTOGATEWAY|WEBENTRYEVENT|END-MESSAGE-EVENT|START-MESSAGE-EVENT|INTERMEDIATE-THROW-MESSAGE-EVENT|INTERMEDIATE-CATCH-MESSAGE-EVENT|END-EMAIL-EVENT', 'Please enter a valid value for TAS_TYPE');
+ $tMap->addValidator('TAS_TYPE', 'validValues', 'propel.validator.ValidValuesValidator', 'NORMAL|ADHOC|SUBPROCESS|HIDDEN|GATEWAYTOGATEWAY|WEBENTRYEVENT|END-MESSAGE-EVENT|START-MESSAGE-EVENT|INTERMEDIATE-THROW-MESSAGE-EVENT|INTERMEDIATE-CATCH-MESSAGE-EVENT|SCRIPT-TAS|END-EMAIL-EVENT', 'Please enter a valid value for TAS_TYPE');
$tMap->addValidator('TAS_TIMEUNIT', 'validValues', 'propel.validator.ValidValuesValidator', 'MINUTES|HOURS|DAYS|WEEKS|MONTHS', 'Please select a valid value for TAS_TIMEUNIT.');
diff --git a/workflow/engine/classes/model/om/BaseEmailEvent.php b/workflow/engine/classes/model/om/BaseEmailEvent.php
index 98dc81de1..97c25513b 100644
--- a/workflow/engine/classes/model/om/BaseEmailEvent.php
+++ b/workflow/engine/classes/model/om/BaseEmailEvent.php
@@ -64,10 +64,10 @@ abstract class BaseEmailEvent extends BaseObject implements Persistent
protected $email_event_subject = '';
/**
- * The value for the email_event_body field.
+ * The value for the prf_uid field.
* @var string
*/
- protected $email_event_body;
+ protected $prf_uid = '';
/**
* Flag to prevent endless save loop, if this object is referenced
@@ -150,14 +150,14 @@ abstract class BaseEmailEvent extends BaseObject implements Persistent
}
/**
- * Get the [email_event_body] column value.
+ * Get the [prf_uid] column value.
*
* @return string
*/
- public function getEmailEventBody()
+ public function getPrfUid()
{
- return $this->email_event_body;
+ return $this->prf_uid;
}
/**
@@ -293,12 +293,12 @@ abstract class BaseEmailEvent extends BaseObject implements Persistent
} // setEmailEventSubject()
/**
- * Set the value of [email_event_body] column.
+ * Set the value of [prf_uid] column.
*
* @param string $v new value
* @return void
*/
- public function setEmailEventBody($v)
+ public function setPrfUid($v)
{
// Since the native PHP type for this column is string,
@@ -307,12 +307,12 @@ abstract class BaseEmailEvent extends BaseObject implements Persistent
$v = (string) $v;
}
- if ($this->email_event_body !== $v) {
- $this->email_event_body = $v;
- $this->modifiedColumns[] = EmailEventPeer::EMAIL_EVENT_BODY;
+ if ($this->prf_uid !== $v || $v === '') {
+ $this->prf_uid = $v;
+ $this->modifiedColumns[] = EmailEventPeer::PRF_UID;
}
- } // setEmailEventBody()
+ } // setPrfUid()
/**
* Hydrates (populates) the object variables with values from the database resultset.
@@ -343,7 +343,7 @@ abstract class BaseEmailEvent extends BaseObject implements Persistent
$this->email_event_subject = $rs->getString($startcol + 5);
- $this->email_event_body = $rs->getString($startcol + 6);
+ $this->prf_uid = $rs->getString($startcol + 6);
$this->resetModified();
@@ -573,7 +573,7 @@ abstract class BaseEmailEvent extends BaseObject implements Persistent
return $this->getEmailEventSubject();
break;
case 6:
- return $this->getEmailEventBody();
+ return $this->getPrfUid();
break;
default:
return null;
@@ -601,7 +601,7 @@ abstract class BaseEmailEvent extends BaseObject implements Persistent
$keys[3] => $this->getEmailEventFrom(),
$keys[4] => $this->getEmailEventTo(),
$keys[5] => $this->getEmailEventSubject(),
- $keys[6] => $this->getEmailEventBody(),
+ $keys[6] => $this->getPrfUid(),
);
return $result;
}
@@ -652,7 +652,7 @@ abstract class BaseEmailEvent extends BaseObject implements Persistent
$this->setEmailEventSubject($value);
break;
case 6:
- $this->setEmailEventBody($value);
+ $this->setPrfUid($value);
break;
} // switch()
}
@@ -702,7 +702,7 @@ abstract class BaseEmailEvent extends BaseObject implements Persistent
}
if (array_key_exists($keys[6], $arr)) {
- $this->setEmailEventBody($arr[$keys[6]]);
+ $this->setPrfUid($arr[$keys[6]]);
}
}
@@ -740,8 +740,8 @@ abstract class BaseEmailEvent extends BaseObject implements Persistent
$criteria->add(EmailEventPeer::EMAIL_EVENT_SUBJECT, $this->email_event_subject);
}
- if ($this->isColumnModified(EmailEventPeer::EMAIL_EVENT_BODY)) {
- $criteria->add(EmailEventPeer::EMAIL_EVENT_BODY, $this->email_event_body);
+ if ($this->isColumnModified(EmailEventPeer::PRF_UID)) {
+ $criteria->add(EmailEventPeer::PRF_UID, $this->prf_uid);
}
@@ -808,7 +808,7 @@ abstract class BaseEmailEvent extends BaseObject implements Persistent
$copyObj->setEmailEventSubject($this->email_event_subject);
- $copyObj->setEmailEventBody($this->email_event_body);
+ $copyObj->setPrfUid($this->prf_uid);
$copyObj->setNew(true);
diff --git a/workflow/engine/classes/model/om/BaseEmailEventPeer.php b/workflow/engine/classes/model/om/BaseEmailEventPeer.php
index ddde15970..2ed553392 100644
--- a/workflow/engine/classes/model/om/BaseEmailEventPeer.php
+++ b/workflow/engine/classes/model/om/BaseEmailEventPeer.php
@@ -49,8 +49,8 @@ abstract class BaseEmailEventPeer
/** the column name for the EMAIL_EVENT_SUBJECT field */
const EMAIL_EVENT_SUBJECT = 'EMAIL_EVENT.EMAIL_EVENT_SUBJECT';
- /** the column name for the EMAIL_EVENT_BODY field */
- const EMAIL_EVENT_BODY = 'EMAIL_EVENT.EMAIL_EVENT_BODY';
+ /** the column name for the PRF_UID field */
+ const PRF_UID = 'EMAIL_EVENT.PRF_UID';
/** The PHP to DB Name Mapping */
private static $phpNameMap = null;
@@ -63,9 +63,9 @@ abstract class BaseEmailEventPeer
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/
private static $fieldNames = array (
- BasePeer::TYPE_PHPNAME => array ('EmailEventUid', 'PrjUid', 'EvnUid', 'EmailEventFrom', 'EmailEventTo', 'EmailEventSubject', 'EmailEventBody', ),
- BasePeer::TYPE_COLNAME => array (EmailEventPeer::EMAIL_EVENT_UID, EmailEventPeer::PRJ_UID, EmailEventPeer::EVN_UID, EmailEventPeer::EMAIL_EVENT_FROM, EmailEventPeer::EMAIL_EVENT_TO, EmailEventPeer::EMAIL_EVENT_SUBJECT, EmailEventPeer::EMAIL_EVENT_BODY, ),
- BasePeer::TYPE_FIELDNAME => array ('EMAIL_EVENT_UID', 'PRJ_UID', 'EVN_UID', 'EMAIL_EVENT_FROM', 'EMAIL_EVENT_TO', 'EMAIL_EVENT_SUBJECT', 'EMAIL_EVENT_BODY', ),
+ BasePeer::TYPE_PHPNAME => array ('EmailEventUid', 'PrjUid', 'EvnUid', 'EmailEventFrom', 'EmailEventTo', 'EmailEventSubject', 'PrfUid', ),
+ BasePeer::TYPE_COLNAME => array (EmailEventPeer::EMAIL_EVENT_UID, EmailEventPeer::PRJ_UID, EmailEventPeer::EVN_UID, EmailEventPeer::EMAIL_EVENT_FROM, EmailEventPeer::EMAIL_EVENT_TO, EmailEventPeer::EMAIL_EVENT_SUBJECT, EmailEventPeer::PRF_UID, ),
+ BasePeer::TYPE_FIELDNAME => array ('EMAIL_EVENT_UID', 'PRJ_UID', 'EVN_UID', 'EMAIL_EVENT_FROM', 'EMAIL_EVENT_TO', 'EMAIL_EVENT_SUBJECT', 'PRF_UID', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, )
);
@@ -76,9 +76,9 @@ abstract class BaseEmailEventPeer
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
*/
private static $fieldKeys = array (
- BasePeer::TYPE_PHPNAME => array ('EmailEventUid' => 0, 'PrjUid' => 1, 'EvnUid' => 2, 'EmailEventFrom' => 3, 'EmailEventTo' => 4, 'EmailEventSubject' => 5, 'EmailEventBody' => 6, ),
- BasePeer::TYPE_COLNAME => array (EmailEventPeer::EMAIL_EVENT_UID => 0, EmailEventPeer::PRJ_UID => 1, EmailEventPeer::EVN_UID => 2, EmailEventPeer::EMAIL_EVENT_FROM => 3, EmailEventPeer::EMAIL_EVENT_TO => 4, EmailEventPeer::EMAIL_EVENT_SUBJECT => 5, EmailEventPeer::EMAIL_EVENT_BODY => 6, ),
- BasePeer::TYPE_FIELDNAME => array ('EMAIL_EVENT_UID' => 0, 'PRJ_UID' => 1, 'EVN_UID' => 2, 'EMAIL_EVENT_FROM' => 3, 'EMAIL_EVENT_TO' => 4, 'EMAIL_EVENT_SUBJECT' => 5, 'EMAIL_EVENT_BODY' => 6, ),
+ BasePeer::TYPE_PHPNAME => array ('EmailEventUid' => 0, 'PrjUid' => 1, 'EvnUid' => 2, 'EmailEventFrom' => 3, 'EmailEventTo' => 4, 'EmailEventSubject' => 5, 'PrfUid' => 6, ),
+ BasePeer::TYPE_COLNAME => array (EmailEventPeer::EMAIL_EVENT_UID => 0, EmailEventPeer::PRJ_UID => 1, EmailEventPeer::EVN_UID => 2, EmailEventPeer::EMAIL_EVENT_FROM => 3, EmailEventPeer::EMAIL_EVENT_TO => 4, EmailEventPeer::EMAIL_EVENT_SUBJECT => 5, EmailEventPeer::PRF_UID => 6, ),
+ BasePeer::TYPE_FIELDNAME => array ('EMAIL_EVENT_UID' => 0, 'PRJ_UID' => 1, 'EVN_UID' => 2, 'EMAIL_EVENT_FROM' => 3, 'EMAIL_EVENT_TO' => 4, 'EMAIL_EVENT_SUBJECT' => 5, 'PRF_UID' => 6, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, )
);
@@ -192,7 +192,7 @@ abstract class BaseEmailEventPeer
$criteria->addSelectColumn(EmailEventPeer::EMAIL_EVENT_SUBJECT);
- $criteria->addSelectColumn(EmailEventPeer::EMAIL_EVENT_BODY);
+ $criteria->addSelectColumn(EmailEventPeer::PRF_UID);
}
diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml
index fae263cea..58470d5d0 100755
--- a/workflow/engine/config/schema.xml
+++ b/workflow/engine/config/schema.xml
@@ -1255,7 +1255,7 @@
-
+
@@ -5056,6 +5056,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5075,6 +5098,6 @@
-
+
diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql
index 00f7cccad..f93af3910 100755
--- a/workflow/engine/data/mysql/schema.sql
+++ b/workflow/engine/data/mysql/schema.sql
@@ -2829,16 +2829,28 @@ CREATE TABLE `CATALOG`
PRIMARY KEY (`CAT_UID`, `CAT_TYPE`),
KEY `indexType`( `CAT_TYPE`)
)ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Definitions catalog.';
-# This restores the fkey checks, after having unset them earlier
-SET FOREIGN_KEY_CHECKS = 1;
+
+
+#-----------------------------------------------------------------------------
+#-- TABLE: SCRIPT_TASK
+#-----------------------------------------------------------------------------
+DROP TABLE IF EXISTS SCRIPT_TASK;
+CREATE TABLE SCRIPT_TASK
+(
+ SCRTAS_UID VARCHAR(32) NOT NULL,
+ PRJ_UID VARCHAR(32) NOT NULL,
+ ACT_UID VARCHAR(32) NOT NULL,
+ SCRTAS_OBJ_TYPE VARCHAR(10) default 'TRIGGER' NOT NULL,
+ SCRTAS_OBJ_UID VARCHAR(32) NOT NULL,
+
+ PRIMARY KEY (SCRTAS_UID)
+)ENGINE=InnoDB DEFAULT CHARSET='utf8';
#-----------------------------------------------------------------------------
#-- EMAIL_EVENT
#-----------------------------------------------------------------------------
DROP TABLE IF EXISTS `EMAIL_EVENT`;
-
-
CREATE TABLE `EMAIL_EVENT`
(
`EMAIL_EVENT_UID` VARCHAR(32) NOT NULL,
@@ -2847,7 +2859,9 @@ CREATE TABLE `EMAIL_EVENT`
`EMAIL_EVENT_FROM` VARCHAR(100) default '' NOT NULL,
`EMAIL_EVENT_TO` MEDIUMTEXT NOT NULL,
`EMAIL_EVENT_SUBJECT` VARCHAR(150) default '' NOT NULL,
- `EMAIL_EVENT_BODY` MEDIUMTEXT NOT NULL,
+ `PRF_UID` VARCHAR(32) default '' NOT NULL,
PRIMARY KEY (`EMAIL_EVENT_UID`)
)ENGINE=InnoDB DEFAULT CHARSET='utf8';
+# This restores the fkey checks, after having unset them earlier
+SET FOREIGN_KEY_CHECKS = 1;
\ No newline at end of file
diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/EmailEvent.php b/workflow/engine/src/ProcessMaker/BusinessModel/EmailEvent.php
index 70a59042d..af935b29c 100644
--- a/workflow/engine/src/ProcessMaker/BusinessModel/EmailEvent.php
+++ b/workflow/engine/src/ProcessMaker/BusinessModel/EmailEvent.php
@@ -10,7 +10,7 @@ class EmailEvent
"EMAIL_EVENT_FROM" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "messageTypeUid"),
"EMAIL_EVENT_TO" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "EmailEventUserUid"),
"EMAIL_EVENT_SUBJECT" => array("type" => "array", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "EmailEventVariables"),
- "EMAIL_EVENT_BODY" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "EmailEventCorrelation")
+ "PRF_UID" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "EmailEventCorrelation")
);
*/
@@ -214,8 +214,9 @@ class EmailEvent
//Delete file
$filesManager = new \ProcessMaker\BusinessModel\FilesManager();
$arrayData = $this->getEmailEventDataByUid($pro_uid, $emailEventUid);
+ $arrayData = array_change_key_case($arrayData, CASE_UPPER);
if(sizeof($arrayData)) {
- $prfUid = $arrayData['email_event_body'];
+ $prfUid = $arrayData['PRF_UID'];
$filesManager->deleteProcessFilesManager('',$prfUid);
}
}
@@ -314,7 +315,7 @@ class EmailEvent
$criteria->addSelectColumn(\EmailEventPeer::EMAIL_EVENT_FROM);
$criteria->addSelectColumn(\EmailEventPeer::EMAIL_EVENT_TO);
$criteria->addSelectColumn(\EmailEventPeer::EMAIL_EVENT_SUBJECT);
- $criteria->addSelectColumn(\EmailEventPeer::EMAIL_EVENT_BODY);
+ $criteria->addSelectColumn(\EmailEventPeer::PRF_UID);
return $criteria;
} catch (\Exception $e) {
@@ -442,7 +443,6 @@ class EmailEvent
$contentFile = $filesManager->getProcessFileManager($prj_uid, $prfUid);
\PMFSendMessage($appUID, $arrayData[3], $arrayData[4], '', '', $arrayData[5], $contentFile['prf_filename'], array());
}
- \G::pr($arrayData);echo "template: ".$contentFile['prf_filename'];
}
/**
@@ -459,7 +459,7 @@ class EmailEvent
$newValues = array();
$rowData = $this->verifyIfEmailEventExistsByPrfUid($oldUid, $projectUid);
if(is_array($rowData)) {
- $newValues['EMAIL_EVENT_BODY'] = $newUid;
+ $newValues['PRF_UID'] = $newUid;
$this->update($rowData['EMAIL_EVENT_UID'], $newValues);
}
@@ -481,7 +481,7 @@ class EmailEvent
try {
$criteria = $this->getEmailEventCriteria();
$criteria->add(\EmailEventPeer::PRJ_UID, $projectUid, \Criteria::EQUAL);
- $criteria->add(\EmailEventPeer::EMAIL_EVENT_BODY, $oldUid, \Criteria::EQUAL);
+ $criteria->add(\EmailEventPeer::PRF_UID, $oldUid, \Criteria::EQUAL);
$rsCriteria = \EmailEventPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$rsCriteria->next();
diff --git a/workflow/engine/src/ProcessMaker/Services/api.ini b/workflow/engine/src/ProcessMaker/Services/api.ini
index 43cff9eb2..ae2e8aab7 100644
--- a/workflow/engine/src/ProcessMaker/Services/api.ini
+++ b/workflow/engine/src/ProcessMaker/Services/api.ini
@@ -41,6 +41,7 @@ debug = 1
message-type-variable = "ProcessMaker\Services\Api\Project\MessageType\Variable"
web-entry-event = "ProcessMaker\Services\Api\Project\WebEntryEvent"
message-event-definition = "ProcessMaker\Services\Api\Project\MessageEventDefinition"
+ script-task = "ProcessMaker\Services\Api\Project\ScriptTask"
email-event = "ProcessMaker\Services\Api\Project\EmailEvent"
[alias: projects]