Умные формы в SAP ABAP

⚡ Умное резюме

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

  • 🇧🇷 Основная цель: Smart Forms позволяет создавать документы для массовой печати и поддерживает вывод на принтер, факс, электронную почту и в Интернет посредством сгенерированного XML-файла.
  • 🇧🇷 Происхождение: SAP В 1998 году была внедрена технология Smart Forms для преодоления ограничений существующих систем. SAPскрипты, и их проще разрабатывать, поддерживать и распространять.
  • 🧱 Графический дизайн: В конструкторе форм узлы располагаются методом перетаскивания, поэтому форму можно адаптировать, не написав ни одной строки скриптового кода.
  • ⚙️ Сгенерированный модуль: Активация формы генерирует функциональный модуль, а программа печати получает его имя во время выполнения с помощью переменной SSF_FUNCTION_MODULE_NAME.
  • 🪟 Правило окна: На странице может находиться максимум одно основное окно, которое перемещается по страницам, в то время как каждое дополнительное окно отображает только статическое содержимое.
  • 📐 Таблица или шаблон: Таблица динамически расширяется по мере поступления данных, а шаблон используется, когда выходные данные имеют фиксированный размер, например, чек или билет.
  • 🎨 Умные стили: Форматы абзацев, форматы символов, цвета и штрихкоды хранятся в интеллектуальном стиле и используются повторно в разных формах.

SAP ABAP Smart Forms

Что такое Smart Forms в... SAP АБАП?

SAP Smart Forms используется для создания и обслуживания форм для массовой печати в SAP Системы. Как средство вывода SAP Смарт-формы поддерживают принтер, факс, электронную почту или Интернет (используя сгенерированный XML-вывод).

SAP представила SmartForms в 1998 году, чтобы преодолеть ограничения в SAP Скрипты. SmartForms легче разрабатывать, обслуживать и транспортировать, чем SAP Сценарий.

Сравнение Smart Forms и SAPScripts

  • В SmartForms возможно использование нескольких форматов страниц, чего не происходит в SAP Сценарии
  • Возможно иметь SmartForm без главного окна.
  • Подпрограммы можно писать с помощью инструмента SmartForms.
  • SmartForms генерирует функциональный модуль при активации.
  • Ярлыки невозможно создавать в SmartForms.
Критерии Умные формы SAPскрипт
Форматы страниц Несколько форматов страниц в одной форме Формат одной страницы на одну форму
Главное окно Не обязательно Требуется ровно одно главное окно.
Процедуры Написано внутри самой формы. Написано в отдельной печатной программе.
Активация Генерирует функциональный модуль. Функциональный модуль не сгенерирован.
Метки Невозможно создать Может быть создан

Преимущества интеллектуальных форм

  • Они позволяют адаптировать формы без каких-либо знаний в программировании благодаря полностью графическому пользовательскому интерфейсу.
  • При активации смарт-формы система автоматически генерирует функциональный модуль и во время выполнения.
  • Чтобы внести какие-либо изменения, нам нужно использовать перетаскивание, вырезание и вставку. Эти действия не включают в себя написание строк кода или использование скриптового языка.
  • Мы можем вставлять статические и динамические таблицы. К ним относятся переводы строк в отдельных ячейках таблицы, запуск событий для заголовков и промежуточных итогов таблицы, а также сортировка данных перед выводом.
  • Интеллектуальные формы позволяют пользователю включать графику, которая может отображаться как часть формы или как фоновая графика. Во время распечатки пользователь может по необходимости отключить фоновое изображение.
  • Веб-публикация возможна с использованием сгенерированного XML выходной

Archiструктура SAP Умная форма

Archiструктура SAP Умная форма

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

Руководство по смартформам

Давайте пройдемся по этому SAP система

  1. Введите транзакцию СМАРТФОРМЫ в поле кода транзакции.
  2. На следующем экране введите имя формы и нажмите «Создать».

Руководство по смартформам

Следующий экран разделен на три раздела:

Руководство по смартформам

Окно навигации состоят из узлов и подузлов. Они содержат все элементы (текст, окно и т. д.), принадлежащие формам SAP.

  • Период обслуживания показывает атрибуты элементов
  • Принтер форм окно показывает макет страницы

Всякий раз, когда мы создаем умные формы, SAP создает/генерирует функциональный модуль. В отличие от SAPсценарии, SAP ФОРМЫ позволяют менять язык.

В окне навигации вы найдете

Глобальные декларации данных : Определенные здесь данные можно использовать во всей смарт-форме для целей кодирования.

Интерфейс формы : Здесь определяются все данные, которые будут переданы в смарт-форму из программы печати.

Руководство по смартформам

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

Руководство по смартформам

Печать будет осуществляться на основе поля «Следующая страница».

Но обработка будет происходить в соответствии с последовательностью, указанной в окне навигации!

Руководство по смартформам

Для фонового рисунка и графики можно подобрать как черно-белые, так и цветные растровые изображения, сохраняемые в виде стандартных текстов. Вы можете отойти от экрана смарт-формы и открыть экран «Графика формы». Код операции: Se78

Руководство по смартформам

Настройки графики в окне Smart Form.

Руководство по смартформам

Windows в умных формах

Windows в умных формах

Есть два типа Windows

  1. Главная
  2. Старшая школа

Важные моменты, на которые следует обратить внимание

  • На странице не может быть более одного главного окна. Вы можете иметь несколько дополнительных окон
  • Что бы вы ни печатали во втором окне… оно должно быть статичным. (Если у вас 20 строк в заказе на покупку и существует ограничение на количество страниц, строки переносятся на следующую страницу в главном окне. т.е. в предшествующем и последующем типе контента они будут печататься последовательно в главном окне. Это не так. разрешено во вторичных окнах.

Windows в умных формах

Внутри главного окна мы можем добавить вводный текст для настройки вывода формы.

Windows в умных формах

Параметры вывода в каждом окне определяют размер линии, ширину, цвета и фон.

Windows в умных формах

Smartforms дает возможность указать номер адреса, который хранится в центральном управлении адресами. Адрес будет взят непосредственно из таблицы ADRC и заполнен в форме.

Windows в умных формах

В Smartforms доступны два разных редактора, а именно. Обычный редактор

Windows в умных формах

и графический редактор.

Windows в умных формах

Этот параметр можно изменить с помощью редактора конфигурации в разделе «Утилиты».

Столики на подоконнике

В Table Painter вы можете нарисовать формат в соответствии с требованиями клиента (например, заголовок, подзаголовок, элемент, подытог, общий итог и т. д.).

С помощью макета таблицы можно определить:

  • Количество строк и ячеек
  • Высота каждой строки
  • Ширина каждой ячейки
  • Выравнивание таблицы в окне

Windows в умных формах

В таблице показаны различные типы строк, которые будут использоваться в таблице. Типы строк определяют размер каждой ячейки и количество ячеек в каждой строке.

Windows в умных формах

Процесс программирования смарт-форм

Когда SAP Создается шаблон смарт-формы, пользователь создает макет формы, определяет необходимые поля, условия и специальные инструкции по программированию в шаблоне смарт-формы с помощью Smart Form Builder.

После завершения разработки формы ее необходимо активировать, прежде чем ее можно будет протестировать или получить к ней доступ для программ печати. ​​Активация формы инициирует создание функционального модуля, который обрабатывает всю обработку формы.

Этот функциональный модуль взаимодействует с прикладной программой/программой печати для создания вывода на определяемом пользователем носителе вывода для указанного устройства.

В случае смарт-форм мы используем 2 функциональных модуля для обработки смарт-формы. В первый функциональный модуль мы передаем имя смарт-формы в качестве параметра импорта. Затем возвращается имя динамически создаваемого функционального модуля, который фактически вызовет смарт-форму.

Имя смартформы можно передать функциональному модулю – 'SSF_FUNCTION_MODULE_NAME'

Процесс программирования смарт-форм

Это вернет имя функционального модуля смарт-формы, на которую имеется ссылка.

Процесс программирования смарт-форм

Программа печати позвонит на FM. 'SSF_FUNCTION_MODULE_NAME' чтобы получить имя функционального модуля во время выполнения. После этого он вызовет полученный таким образом функциональный модуль для выполнения смарт-формы.

Процесс программирования смарт-форм

Как вызвать интеллектуальную форму из программы печати

Описанный выше двухэтапный вызов всегда записывается одинаково. Программа сначала вычисляет сгенерированное имя, а затем выполняет его с данными приложения.

  1. Разрешить имя функционального модуля: Передайте имя формы в переменную SSF_FUNCTION_MODULE_NAME. Сгенерированное имя меняется в каждой системе, поэтому его ни в коем случае нельзя задавать жестко.
  2. Вызывайте сгенерированный модуль динамически: Используйте функцию CALL FUNCTION с переменной, содержащей разрешенное имя, и передайте данные через параметры, определенные в интерфейсе формы.
  3. Управляйте выводом: Заполните управляющую структуру SSFCTRLOP, чтобы подавить диалоговое окно печати или запросить предварительный просмотр, а структуру SSFCOMPOP укажите устройство вывода.
  4. Обработайте исключения: Сгенерированный модуль вызывает ошибки FORMATTING_ERROR, INTERNAL_ERROR, SEND_ERROR и USER_CANCELED, поэтому после вызова необходимо проверить SY-SUBRC.
DATA: lv_fm_name TYPE rs38l_fnam,
      ls_control TYPE ssfctrlop,
      ls_output  TYPE ssfcompop.

* 1. Get the name of the generated function module
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
  EXPORTING
    formname           = 'Z_SMART_INVOICE'
  IMPORTING
    fm_name            = lv_fm_name
  EXCEPTIONS
    no_form            = 1
    no_function_module = 2
    OTHERS             = 3.

IF sy-subrc <> 0.
  MESSAGE e001(zsf).          " Form not found
ENDIF.

* 2. Call the generated module with the form data
ls_control-no_dialog = 'X'.
ls_control-preview   = 'X'.

CALL FUNCTION lv_fm_name
  EXPORTING
    control_parameters = ls_control
    output_options     = ls_output
    is_header          = ls_header
  TABLES
    it_items           = lt_items
  EXCEPTIONS
    formatting_error   = 1
    internal_error     = 2
    send_error         = 3
    user_canceled      = 4
    OTHERS             = 5.

⚠️ Предупреждение: Сгенерированное имя функционального модуля, например /1BCDWB/SF00000123, различно в каждой системе. Всегда разрешайте его с помощью SSF_FUNCTION_MODULE_NAME, иначе программа завершится с ошибкой после переноса.

Шаблоны

Шаблон можно использовать, если вам известен точный размер выходных данных или если выходные данные имеют фиксированный формат.

Например, налоговая форма/чеки/форма авиакомпании/железнодорожный билет: все они используют шаблоны.

Главное отличие таблицы от шаблона заключается в том, что в таблице высота изменяется динамически. В шаблоне же строка называется «линией».

Шаблоны в SAP ABAP

УМНЫЕ стили

Умный стиль содержит:

  • Данные заголовка, содержащие значения смарт-стиля по умолчанию.
  • Форматы абзацев, включая отступы и интервалы, атрибуты шрифта, табуляции, а также контур и нумерацию.
  • Форматы символов, включая эффекты (надстрочный индекс, нижний индекс), атрибуты штрих-кода и шрифта.
  • Цвета и подчеркивания для формата абзаца или символа.

Вы можете использовать транзакцию «smartforms» / «smartstyles» для создания умного стиля.

Шаблоны в SAP ABAP

💡 Совет: Назначайте интеллектуальный стиль в атрибутах формы, а не для каждого текстового узла. В этом случае одно изменение стиля затронет каждый абзац формы.

Это все, что касается этого урока

Часто задаваемые вопросы (FAQ)

Высота таблицы увеличивается пропорционально количеству строк во внутренней таблице, поэтому её высота изменяется во время выполнения. Шаблон имеет фиксированное количество строк и ячеек, что подходит для чека, билета или налоговой декларации.

Установите параметр GETOTF в управляющей структуре, считайте данные OTF, возвращаемые сгенерированным модулем, и передайте их функциональному модулю CONVERT_OTF. В результате вы получите бинарную таблицу, которую можно отправить по электронной почте или загрузить.

Нет. Интеллектуальная форма не зависит от конкретного клиента, поэтому после активации она доступна в каждом клиенте системы. SAPФорма скрипта зависит от клиента и должна быть скопирована с помощью SCC1.

Искусственный интеллект-помощники составляют программу печати, включая вызов SSF_FUNCTION_MODULE_NAME и обработку исключений. Сама компоновка по-прежнему располагается узел за узлом в конструкторе форм, поскольку это графический объект.

Да. Smart Forms остаются стандартными инструментами для массовой печати во многих системах. SAP Системы искусственного интеллекта (ИИ) в основном ускоряют выполнение сопутствующих задач, таких как чтение формы и составление документации.

Подведем итог этой публикации следующим образом: