appId - integrations
sourceId - counterparty-edi-info
Цель этого RecordsDAO - получение информации о контрагенте непосредственно из ЭДО-провайдера.
На момент написания статьи - было возможно получить следующие данные о контрагенте из ЭДО-провайдера:
- counterpartyName - название, по которому контрагент зарегистрирован в ЭДО-провайдере.
- boxId - Идентификатор ящика контрагента, который участвует как идентификатор данного контрагента в интеграции (при получении документов - определяется контрагент по этому идентификатору, при отправке - определяется куда отправить документ).
- nsId - Идентификатор контрагента в ФНС. Участвует в формализованном документообороте, но хранить его не обязательно, как правило, интеграция подставляет его автоматически.
Данные для запроса могут быть разными, в зависимости от ситуаций и от того, какие параметры известны.
На момент написания статьи, полная структура, которую можно передать в запросе, выглядит следующим образом (обратите пожалуйста внимание на комментарии):
private boolean allowMultiple = false; // Разрешать ли получение более 1 записи с информацией о контрагенте. Если true - при нахождении 2 и более, будет ошибка выполнения запроса. private OurId ourId; // От имени какого ящика системы выполнять поиск информации о контрагенте. Параметр не обязателен, если useAnyBox=true. private boolean useAnyBox = false; // Если true - поиск информации о контрагенте будет выполнен от имени любого ящика, который зарегистрирован в системе (регистрация ящиков в системе производится в системном журнале "Конфигурация ящиков ЭДО") private String operatorId; // Идентификатор оператора ЭДО, в котором будет искаться информация о контрагенте (где 2BM=EdiProviderType.KONTUR, 2BE=EdiProviderType.SBIS и тд, полный список можно посмотреть в ru.citeck.ecos.edi.service.common.operator.OperatorIdConversationServiceImpl) private EdiProviderType ediProviderType; // Тип оператора ЭДО, в котором будет искаться информация о контрагенте. private String inn; // ИНН для поиска в ЭДО-провайдере. private String kpp; // КПП для поиска в ЭДО-провейдере (может быть опциональным).
Примеры запросов:
- Пример запроса в Контур с использованием случайного ящика (указание оператора через operatorId):
Запрос
{ "query": { "sourceId": "alfresco/counterparty-edi-info", "language": "predicate", "query": { "allowMultiple": false, "useAnyBox": true, "operatorId": "2BM", "inn": "9999999999", "kpp": "999999999" } }, "attributes": [ ".json" ] }
Ответ
{ "records": [ { "id": "alfresco/counterparty-edi-info@082e8d0f-93b6-4326-8580-753717af8ab2", "attributes": { ".json": { "counterpartyName": "Тест АО «АО» тестовая", "boxId": "0806d6e3-6508-41c7-9038-8c8031df112c", "fnsId": "2BM-9649397010-964901000-201512170845396498364" } } } ], "errors": [], "hasMore": false, "totalCount": 1 }
- Пример запроса в Контур с использованием случайного ящика (указание оператора через EdiProviderType):
Запрос
{ "query": { "sourceId": "alfresco/counterparty-edi-info", "language": "predicate", "query": { "allowMultiple": false, "useAnyBox": true, "operatorId": "KONTUR", "inn": "9999999999", "kpp": "999999999" } }, "attributes": [ ".json" ] }
Ответ
{ "query": { "sourceId": "alfresco/counterparty-edi-info", "language": "predicate", "query": { "allowMultiple": false, "useAnyBox": true, "operatorId": "KONTUR", "inn": "9999999999", "kpp": "999999999" } }, "attributes": [ ".json" ] }