vault backup: 2026-02-04 16:09:34
This commit is contained in:
200
Работа/BPMSoft - ELMA/Интеграция со стороны ELMA в BPMSoft.md
Normal file
200
Работа/BPMSoft - ELMA/Интеграция со стороны ELMA в BPMSoft.md
Normal file
@@ -0,0 +1,200 @@
|
||||
## Отправка цепочки согласований
|
||||
|
||||
### Основные моменты
|
||||
|
||||
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 отправляет запрос в формате
|
||||
```json
|
||||
{
|
||||
"id_crm": "035e0f7b-18d2-4f24-87d8-59f107110a01",
|
||||
"chain_of_approval": "Согласовано"
|
||||
}
|
||||
```
|
||||
- BPMSoft при получении такого ответа автоматически согласовывает условие
|
||||
|
||||
### Примеры ответов
|
||||
|
||||
Успешный ответ
|
||||
```json
|
||||
{
|
||||
"status": 200,
|
||||
"error_message": ""
|
||||
}
|
||||
```
|
||||
|
||||
Отсутствует заголовок авторизации или он неверный
|
||||
```json
|
||||
{
|
||||
"status": 403,
|
||||
"error_message": "Выполнение запрещено. Проверьте все необходимые данные"
|
||||
}
|
||||
```
|
||||
|
||||
Пустое тело
|
||||
```json
|
||||
{
|
||||
"status": 400,
|
||||
"error_message": "Значение поля id_crm не может быть пустым"
|
||||
}
|
||||
```
|
||||
|
||||
Отсутствует поле `id_crm` или его значение пустое
|
||||
```json
|
||||
{
|
||||
"status": 400,
|
||||
"error_message": "Значение поля id_crm не может быть пустым"
|
||||
}
|
||||
```
|
||||
|
||||
Отсутствует поле `chain_of_approval` или его значение пустое
|
||||
```json
|
||||
{
|
||||
"status": 400,
|
||||
"error_message": "Значение поля chain_of_approval не может быть пустым"
|
||||
}
|
||||
```
|
||||
|
||||
Согласование с Id из поля `id_crm` не найдено в BPMSoft
|
||||
```json
|
||||
{
|
||||
"status": 400,
|
||||
"error_message": "Согласование с Id {0} не найдено в системе BPMSoft. Проверьте корректность запроса"
|
||||
}
|
||||
```
|
||||
|
||||
Контакт с email из поля `chain_of_approval` не найден в BPMSoft
|
||||
```json
|
||||
{
|
||||
"status": 400,
|
||||
"error_message": "Контакт с email {0} не найден в системе. Проверьте корректность запроса"
|
||||
}
|
||||
```
|
||||
|
||||
Внутренняя ошибка BPMSoft
|
||||
```json
|
||||
{
|
||||
"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": "Согласовано"
|
||||
}'
|
||||
```
|
||||
|
||||
###
|
||||
### Примеры ответов
|
||||
|
||||
Успешный ответ
|
||||
```json
|
||||
{
|
||||
"status": 200,
|
||||
"error_message": ""
|
||||
}
|
||||
```
|
||||
|
||||
Отсутствует заголовок авторизации или он неверный
|
||||
```json
|
||||
{
|
||||
"status": 403,
|
||||
"error_message": "Выполнение запрещено. Проверьте все необходимые данные"
|
||||
}
|
||||
```
|
||||
|
||||
Пустое тело
|
||||
```json
|
||||
{
|
||||
"status": 400,
|
||||
"error_message": "Значение поля id_crm не может быть пустым"
|
||||
}
|
||||
```
|
||||
|
||||
Отсутствует поле `id_crm` или его значение пустое
|
||||
```json
|
||||
{
|
||||
"status": 400,
|
||||
"error_message": "Значение поля id_crm не может быть пустым"
|
||||
}
|
||||
```
|
||||
|
||||
Отсутствует поле `approver` или его значение пустое
|
||||
```json
|
||||
{
|
||||
"status": 400,
|
||||
"error_message": "Значение поля approver не может быть пустым"
|
||||
}
|
||||
```
|
||||
|
||||
Отсутствует поле `resolution` или его значение пустое
|
||||
```json
|
||||
{
|
||||
"status": 400,
|
||||
"error_message": "Значение поля resolution не может быть пустым"
|
||||
}
|
||||
```
|
||||
|
||||
Согласование с Id из поля `id_crm` не найдено в BPMSoft
|
||||
```json
|
||||
{
|
||||
"status": 400,
|
||||
"error_message": "Согласование с Id {0} не найдено в системе BPMSoft. Проверьте корректность запроса"
|
||||
}
|
||||
```
|
||||
|
||||
Контакт с email из поля `approver` не найден в BPMSoft
|
||||
```json
|
||||
{
|
||||
"status": 400,
|
||||
"error_message": "Контакт с email {0} не найден в системе. Проверьте корректность запроса"
|
||||
}
|
||||
```
|
||||
|
||||
Внутренняя ошибка BPMSoft
|
||||
```json
|
||||
{
|
||||
"status": 500,
|
||||
"error_message": "Ошибка в процессе обработки"
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user