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)); }
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; }
/** * @param array $params Input params. * @param int $n Offset. * @param \CRestServer $server Rest server instance. * @return array * @throws AccessException * @throws \Bitrix\Main\ArgumentException */ public static function getActivityList($params, $n, $server) { self::checkAdminPermissions(); $iterator = RestActivityTable::getList(array('select' => array('CODE'), 'filter' => array('=APP_ID' => $server->getAppId()))); $result = array(); while ($row = $iterator->fetch()) { $result[] = $row['CODE']; } return $result; }