CounterpartyEdiInfoRecordsDao
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"
]
}