当前位置: 首页>>代码示例>>PHP>>正文


PHP CBPActivity类代码示例

本文整理汇总了PHP中CBPActivity的典型用法代码示例。如果您正苦于以下问题:PHP CBPActivity类的具体用法?PHP CBPActivity怎么用?PHP CBPActivity使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了CBPActivity类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: Evaluate

 public function Evaluate(CBPActivity $ownerActivity)
 {
     if ($this->condition == null || !is_array($this->condition) || count($this->condition) <= 0) {
         return true;
     }
     if (!is_array($this->condition[0])) {
         $this->condition = array($this->condition);
     }
     $rootActivity = $ownerActivity->GetRootActivity();
     $result = array(0 => true);
     $i = 0;
     foreach ($this->condition as $cond) {
         $r = true;
         $joiner = empty($cond[3]) ? static::CONDITION_JOINER_AND : static::CONDITION_JOINER_OR;
         if ($rootActivity->IsPropertyExists($cond[0])) {
             if (!$this->CheckCondition($rootActivity->{$cond[0]}, $cond[1], $cond[2], $rootActivity->GetPropertyBaseType($cond[0]), $rootActivity)) {
                 $r = false;
             }
         } elseif ($rootActivity->IsVariableExists($cond[0])) {
             if (!$this->CheckCondition($rootActivity->GetVariable($cond[0]), $cond[1], $cond[2], $rootActivity->GetVariableBaseType($cond[0]), $rootActivity)) {
                 $r = false;
             }
         }
         if ($joiner == static::CONDITION_JOINER_OR) {
             ++$i;
             $result[$i] = $r;
         } elseif (!$r) {
             $result[$i] = false;
         }
     }
     $result = array_filter($result);
     return sizeof($result) > 0 ? true : false;
 }
开发者ID:Satariall,项目名称:izurit,代码行数:33,代码来源:propertyvariablecondition.php

示例2: Evaluate

 public function Evaluate(CBPActivity $ownerActivity)
 {
     if ($this->condition == null || !is_array($this->condition) || count($this->condition) <= 0) {
         return true;
     }
     if (!is_array($this->condition[0])) {
         $this->condition = array($this->condition);
     }
     $rootActivity = $ownerActivity->GetRootActivity();
     $documentId = $rootActivity->GetDocumentId();
     $documentService = $ownerActivity->workflow->GetService("DocumentService");
     $document = $documentService->GetDocument($documentId);
     $documentFields = $documentService->GetDocumentFields($documentService->GetDocumentType($documentId));
     $result = false;
     foreach ($this->condition as $cond) {
         $result = true;
         if (array_key_exists($cond[0], $document)) {
             $fld = isset($document[$cond[0] . "_XML_ID"]) ? $document[$cond[0] . "_XML_ID"] : $document[$cond[0]];
             if (!$this->CheckCondition($fld, $cond[1], $cond[2], $documentFields[$cond[0]]["BaseType"], $rootActivity)) {
                 $result = false;
                 break;
             }
         } else {
             throw new Exception("Field '" . $cond[0] . "' is not found in document (if/else condition)");
             $result = false;
             break;
         }
     }
     return $result;
 }
开发者ID:vim84,项目名称:b-markt,代码行数:30,代码来源:fieldcondition.php

示例3: Evaluate

 public function Evaluate(CBPActivity $ownerActivity)
 {
     if ($this->condition == null || !is_array($this->condition) || count($this->condition) <= 0) {
         return true;
     }
     if (!is_array($this->condition[0])) {
         $this->condition = array($this->condition);
     }
     $rootActivity = $ownerActivity->GetRootActivity();
     $result = true;
     foreach ($this->condition as $cond) {
         if ($rootActivity->IsPropertyExists($cond[0])) {
             if (!$this->CheckCondition($rootActivity->{$cond[0]}, $cond[1], $cond[2], $rootActivity->GetPropertyBaseType($cond[0]), $rootActivity)) {
                 $result = false;
                 break;
             }
         } elseif ($rootActivity->IsVariableExists($cond[0])) {
             if (!$this->CheckCondition($rootActivity->GetVariable($cond[0]), $cond[1], $cond[2], $rootActivity->GetVariableBaseType($cond[0]), $rootActivity)) {
                 $result = false;
                 break;
             }
         }
     }
     return $result;
 }
开发者ID:k-kalashnikov,项目名称:geekcon.local,代码行数:25,代码来源:propertyvariablecondition.php

示例4: UnlockWorkflow

 public function UnlockWorkflow(CBPActivity $rootActivity)
 {
     global $DB;
     if ($rootActivity == null) {
         throw new Exception("rootActivity");
     }
     $DB->Query("UPDATE b_bp_instance_state SET " . "\tOWNER_ID = NULL, " . "\tOWNED_UNTIL = NULL " . "WHERE ID = '" . $DB->ForSql($rootActivity->GetWorkflowInstanceId()) . "' " . "\tAND ( " . "\t\t(OWNER_ID = '" . $DB->ForSql($this->serviceInstanceId) . "' " . "\t\t\tAND OWNED_UNTIL >= " . $DB->CurrentTimeFunction() . ") " . "\t\tOR " . "\t\t(OWNER_ID IS NULL) " . "\t\tOR " . "\t\t(OWNER_ID IS NOT NULL " . "\t\t\tAND OWNED_UNTIL < " . $DB->CurrentTimeFunction() . ") " . "\t)");
 }
开发者ID:k-kalashnikov,项目名称:geekcon.local,代码行数:8,代码来源:workflowpersister.php

示例5: OnEvent

 public function OnEvent(CBPActivity $sender, $arEventParameters = array())
 {
     if ($sender == null) {
         throw new Exception("sender");
     }
     $sender->RemoveStatusChangeHandler(self::ClosedEvent, $this);
     if (!$this->TryNextIteration()) {
         $this->workflow->CloseActivity($this);
     }
 }
开发者ID:k-kalashnikov,项目名称:geekcon_new,代码行数:10,代码来源:whileactivity.php

示例6: OnEvent

 public function OnEvent(CBPActivity $sender, $arEventParameters = array())
 {
     $sender->RemoveStatusChangeHandler(self::ClosedEvent, $this);
     $bCloseActivity = false;
     if (is_a($sender, "CBPStateInitializationActivity")) {
         if (strlen($this->nextStateName) > 0) {
             $stateFinalization = null;
             for ($i = 0, $s = sizeof($this->arActivities); $i < $s; $i++) {
                 if (is_a($this->arActivities[$i], "CBPStateFinalizationActivity")) {
                     $stateFinalization = $this->arActivities[$i];
                 }
             }
             if ($stateFinalization != null) {
                 $stateFinalization->AddStatusChangeHandler(self::ClosedEvent, $this);
                 $this->workflow->ExecuteActivity($stateFinalization);
             } else {
                 $bCloseActivity = true;
             }
         } else {
             //$stateService = $this->workflow->GetService("StateService");
             //$stateService->SetStateParameters($this->GetWorkflowInstanceId(), $this->GetAvailableStateEvents());
             $status = $this->ExecuteState();
             if ($status != CBPActivityExecutionStatus::Executing) {
                 $bCloseActivity = true;
             }
         }
     } elseif (is_a($sender, "CBPStateFinalizationActivity")) {
         $bCloseActivity = true;
     } else {
         $stateFinalization = null;
         if (strlen($this->nextStateName) > 0) {
             for ($i = 0, $s = sizeof($this->arActivities); $i < $s; $i++) {
                 if (is_a($this->arActivities[$i], "CBPStateFinalizationActivity")) {
                     $stateFinalization = $this->arActivities[$i];
                 }
             }
         }
         if ($stateFinalization != null) {
             $stateFinalization->AddStatusChangeHandler(self::ClosedEvent, $this);
             $this->workflow->ExecuteActivity($stateFinalization);
         } else {
             $bCloseActivity = true;
         }
     }
     if ($bCloseActivity) {
         $this->arActivityState = array();
         $this->isListenTrigerred = false;
         $arEP = array();
         if (strlen($this->nextStateName) > 0) {
             $arEP["NextStateName"] = $this->nextStateName;
         }
         $this->workflow->CloseActivity($this, $arEP);
     }
 }
开发者ID:Satariall,项目名称:izurit,代码行数:54,代码来源:stateactivity.php

示例7: OnEvent

 public function OnEvent(CBPActivity $sender, $arEventParameters = array())
 {
     $sender->RemoveStatusChangeHandler(self::ClosedEvent, $this);
     if ($this->executionStatus == CBPActivityExecutionStatus::Canceling || $this->executionStatus == CBPActivityExecutionStatus::Faulting) {
         $this->workflow->CloseActivity($this);
     } else {
         if ($this->executionStatus == CBPActivityExecutionStatus::Executing && !$this->TryScheduleNextChild($context)) {
             $this->OnSequenceComplete();
             $this->workflow->CloseActivity($this);
         }
     }
 }
开发者ID:k-kalashnikov,项目名称:geekcon_new,代码行数:12,代码来源:sequenceactivity.php

示例8: OnEvent

 public function OnEvent(CBPActivity $sender, $arEventParameters = array())
 {
     $sender->RemoveStatusChangeHandler(self::ClosedEvent, $this);
     $flag = true;
     for ($i = 0; $i < count($this->arActivities); $i++) {
         $activity = $this->arActivities[$i];
         if ($activity->executionStatus != CBPActivityExecutionStatus::Initialized && $activity->executionStatus != CBPActivityExecutionStatus::Closed) {
             $flag = false;
             break;
         }
     }
     if ($flag) {
         $this->workflow->CloseActivity($this);
     }
 }
开发者ID:k-kalashnikov,项目名称:geekcon,代码行数:15,代码来源:parallelactivity.php

示例9: OnEvent

 public function OnEvent(CBPActivity $sender, $arEventParameters = array())
 {
     $sender->RemoveStatusChangeHandler(self::ClosedEvent, $this);
     if (array_key_exists("NextStateName", $arEventParameters) && strlen($arEventParameters["NextStateName"]) > 0) {
         $nextStateActivity = $this->GetStateActivityByName($arEventParameters["NextStateName"]);
         if ($nextStateActivity == null) {
             throw new Exception("nextStateActivity");
         }
         $nextStateActivity->ReInitialize();
         $nextStateActivity->AddStatusChangeHandler(self::ClosedEvent, $this);
         $this->workflow->ExecuteActivity($nextStateActivity);
     } else {
         $this->workflow->CloseActivity($this);
     }
 }
开发者ID:k-kalashnikov,项目名称:geekcon_new,代码行数:15,代码来源:statemachineworkflowactivity.php

示例10: Evaluate

 public function Evaluate(CBPActivity $ownerActivity)
 {
     if ($this->condition == null || !is_array($this->condition) || count($this->condition) <= 0) {
         return true;
     }
     if (!is_array($this->condition[0])) {
         $this->condition = array($this->condition);
     }
     $rootActivity = $ownerActivity->GetRootActivity();
     $documentId = $rootActivity->GetDocumentId();
     $documentService = $ownerActivity->workflow->GetService("DocumentService");
     $document = $documentService->GetDocument($documentId);
     $documentFields = $documentService->GetDocumentFields($documentService->GetDocumentType($documentId));
     $result = array(0 => true);
     $i = 0;
     foreach ($this->condition as $cond) {
         $r = true;
         $joiner = empty($cond[3]) ? static::CONDITION_JOINER_AND : static::CONDITION_JOINER_OR;
         if (!isset($document[$cond[0]]) && substr($cond[0], -strlen('_PRINTABLE')) == '_PRINTABLE') {
             $cond[0] = substr($cond[0], 0, strlen($cond[0]) - strlen('_PRINTABLE'));
         }
         if (array_key_exists($cond[0], $document)) {
             $fld = isset($document[$cond[0] . "_XML_ID"]) ? $document[$cond[0] . "_XML_ID"] : $document[$cond[0]];
             if (!$this->CheckCondition($cond[0], $fld, $cond[1], $cond[2], $documentFields[$cond[0]]["BaseType"], $rootActivity)) {
                 $r = false;
             }
         } else {
             throw new Exception("Field '" . $cond[0] . "' is not found in document (if/else condition)");
         }
         if ($joiner == static::CONDITION_JOINER_OR) {
             ++$i;
             $result[$i] = $r;
         } elseif (!$r) {
             $result[$i] = false;
         }
     }
     $result = array_filter($result);
     return sizeof($result) > 0 ? true : false;
 }
开发者ID:webgksupport,项目名称:alpina,代码行数:39,代码来源:fieldcondition.php

示例11: ValidateProperties

 public static function ValidateProperties($arTestProperties = array(), CBPWorkflowTemplateUser $user = null)
 {
     $arErrors = array();
     if (strlen($arTestProperties["Text"]) <= 0) {
         $arErrors[] = array("code" => "emptyText", "message" => GetMessage("BPCAL_EMPTY_TEXT"));
     }
     return array_merge($arErrors, parent::ValidateProperties($arTestProperties, $user));
 }
开发者ID:mrdeadmouse,项目名称:u136006,代码行数:8,代码来源:logactivity.php

示例12: ValidateProperties

 public static function ValidateProperties($arTestProperties = array(), CBPWorkflowTemplateUser $user = null)
 {
     $arErrors = array();
     if (strlen($arTestProperties["TargetStateName"]) <= 0) {
         $arErrors[] = array("code" => "emptyState", "parameter" => "TargetStateName", "message" => GetMessage('BPSSA_ERROR_EMPTY_STATE'));
     }
     return array_merge($arErrors, parent::ValidateProperties($arTestProperties, $user));
 }
开发者ID:mrdeadmouse,项目名称:u136006,代码行数:8,代码来源:setstateactivity.php

示例13: ValidateProperties

 public static function ValidateProperties($arTestProperties = array(), CBPWorkflowTemplateUser $user = null)
 {
     $arErrors = array();
     if (!is_array($arTestProperties) || !array_key_exists("VariableValue", $arTestProperties) || !is_array($arTestProperties["VariableValue"]) || count($arTestProperties["VariableValue"]) <= 0) {
         $arErrors[] = array("code" => "NotExist", "parameter" => "VariableValue", "message" => GetMessage("BPSVA_EMPTY_VARS"));
     }
     return array_merge($arErrors, parent::ValidateProperties($arTestProperties, $user));
 }
开发者ID:Satariall,项目名称:izurit,代码行数:8,代码来源:setvariableactivity.php

示例14: ValidateProperties

 public static function ValidateProperties($testProperties = array(), CBPWorkflowTemplateUser $user = null)
 {
     $errors = array();
     try {
         CBPHelper::ParseDocumentId($testProperties['DocumentType']);
     } catch (Exception $e) {
         $errors[] = array("code" => "NotExist", "parameter" => "DocumentType", "message" => GetMessage("BPCLDA_ERROR_DT"));
     }
     return array_merge($errors, parent::ValidateProperties($testProperties, $user));
 }
开发者ID:webgksupport,项目名称:alpina,代码行数:10,代码来源:createlistsdocumentactivity.php

示例15: ValidateProperties

 public static function ValidateProperties($arTestProperties = array(), CBPWorkflowTemplateUser $user = null)
 {
     $arErrors = array();
     /*
     if (strlen($arTestProperties["TargetStateTitle"]) <= 0)
     {
     	$arErrors[] = array("code" => "emptyState", "parameter" => "TargetStateTitle", "message" => "Bad target state.");
     }
     */
     return array_merge($arErrors, parent::ValidateProperties($arTestProperties, $user));
 }
开发者ID:Satariall,项目名称:izurit,代码行数:11,代码来源:setstatetitleactivity.php


注:本文中的CBPActivity类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。