Загрузка пользователями файлов в SAP MII
Одним из частых требований к функциональности SAP MII является возможность загрузки файлов любого формата с целью последующей обработки и хранения. В статье приведены пошаговые рекомендации по настройке системы для предоставления пользователям возможности загружать файлы любого формата.
Введение
Одним из частых требований к функциональности 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-запроса.
Для этой цели можно воспользоваться
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
ЗарегистрироватьсяУ вас уже есть учетная запись?
Войти