• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP CBPActivity类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



在下文中一共展示了CBPActivity类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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: 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 = true;
     foreach ($this->condition as $cond) {
         if (array_key_exists($cond[0], $document)) {
             if (!$this->CheckCondition($document[$cond[0]], $cond[1], $cond[2], $documentFields[$cond[0]]["BaseType"], $rootActivity)) {
                 $result = false;
                 break;
             }
         }
     }
     return $result;
 }
开发者ID:k-kalashnikov,项目名称:geekcon_new,代码行数:24,代码来源:fieldcondition.php


示例12: extractValue

 /**
  * @param FieldType $fieldType
  * @param array $field
  * @param array $request
  * @return null|int
  */
 protected static function extractValue(FieldType $fieldType, array $field, array $request)
 {
     $value = Base::extractValue($fieldType, $field, $request);
     if ($value !== null && is_string($value) && strlen($value) > 0) {
         if (\CBPActivity::isExpression($value)) {
             return $value;
         }
         $value = str_replace(' ', '', $value);
         if (preg_match('#^[0-9\\-]+$#', $value)) {
             $value = (int) $value;
         } else {
             $value = null;
             static::addError(array('code' => 'ErrorValue', 'message' => Loc::getMessage('BPDT_INT_INVALID'), 'parameter' => static::generateControlName($field)));
         }
     } else {
         $value = null;
     }
     return $value;
 }
开发者ID:DarneoStudio,项目名称:bitrix,代码行数:25,代码来源:int.php


示例13: ImportTemplateChecker

 private static function ImportTemplateChecker($arActivity, $user)
 {
     $arErrors = CBPActivity::CallStaticMethod($arActivity["Type"], "ValidateProperties", array($arActivity["Properties"], $user));
     if (count($arErrors) > 0) {
         $m = "";
         foreach ($arErrors as $er) {
             $m .= $er["message"] . ". ";
         }
         throw new Exception($m);
         return false;
     }
     return true;
 }
开发者ID:DarneoStudio,项目名称:bitrix,代码行数:13,代码来源:workflowtemplateloader.php


示例14: RunQueuedItem

 private function RunQueuedItem(CBPActivity $activity, $activityOperation, Exception $exception = null)
 {
     if ($activityOperation == CBPActivityExecutorOperationType::Execute) {
         if ($activity->executionStatus == CBPActivityExecutionStatus::Executing) {
             try {
                 $trackingService = $this->GetService("TrackingService");
                 $trackingService->Write($this->GetInstanceId(), CBPTrackingType::ExecuteActivity, $activity->GetName(), $activity->executionStatus, $activity->executionResult, $activity->IsPropertyExists("Title") ? $activity->Title : "", "");
                 $newStatus = $activity->Execute();
                 if ($newStatus == CBPActivityExecutionStatus::Closed) {
                     $this->CloseActivity($activity);
                 } elseif ($newStatus != CBPActivityExecutionStatus::Executing) {
                     throw new Exception("InvalidExecutionStatus");
                 }
             } catch (Exception $e) {
                 throw $e;
             }
         }
     } elseif ($activityOperation == CBPActivityExecutorOperationType::Cancel) {
         if ($activity->executionStatus == CBPActivityExecutionStatus::Canceling) {
             try {
                 $trackingService = $this->GetService("TrackingService");
                 $trackingService->Write($this->GetInstanceId(), CBPTrackingType::CancelActivity, $activity->GetName(), $activity->executionStatus, $activity->executionResult, $activity->IsPropertyExists("Title") ? $activity->Title : "", "");
                 $newStatus = $activity->Cancel();
                 if ($newStatus == CBPActivityExecutionStatus::Closed) {
                     $this->CloseActivity($activity);
                 } elseif ($newStatus != CBPActivityExecutionStatus::Canceling) {
                     throw new Exception("InvalidExecutionStatus");
                 }
             } catch (Exception $e) {
                 throw $e;
             }
         }
     } elseif ($activityOperation == CBPActivityExecutorOperationType::HandleFault) {
         if ($activity->executionStatus == CBPActivityExecutionStatus::Faulting) {
             try {
                 $trackingService = $this->GetService("TrackingService");
                 $trackingService->Write($this->GetInstanceId(), CBPTrackingType::FaultActivity, $activity->GetName(), $activity->executionStatus, $activity->executionResult, $activity->IsPropertyExists("Title") ? $activity->Title : "", $exception != null ? "[" . $exception->getCode() . "] " . $exception->getMessage() : "");
                 $newStatus = $activity->HandleFault($exception);
                 if ($newStatus == CBPActivityExecutionStatus::Closed) {
                     $this->CloseActivity($activity);
                 } elseif ($newStatus != CBPActivityExecutionStatus::Faulting) {
                     throw new Exception("InvalidExecutionStatus");
                 }
             } catch (Exception $e) {
                 throw $e;
             }
         }
     }
 }
开发者ID:mrdeadmouse,项目名称:u136006,代码行数:49,代码来源:workflow.php


示例15: 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


示例16: 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


示例17: 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


示例18: 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


示例19: 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


示例20: ValidateProperties

 public static function ValidateProperties($arTestProperties = array(), CBPWorkflowTemplateUser $user = null)
 {
     $arErrors = array();
     if (!array_key_exists('EventType', $arTestProperties) || strlen($arTestProperties['EventType']) <= 0) {
         $arErrors[] = array('code' => 'NotExist', 'parameter' => 'EventType', 'message' => GetMessage('BPEAA_EMPTY_TYPE'));
     }
     if (!array_key_exists('EventText', $arTestProperties) || strlen($arTestProperties['EventText']) <= 0) {
         $arErrors[] = array('code' => 'NotExist', 'EventText' => 'MessageText', 'message' => GetMessage('BPEAA_EMPTY_MESSAGE'));
     }
     return array_merge($arErrors, parent::ValidateProperties($arTestProperties, $user));
 }
开发者ID:mrdeadmouse,项目名称:u136006,代码行数:11,代码来源:crmeventaddactivity.php



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP CBPDocument类代码示例发布时间:2022-05-23
下一篇:
PHP CArrayList类代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap