Даже для специфических требований, рождающихся в результате автоматизации какой-либо бизнес-функции предприятия, в системе SAP есть стандартное решение. Одно из таких требований может быть применено, скажем, к изображениям, в частности, к их разрешению. В этой заметке немного текста про то, как изменить разрешение изображения посредством ABAP. И да, слова "стандарт" и "ABAP" могут присутствовать в одном предложении, так как любимое многими функциональными консультантами определение "стандарт" имеет место быть не только в контексте настроек.

Постановка вопроса

Перед вами поставлена задача: для всех загружаемых в систему SAP изображений изменять разрешение до каких-то определенных значений (при условии, что исходное изображение превышает эти самые определенные значения). Как быть?

Решение вопроса

Сразу стоит отметить, что для решения данной задачи возможны варианты. В этой заметке, инструментом для решения выше поставленной задачи будет являться SAP IGS (Internet Graphics Server)

См.  Internet Graphics Service

Purpose
The Internet Graphics Service (IGS) constitutes the infrastructure to enable the application developers to display graphics in an Internet browser with a minimum of effort. The IGS has been integrated in the different SAP UI technologies from HTML GUI to Web Dynpro ABAP/Java and provides a server architecture where data from an SAP system or another source can be used to generate graphical or non-graphical output.

Until SAP Web Application Server 6.20, the IGS has been available only as standalone engine. The standalone IGS is a Windows 32 bit application that runs standalone on a Windows machine and which is connected against several systems.

As of SAP Web AS 6.40, IGS is additionally available as integral part of the SAP Web AS and will be installed with every SAP Web AS installation.

The integrated IGS exists on every SAP Web AS machine and is started and stopped with SAP Web AS. However, IGS is not part of the kernel which means it has to be patched separately.

Для его установки и последующей настройки следует обратиться к специалистам BASIS, ну или проштудировать какое-то количество справочного материала. Проверить, активен ли этот инструмент в вашей системе можно посредством запуска программы GRAPHICS_IGS_ADMIN, либо через запуск транзакции RSRT

См.  IGS Administration with TA SIGS/Report GRAPHICS_IGS_ADMIN

Рисунок 1. Программа GRAPHICS_IGS_ADMIN

Рисунок 2. Транзакция RSRT

Возвращаюсь к теме этой заметке. Далее будет приведен пример изменения разрешения изображения. Все очень просто.

Допустим, у меня есть изображение следующего разрешения

Рисунок 3. ]

Мне необходимо изменить ее разрешение до значений 1024 x 768. Соответствующий abap код

Тестирую

В результате выполнения метода RESIZE класса CL_FXS_IMAGE_PROCESSOR вы получаете изображение меньшего разрешения, ну и как следствие, меньшего размера.