private function makeRestActivityDescription($activity, $lang = false, $documentType = null) { if ($lang === false) { $lang = LANGUAGE_ID; } $code = static::REST_ACTIVITY_PREFIX . $activity['INTERNAL_CODE']; $result = array('NAME' => '[' . RestActivityTable::getLocalization($activity['APP_NAME'], $lang) . '] ' . RestActivityTable::getLocalization($activity['NAME'], $lang), 'DESCRIPTION' => RestActivityTable::getLocalization($activity['DESCRIPTION'], $lang), 'TYPE' => 'activity', 'CLASS' => $code, 'JSCLASS' => 'BizProcActivity', 'CATEGORY' => array('ID' => 'rest'), 'RETURN' => array(), 'PATH_TO_ACTIVITY' => ''); if (isset($activity['FILTER']) && !$this->checkActivityFilter($activity['FILTER'], $documentType)) { $result['EXCLUDED'] = true; } if (!empty($activity['RETURN_PROPERTIES'])) { foreach ($activity['RETURN_PROPERTIES'] as $name => $property) { $result['RETURN'][$name] = array('NAME' => RestActivityTable::getLocalization($property['NAME'], $lang), 'TYPE' => isset($property['TYPE']) ? $property['TYPE'] : \Bitrix\Bizproc\FieldType::STRING); } } if ($activity['USE_SUBSCRIPTION'] != 'N') { $result['RETURN']['IsTimeout'] = array('NAME' => GetMessage('BPRA_IS_TIMEOUT'), 'TYPE' => \Bitrix\Bizproc\FieldType::INT); } return $result; }
public static function ValidateProperties($testProperties = array(), CBPWorkflowTemplateUser $user = null) { $errors = array(); $activityData = self::getRestActivityData(); $properties = isset($activityData['PROPERTIES']) && is_array($activityData['PROPERTIES']) ? $activityData['PROPERTIES'] : array(); foreach ($properties as $name => $property) { $value = isset($property['DEFAULT']) ? $property['DEFAULT'] : null; if (isset($testProperties[$name])) { $value = $testProperties[$name]; } if (CBPHelper::getBool($property['REQUIRED']) && CBPHelper::isEmptyValue($value)) { $errors[] = array('code' => 'NotExist', 'parameter' => $name, 'message' => Loc::getMessage('BPRA_PD_ERROR_EMPTY_PROPERTY', array('#NAME#' => RestActivityTable::getLocalization($property['NAME'], LANGUAGE_ID)))); } } if (isset($testProperties['AuthUserId']) && (string) $testProperties['AuthUserId'] !== $activityData['AUTH_USER_ID'] && !static::checkAdminPermissions()) { $errors[] = array('code' => 'NotExist', 'parameter' => 'AuthUserId', 'message' => Loc::getMessage('BPRA_PD_ERROR_EMPTY_PROPERTY', array('#NAME#' => Loc::getMessage('BPRA_PD_USER_ID')))); } return array_merge($errors, parent::ValidateProperties($testProperties, $user)); }