Сервис обработки сообщений внешней системой поддерживающий пассивный механизм взаимодействия.
Сообщения накапливаются до тех пор,
пока интегратор не инициирует их обработку самостоятельно, по расписанию или командой пользователя
Сбросить статус наличных сообщений экспорта в "Отправка разрешена" и по возможности перезаписасть их в брокер сообщений
@param systemId Идентификатор целевой системы
@param mdmIds Список идентификаторов позиций MDM, от 1 до 100
@return Результат изменения статуса независимо от наличия сообщений экспорта и их статуса
Опрелеить общее количество нормализованных айтемов, удовлетворяющих критерию быстрого поиска
@param textSearched Строка быстрого поиска
@return Количество айтемов
Сообщить, что клиент смог принять сообщения.
Функцию необходимо вызывать лишь в том случае, если клиент получает и обрабатывает сообщения в разных потоках или транзакциях БД.
При одновременном получении и обработке сообщений функцию вызывать излишне. Под обработкой понимается создание и редактирование
объектов на своей стороне, генерация переходных ключей. Следует понимать, что если сообщение помечено как принятое, но переходной
ключ ещё не получен, можно опубликовать транзакцию с удалением айтема, на который ссылается сообщение.
@param messageIds Идентификаторы сообщений
Получить сообщения допущенные к экспорту по идентификаторам позиций MDM.
Запрещено в одном вызове требовать более 100 сообщений.
@param systemId Система
@param mdmIds Список идентификаторов позиций MDM
@return Сообщения
Сообщить результат обработки сообщений.
Все результаты обработки должны принадлежать одной системе. Сообщать следует либо об ошибке, лиоб об успехе.
В случае успеха могут быть переданы новые и удаляемые переходные ключи.
@param requests Результат обработки
Найти нормализованные айтемы быстрым поиском.
Функция не хранит состояние. Допускается попадание одного и того же айтема в непересекающиеся страницы,
если между вызовами для разных страниц произошли изменения в данных.
@param textSearched Строка быстрого поиска
@param systemId Идентификатор системы, для которой возвращать переходные ключи
@param exchangeClassIds Идентификаторы связанных обменных классов
@param startIndex Начальный номер строки для страницы результатов поиска, null - получить первую страницу
@param incExpirables Учитывать исторические значения свойств
@param pageSize Размер страницы результатов поиска, не более 100
@return Список найденных айтемов, сортированный по релевантности
Оповестить о том, что интегратор здоров
@param systemId Идентификатор системы
Получить информацию о состоянии сообщений экспорта по идентификаторам позиций MDM.
Запрещено в одном вызове требовать более 100 разъяснений.
@param systemId Система
@param mdmIds Список идентификаторов позиций MDM
@return Сообщения
Получить сообщения допущенные к экспорту.
Размер порции от 1 до 1000, следует выбирать исходя из ожидаемого объёма данных, 25 сообщений считаю оптимальным вариантом.
@param systemId Система
@param classId Обменный класс
@param maxSize Размер порции
@param priority Приоритет сообщений
@return Сообщения
Изменить приоритет сообщений экспорта
@param messageIds идентификаторы сообщений
@param priority приоритет
Получить сообщения допущенные к экспорту.
Размер порции от 1 до 1000, следует выбирать исходя из ожидаемого объёма данных, 25 сообщений считаю оптимальным вариантом.
@param systemIds Системы, от 2 до 100
@param classId Обменный класс
@param maxSize Размер порции
@param priority Приоритет сообщений
@return Сообщения
Получить тело файла. В Base64. Лучше использовать MTOM сервис.
@param hash Хэш файла
@return Тело файла
Заказать формирование сообщений экспорта в систему для позиций MDM.
Запрашивать сообщения можно лишь по окончании процесса. У пользователя, заказавшего сообщения не должно быть
активного пакета изменений, в частности желательно проконтролировать, что в данный момент пользователь
не выполняет обработку сообщений импорта.
@param systemId Идентификатор целевой системы
@param mdmIds Список идентификаторов позиций MDM
@return Фоновая задача
Сервис обмена файлами с использованием MTOM. Клиент C# WCF:
var binding = new BasicHttpBinding
{
MessageEncoding = WSMessageEncoding.Mtom,
MaxReceivedMessageSize = 99999999
};
Клиент Java Apache CXF:
var port = service.getPort(MtomSoapService.class); BindingProvider bp = (BindingProvider) port; SOAPBinding binding=(SOAPBinding) port.getBinding(); binding.setMTOMEnabled(true);
Завершить псевдо-задачу, результатом выполнения которой является файл @param id Ид задачи @param fileName Наименование файла @param body Тело файла
Записать тело файла в сообщение импорта. Связать файл с сообщением можно лишь единожды, замены и удаления не допускаются @param sessionId Идентификатор сессии @param classId Обменный класс @param sourceId Переходной ключ @param fileId Идентификатор файла в сообщении @param body Тело файла @param fileHash Хэш файла либо иной признак, позволяющий сравнить его с файлом в предыдущем сообщении
Записать тело файла в сообщение импорта. Связать файл с сообщением можно лишь единожды, замены и удаления не допускаются @param sessionId Идентификатор сессии @param sourceId Переходной ключ @param fileId Идентификатор файла в сообщении @param body Тело файла @param fileHash Хэш файла либо иной признак, позволяющий сравнить его с файлом в предыдущем сообщении
Получить тело файла для сообщения экспорта. @param hash Хэш файла @return Тело файла
Сервис импорта сообщений.
Импорт сообщений выполняется порционно в рамках сессии. Внутри одной сессии могут быть импортированы сообщения только одной внешней системы. Сценарий импорта:
• открыть новую сессию
• выдать порциями все сообщения, готовые к отправке у источника
• закрыть сессию
• заказать асинхронную обработку всех сообщений сессии
• опционально, дождаться окончания обработки сообщений
Определить состояние сессии импорта
@param sessionId Идентификатор сессии
@return Состояние сессии
Пополнить сессию входящими сообщениями
@param importRecordsRequest Сообщения
Удалить сообщение импорта @param systemId идентификатор системы @param classId идентификатор обменного класса @param sourceId идентификатор сообщения @return true, если такое сообщение существовало и было удалено
Закрыть сессию импорта
@param sessionId Идентификатор сессии
Открыть сессию импорта
@param systemId Идентификатор системы
@return Идентификатор сессии
Начать обработку входящих сообщений закрытой ранее сессии импорта
@param sessionId Идентификатор сессии
@return Фоновая задача
Получить массив идентификаторов сообщений импорта по номеру сессии @param sessionId сессия @return идентификаторы
Пополнить сессию входящими сообщениями
@param importRecordsRequest Сообщения
@return Сериализованные сообщения
Записать тело файла в сообщение импорта. В Base64. Лучше использовать MTOM сервис.
Связать файл с сообщением можно лишь единожды, замены и удаления не допускаются
@param sessionId Идентификатор сессии
@param sourceId Переходной ключ
@param fileId Идентификатор файла в сообщении
@param body Тело файла
@param fileHash Хэш файла либо иной признак, позволяющий сравнить его с файлом в предыдущем сообщении
Записать тело файла в сообщение импорта. В Base64. Лучше использовать MTOM сервис.
Связать файл с сообщением можно лишь единожды, замены и удаления не допускаются
@param sessionId Идентификатор сессии
@param sourceId Переходной ключ
@param fileId Идентификатор файла в сообщении
@param body Тело файла
@param fileHash Хэш файла либо иной признак, позволяющий сравнить его с файлом в предыдущем сообщении
Получить сообщения импорта по заданному списку переходных ключей для заданного строкового идентификатора системы и идентификатора обменного класса @param systemId идентификатор системы @param classId идентификатор обменного класса @param sourceIds идентификаторы сообщений, не более 1000 @return сообщения импорта
Сигнализировать об обработке ошибки обработки сообщениря
@param sourceRecordId Идентификатор сообщения
Получить ошибки, возникшие во время обработки сообщений
@param systemId Идентификатор системы
@param classId Идентификатор обменного класса
@param maxSize Максимальные размер порции
@return Список ошибок
Получить ошибки, возникшие во время обработки сообщений
@param sessionId Идентификатор сессии импорта
@param maxSize Максимальные размер порции
@return Список ошибок
Получить массив значений переходных ключей по номеру сессии @param sessionId сессия @return значения
Отслеживание списка фоновых задач
Завершить псевдо-задачу, результатом выполнения которой является файл
@param id Идентификатор задачи
@param fileName Наименование файла
@param body Тело файла
Получить задачу по идентификатору @param jobId Идентификатор
Продвинуть ход выполнения псевдо-задачи
@param id Идентификатор задачи
@param done Выполнено шагов
@param size Всего шагов
@return Задача
Получить фоновые задачи инициировнные пользователем
Инициализировать внешнюю псевдо-задачу. Такая задача будет отображаться в списке, но управление ей невозможно.
@param name Наименование задачи
@param size Количество шагов выполнения
@param isCancelable Возможность отмены
@return Задача
Удалить задачу.
Удалить в процессе выполнения можно только задачу, для которой разрешено прерывание. Завршённую задачу можно удалить безусловно.
Завершённые задачи удаляются автоматически, если они не генерируют результат и завершилдись успешно.
@param id Идентификатор задачи
Завершить псевдо-задачу
@param id Идентификатор задачи
@param withError Признак ошибки
@param message Результат в виде строки или сообщение об ошибке. Если результат пуст, задача удаляется из списка
| name | type | cardinality | description |
|---|---|---|---|
| return | resentItemMessage | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| compatibilities | exchangeCompatibility | 0..* | |
| sourceIds | exportSourceId | 0..* | |
| values | exportValue | 0..* |
Extends: exchangeObject
| name | type | cardinality | description |
|---|---|---|---|
| textSearched | 0..1 | ||
| systemId | 0..1 | ||
| exchangeClassIds | 0..* | ||
| startIndex | 0..1 | ||
| pageSize | 0..1 | ||
| incExpirables | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| sourceRecordId | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| deleted | 1..1 | ||
| mdmId | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| bodyHash | 0..1 | ||
| name | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| systemId | 0..1 | ||
| classId | 0..1 | ||
| maxSize | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| name | 0..1 | ||
| size | 1..1 | ||
| isCancelable | 1..1 |
| name | type | cardinality | description |
|---|---|---|---|
| id | 0..1 | ||
| done | 1..1 | ||
| size | 1..1 |
| name | type | cardinality | description |
|---|---|---|---|
| return | workInfoTransfer | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| classId | 0..1 | ||
| conformsExportRestriction | 1..1 | ||
| duplicateInfos | replicaDuplicateInfo | 0..* | |
| exportObject | exportObject | 0..1 | |
| systemId | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| duplicate | 1..1 | ||
| value | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| return | sourceRecordDto | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| applicant | 0..1 | ||
| changeDate | 0..1 | ||
| deleted | 1..1 | ||
| duplicateInfos | replicaDuplicateInfo | 0..* | |
| exchangeClassId | 0..1 | ||
| exportClaims | replicaExportClaimInfo | 0..* | |
| importObject | importObject | 0..1 | |
| originalSourceId | 0..1 | ||
| sourceId | 0..1 | ||
| virtualSourceId | 1..1 |
| name | type | cardinality | description |
|---|---|---|---|
| id | 0..1 | ||
| withError | 0..1 | ||
| message | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| return | 1..1 |
| name | type | cardinality | description |
|---|---|---|---|
| return | mqMessageInfo | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| return | stagingErrorTransfer | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| systemId | 0..1 | ||
| classId | 0..1 | ||
| sourceId | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| return | mqMessageTransfer | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| measurementUnit | 0..1 | ||
| value | valueDoubleTransfer | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| applicationId | 0..1 | ||
| dateCreated | 0..1 | ||
| dateProcessed | 0..1 | ||
| exchangeClassId | 0..1 | ||
| externalSystemId | 0..1 | ||
| id | 1..1 | ||
| ingestionStatus | ingestionStatus | 0..1 | |
| principalName | 0..1 | ||
| sessionId | 1..1 | ||
| sourceId | 0..1 | ||
| stagedInTransaction | 0..1 | ||
| stagingErrorReason | 0..1 | ||
| stagingErrorType | stagingErrorType | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| sourceRecordId | 1..1 | ||
| sourceId | 0..1 | ||
| errorType | stagingErrorType | 0..1 | |
| reason | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| systemId | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| return | mqMessageTransfer | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| systemId | 0..1 | ||
| classId | 0..1 | ||
| maxSize | 0..1 | ||
| priority | replicaExportPriority | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| return | importSessionStatus | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| return | workInfoTransfer | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| changeDate | 0..1 | ||
| compatibilities | exchangeCompatibility | 0..* | |
| sourceId | 0..1 | ||
| values | importValue | 0..* |
Extends: exchangeObject
| name | type | cardinality | description |
|---|---|---|---|
| systemId | 0..1 | ||
| classId | 0..1 | ||
| maxSize | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| sessionId | 0..1 | ||
| maxSize | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| hash | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| systemId | 0..1 | ||
| mdmIds | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| id | 0..1 | ||
| fileName | 0..1 | ||
| body | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| importRecordsRequest | importRecordsRequest | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| textSearched | 0..1 | ||
| systemId | 0..1 | ||
| exchangeClassIds | 0..* | ||
| incExpirables | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| sessionId | 1..1 |
| name | type | cardinality | description |
|---|---|---|---|
| sessionId | 0..1 | ||
| sourceId | 0..1 | ||
| fileId | 0..1 | ||
| body | 0..1 | ||
| fileHash | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| hash | 0..1 | ||
| id | 0..1 | ||
| name | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| sessionId | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| jobId | 1..1 |
| name | type | cardinality | description |
|---|---|---|---|
| return | foundExchangeItem | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| return | systemMessagesTransfer | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| fileValue | exchangeFile | 0..1 | |
| fileValues | exchangeFile | 0..* | |
| objectValue | exportObject | 0..1 | |
| objectValues | exportObject | 0..* | |
| skipHashing | 1..1 | ||
| status | exportedValueStatus | 0..1 |
Extends: exchangeValue
| name | type | cardinality | description |
|---|---|---|---|
| systemId | 0..1 | ||
| classId | 0..1 | ||
| sourceIds | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| id | 1..1 | ||
| data | exportRootObject | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| return | mqMessageTransfer | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| records | importRootObject | 0..* | |
| sessionId | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| duplicateIds | 0..* | ||
| sourceId | 0..1 | ||
| systemId | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| mates | 0..* | ||
| name | 0..1 | ||
| unidirectionalMates | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| sessionId | 1..1 |
| name | type | cardinality | description |
|---|---|---|---|
| sourceId | 0..1 | ||
| deletedSourceIds | 0..* | ||
| info | 0..1 | ||
| encounteredError | 1..1 | ||
| mdmId | 0..1 | ||
| isStructure | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| systemId | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| sessionId | 1..1 |
| name | type | cardinality | description |
|---|---|---|---|
| id | 1..1 | ||
| mdmId | 0..1 | ||
| systemId | 0..1 | ||
| exchangeClassId | 0..1 | ||
| conformsExportRestrictions | 1..1 | ||
| dispatchState | dispatchState | 0..1 | |
| processingInfo | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| sessionId | 0..1 | ||
| classId | 0..1 | ||
| sourceId | 0..1 | ||
| fileId | 0..1 | ||
| body | 0..1 | ||
| fileHash | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| return | workInfoTransfer | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| return | 1..1 |
| name | type | cardinality | description |
|---|---|---|---|
| systemId | 0..1 | ||
| mdmIds | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| messageIds | 0..* | ||
| priority | replicaExportPriority | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| return | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| exportedId | 0..1 | ||
| itemId | 0..1 | ||
| mdmId | 0..1 | ||
| sourceId | 0..1 | ||
| status | status | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| deleted | 1..1 | ||
| systemId | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| systemId | 0..1 | ||
| mdmIds | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| requests | exportedObjectReplyRequest | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| sessionId | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| return | workInfoTransfer | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| reply | exportedObjectReply | 0..1 | |
| exportedItemId | 0..1 | ||
| systemId | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| id | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| fileValue | importFile | 0..1 | |
| fileValues | importFile | 0..* | |
| objectValue | importObject | 0..1 | |
| objectValues | importObject | 0..* | |
| pureDoubleValue | 0..1 | ||
| pureDoubleValues | 0..* |
Extends: exchangeValue
| name | type | cardinality | description |
|---|---|---|---|
| return | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| systemId | 0..1 | ||
| mdmIds | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| mdmId | 0..1 | ||
| mdmNodeId | 0..1 | ||
| originalMdmId | 0..1 | ||
| status | itemStatus | 0..1 | |
| validityPeriod | validityPeriod | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| displayName | 0..1 | ||
| mdmId | 0..1 | ||
| sourceIds | exportSourceId | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| return | stagingErrorTransfer | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| return | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| boolValue | 0..1 | ||
| changeDate | 0..1 | ||
| complexDoubleValue | exchangeComplexDouble | 0..1 | |
| complexDoubleValues | exchangeComplexDouble | 0..* | |
| complexValue | jsonAttributeType | 0..1 | |
| dateValue | 0..1 | ||
| dateValues | 0..* | ||
| delete | 0..1 | ||
| intValue | 0..1 | ||
| intValues | 0..* | ||
| localDateValue | localDate | 0..1 | |
| localDateValues | localDate | 0..* | |
| name | 0..1 | ||
| stringValue | 0..1 | ||
| stringValues | 0..* | ||
| systemKey | systemKeyTransfer | 0..1 | |
| validThru | localDate | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| return | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| importRecordsRequest | importRecordsRequest | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| id | 0..1 | ||
| workType | workType | 0..1 | |
| workStatus | workStatus | 0..1 | |
| displayName | 0..1 | ||
| result | 0..1 | ||
| percentDone | 0..1 | ||
| cancelable | 1..1 | ||
| startDate | 0..1 | ||
| isFileResult | 1..1 | ||
| isRestartable | 1..1 | ||
| isFake | 1..1 | ||
| isPercentAccurate | 1..1 |
| name | type | cardinality | description |
|---|---|---|---|
| systemIds | 0..* | ||
| classId | 0..1 | ||
| maxSize | 0..1 | ||
| priority | replicaExportPriority | 0..1 | |
| order | replicaExportOrder | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| return | sourceRecordDto | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| systemId | 0..1 | ||
| messages | mqMessageTransfer | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| value | 1..1 | ||
| min | 1..1 | ||
| max | 1..1 | ||
| encodedString | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| messageIds | 0..* |
| name | type | cardinality | description |
|---|---|---|---|
| return | workInfoTransfer | 0..1 |
| name | type | cardinality | description |
|---|---|---|---|
| return | workInfoTransfer | 0..1 |