Загрузка пользователями файлов в SAP MII


2347

Введение

Одним из частых требований к функциональности SAP MII является возможность загрузки файлов любого формата с целью последующей обработки и хранения. Ниже приведено несколько сценариев, требующих обеспечение загрузки файлов соответствующего формата:

  • Загрузка сопроводительных логистических документов для отгружаемой и принимаемой продукции - скан-копии сертификатов качества с оттиском отдела контроля качества (для хранения и печати по требованию);
  • Загрузка проектировочных документов CAD-систем для последующего использования при сборке, облуживании и ремонте производимых изделий и агрегатов;
  • Загрузка инструкций по управлению, наладке, настройке, обслуживанию, монтажу и демонтажу производственных станков и автоматизированных комплексов (для хранения и использования);
  • Ручной импорт из внешних систем и локальных файлов данных с фактическими и плановыми показателями производства, данных по контролю качества и эффективности работы оборудования и персонала для последующей обработки MES \ АСУТП \ SAP системами и проведения сравнительного план-факт анализа;
  • Загрузка для ответственного хранения документов, согласованных с внешними организациями и государственными службами (например, маркшейдерская справка, разрешающие документы и лицензии).

Программное Решение не должно предъявлять «высоких» требований к браузеру пользователя и быть работоспособным при использовании его на мобильных устройствах.

Работа с бинарными данными в SAP MII

Возможность работы с файлами любого формата подразумевает, в том числе, обработку бинарных (двоичных) файлов. Для локальных переменных в SAP MII введён специальный тип данных “binary”, позволяющий использовать в транзакциях бинарные данные (см. Рис.1).

Рис.1 Настройка параметров транзакций - выбран тип переменной “binary”

Главной проблемой при работе с переменными такого типа является неприспособленность функционала SAP MII для их обработки. Все встроенные функции BLS-транзакций работают только со строковыми, числовыми или логическими переменными. Любые попытки использования функций (например, stringlength или substring) вызывают сначала преобразование бинарных данных в строку с использованием кодировки UTF-8 (что приводит к порче данных), а потом непосредственное выполнение действия. Использование Action-блока записи в файл (Write file) также приводит преобразование в строку UTF-8 с порчей данных.  Чтение данных из файловой системы c помощью Action-блоков (Text loader, XML loader, HTML loader) также осуществляется c предварительным преобразованием содержимого файла в строку (см. Рис. 2).

Рис. 2 Пример испорченных данных в следствие приведения к кодировке UTF-8 (слева – исходный файл, справа – испорченный)

Для работы в бинарными данными в SAP MII необходимо предварительно их преобразовать в base64-кодировку, результатом которой является строка в виде последовательности ASCII-символов. Стоит отметить, что SAP MII имеет функции кодирования и декодирования base64-данных, однако, например, декодирование данных в транзакции через встроенную функцию base64decode также приводит к порче бинарных данных по причине приведения результата функции к строке с кодировкой UTF-8.

Cохранения base64-закодированных данных в файл на сервере возможно с помощью Image Saver, где параметр EncodedImage представляет закодированные данные. Чтение данных из файла в кодировке base64 возможно через Image Loader. Несмотря на название этих Action-блоков, SAP MII не проверяет тип записываемых и читаемых данных, что позволяет использовать их для любых файлов, а не только для изображений.

Помимо Image Saver \ Loader с base64-закодированными данными работают Action-блоки Send Mail и Create ZIP archive. Кодировка Base64 является стандартом де-факто для встраивания бинарных данных в структуру XML-файла для последующей передачи и хранения. Эта кодировка также применяется в SAP PI\XI при работе с бинарными данными.

Загрузка бинарного файла в SAP MII

Загрузка бинарных данных в SAP MII возможна несколькими способами.

При использовании Image Loader файл может быть получен из локального хранилища MII, HTTP-источника, файловой системы (ФС) сервера или подключенных к ФС сервера источников, например, сетевых дисков. Также бинарный файл может быть загружен через электронную почту (Read mail) или из папки FTP-сервера (требуется предварительно скопировать файла в локальную ФС через FTP Input).

Бинарные данные также могут быть переданы HTTP-запросом напрямую в транзакцию SAP MII (используется возможность прямого вызова транзакций через /XMII/Runner c указанием параметра IsBinaryInput=true), однако при таком подходе всё тело HTTP-запроса помещается в переменную типа Binary, что ограничивает возможность его использования в транзакции, как мы рассмотрели выше.

Самым удобным способом загрузки файла в SAP MII является передача содержимого файла в base64-кодировке в виде обычного POST-параметра HTTP-запроса, что позволяет использовать эти данные внутри транзакции, например, сохранить на сервере через Image Saver. По такой же методике работает импорт файлов в инструментарии  SAP MII Workbench – содержимое файла предварительно кодируется на стороне клиента и отправляется на сервер совместно с прочими параметрами.

Загрузка файла с компьютера пользователя

Для передачи содержимого бинарного файла с рабочего места пользователя в транзакцию SAP MII необходимо создать приложение, которое считает содержимое файла с диска пользователя, закодирует в base64 и передаст в виде POST-параметра HTTP-запроса.

Для этой цели можно воспользоваться плагинами для браузера собственной разработки (пример, Java-апплет, Silverlight-приложение, Flash-приложение), однако это повышает требования к браузеру и рабочей станции

Ограниченный доступ

Для прочтения полной версии статьи необходимо зайти как зарегистрированный пользователь.


Любое воспроизведение запрещено.
Копирайт © «Издательство ООО «Эксперт РП»