public function FixUpParentChildRelationship(CBPActivity $nestedActivity) { parent::FixUpParentChildRelationship($nestedActivity); if (!is_array($this->arActivities)) { $this->arActivities = array(); } $this->arActivities[] = $nestedActivity; }
private function ParceWorkflowTemplate($arWorkflowTemplate, &$arActivityNames, CBPActivity $parentActivity = null) { if (!is_array($arWorkflowTemplate)) { throw new CBPArgumentOutOfRangeException("arWorkflowTemplate"); } foreach ($arWorkflowTemplate as $activityFormatted) { if (in_array($activityFormatted["Name"], $arActivityNames)) { throw new Exception("DublicateAcrivityName"); } $arActivityNames[] = $activityFormatted["Name"]; $activity = $this->CreateActivity($activityFormatted["Type"], $activityFormatted["Name"]); if ($activity == null) { throw new Exception("Activity is not found."); } $activity->InitializeFromArray($activityFormatted["Properties"]); if ($parentActivity) { $parentActivity->FixUpParentChildRelationship($activity); } if ($activityFormatted["Children"]) { $this->ParceWorkflowTemplate($activityFormatted["Children"], $arActivityNames, $activity); } } return $activity; }