Создание или изменение инстанции бизнес-объекта (БО)
Предусловие: У вас должно иметься БО (Что это такое и как создать?)
Запрос (Request):
POST /api/v1/boi/upsert
Content-Type: application/json
API-TOKEN/TOKEN: your_token
- Метод: POST
- URL: http://your-domain.kz/api/v1/boi/upsert
Headers:
Content-Type: application/json API-TOKEN/TOKEN: your_token
Входные данные:
{
"boCode": "код бизнес-объекта",
"boiId": "Идентификатор инстанции бизнес-объекта",
"fieldValues": {
"код поля 1": "новое значение 1",
"код поля 2": "новое значение 2",
"код поля 3": "новое значение 3"
},
"removeAfter": true,
"fieldRefAdd": [{
"fieldCode": "код поля 4",
"boCode": "код БО который содержит в себе поле с кодом поля 4",
"fieldRefUniqCode": "код уникального поля 1",
"apiValues": [
"значение 1 уникального поля 1",
"значение 2 уникального поля 1"
]
}, ...],
"fieldRefRemove": [{
"fieldCode": "код поля 4",
"boCode": "код БО который содержит в себе поле с кодом поля 4",
"fieldRefUniqCode": "код уникального поля 1",
"apiValues": [
"значение 3 уникального поля 1",
"значение 4 уникального поля 1"
]
}, ...]
}
ВНИМАНИЕ! Поле boiId можно не указывать, однако если вы укажите, то отработает как UPDATE и если такого boiId не будет, то выйдет ошибка. Поэтому у бизнес-объекта должно быть уникальное поле, тогда введенное значение если будет существовать обновиться, если нет добавиться. Дополнительно, если у вас нет уникального поля в БО, то будет отрабатывать как CREATE.
Атрибут входного JSON | Описание |
---|---|
boCode | (String): Код бизнес-объекта. Как получить boCode? |
boiId | (String): Идентификатор инстанции бизнес-объекта. Как получить boiId? |
fieldValues.key | (String): Код определенного поля внутри БО. Как получить Код Поля? |
fieldValues.value | (String): Значение определенного поля внутри БО. Какие значения для каких полей надо вводить? |
removeAfter | (Boolean): Указывает что будет раньше добавление или удаление новых инстанции в поле БО. По умолчанию false значит удаление потом добавление. |
fieldRefAdd | (Массив объектов): Для добавления ссылок в поле БО по значениям уникальных полей вложенного БО |
fieldRefRemove | (Массив объектов): Для удаления ссылок из поля БО по значениям уникальных полей вложенного БО |
fieldRefAdd.fieldCode | (String): Код поля БО. Смотрите выше как получить код поля? |
fieldRefAdd.boCode | (String): Если поле с fieldCode находится внутри СО, то данное поле обязательное к заполнению, так как она будет показывать к какому БО относится ваше поле. |
fieldRefAdd.fieldRefUniqCode | (String): Код уникального поля БО на которое ссылается ваше поле. Смотрите выше как получить код поля? |
fieldRefAdd.apiValues | (Массив String): Значения уникальных полей которы надо добавить. Если в fieldRefRemove, то удалить. |
Примечание: Вы можете указывать несколько уникальных полей одного и того же БО.
Пример:
Если указывать boiId, то будет работать как Update (Если указать не существующий boiId выйдет ошибка):
{
"boCode": "Customer_Orders",
"boiId": "jJY02CrDmAQw1OMz",
"fieldValues": {
"ORDER_ID": "14",
"CUSTOMER_NAME": "Temirlan",
"ORDER_TOTAL": "123.0123",
"ORDER_DATE": "2023-11-23T14:30:45.123Z",
"ORDER_STATUS": "1wgmhNoiLSDpyXY9" // идентификатор значения из выборки
}
}
Если не указывать boiId, то в зависимости от значения уникального поля в вашем БО будет либо Update (если значение существует) либо Create (если не существует):
{
"boCode": "Customer_Orders",
"fieldValues": {
"ORDER_ID": "14",
"CUSTOMER_NAME": "Temirlan",
"ORDER_TOTAL": "123.0123",
"ORDER_DATE": "2023-11-23T14:30:45.123Z",
"ORDER_STATUS": "1wgmhNoiLSDpyXY9"
}
}
Ответ (Response):
{
"boiId": "Идентификатор инстанции БО",
"boCode": "Kод БО",
"state": "Одно из значений: ALL, REMOVED, ARCHIVED, DEV",
"isTouched": "Прочитано ли текущим пользователем данная инстанция? (true/false)",
"fieldValues": {
"код поля 1": {
"apiValue": "значение поля 1",
"displayValue": "значение поля для отабражения 1",
"type": "Тип поля" // Подробнее о типах поля можете узнать по ссылке ниже
},
"код поля 2": {
"apiValue": "значение поля 2",
"displayValue": "значение поля для отабражения 2",
"type": "Тип поля" // Подробнее о типах поля можете узнать по ссылке ниже
},
"код поля 3": {
"apiValue": "значение поля 3",
"displayValue": "значение поля для отабражения 3",
"type": "Тип поля" // Подробнее о типах поля можете узнать по ссылке ниже
}
}
}
Какие есть типы полей и какие значения они хранят?
Значения поля state:
1) ALL - Рабочее состояние записи
2) REMOVED - Запись удалена
3) ARCHIVED - Запись в архиве
4) DEV - Запись используется для тестирования процессов
Пример:
{
"boiId": "jJY02CrDmAQw1OMz",
"boCode": "Customer_Orders",
"state": "ALL",
"isTouched": true,
"fieldValues": {
"ORDER_ID": {
"apiValue": "14",
"displayValue": "14",
"type": "INPUT_NUMBER"
},
"ORDER_DATE": {
"apiValue": "2023-11-23T20:30:45.123+06",
"displayValue": "2023-11-23 20:30",
"type": "FULL_DATE"
},
"CUSTOMER_NAME": {
"apiValue": "Temirlan",
"displayValue": "Temirlan",
"type": "INPUT_TEXT"
},
"ORDER_STATUS": {
"apiValue": "1wgmhNoiLSDpyXY9",
"displayValue": "Delivered",
"type": "RADIO_BUTTON_GROUP"
},
"ORDER_TOTAL": {
"apiValue": "123.0123",
"displayValue": 123.0123",
"type": "INPUT_NUMBER"
}
}
}