本文整理汇总了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;未经允许,请勿转载。 |
请发表评论