SAP PI – Создаем асинхронный интерфейс. Часть 6: тестирование и мониторинг.

monitoring


Предыдущие части:
Часть 1. SAP PI – Создаем асинхронный интерфейс.
Часть 2: Подготовка к разработке в ESR. Активация объектов.
Часть 3: Разработка интерфейсов в ESR.
Часть 4: чудеса преобразования или Mapping.
Часть 5: настройка интерфейса в Integration Directory.


Сегодня мы займемся тестированием и мониторингом нашего асинхронного интерфейса.

Создание тестовых примеров в SAP PI.

Напомню еще раз схему нашего интерфейса:

Рис.1: схема асинхронного интерфейса

Рис.1: схема асинхронного интерфейса

Для того, чтобы протестировать наше “создание”, нужно положить тестовый файл new_customer.xml в каталог C:\Temp\CustomerDB\IN
Обычно, тестовый файл предоставляется специалистами по исходной системе. Но сегодня – мы “специалисты” по всем системам, поэтому приготовим такой файл сами.

В SAP PI есть отличный инструмент для этого – редактор Operation Mapping. Зайдем в Enterprise Service Builder, откроем Operation Mapping OM_NewCustomer_to_BAPI_CUSTOMER_CREATEFROMDATA1 и выберем вкладку Test. Заполним тестовыми данными все поля исходной структуры, убедимся, что тестовые данные подходят – запустим тест.

Так как мы, для простоты примера, не предусмотрели никакой “защиты от дурака” – такой тест будет не лишним. Всегда ведь можно придумать такой набор входных данных, при которых мэппинг (не сам интерфейс, но его центральная часть) не будет работать.

Если мы создали “рабочий” набор тестовых данных – то тестирование Operation Mapping пройдет успешно.

Рис.2: тестирование Operation Mapping

Рис.2: тестирование Operation Mapping

Теперь находим в левом верхнем углу над исходной структурой кнопку “Source Text View”, нажимаем ее.

Рис.3: Operation Mapping Test - показать тестовый XML

Рис.3: Operation Mapping Test – показать тестовый XML

Теперь в левой части редактора мы видим готовый XML для тестирования нашего интерфейса.

Рис.4: просмотр структуры тестового XML в редакторе  Operation Mapping

Рис.4: просмотр структуры тестового XML в редакторе Operation Mapping

Осталось скопировать этот текст в Notepad и сохранить в виде xml-файла new_customer.xml.
Можно также использовать кнопку “Save document source” (самая крайняя справа в меню над тестовым примером), указать директорию и сохранить туда тестовый пример – будет сохранен zip-архив, так что придется еще разархивировать его и переименовать файл, лежащий в архиве, в new_customer.xml.

Так или иначе, но мы получили искомый тестовый xml.

Рис.5: тестовый xml-файл, открытый в Internet Explorer

Рис.5: тестовый xml-файл, открытый в Internet Explorer

Тестирование.

Теперь осталось только одно действие: скопировать получившийся файл и вставить его в директорию C:\Temp\CustomerDB\IN

Ждем минуту – файл должен “исчезнуть” из исходной директории и появится в архивной, при этом к его имени добавится временная метка обработки.

Рис.6: результат работы файлового адаптера SAP PI

Рис.6: результат работы файлового адаптера SAP PI

Проверяем другую сторону интерфейса – SAP ERP.

Тут надо сделать лирическое отступление.
Дело в том, что используемую в примере BAPI я выбрал очень неудачно. Тестирование, а затем поиск информации и нот показал, что BAPI_CUSTOMER_CREATEFROMDATA1 используется для узкого круга задач, а именно – для создания клиента на основе уже существующего при условии, что диапазон номеров у account group этого клиента обозначен, как внутренний. 🙂
Если у вас установлен SAP ERP IDES – то можете использовать значения, которые я дам ниже. Если нет – то можно остановится на этапе выполнения BAPI с ошибкой (это означает, что технически вызов прошел и интерфейс работает); либо призвать на помощь коллег, чтобы заставить непокорный функциональный модуль все-таки создать для вас требуемого клиента.
С другой стороны – это хороший пример того, как отлаживается интерфейс.

Итак, первым делом попробуем войти в SAP ERP и найти в транзакции XD03 нашего клиента по одному из признаков (имя-фамилия, страна, и т.п.).
Уверен – его там нет.
Начинаем отладку интерфейса или, как называют этот увлекательный процесс зарубежные коллеги, troubleshooting.

Поиск проблем и ошибок – мониторинг и troubleshooting.

Все основные инструменты в PI 7.4 собраны в одном месте – “Configuration and Monitoring Home”.

Рис.7: инструменты мониторинга SAP PI 7.4

Рис.7: инструменты мониторинга SAP PI 7.4

В предыдущих версиях большинство инструментов сосредоточено в Runtime Workbench.

Для начала проверим каналы связи. Для этого зайдем в Monitoring – Adapter Engine.

Рис.8: инструменты мониторинга SAP PI 7.4

Рис.8: инструменты мониторинга SAP PI 7.4


А затем – в Communication Channel Monitoring.
Рис.9: инструменты мониторинга SAP PI 7.4

Рис.9: инструменты мониторинга SAP PI 7.4


Находим канал связи CC_FILE_SENDER и видим, что сообщение было успешно обработано файловым адаптером.
Рис.10: монитор каналов связи - канал CC_FILE_SENDER

Рис.10: монитор каналов связи – канал CC_FILE_SENDER

Теперь выбираем канал связи с ERP – СС_RFC_Reciver.
Если все параметры соединения были заданы правильно – канал должен иметь статус “Running”.

Рис.11: канал связи RFC Receiver готов к работе

Рис.11: канал связи RFC Receiver готов к работе

Затем смотрим ниже – в монитор обработки сообщений данным каналом. Оттуда, по нажатию на номер сообщения попадаем в монитор обработки конкретного сообщения.

Рис.12: переход из монитора каналов связи в монитор обработки конкретного сообщения

Рис.12: переход из монитора каналов связи в монитор обработки конкретного сообщения


Находим первую ошибку – BAPI требует заполнения поля “Валюта” (CURRENCY).
Рис.13: ошибка обработки сообщения - не заполнен код валюты.

Рис.13: ошибка обработки сообщения – не заполнен код валюты.

Технически – интерфейс уже отработал, а возвращаемая ошибка относится к ошибке целевого приложения. В реальном проекте на данном этапе потребуется бизнес-специалист по целевой системе, который проанализирует ошибки и расскажет, что необходимо изменить/дополнить в данных, чтобы целевое приложение успешно отработало.

Поскольку по условиям задачи валюта в исходном файле не задана – нам придется внести валюту в мэппинге. Добавляем константу “USD” в целевую структуру.

Рис.14: занесение кода валюты в целевую структуру данных

Рис.14: занесение кода валюты в целевую структуру данных

Запускаем интерфейс еще раз, копируя исходный файл в директорию /IN. Смотрим монитор канала CC_RFC_RECEIVER.

Рис.15: ошибка - страна Rus не задана в целевой системе.

Рис.15: ошибка – страна Rus не задана в целевой системе.

После небольших поисков выясняем, что страна в SAP ERP задается двумя заглавными буквами – значит, нужно “отрезать” от исходной строки два символа и перевести их в заглавные.

Для любопытных – страны, заданные в ERP, хранятся в таблице T005.

Рис.16: оставляем 2 первых символа кода страны

Рис.16: оставляем 2 первых символа кода страны


Рис.17: переводим все символы кода страны в заглавные буквы

Рис.17: переводим все символы кода страны в заглавные буквы

Запустим интерфейс еще раз. Кстати, можно не перезапускать интерфейс целиком – ошибочные асинхронные сообщения можно попытаться доставить еще раз. Для этого в мониторе сообщения есть специальная кнопка “Resend“.

Рис.18: перезапуск  сообщения

Рис.18: перезапуск сообщения

При этом обработка запускается с того этапа, на котором возникла ошибка, в нашем случае PI заново попытается отправить сообщение через RFC-адаптер.

Дальше отладка приведет вас к заполнению целевой подструктуры PI_COPYREFERENCE. Как я уже говорил, данная BAPI требует указания уже существующего клиента – она копирует из его записи недостающие данные для нового. Про конкретные значения – лучше уточнить у специалистов по функционалу в SAP ERP, либо подобрать опытным путем.
Открываем message mapping MM_Customer_to_BAPI_CUSTOMER_CREATEFROMDATA1, заполняем PI_COPYREFERENCE:

Поле структуры Значение
SALESORG 1000
DISTR_CHAN 12
DIVISION 00
REF_CUSTMR 0000100027

Сохраняем и активируем мэппинг, перезапускаем интерфейс.
На этот раз обработка сообщения проходит успешно.

Рис.19: интерфейс успешно закончил свою работу, сообщение принято и обработано в SAP ERP

Рис.19: интерфейс успешно закончил свою работу, сообщение принято и обработано в SAP ERP

Запускаем транзакцию XD03 в SAP ERP и находим нашего нового клиента, переданного из внешней системы.

Рис.20: новый клиент в системе SAP ERP

Рис.20: новый клиент в системе SAP ERP


На этом мы закончили работу над асинхронным интерфейсом, коснулись также темы мониторинга и поиска ошибок.
Надеюсь, что вы успешно проделали всю работу на своих “песочницах” и все получилось.

На самом деле, то что мы сделали – это лишь вершина айсберга. SAP PI имеет богатый и постоянно развивающийся набор возможностей и инструментов, изучать которые можно практически бесконечно. 🙂

Поправки, вопросы, предложения – пишите в комментариях или на почту admin@pitroff.ru

Удачи и профессиональных успехов!
Ваш Pitroff.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *