Files
obsidian/BPMSoft - ELMA/Интеграция со стороны ELMA в BPMSoft.md
2026-01-20 16:11:38 +03:00

6.5 KiB
Raw Blame History

Отправка цепочки согласований

Основные моменты

  1. URI для запроса
    1. Dev https://crm-dev.itdev.adsw.io/ServiceModel/ElmaService.svc/CreateChainOfApproval
    2. Prod https://crm.adsw.io/ServiceModel/ElmaService.svc/CreateChainOfApproval
  2. Header для запроса X-Elma-Service
  3. Значение Header должно храниться в системе ELMA и быть зашифрованным (для dev и prod стендов разные значения). Будут переданы позднее
  4. Перед выполнением запроса необходимо расшифровать значение Header и добавить его в запрос
  5. В поле chain_of_approval отправляются email по порядку, исходя из цепочки согласований

Примеры

curl --location 'https://crm-dev.itdev.adsw.io/ServiceModel/ElmaService.svc/CreateChainOfApproval' \
--header 'X-Elma-Service: 123' \
--header 'Content-Type: application/json' \
--data '{
    "id_crm": "123-123",
    "chain_of_approval": "test1@mail.com"
}'

Специальные условия

  1. По матрице согласования нет подходящих условий
    • Согласование происходит автоматически в системе ELMA
    • ELMA отправляет запрос в формате
     {
         "id_crm": "035e0f7b-18d2-4f24-87d8-59f107110a01",
         "chain_of_approval": "Согласовано"
     }
    
    • BPMSoft при получении такого ответа автоматически согласовывает условие

Примеры ответов

Успешный ответ

{
    "status": 200,
    "error_message": ""
}

Отсутствует заголовок авторизации или он неверный

{
    "status": 403,
    "error_message": "Выполнение запрещено. Проверьте все необходимые данные"
}

Пустое тело

{
    "status": 400,
    "error_message": "Значение поля id_crm не может быть пустым"
}

Отсутствует поле id_crm или его значение пустое

{
    "status": 400,
    "error_message": "Значение поля id_crm не может быть пустым"
}

Отсутствует поле chain_of_approval или его значение пустое

{
    "status": 400,
    "error_message": "Значение поля chain_of_approval не может быть пустым"
}

Согласование с Id из поля id_crm не найдено в BPMSoft

{
    "status": 400,
    "error_message": "Согласование с Id {0} не найдено в системе BPMSoft. Проверьте корректность запроса"
}

Контакт с email из поля chain_of_approval не найден в BPMSoft

{
    "status": 400,
    "error_message": "Контакт с email {0} не найден в системе. Проверьте корректность запроса"
}

Внутренняя ошибка BPMSoft

{
    "status": 500,
    "error_message": "Ошибка в процессе обработки"
}

Отправка результата согласования

Основные моменты

  1. URI для запроса
    1. Dev https://crm-dev.itdev.adsw.io/ServiceModel/ElmaService.svc/ChangeApproverResolution
    2. Prod https://crm.adsw.io/ServiceModel/ElmaService.svc/ChangeApproverResolution
  2. Header для запроса X-Elma-Service
  3. Значение Header должно храниться в системе ELMA и быть зашифрованным (для dev и prod стендов разные значения). Будут переданы позднее
  4. Перед выполнением запроса необходимо расшифровать значение Header и добавить его в запрос
  5. В поле approver отправляется email согласующего
  6. В поле resolution отправляется строка, один из вариантов ("Согласовано" или "Отклонено")

Примеры

curl --location 'https://crm-dev.itdev.adsw.io/ServiceModel/ElmaService.svc/ChangeApproverResolution' \
--header 'X-Elma-Service: 123' \
--header 'Content-Type: application/json' \
--data-raw '{
    "id_crm": "123-123",
    "approver": "test@mail.com",
    "resolution": "Согласовано"
}'

Примеры ответов

Успешный ответ

{
    "status": 200,
    "error_message": ""
}

Отсутствует заголовок авторизации или он неверный

{
    "status": 403,
    "error_message": "Выполнение запрещено. Проверьте все необходимые данные"
}

Пустое тело

{
    "status": 400,
    "error_message": "Значение поля id_crm не может быть пустым"
}

Отсутствует поле id_crm или его значение пустое

{
    "status": 400,
    "error_message": "Значение поля id_crm не может быть пустым"
}

Отсутствует поле approver или его значение пустое

{
    "status": 400,
    "error_message": "Значение поля approver не может быть пустым"
}

Отсутствует поле resolution или его значение пустое

{
    "status": 400,
    "error_message": "Значение поля resolution не может быть пустым"
}

Согласование с Id из поля id_crm не найдено в BPMSoft

{
    "status": 400,
    "error_message": "Согласование с Id {0} не найдено в системе BPMSoft. Проверьте корректность запроса"
}

Контакт с email из поля approver не найден в BPMSoft

{
    "status": 400,
    "error_message": "Контакт с email {0} не найден в системе. Проверьте корректность запроса"
}

Внутренняя ошибка BPMSoft

{
    "status": 500,
    "error_message": "Ошибка в процессе обработки"
}