FAQ: TFORMer SDK
Как выполнить интеграцию из SAP в TFORMer?
Как выполнить интеграцию из SAP в TFORMer?
Для интеграции с SAP® у вас есть три варианта (все требуют некоторого кода ABAP):
TFORMer TFPrint
TFPrint — это утилита командной строки, которая создаёт задание печати на основе шаблонов TFORMer. Вы вызываете TFPrint из SAP и передаёте имя файла шаблона, имя файла данных CSV или XML и целевой принтер в аргументах командной строки.
tfprint -F "C:\Templates\LogisticLabel.tff" -D "C:\JobData\20220927_ID1022.csv" -DT TEXT –DO SC; -O MyPrinterName -OT WIN32В ABAP вы можете использовать FM SXPG_COMMAND_EXECUTE и команды, поддерживаемые в транзакции SM69, для запуска любых внешних скриптов. Если вам нужен журнал для устранения неполадок, вы можете перенаправить stdout/stderr TFPrint в файл статуса (с отметкой времени и ID задания). Если вы хотите обрабатывать сообщения статуса/ошибок в SAP, вы можете считать файл статуса обратно после печати.
Если вы хотите изолировать/отсоединить процесс печати от сервера приложений, вы можете запустить TFPrint на другом сервере (сервере печати) через удалённое выполнение оболочки.
- Invoke-Command: Running Remote Commands - PowerShell | Microsoft Learn
- PSExec: PsExec - Windows Sysinternals | Microsoft Learn
Мы рекомендуем инкапсулировать всю печать в скрипт PowerShell или CMD, этот скрипт затем можно вызывать откуда угодно. Данные можно передавать и/или шаблоны можно обновлять через общую папку; скрипт плановой очистки может удалять старые файлы заданий и статуса (спустя nn дней).
- TFPrint входит в состав TFORMer SDK и использует лицензию SDK.
- Для создания шаблонов этикеток/отчётов вам нужна лицензия TFORMer Designer.
- Затраты на кодирование ABAP невелики. Удалённое выполнение оболочки требует надлежащей настройки безопасности.
Веб-служба TFORMer
По запросу мы предлагаем веб-службу на основе WCF, которая предоставляет API TFORMer в формате, совместимом с SOAP (WSDL). Вы можете печатать на все принтеры, доступные на сервере (или удалённо), либо просто создать PDF, который возвращается вызывающей стороне (массив байтов).
Шаблоны этикеток хранятся в определённом каталоге на сервере (App_Data), в SOAP-запросе передаются только данные этикетки. Шаблоны можно обновлять извне, предоставив общий доступ к папке шаблонов, или с помощью инструмента синхронизации файлов, который распространяет шаблоны из центральной папки или главного репозитория. Ответ SOAP предоставляет полную информацию об ошибках, которую можно обработать в ABAP или просто сохранить в журнал для устранения неполадок.
Мы поставляем службу как в виде исходного кода, так и в виде предварительно скомпилированного пакета web deploy. Вы можете разместить службу на собственной инфраструктуре (сервер Windows / IIS).
- В стандартной версии нет механизма входа, но исходный код (.NET C#) можно свободно расширять. Для внешних пользователей следует разрешить только https и использовать белый список IP-адресов (функция в IIS).
Для доступа к веб-службе из SAP ABAP вам может понадобиться создать прокси и потребителя службы — вот руководство:
- Consume SOAP Based Web Services with SAP BTP, ABAP Environment | Tutorials for SAP Developers
- Generating Proxies | SAP Help Portal
- How to configure a Service Consumer - ABAP Connectivity - Support Wiki (sap.com)
После установки WSDL можно получить по следующему URL
http://yourhostname/yourinstallationpath/TFORMer.asmx?WSDL
У нас нет примера ABAP для вызова (использования) веб-службы, но включённое тестовое приложение (исходный код C# .NET) показывает, как заполнить параметры запроса. Его также можно использовать для проверки доступности/работоспособности веб-службы.
- Веб-служба основана на TFORMer SDK и использует лицензию SDK.
- Для создания шаблонов этикеток/отчётов вам нужна лицензия TFORMer Designer.
- Затраты на кодирование ABAP несколько выше — вам нужно интегрировать вызовы веб-службы SOAP (класс прокси). После настройки веб-службы решение должно работать безупречно.
TFORMer Server
TFORMer Server обеспечивает автоматическую печать этикеток, отслеживая определённые (настраиваемые) каталоги на предмет новых файлов заданий. Файлы заданий представлены в проприетарном текстовом формате или формате XML и содержат используемый шаблон, имя целевого принтера и пары имя-значение (записи) для полей данных. Шаблоны организованы в репозитории, который считывается либо из локальной, либо из общей (внешней) папки. Если отслеживание каталога не подходит, задания также можно передавать через интерфейс telnet или периодический запрос ODBC.
Сервер поддерживает «пулы», где вы видите файлы заданий в разрезе по каждому принтеру. Вы можете повторно распечатать выбранные задания из пула или остановить и возобновить пул. После импорта файла задания задания поддерживаются на сервере и управляются либо через браузерный интерфейс, либо через специальное приложение «Spool Admin». По умолчанию нет обратной связи о статусе в SAP, за исключением интерфейса telnet/ODBC. Unicode поддерживается файлами XML, все остальные каналы используют ANSI ASCII или Latin-1.
Обратитесь к нам за демонстрационной версией, а также руководствами по установке и использованию.
- TFORMer Server использует собственную лицензию, привязанную к принтеру/площадке.
- Для создания шаблонов этикеток/отчётов вам нужна лицензия TFORMer Designer.
- Пока речь идёт лишь о записи файла данных, затраты на программирование ABAP управляемы. С другой стороны, это решение требует больше знаний (настройка безопасности, обработка конкретных кодов ошибок и т.д.) и больше обучения пользователей.