Примеры реализации
Импорт данных из Excel в Citeck
Пример простой
Пример подходит для простых случаев, когда данные для импорта не содержат ассоциаций, не требуется маппинг и для вас подходит упрощенный формат файла.
В Разделе Администратора → Интеграция → Camel DSL нажмите «+» :
В форме заполните поля:
id: import-from-excel (можно задать свой. главное чтобы id был уникален среди всех Camel DSL)
Тип: Yaml
Состояние: Stopped
Файл: здесь будет необходимо загрузить excel файл с данными (пример см. ниже). Можно это сделать позднее.
Содержимое контекста:
- beans:
- name: "excelProcessor"
type: ru.citeck.ecos.camel.processor.reader.ExcelToListOfDataProcessor
- route:
from:
uri: "file-from-camel-dsl:import"
steps:
- process:
ref: excelProcessor
- split:
simple: "${body}"
steps:
- to: "ecos-records-mutate:?sourceId=emodel/import-test"

В содержимом нужно поменять только import-test на sourceId для вашего типа. По умолчанию sourceId равен id типа.
Сохраните.
Если файл с данными уже приложен, то остается только запустить через действие в журнале или через изменение состояния Stopped -> Started на форме редактирования:
![]() |
![]() |
В файле:
Первая строка - id атрибутов.
Остальные строки - данные, которые необходимо импортировать.
Пример сложнее
Пример подходит для сложных случаев (добавления маппинга, работы с ассоциациями, работы с нетривиальными форматами excel файла).
В данном примере будет показан пример роута с использованием следующих camel-элементов:
Допустим в системе есть два пользовательских типа данных - Работник и Позиция
Работник:

Позиция (справочный тип, является ассоциацией в типе Работник):

Необходимо импортировать следующие данные из Excel-файла (xlsx):

Комментарии к столбцам таблицы:
Работник - никакая дополнительная обработка не требуется. Значение будет записано в виде строки
Должность - тут видно, что в таблице используется свойство «Наименование» (системное название name) ассоциации с типом Должность. Для корректного сохранения в систему нужно будет определить RecordRef должности
Работает больше года - логическое значение которое перед сохранением в систему надо преобразовать в соответствующие true - false
Зарплата - числовое значение. Показаны разные варианты записи: с разрядностью, точкой и запятой в качестве разделителя, отрицательные числа (просто ради примера). Текст заголовка намекает на то, что он может периодически редактироваться. Кроме работы с заголовком никакая дополнительная обработка числовых значений не потребуется. Они корректно запишутся как соответствующие числовые значения
Дата приема - данный столбец в таблице имеет тип Дата и для примера показаны разные типы форматирования. Никакая дополнительная обработка значений не потребуется
Для импорта данных необходимо будет прикрепить Excel файл на форму Camel DSL и прописать следующую конфигурацию:
- beans:
- name: "excelProcessor"
type: ru.citeck.ecos.camel.processor.reader.ExcelToListOfDataProcessor
properties:
sheetName: Таблица персонала
tableStartCellReference: C4
customAttNames:
F: salary
- name: "mappingProcessor"
type: ru.citeck.ecos.camel.processor.data.MappingProcessor
properties:
keysMapping:
Работник: name
Должность: position
Работает больше года: moreThenYear
Дата приема: startDate
valuesMapping:
moreThenYear:
Да: true
Нет: false
- name: "assocRefByAttributeProcessor"
type: ru.citeck.ecos.camel.processor.data.AssocRefByAttributeProcessor
- route:
from:
uri: "file-from-camel-dsl:randomName"
steps:
- process:
ref: excelProcessor
- process:
ref: mappingProcessor
- setHeader:
name: AssocRefByAttributeConfig
constant:
sourceId: "emodel/camel-example-position"
findByAttribute: "name"
attributeKey: "position"
- process:
ref: assocRefByAttributeProcessor
- split:
simple: "${body}"
steps:
- to: ecos-records-mutate:?sourceId=emodel/camel-example-employee
Комментарии:

После импорта получаем:

Синхронизация Bitrix24 – CRM
Конфиги Camel DSL
В Разделе Администратора → Интеграция → Camel DSL были написаны 2 Camel DSL конфига:

bitrix24-crm-in-sync - Входящая интеграция. Из Bitrix24 в Citeck CRM.
Для Входящей интеграции создан вебхук bitrix24-webhook, через который принимаются запросы от Bitrix24 на создание или изменение Сделок. Входящая интеграция в Сделках использует атрибут bitrixId для определения какую сделку обновлять.
При создании сделки из Bitrix24 этот атрибут задается сразу. При обновлении в Bitrix24 если в Citeck CRM нет сделки с таким id, то она создается как новая.
bitrix24-crm-out-sync - Исходящая интеграция. Из Citeck CRM в Bitrix24.
Исходящая интеграция синхронизирует в Bitrix24 создание и обновление сделок.
Атрибуты, которые синхронизируются в текущей реализации:
Атрибут в deal Citeck CRM |
Атрибут в Bitrix24 |
Комментарий |
---|---|---|
bitrixId |
ID |
|
name |
TITLE |
|
amount |
OPPORTUNITY |
|
dateReceived |
DATE_CREATE |
|
company |
crm.company.get?id=COMPANY_ID -> TITLE |
В COMPANY_ID хранится ID связанной со Сделкой Компанией. |
manager |
user.get?id=ASSIGNED_BY_ID |
В ASSIGNED_BY_ID хранится ID менеджера сделки.
Получаем email пользователя из Bitrix24, и если по этому значению найден пользователь в системе, задаем его как менеджера.
|
contacts |
Контакты в Bitrix24 хранятся в отдельных сущностях.
Получаем список id контактов и по каждому id получаем данные контакта
|
|
contactFio |
LAST_NAME NAME SECOND_NAME |
Формируется из нескольких полей в Bitrix24 |
contactPhone |
contact.PHONE |
|
contactEmail |
contact.EMAIL |
Настройка синхронизации с Bitrix24
Для работы синхронизаций необходимо настроить Bitrix24, Конечные точки, Секреты и Входящий вебхук:
В Bitrix24 создать Исходящий вебхук (для входящей интеграции). См. подробно как
1.1 В URL указать адрес до Входящего вебхука, созданного в Citeck, вида
http://host/gateway/integrations/pub/webhook/bitrix24-webhook?token=testAuthToken
bitrix24-webhook – id, указанный при создании вебхука.
token - параметр, который был задан на форме
testAuthToken - сам токен, который был задан в Секрете
1.2 В События необходимо указать Создание сделки (ONCRMDEALADD), Обновление сделки (ONCRMDEALUPDATE)

1.3 В Citeck перейти в Раздел Администратора → Модель → Секреты в bitrix24-webhook-token указать Токен приложения.

В Bitrix24 создать Входящий вебхук (для запросов в Birix24).
2.1 Указать Настройку прав crm и user

2.2 В Citeck перейти в Раздел Администратора → Модель → Конечные точки в bitrix24-rest-endpoint указать URL Входящего вебхука Bitrix24 вида https://XXXX.bitrix24.ru/rest/

2.3 В Citeck перейти в Раздел Администратора → Модель → Секреты в bitrix24-rest-credentials указать Имя пользователя и Пароль (значения из URL Входящего вебхука Bitrix24 …./rest/{имя пользователя}/{пароль})

В Citeck перейти в Раздел Администратора → Модель → Конечные точки в bitrix24-rabbitmq-endpoint указать URL до Rabbitmq по AMQP:

В Citeck перейти в Раздел Администратора → Модель → Секреты в bitrix24-rabbitmq-credentials указать Имя пользователя и Пароль для аутентификации в rabbitmq. Пользователь должен быть с правами администратора.

Запустить в Camel DSL синхронизации bitrix24-crm-in-sync, bitrix24-crm-out-sync.