Способы выполнения команд
Описание способа вызова
Формат запроса: XML-документ с корневым элементом RK7Query, внутри которого
- Либо один тег RK7CMD
- Либо несколько тегов RK7Command
- Либо несколько тегов RK7Command2
Предпочитаемый способ:
- Во всех вновь создаваемых интеграциях следует использовать RK7Command2
- Во всех существующих интеграциях следует оценить возможность перехода на использование RK7Command2
- Это позволит:
- Упростить анализ логов — запрос и ответ в одном файле, нет необходимости искать запрос и ответ отдельно
- Упростить работу для систем, выполняющих несколько запросов: анализ ответа может строиться на данных ответа. Т. е. запросы GetRefData — обновить кеш справочников, запросы SaveOrder — в очередь обработки заказов.
RK7CMD: выполнение одиночной команды
- Исторически первый вариант вызова команд в XML Интерфейсе r_keeper 7
- Минусы (на момент реализации)
- Не позволяет выполнить несколько команд одним пакетом
- Пример:
Запрос
XMLОтвет
XML
RK7Command: выполнение пакета команд
Развитие RK7CMD с целью выполнения нескольких запросов
- Плюсы
- Позволяет выполнить несколько команд одним пакетом
- Минусы (на момент реализации)
- Документ ответа не содержит исходного запроса: затруднен анализ логов и анализ на стороне сторонних систем
- Пример:
Запрос
XMLОтвет
XML
RK7Command2: выполнение пакета команд (рекомендуемый)
Развитие RK7Command с целью сохранения информации об исходном запросе в ответе (в теге SourceCommand)
- Плюсы
- Позволяет в результирующем XML получить исходный текст запроса, это
- Упрощает анализ логов — запрос и ответ в одном месте
- Упрощает разбор на стороне внешней системы
- Позволяет в результирующем XML получить исходный текст запроса, это
- Минусы (на момент реализации)
- Увеличивается трафик, решения
- HTTP: Использовать GZIP
- RK7XML.DLL: Сжимает самостоятельно
- Увеличивается время разбора XML, решения
- Исследовать увеличение: если оно критично, НЕ использовать этот вариант
- В случае не совсем корректного кода разбора XML потребуется адаптация кода
- Например, если ноды выбирались по номерам/спискам дочерних объектов
- Увеличивается трафик, решения
- Пример:
Запрос
XMLОтвет
XML