Элементы смарт-процессов
Scope: crm Права на выполнение: для всех
Описание
Так как элементы каждого смарт-процесса хранятся в отдельной таблице, то идентификаторы элементов разных смарт-процессов могут совпадать.
Поэтому во все методы необходимо передавать внешний идентификатор смарт-процесса entityTypeId
.
Права доступа
При обращении к методам REST учитываются права доступа пользователя, от которого осуществляется вызов методов.
Булевы значения
Значения некоторых полей имеют булевый тип (например, поле opened
- "Доступно для всех").
В этом случае для изменения значения надо передавать "Y" или "N". В ответах на запросы они будут отображаться аналогично.
Привязка к реквизитам
Для управления привязкой реквизитов можно воспользоваться методами crm.requisite.link.*.
Особенности работы с названиями полей
В базе данных имена полей элементов хранятся в UPPER_CASE
формате. Но при работе через REST мы преобразуем их в camelCase
. Например, поле ASSIGNED_BY_ID
преобразуется в assignedById
.
Имена пользовательских полей, помимо символа _
и букв, могут содержать цифры. Обычно они идут раздельно, например, поле UF_CRM_10_5186744711
преобразуется в ufCrm10_5186744711
.
Чтобы код выглядел более читаемым, подчеркивания между цифрами остаются, а остальные - убираются.
Проблемы начинаются, когда буквы и цифры в поле идут вперемешку. Например, UF_CRM_10_DIGIT10
преобразуется в ufCrm10Digit10
. При обратном преобразовании нет никакой возможности определить, исходное поле называлось UF_CRM_10_DIGIT10
или UF_CRM_10_DIGIT_10
.
Чтобы разрешить подобные конфликты, с версии CRM 21.1800.0 был внедрен механизм предварительного анализа названий полей, и если в них обнаружены конфликты, то название поля не преобразуется в camelCase
, а остается как есть.
Кроме того, любые названия полей во всех методах можно передавать как в UPPER_CASE
, так и в camelCase
.
Например, у элемента есть два поля - UF_CRM_10_DIGIT_10
и UF_CRM_10_DIGIT10
.
При вызове метода crm.item.fields
название первого поля будет преобразовано в ufCrm10Digit10
, а второе останется UF_CRM_10_DIGIT10
. При этом по ключу upperName
можно прочитать название поля в UPPER_CASE
и во всех методах использовать его.
Методы
Методы | Описание |
---|---|
crm.item.fields | Отдает информацию о полях смарт-процесса. |
crm.item.get | Отдает информацию об элементе смарт-процесса. |
crm.item.list | Возвращает массив элементов смарт-процесса. |
crm.item.add | Создаёт создает новый элемент смарт-процесса. |
crm.item.update | Обновляет элемент смарт-процесса. |
crm.item.delete | Удаляет элемент смарт-процесса. |
С версии crm 21.800.0
Появляется поддержка полей-родителей при чтении и изменении элементов смарт-процессов.
Каждое поле имеет код parentId + {parentEntityTypeId}
.
- Метод
fields
в списке полей будет отдавать информацию о полях с родителями. - Методы
get
иlist
будут отдавать значения полей родителей. - Методы
add
иupdate
будут поддерживать изменения значений этих полей.