Se agrega la funcionalidad de start event para Case Scheduler y Web Entry (add)

This commit is contained in:
Daniel Rojas
2014-04-28 10:48:34 -04:00
parent fcae629cee
commit eaeac5372a
3 changed files with 159 additions and 57 deletions

View File

@@ -217,7 +217,7 @@ class CaseScheduler
$oCriteria->add( \UsersPeer::USR_USERNAME, $sWS_USER ); $oCriteria->add( \UsersPeer::USR_USERNAME, $sWS_USER );
$userIsAssigned = \GroupUserPeer::doCount( $oCriteria ); $userIsAssigned = \GroupUserPeer::doCount( $oCriteria );
if (! ($userIsAssigned >= 1)) { if (! ($userIsAssigned >= 1)) {
throw (new \Exception( "The User \'" . $sWS_USER . "\' doesn't have the activity \'" . $sTASKS . "\' assigned")); throw (new \Exception( "The User " . $sWS_USER . " doesn't have the activity " . $sTASKS . " assigned"));
} }
} }
$oDataset = \TaskUserPeer::doSelectRS($oCriteria); $oDataset = \TaskUserPeer::doSelectRS($oCriteria);
@@ -258,7 +258,7 @@ class CaseScheduler
throw (new \Exception( 'Task not found for id: '. $aData['TAS_UID'])); throw (new \Exception( 'Task not found for id: '. $aData['TAS_UID']));
} }
if ($aData['SCH_NAME']=='') { if ($aData['SCH_NAME']=='') {
throw (new \Exception( '\'sch_name\' can\'t be empty')); throw (new \Exception( 'sch_name can not be empty'));
} }
if ($this->existsName($sProcessUID, $aData['SCH_NAME'])) { if ($this->existsName($sProcessUID, $aData['SCH_NAME'])) {
throw (new \Exception( 'Duplicate Case Scheduler name')); throw (new \Exception( 'Duplicate Case Scheduler name'));
@@ -273,23 +273,19 @@ class CaseScheduler
if ($sOption != '5') { if ($sOption != '5') {
$pattern="/^([0-1][0-9]|[2][0-3])[\:]([0-5][0-9])$/"; $pattern="/^([0-1][0-9]|[2][0-3])[\:]([0-5][0-9])$/";
if (!preg_match($pattern, $aData['SCH_START_TIME'])) { if (!preg_match($pattern, $aData['SCH_START_TIME'])) {
throw (new \Exception( 'Invalid value specified for \'sch_start_time\'. Expecting time in HH:MM format (The time can not be increased to 23:59)')); throw (new \Exception( 'Invalid value specified for sch_start_time. Expecting time in HH:MM format (The time can not be increased to 23:59)'));
} }
} }
$patternDate="/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/"; $patternDate="/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/";
if ($sOption == '1' || $sOption == '2' || $sOption == '3') { if ($sOption == '1' || $sOption == '2' || $sOption == '3') {
if (!preg_match($patternDate, $aData['SCH_START_DATE'])) { if (!preg_match($patternDate, $aData['SCH_START_DATE'])) {
throw (new \Exception( 'Invalid value specified for \'sch_start_date\'. Expecting date in \'YYYY-MM-DD\' format, such as \'2014-01-01\'')); throw (new \Exception( 'Invalid value specified for sch_start_date. Expecting date in YYYY-MM-DD format, such as 2014-01-01'));
} }
}
if ($sOption == '1' || $sOption == '2' || $sOption == '3') {
if (!preg_match($patternDate, $aData['SCH_END_DATE'])) { if (!preg_match($patternDate, $aData['SCH_END_DATE'])) {
throw (new \Exception( 'Invalid value specified for \'sch_end_date\'. Expecting date in \'YYYY-MM-DD\' format, such as \'2014-01-01\'')); throw (new \Exception( 'Invalid value specified for sch_end_date. Expecting date in YYYY-MM-DD format, such as 2014-01-01'));
} }
}
if ($sOption == '1' || $sOption == '2' || $sOption == '3') {
if ($aData['SCH_START_DATE'] == "") { if ($aData['SCH_START_DATE'] == "") {
throw (new \Exception( '\'sch_start_date\' can\'t be null')); throw (new \Exception( 'sch_start_date can not be null'));
} }
} }
if ($sOption == '2') { if ($sOption == '2') {
@@ -311,7 +307,6 @@ class CaseScheduler
$sWeeks = ''; $sWeeks = '';
$sMonths = ''; $sMonths = '';
$sStartDay = ''; $sStartDay = '';
$nSW = 0;
$aData['SCH_DAYS_PERFORM_TASK'] = ''; $aData['SCH_DAYS_PERFORM_TASK'] = '';
switch ($sOption) { switch ($sOption) {
case '1': // If the option is zero, set by default 1 case '1': // If the option is zero, set by default 1
@@ -336,7 +331,7 @@ class CaseScheduler
break; break;
case '2': // If the option is zero, set by default 1 case '2': // If the option is zero, set by default 1
if ($aData['SCH_WEEK_DAYS'] == "") { if ($aData['SCH_WEEK_DAYS'] == "") {
throw (new \Exception( '\'sch_week_days\' can\'t be null')); throw (new \Exception( 'sch_week_days can not be null'));
} else { } else {
$weeks = $aData['SCH_WEEK_DAYS']; $weeks = $aData['SCH_WEEK_DAYS'];
$weeks = explode("|", $weeks); $weeks = explode("|", $weeks);
@@ -344,7 +339,7 @@ class CaseScheduler
if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5"|| $row == "6" || $row == "7") { if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5"|| $row == "6" || $row == "7") {
$aData['SCH_WEEK_DAYS'] = $aData['SCH_WEEK_DAYS']; $aData['SCH_WEEK_DAYS'] = $aData['SCH_WEEK_DAYS'];
} else { } else {
throw (new \Exception( 'Invalid value specified for \'sch_week_days\'')); throw (new \Exception( 'Invalid value specified for sch_week_days'));
} }
} }
} }
@@ -355,7 +350,6 @@ class CaseScheduler
$nEveryDays = $aData['SCH_EVERY_DAYS']; $nEveryDays = $aData['SCH_EVERY_DAYS'];
} }
$aData['SCH_EVERY_DAYS'] = $nEveryDays; $aData['SCH_EVERY_DAYS'] = $nEveryDays;
$sWeeks = '';
if (! empty( $aData['SCH_WEEK_DAYS'] )) { if (! empty( $aData['SCH_WEEK_DAYS'] )) {
$aWeekDays = $aData['SCH_WEEK_DAYS']; $aWeekDays = $aData['SCH_WEEK_DAYS'];
} }
@@ -365,50 +359,49 @@ class CaseScheduler
case '3': case '3':
$nStartDay = $aData['SCH_START_DAY']; $nStartDay = $aData['SCH_START_DAY'];
if ($nStartDay == "") { if ($nStartDay == "") {
throw (new \Exception( '\'sch_start_day\' can\'t be null')); throw (new \Exception( 'sch_start_day can not be null'));
} }
if ($nStartDay == 1) { if ($nStartDay == 1) {
if ($aData['SCH_START_DAY_OPT_1'] == "") { if ($aData['SCH_START_DAY_OPT_1'] == "") {
throw (new \Exception( '\'sch_start_day_opt_1\' can\'t be null')); throw (new \Exception( 'sch_start_day_opt_1 can not be null'));
} }
$temp = $aData['SCH_START_DAY_OPT_1']; $temp = $aData['SCH_START_DAY_OPT_1'];
$temp = (int)$temp; $temp = (int)$temp;
if ($temp >= 1 && $temp <= 31) { if ($temp >= 1 && $temp <= 31) {
$aData['SCH_START_DAY_OPT_1'] = $aData['SCH_START_DAY_OPT_1']; $aData['SCH_START_DAY_OPT_1'] = $aData['SCH_START_DAY_OPT_1'];
} else { } else {
throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_1\'. Must be between 1 and 31')); throw (new \Exception( 'Invalid value specified for sch_start_day_opt_1. Must be between 1 and 31'));
} }
$aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_1']; $aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_1'];
} else { } else {
if ($aData['SCH_START_DAY_OPT_2'] == "") { if ($aData['SCH_START_DAY_OPT_2'] == "") {
throw (new \Exception( '\'sch_start_day_opt_2\' can\'t be null')); throw (new \Exception( 'sch_start_day_opt_2 can not be null'));
} }
$aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_2']; $aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_2'];
$optionTwo = $aData['SCH_START_DAY_OPT_2']{0}; $optionTwo = $aData['SCH_START_DAY_OPT_2']{0};
if ($optionTwo == "1" || $optionTwo == "2" || $optionTwo == "3" || $optionTwo == "4" || $optionTwo == "5") { if ($optionTwo == "1" || $optionTwo == "2" || $optionTwo == "3" || $optionTwo == "4" || $optionTwo == "5") {
$aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2'];
} else { } else {
throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_2\'')); throw (new \Exception( 'Invalid value specified for sch_start_day_opt_2'));
} }
$pipelineTwo = $aData['SCH_START_DAY_OPT_2']{1}; $pipelineTwo = $aData['SCH_START_DAY_OPT_2']{1};
if ($pipelineTwo == "|") { if ($pipelineTwo == "|") {
$aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2'];
} else { } else {
throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_2\'')); throw (new \Exception( 'Invalid value specified for sch_start_day_opt_2'));
} }
$dayTwo = $aData['SCH_START_DAY_OPT_2']{2}; $dayTwo = $aData['SCH_START_DAY_OPT_2']{2};
if ($dayTwo == "1" || $dayTwo == "2" || $dayTwo == "3" || $dayTwo == "4" || $dayTwo == "5" || $dayTwo == "6" || $dayTwo == "7") { if ($dayTwo == "1" || $dayTwo == "2" || $dayTwo == "3" || $dayTwo == "4" || $dayTwo == "5" || $dayTwo == "6" || $dayTwo == "7") {
$aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2'];
} else { } else {
throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_2\'')); throw (new \Exception( 'Invalid value specified for sch_start_day_opt_2'));
} }
} }
if ($nStartDay == "") { if ($nStartDay == "") {
throw (new \Exception( '\'sch_start_day\' can\'t be null')); throw (new \Exception( 'sch_start_day can not be null'));
} }
$sMonths = '';
if ($aData['SCH_MONTHS'] == "") { if ($aData['SCH_MONTHS'] == "") {
throw (new \Exception( '\'sch_months\' can\'t be null')); throw (new \Exception( 'sch_months can not be null'));
} }
if (! empty( $aData['SCH_MONTHS'] )) { if (! empty( $aData['SCH_MONTHS'] )) {
$aMonths = $aData['SCH_MONTHS']; $aMonths = $aData['SCH_MONTHS'];
@@ -417,7 +410,7 @@ class CaseScheduler
if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5"|| $row == "6" || $row == "7"|| $row == "8" || $row == "9" || $row == "10"|| $row == "11" || $row == "12") { if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5"|| $row == "6" || $row == "7"|| $row == "8" || $row == "9" || $row == "10"|| $row == "11" || $row == "12") {
$aData['SCH_MONTHS'] = $aData['SCH_MONTHS']; $aData['SCH_MONTHS'] = $aData['SCH_MONTHS'];
} else { } else {
throw (new \Exception( 'Invalid value specified for \'sch_months\'')); throw (new \Exception( 'Invalid value specified for sch_months'));
} }
} }
} }
@@ -476,11 +469,11 @@ class CaseScheduler
$aData['SCH_START_TIME'] = time(); $aData['SCH_START_TIME'] = time();
$aData['SCH_START_DATE'] = $aData['SCH_START_TIME']; $aData['SCH_START_DATE'] = $aData['SCH_START_TIME'];
if ($aData['SCH_REPEAT_EVERY'] == "") { if ($aData['SCH_REPEAT_EVERY'] == "") {
throw (new \Exception( '\'sch_repeat_every\' can\'t be null')); throw (new \Exception( 'sch_repeat_every can not be null'));
} }
$patternHour="/^([0-1][0-9]|[2][0-3])[\.]([0-5][0-9])$/"; $patternHour="/^([0-1][0-9]|[2][0-3])[\.]([0-5][0-9])$/";
if (!preg_match($patternHour, $aData['SCH_REPEAT_EVERY'])) { if (!preg_match($patternHour, $aData['SCH_REPEAT_EVERY'])) {
throw (new \Exception( 'Invalid value specified for \'sch_repeat_every\'. Expecting time in HH.MM format')); throw (new \Exception( 'Invalid value specified for sch_repeat_every. Expecting time in HH.MM format'));
} }
$nextRun = $aData['SCH_REPEAT_EVERY'] * 60 * 60; $nextRun = $aData['SCH_REPEAT_EVERY'] * 60 * 60;
$aData['SCH_REPEAT_EVERY'] = $aData['SCH_REPEAT_EVERY']; $aData['SCH_REPEAT_EVERY'] = $aData['SCH_REPEAT_EVERY'];
@@ -536,8 +529,8 @@ class CaseScheduler
} }
$oCaseScheduler = new \CaseScheduler(); $oCaseScheduler = new \CaseScheduler();
$aFields = $oCaseScheduler->Load($sSchUID); $aFields = $oCaseScheduler->Load($sSchUID);
$sOption = $aFields['SCH_OPTION']; //$sOption = $aFields['SCH_OPTION'];
$aData['SCH_OPTION'] = $sOption; $sOption = $aData['SCH_OPTION'];
$aData['sch_repeat_stop_if_running'] = '0'; $aData['sch_repeat_stop_if_running'] = '0';
$aData['case_sh_plugin_uid'] = null; $aData['case_sh_plugin_uid'] = null;
$aData = array_change_key_case($aData, CASE_UPPER); $aData = array_change_key_case($aData, CASE_UPPER);
@@ -549,7 +542,7 @@ class CaseScheduler
throw (new \Exception( 'Task not found for id: '. $aData['TAS_UID'])); throw (new \Exception( 'Task not found for id: '. $aData['TAS_UID']));
} }
if ($aData['SCH_NAME']=='') { if ($aData['SCH_NAME']=='') {
throw (new \Exception( '\'sch_name\' can\'t be empty')); throw (new \Exception( 'sch_name can not be empty'));
} }
if ($this->existsNameUpdate($sSchUID, $aData['SCH_NAME'])) { if ($this->existsNameUpdate($sSchUID, $aData['SCH_NAME'])) {
throw (new \Exception( 'Duplicate Case Scheduler name')); throw (new \Exception( 'Duplicate Case Scheduler name'));
@@ -564,23 +557,19 @@ class CaseScheduler
if ($sOption != '5') { if ($sOption != '5') {
$pattern="/^([0-1][0-9]|[2][0-3])[\:]([0-5][0-9])$/"; $pattern="/^([0-1][0-9]|[2][0-3])[\:]([0-5][0-9])$/";
if (!preg_match($pattern, $aData['SCH_START_TIME'])) { if (!preg_match($pattern, $aData['SCH_START_TIME'])) {
throw (new \Exception( 'Invalid value specified for \'sch_start_time\'. Expecting time in HH:MM format (The time can not be increased to 23:59)')); throw (new \Exception( 'Invalid value specified for sch_start_time. Expecting time in HH:MM format (The time can not be increased to 23:59)'));
} }
} }
$patternDate="/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/"; $patternDate="/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/";
if ($sOption == '1' || $sOption == '2' || $sOption == '3') { if ($sOption == '1' || $sOption == '2' || $sOption == '3') {
if (!preg_match($patternDate, $aData['SCH_START_DATE'])) { if (!preg_match($patternDate, $aData['SCH_START_DATE'])) {
throw (new \Exception( 'Invalid value specified for \'sch_start_date\'. Expecting date in \'YYYY-MM-DD\' format, such as \'2014-01-01\'')); throw (new \Exception( 'Invalid value specified for sch_start_date. Expecting date in YYYY-MM-DD format, such as 2014-01-01'));
} }
}
if ($sOption == '1' || $sOption == '2' || $sOption == '3') {
if (!preg_match($patternDate, $aData['SCH_END_DATE'])) { if (!preg_match($patternDate, $aData['SCH_END_DATE'])) {
throw (new \Exception( 'Invalid value specified for \'sch_end_date\'. Expecting date in \'YYYY-MM-DD\' format, such as \'2014-01-01\'')); throw (new \Exception( 'Invalid value specified for sch_end_date. Expecting date in YYYY-MM-DD format, such as 2014-01-01'));
} }
}
if ($sOption == '1' || $sOption == '2' || $sOption == '3') {
if ($aData['SCH_START_DATE'] == "") { if ($aData['SCH_START_DATE'] == "") {
throw (new \Exception( '\'sch_start_date\' can\'t be null')); throw (new \Exception( 'sch_start_date can not be null'));
} }
} }
if ($sOption == '2') { if ($sOption == '2') {
@@ -592,7 +581,7 @@ class CaseScheduler
$aData['SCH_UID'] = $sSchUID; $aData['SCH_UID'] = $sSchUID;
$aData['PRO_UID'] = $sProcessUID; $aData['PRO_UID'] = $sProcessUID;
if ($aData['SCH_STATE'] == "" || $aData['SCH_STATE'] == null) { if ($aData['SCH_STATE'] == "" || $aData['SCH_STATE'] == null) {
throw (new \Exception( '\'sch_state\' can\'t be null')); throw (new \Exception( 'sch_state can not be null'));
} else { } else {
if ($aData['SCH_STATE'] == 'ACTIVE') { if ($aData['SCH_STATE'] == 'ACTIVE') {
$aData['SCH_LAST_STATE'] = 'CREATED'; $aData['SCH_LAST_STATE'] = 'CREATED';
@@ -609,7 +598,6 @@ class CaseScheduler
$sWeeks = ''; $sWeeks = '';
$sMonths = ''; $sMonths = '';
$sStartDay = ''; $sStartDay = '';
$nSW = 0;
$aData['SCH_DAYS_PERFORM_TASK'] = ''; $aData['SCH_DAYS_PERFORM_TASK'] = '';
switch ($sOption) { switch ($sOption) {
case '1': // If the option is zero, set by default 1 case '1': // If the option is zero, set by default 1
@@ -634,7 +622,7 @@ class CaseScheduler
break; break;
case '2': // If the option is zero, set by default 1 case '2': // If the option is zero, set by default 1
if ($aData['SCH_WEEK_DAYS'] == "") { if ($aData['SCH_WEEK_DAYS'] == "") {
throw (new \Exception( '\'sch_week_days\' can\'t be null')); throw (new \Exception( 'sch_week_days can not be null'));
} else { } else {
$weeks = $aData['SCH_WEEK_DAYS']; $weeks = $aData['SCH_WEEK_DAYS'];
$weeks = explode("|", $weeks); $weeks = explode("|", $weeks);
@@ -642,7 +630,7 @@ class CaseScheduler
if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5"|| $row == "6" || $row == "7") { if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5"|| $row == "6" || $row == "7") {
$aData['SCH_WEEK_DAYS'] = $aData['SCH_WEEK_DAYS']; $aData['SCH_WEEK_DAYS'] = $aData['SCH_WEEK_DAYS'];
} else { } else {
throw (new \Exception( 'Invalid value specified for \'sch_week_days\'')); throw (new \Exception( 'Invalid value specified for sch_week_days'));
} }
} }
} }
@@ -653,7 +641,6 @@ class CaseScheduler
$nEveryDays = $aData['SCH_EVERY_DAYS']; $nEveryDays = $aData['SCH_EVERY_DAYS'];
} }
$aData['SCH_EVERY_DAYS'] = $nEveryDays; $aData['SCH_EVERY_DAYS'] = $nEveryDays;
$sWeeks = '';
if (! empty( $aData['SCH_WEEK_DAYS'] )) { if (! empty( $aData['SCH_WEEK_DAYS'] )) {
$aWeekDays = $aData['SCH_WEEK_DAYS']; $aWeekDays = $aData['SCH_WEEK_DAYS'];
} }
@@ -663,50 +650,49 @@ class CaseScheduler
case '3': case '3':
$nStartDay = $aData['SCH_START_DAY']; $nStartDay = $aData['SCH_START_DAY'];
if ($nStartDay == "") { if ($nStartDay == "") {
throw (new \Exception( '\'sch_start_day\' can\'t be null')); throw (new \Exception( 'sch_start_day can not be null'));
} }
if ($nStartDay == 1) { if ($nStartDay == 1) {
if ($aData['SCH_START_DAY_OPT_1'] == "") { if ($aData['SCH_START_DAY_OPT_1'] == "") {
throw (new \Exception( '\'sch_start_day_opt_1\' can\'t be null')); throw (new \Exception( 'sch_start_day_opt_1 can not be null'));
} }
$temp = $aData['SCH_START_DAY_OPT_1']; $temp = $aData['SCH_START_DAY_OPT_1'];
$temp = (int)$temp; $temp = (int)$temp;
if ($temp >= 1 && $temp <= 31) { if ($temp >= 1 && $temp <= 31) {
$aData['SCH_START_DAY_OPT_1'] = $aData['SCH_START_DAY_OPT_1']; $aData['SCH_START_DAY_OPT_1'] = $aData['SCH_START_DAY_OPT_1'];
} else { } else {
throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_1\'. Must be between 1 and 31')); throw (new \Exception( 'Invalid value specified for sch_start_day_opt_1. Must be between 1 and 31'));
} }
$aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_1']; $aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_1'];
} else { } else {
if ($aData['SCH_START_DAY_OPT_2'] == "") { if ($aData['SCH_START_DAY_OPT_2'] == "") {
throw (new \Exception( '\'sch_start_day_opt_2\' can\'t be null')); throw (new \Exception( 'sch_start_day_opt_2 can not be null'));
} }
$aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_2']; $aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_2'];
$optionTwo = $aData['SCH_START_DAY_OPT_2']{0}; $optionTwo = $aData['SCH_START_DAY_OPT_2']{0};
if ($optionTwo == "1" || $optionTwo == "2" || $optionTwo == "3" || $optionTwo == "4" || $optionTwo == "5") { if ($optionTwo == "1" || $optionTwo == "2" || $optionTwo == "3" || $optionTwo == "4" || $optionTwo == "5") {
$aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2'];
} else { } else {
throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_2\'')); throw (new \Exception( 'Invalid value specified for sch_start_day_opt_2'));
} }
$pipelineTwo = $aData['SCH_START_DAY_OPT_2']{1}; $pipelineTwo = $aData['SCH_START_DAY_OPT_2']{1};
if ($pipelineTwo == "|") { if ($pipelineTwo == "|") {
$aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2'];
} else { } else {
throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_2\'')); throw (new \Exception( 'Invalid value specified for sch_start_day_opt_2'));
} }
$dayTwo = $aData['SCH_START_DAY_OPT_2']{2}; $dayTwo = $aData['SCH_START_DAY_OPT_2']{2};
if ($dayTwo == "1" || $dayTwo == "2" || $dayTwo == "3" || $dayTwo == "4" || $dayTwo == "5" || $dayTwo == "6" || $dayTwo == "7") { if ($dayTwo == "1" || $dayTwo == "2" || $dayTwo == "3" || $dayTwo == "4" || $dayTwo == "5" || $dayTwo == "6" || $dayTwo == "7") {
$aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2'];
} else { } else {
throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_2\'')); throw (new \Exception( 'Invalid value specified for sch_start_day_opt_2'));
} }
} }
if ($nStartDay == "") { if ($nStartDay == "") {
throw (new \Exception( '\'sch_start_day\' can\'t be null')); throw (new \Exception( 'sch_start_day can not be null'));
} }
$sMonths = '';
if ($aData['SCH_MONTHS'] == "") { if ($aData['SCH_MONTHS'] == "") {
throw (new \Exception( '\'sch_months\' can\'t be null')); throw (new \Exception( 'sch_months can not be null'));
} }
if (! empty( $aData['SCH_MONTHS'] )) { if (! empty( $aData['SCH_MONTHS'] )) {
$aMonths = $aData['SCH_MONTHS']; $aMonths = $aData['SCH_MONTHS'];
@@ -715,7 +701,7 @@ class CaseScheduler
if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5"|| $row == "6" || $row == "7"|| $row == "8" || $row == "9" || $row == "10"|| $row == "11" || $row == "12") { if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5"|| $row == "6" || $row == "7"|| $row == "8" || $row == "9" || $row == "10"|| $row == "11" || $row == "12") {
$aData['SCH_MONTHS'] = $aData['SCH_MONTHS']; $aData['SCH_MONTHS'] = $aData['SCH_MONTHS'];
} else { } else {
throw (new \Exception( 'Invalid value specified for \'sch_months\'')); throw (new \Exception( 'Invalid value specified for sch_months'));
} }
} }
} }
@@ -724,6 +710,7 @@ class CaseScheduler
$sValue = $nStartDay; $sValue = $nStartDay;
break; break;
} }
if (($sOption != '1') && ($sOption != '4') && ($sOption != '5')) { if (($sOption != '1') && ($sOption != '4') && ($sOption != '5')) {
if ($sStartDay == '') { if ($sStartDay == '') {
$sStartDay = date('Y-m-d'); $sStartDay = date('Y-m-d');
@@ -774,11 +761,11 @@ class CaseScheduler
$aData['SCH_START_TIME'] = time(); $aData['SCH_START_TIME'] = time();
$aData['SCH_START_DATE'] = $aData['SCH_START_TIME']; $aData['SCH_START_DATE'] = $aData['SCH_START_TIME'];
if ($aData['SCH_REPEAT_EVERY'] == "") { if ($aData['SCH_REPEAT_EVERY'] == "") {
throw (new \Exception( '\'sch_repeat_every\' can\'t be null')); throw (new \Exception( 'sch_repeat_every can not be null'));
} }
$patternHour="/^([0-1][0-9]|[2][0-3])[\.]([0-5][0-9])$/"; $patternHour="/^([0-1][0-9]|[2][0-3])[\.]([0-5][0-9])$/";
if (!preg_match($patternHour, $aData['SCH_REPEAT_EVERY'])) { if (!preg_match($patternHour, $aData['SCH_REPEAT_EVERY'])) {
throw (new \Exception( 'Invalid value specified for \'sch_repeat_every\'. Expecting time in HH.MM format')); throw (new \Exception( 'Invalid value specified for sch_repeat_every. Expecting time in HH.MM format'));
} }
$nextRun = $aData['SCH_REPEAT_EVERY'] * 60 * 60; $nextRun = $aData['SCH_REPEAT_EVERY'] * 60 * 60;
$aData['SCH_REPEAT_EVERY'] = $aData['SCH_REPEAT_EVERY']; $aData['SCH_REPEAT_EVERY'] = $aData['SCH_REPEAT_EVERY'];

View File

@@ -306,7 +306,21 @@ class BpmnWorkflow extends Project\Bpmn
throw new \RuntimeException("Required param \"EVN_TYPE\" is missing."); throw new \RuntimeException("Required param \"EVN_TYPE\" is missing.");
} }
return parent::addEvent($data); $eventUid = parent::addEvent($data);
$event = \BpmnEventPeer::retrieveByPK($eventUid);
// create case scheduler
if ($event->getEvnMarker() == "TIMER") {
$this->wp->addCaseScheduler();
}
// create web entry
if ($event->getEvnMarker() == "MESSAGE") {
$this->wp->addWebEntry();
}
//return parent::addEvent($data);
return $eventUid;
} }
public function mapBpmnFlowsToWorkflowRoutes() public function mapBpmnFlowsToWorkflowRoutes()

View File

@@ -668,6 +668,9 @@ class Workflow extends Handler
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next(); $oDataset->next();
while ($aRow = $oDataset->getRow()) { while ($aRow = $oDataset->getRow()) {
if ($aRow['EVN_UID'] == 'TIMER') {
$this->removeCaseScheduler();
}
$oEvent->remove($aRow['EVN_UID']); $oEvent->remove($aRow['EVN_UID']);
$oDataset->next(); $oDataset->next();
} }
@@ -771,4 +774,102 @@ class Workflow extends Handler
$status = $value ? "DISABLED" : "ACTIVE"; $status = $value ? "DISABLED" : "ACTIVE";
$this->update(array("PRO_STATUS" => $status)); $this->update(array("PRO_STATUS" => $status));
} }
public function addCaseScheduler()
{
try {
$caseScheduler = new \CaseScheduler();
$data = array(
'SCH_NAME'=>'',
'SCH_DEL_USER_NAME'=>'',
'SCH_DEL_USER_UID'=>'',
'PRO_UID'=>'',
'TAS_UID'=>'',
'SCH_TIME_NEXT_RUN'=>date('Y-m-d H:i:s'),
'SCH_LAST_RUN_TIME'=>NULL,
'SCH_STATE'=>'',
'SCH_LAST_STATE'=>'',
'USR_UID'=>'',
'SCH_OPTION'=>'',
'SCH_START_TIME'=>date('Y-m-d H:i:s'),
'SCH_START_DATE'=>date('Y-m-d H:i:s'),
'SCH_DAYS_PERFORM_TASK'=>'',
'SCH_EVERY_DAYS'=>NULL,
'SCH_WEEK_DAYS'=>'',
'SCH_START_DAY'=>'',
'SCH_START_DAY_OPT_1'=>'',
'SCH_START_DAY_OPT_2'=>'',
'SCH_MONTHS'=>'',
'SCH_END_DATE'=>date('Y-m-d H:i:s'),
'SCH_REPEAT_EVERY'=>'',
'SCH_REPEAT_STOP_IF_RUNNING'=>'',
'CASE_SH_PLUGIN_UID'=>NULL,
'SCH_DEL_USER_PASS'=>'',
'SCH_UID'=>Common::generateUID(),
'SCH_REPEAT_UNTIL'=>''
);
self::log("Adding Case Scheduler with data: ", $data);
$caseSchedulerUid = $caseScheduler->create($data);
self::log("Adding Case Scheduler success!, created case Scheduler id: ", $caseSchedulerUid);
return $caseSchedulerUid;
} catch (\Exception $oError) {
throw ($oError);
}
}
public function removeCaseScheduler()
{
try {
$caseScheduler = new \CaseScheduler();
self::log("Remove Case Scheduler: ".$caseScheduler->getSchUid());
$caseScheduler->delete();
self::log("Remove Case Scheduler Success!");
} catch (\Exception $e) {
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
throw $e;
}
}
public function updateCaseScheduler()
{
}
public function addWebEntry()
{
try {
$webEntry = new \WebEntry();
$webEntryUid = Common::generateUID();
$webEntry->setWeUid($webEntryUid);
$webEntry->setWeMethod('');
$webEntry->setWeCreateDate(date('Y-m-d H:i:s'));
$webEntry->save();
//Return
self::log("Adding Web Entry success!, created Web Entry id: ", $webEntryUid);
return $webEntryUid;
} catch (\Exception $oError) {
throw ($oError);
}
}
public function removeWebEntry()
{
try {
$webEntry = new \WebEntry();
self::log("Remove Web Entry: ".$webEntry->getWeUid());
$webEntry->delete();
self::log("Remove Web Entry Success!");
} catch (\Exception $e) {
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
throw $e;
}
}
public function updateWebEntry()
{
}
} }