API запросы ecos-edi
В ecos-edi микросервисе реализован функционал из enterprise-core cервиса EcosEdiService.
При отправке запроса на отправку пакета или документов или генерацию сервисных документов используется record dao c id - edi-action.
Для отправки запроса через рекорды необходимо использовать метод mutate.
DTO запроса и ответа:
public static class EdiActionRequest {
private String requestType;
private EdiProviderType providerType;
private ObjectData requestData;
}
public static class EdiActionResult {
private T data;
}
Где:
requestType - тип запроса, например “generatePrintForm“
providerType- тип провайдера, Контур, СБИС и т.д. для Диадока необходимо указывать “KONTUR“ (см. EdiProviderType enum).
requestData - данные по запросу, например, для генерации печатных форм это documentRef документа
Пример запроса:
RecordAtts requestAtts = new RecordAtts();
requestAtts.setId("edi/edi-action@");
requestAtts.setAtt("requestType", "generatePrintForm");
requestAtts.setAtt("providerType","KONTUR");
requestAtts.setAtt("requestData", ObjectData.create().set("documentRef", RecordRef.valueOf("recordRef value")));
recordsService.mutate(requestAtts);
Посмотреть различные типы запросов можно в классе EdiRequestRecords микросервиса ecos-edi
Пример запроса из консоли:
var rec = Records.get('edi/edi-action@'); // важно @ в конце
rec.att("_self", {
"requestType":"generatePrintForm",
"providerType":"KONTUR",
"requestData": {"documentRef":"emodel/edi-document@5d518efd-cef1-4ebf-b518-62ff9a620c9e"}
});
var resp = await rec.save("?json");
Список текущих поддерживаемых запросов:
Запрос |
Описание |
Пример |
---|---|---|
isCounterpartyExists |
Запрос на проверку существания связи с контрагентом у конткретной организации.
Параметры requestData:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"isCounterpartyExists",
"providerType":"KONTUR",
"requestData": {
"clientBoxId":"1312313-131331-1231",
"inn":"12334561234",
"kpp":"123652323"
}
});
var resp = await rec.save("json");
|
aquireCounterparty |
Запрос на создание связи с контрагентом.
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"aquireCounterparty",
"providerType":"KONTUR",
"requestData": {
"counterpartyRef":"emodel/counterparty@12311241-123123",
"clientBoxId":"123123-123123123-123213",
"invitationDocRef ":"emodel/invitationDoc@12311241-123123",
"comment": "commentText"
}
});
var resp = await rec.save("json");
|
breakWithCounterparty |
Запрос на разрыв связи с контрагентом
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"breakWithCounterparty",
"providerType":"KONTUR",
"requestData": {
"counterpartyRef":"emodel/counterparty@12311241-123123",
"clientBoxId":"123123-123123123-123213",
"comment": "commentText"
}
});
var resp = await rec.save("json");
|
sendPackageToCounterparty |
Отправка исходящего пакета провайдеру.
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"sendPackageToCounterparty",
"providerType":"KONTUR",
"requestData": {
"packageRef":"emodel/edi-package@12311241-123123",
"counterpartyRef":"emodel/counterparty@12311241-123123",
"counterpartyBoxId ":"234623478246824623442374",
"legalEntityRef":"emodel/legal-entity@12311241-123123",
"clientBoxId":"2342342342342342424324",
"fromDepartmentId ":"3434444444444434343434",
"toDepartmentId":"242423423424242424242",
"isInternal":false,
"needSentSignature":true,
"packageNumber":"22551515252",
"packageDate":"2023/09/08",
"packageComment":"Test comment",
"signerRef": "emodel/person@12311241-123123"
}
});
var resp = await rec.save("json");
|
signPackage |
Отправка подписанных документов в пакете провайдеру.
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"signPackage",
"providerType":"KONTUR",
"requestData": {
"packageRef ":"emodel/edi-package@12311241-123123"
}
});
rec.save("json");
|
pointwiseSync |
Точечная синхронизация с провайдером по одному пакету.
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"pointwiseSync",
"providerType":"KONTUR",
"requestData": {
"clientBoxId":"12315116136163241231",
"systemPackageId":"1321312312312321312312"
}
});
rec.save("json");
|
signDocuments |
Отправка подписей по документам провайдеру.
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"signDocuments",
"providerType":"KONTUR",
"requestData": {
"documentRefs":[
"emodel/edi-document@ref1",
"emodel/edi-document@ref2"
]
}
});
rec.save("json");
|
signDocumentsAndBuyerTitles |
Отправка подписей по формализованным документам провайдеру.
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"signDocumentsAndBuyerTitles",
"providerType":"KONTUR",
"requestData": {
"documentRefs":[
"emodel/edi-document@ref1",
"emodel/edi-document@ref2"
],
"invoicesRefs":[
"emodel/edi-document@ref3",
"emodel/edi-document@ref4"
]
}
});
rec.save("json");
|
sendReconciliationActSigns |
Отправка подписей для актов сверки.
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"sendReconciliationActSigns",
"providerType":"KONTUR",
"requestData": {
"documentRefs":[
"emodel/edi-document@ref1",
"emodel/edi-document@ref2"
],
"signerRef":"emodel/person@ref-1",
"signerJobTitle":"Директор тест"
}
});
rec.save("json");
|
rejectPackage |
Отправка подписанного отказа в подписи документов в пакете.
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"rejectPackage",
"providerType":"KONTUR",
"requestData": {
"packageRef ":"emodel/edi-package@12311241-123123"
}
});
rec.save("json");
|
rejectDocuments |
Отправка подписанного отказа в подписи документов.
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"rejectDocuments",
"providerType":"KONTUR",
"requestData": {
"documentRefs":[
"emodel/edi-document@ref1",
"emodel/edi-document@ref2"
]
}
});
rec.save("json");
|
sendReconciliationActRejects |
Отправка подписанных отказов в подписи для актов сверки.
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"sendReconciliationActRejects",
"providerType":"KONTUR",
"requestData": {
"documentRefs":[
"emodel/edi-document@ref1",
"emodel/edi-document@ref2"
]
}
});
rec.save("json");
|
acceptRevocationRequests |
Отправка подписанных запросов на аннулирование по документам.
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"acceptRevocationRequests",
"providerType":"KONTUR",
"requestData": {
"documentRefs":[
"emodel/edi-document@ref1",
"emodel/edi-document@ref2"
]
}
});
rec.save("json");
|
declineRevocationRequests |
Отправка подписанных отказов по запросу на аннулирование по документам.
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"declineRevocationRequests",
"providerType":"KONTUR",
"requestData": {
"documentRefs":[
"emodel/edi-document@ref1",
"emodel/edi-document@ref2"
]
}
});
rec.save("json");
|
sendRevocationRequests |
Отправка подписанных запросов на аннулирование по документам.
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"sendRevocationRequests",
"providerType":"KONTUR",
"requestData": {
"documentRefs":[
"emodel/edi-document@ref1",
"emodel/edi-document@ref2"
]
}
});
rec.save("json");
|
sendCorrectionRequests |
Отправка подписанных запросов на корректировку по документам.
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"sendCorrectionRequests",
"providerType":"KONTUR",
"requestData": {
"documentRefs":[
"emodel/edi-document@ref1",
"emodel/edi-document@ref2"
]
}
});
rec.save("json");
|
sendBuyerTitles |
Отправка подписанных титулов покупателя по формализованным документам.
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"sendBuyerTitles",
"providerType":"KONTUR",
"requestData": {
"documentRefs":[
"emodel/edi-document@ref1",
"emodel/edi-document@ref2"
]
}
});
rec.save("json");
|
generatePrintForm |
Генерация печатной формы по документу, возвращается контент печатной формы
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"generatePrintForm",
"providerType":"KONTUR",
"requestData": {
"documentRef":"emodel/edi-document@ref1"
}
});
var res = rec.save("json");
|
generatePrintFormWithDetails |
Генерация печатной формы по документу, возвращается контент печатной формы + доп. параметры (id документа, статус генерации печатной формы у провайдера, возможные ошибки)
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"generatePrintFormWithDetails",
"providerType":"KONTUR",
"requestData": {
"documentRef":"emodel/edi-document@ref1"
}
});
var res = rec.save("json");
|
needUpdateMainContentByPrintForm |
Требуется ли генерация печатной формы для документа
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"needUpdateMainContentByPrintForm",
"providerType":"KONTUR",
"requestData": {
"documentRef":"emodel/edi-document@ref1"
}
});
var res = rec.save("json");
|
generateRejectionXml |
Генерация xml отказа в подписи для документа.
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"generateRejectionXml",
"providerType":"KONTUR",
"requestData": {
"documentRef":"emodel/edi-document@ref1",
"signerRef":"emodel/person@ref-1",
"comment":"Test comment"
}
});
var res = rec.save("json");
|
generateRejectionsXml |
Генерация xml отказа в подписи для документов
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"generateRejectionsXml",
"providerType":"KONTUR",
"requestData": {
"documentRefs":[
"emodel/edi-document@ref1",
"emodel/edi-document@ref2"
],
"signerRef":"emodel/person@ref-1",
"comment":"Test comment"
}
});
var res = rec.save("json");
|
generateRevocationXml |
Генерация xml запроса на аннулирование для документа
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"generateRevocationXml",
"providerType":"KONTUR",
"requestData": {
"documentRef":"emodel/edi-document@ref1",
"signerName":"admin",
"comment":"Test comment"
}
});
var res = rec.save("json");
|
generateRevocationsXml |
Генерация xml запроса на аннулирование для документов.
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"generateRevocationsXml",
"providerType":"KONTUR",
"requestData": {
"documentRefs":[
"emodel/edi-document@ref1",
"emodel/edi-document@ref2"
],
"signerName":"admin",
"comment":"Test comment"
}
});
var res = rec.save("json");
|
generateInvoiceCorrectionRequestXml |
Генерация xml корректировки для документа.
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"generateInvoiceCorrectionRequestXml",
"providerType":"KONTUR",
"requestData": {
"documentRef":"emodel/edi-document@ref1",
"signerName":"admin",
"comment":"Test comment"
}
});
var res = rec.save("json");
|
isNeedSignTitle |
Проверка на требование подписания титула покупателя у документа
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"isNeedSignTitle",
"providerType":"KONTUR",
"requestData": {
"documentRef":"emodel/edi-document@ref1"
}
});
var res = rec.save("json");
|
generateBuyerTitle |
Генерация xml титула покупателя для документа
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"generateBuyerTitle",
"providerType":"KONTUR",
"requestData": {
"documentRef":"emodel/edi-document@ref1",
"signerName":"admin",
"factArrivalDate ":"2023/09/08",
"comment":"Test comment"
}
});
var res = rec.save("json");
|
generateReceiptXml |
Генерация xml извещения о получении для документа
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"generateReceiptXml",
"providerType":"KONTUR",
"requestData": {
"documentRef":"emodel/edi-document@ref1",
"signerName":"admin",
"signerPosition":"DirectorTest"
}
});
var res = rec.save("json");
|
generateReceiptsXml |
Генерация xml извещения о получении для документов
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"generateReceiptsXml",
"providerType":"KONTUR",
"requestData": {
"documentRefs":[
"emodel/edi-document@ref1",
"emodel/edi-document@ref2"
],
"signerName":"admin",
"signerPosition":"DirectorTest"
}
});
var res = rec.save("json");
|
sendReceiptsXml |
Отправка подписанного xml извещения о получении для документов.
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"sendReceiptsXml",
"providerType":"KONTUR",
"requestData": {
"documentRefs":[
"emodel/edi-document@ref1",
"emodel/edi-document@ref2"
]
}
});
var res = rec.save("json");
|
sendReceiptXml |
Отправка подписанного xml извещения о получении для документа (Оптимизируется в дальнейшем)
Параметры:
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"sendReceiptXml",
"providerType":"KONTUR",
"requestData": {
"documentRef":"emodel/edi-document@ref1"
}
});
var res = rec.save("json");
|
addDocumentsToSystemPackage |
Добавление документа в системный пакет edi-package.
В параметры передаются ref системного пакета и список документов для добавления в данный пакет.
Если ref пакета не указан, то будет создан новый edi пакет и в него будут добавлены передаваемые документы.
Документы могут передавать как с типом edi-document и его наследники, так и с любым другим, не связаным с edi
Если передается документ не являющийся типом edi-document или его наследником, то для каждого из таких документов создается соответствующий ему документ c типом edi-document.
Edi-document добавляется в пакет и далее может быть отправлен провайдеру.
Edi-document и добавляемый кастомный документ связываются через ассоциацию ediDoc:systemDocumentLink
Параметры:
В ответе возвращается recordRef пакета
|
var rec = Records.get('edi/edi-action@');
rec.att("_self", {
"requestType":"addDocumentsToSystemPackage",
"providerType":"KONTUR",
"requestData": {
"packageRef":"emodel/edi-package@packageId", //id системеного пакета для добавления документов (может быть null, тогда будет создан новый пакет
"documentRefs":["emodel/doc-type@doc-id"] // список документов для добавления в системный edi пакет
}
});
var resp = await rec.save("json");
|