Розумні форми в SAP ABAP

⚡ Розумний підсумок

Розумні форми в SAP ABAP створює та підтримує форми для масового друку з виводом на принтер, факс, електронну пошту або Інтернет. На цій сторінці пояснюється архітектура, вузли конструктора форм, вікна, таблиці, шаблони, стилі та згенерований функціональний модуль.

  • 🖨️ Основна мета: Smart Forms створює масовий друк документів та підтримує вивід на принтер, факс, електронну пошту та в Інтернет за допомогою згенерованого XML.
  • 🕰️ Походження: SAP представила Smart Forms у 1998 році, щоб подолати обмеження SAPскрипт, і їх легше розробляти, підтримувати та транспортувати.
  • 🧱 Графічний дизайн: Вузли впорядковуються шляхом перетягування в Конструкторі форм, тому форма адаптується без написання жодного рядка скриптової мови.
  • Згенерований модуль: Активація форми генерує функціональний модуль, а програма друку отримує його назву під час виконання за допомогою SSF_FUNCTION_MODULE_NAME.
  • 🪟 Правило вікна: Сторінка містить щонайбільше одне головне вікно, яке перетікає через інші сторінки, тоді як кожне вторинне вікно друкує лише статичний вміст.
  • 📐 Таблиця або шаблон: Таблиця динамічно зростає разом із даними, а шаблон використовується, коли вихідний результат має фіксований розмір, наприклад, чек або квиток.
  • 🎨 Розумні стилі: Формати абзаців, формати символів, кольори та штрих-коди зберігаються у смарт-стилі та повторно використовуються у різних формах.

SAP Розумні форми ABAP

Що таке смарт-форми SAP ABAP?

SAP Smart Forms використовується для створення та підтримки форм для масового друку SAP Системи. Як вихідний носій SAP Смарт-форми підтримують принтер, факс, електронну пошту або Інтернет (за допомогою згенерованого виводу XML).

SAP представив SmartForms у 1998 році, щоб подолати обмеження в SAP Сценарії. SmartForms легше розробляти, підтримувати та транспортувати, ніж SAP Сценарій.

Порівняння Smart Forms та SapScripts

  • У SmartForms можливі кілька форматів сторінок, чого немає в SAP Сценарії
  • Можна мати SmartForm без головного вікна.
  • Підпрограми можна писати в інструменті SmartForms.
  • Під час активації SmartForms генерує функціональний модуль.
  • Мітки не можна створювати в SmartForms.
Критерії Розумні форми SAPсценарій
Формати сторінок Кілька форматів сторінок в одній формі Одна сторінка формату на форму
Головне вікно Не обов'язковий Потрібно лише одне головне вікно
Процедури Написано всередині самої форми Написано в окремій програмі для друку
Активація Генерує функціональний модуль Функціональний модуль не генерується
етикетки Неможливо створити Можна створити

Переваги смарт-форм

  • Вони допомагають адаптувати форми без будь-яких знань програмування завдяки повністю графічному інтерфейсу користувача
  • При активації смарт-форми система автоматично генерує функціональний модуль і під час виконання.
  • Щоб внести будь-які зміни, ми повинні скористатися функціями Drag & Drop, Cut & Paste. Ці дії не включають написання рядків коду або використання мови сценаріїв.
  • Ми можемо вставляти статичні та динамічні таблиці. До них належать переведення рядка в окремих клітинках таблиці, ініціювання подій для заголовків і проміжних підсумків таблиці та сортування даних перед виведенням.
  • Розумні форми дозволяють користувачеві включати графіку, яка може відображатися як частина форми або як фонова графіка. Під час роздруківки користувач може при необхідності придушити фонову графіку.
  • Веб-публікація можлива за допомогою створених XML вихід

Archiтектура SAP Розумна форма

Archiтектура SAP Розумна форма

На схемі архітектури показано три задіяні рівні. Форма проектується в Конструкторі форм, активація генерує функціональний модуль, а програма друку викликає цей модуль з даними програми. Далі розглядаються кроки проектування першого рівня.

Посібник Smartforms

Давайте зайдемо через це SAP система-

  1. Введіть транзакцію СМАРТФОРМИ у полі коду транзакції.
  2. На наступному екрані введіть назву форми та натисніть створити

Посібник Smartforms

Наступний екран поділений на три частини:

Посібник Smartforms

Вікно навігації складаються з вузлів і підвузлів. Вони містять усі елементи (текст, вікно тощо), які належать до простих форм

  • Вікно обслуговування показує атрибути елементів
  • Принтер форм вікно показує макет сторінки

Коли ми створюємо розумні форми, SAP створює/генерує функціональний модуль. На відміну від SAPсценарії, SAP ФОРМИ дозволяють змінювати мову.

У вікні навігації ви знайдете

Декларації глобальних даних : Дані, визначені тут, можна використовувати в усій смарт-формі для цілей кодування.

Інтерфейс форми : Тут визначаються всі дані, які будуть передані до смарт-форми з програми друку.

Посібник Smartforms

Клацання правою кнопкою миші на сторінках дозволить створити нову сторінку, вікно, графіку або адресу.

Посібник Smartforms

Друк буде відбуватися на підставі поля «наступна сторінка».

Але обробка відбуватиметься відповідно до послідовності в навігаційному вікні!

Посібник Smartforms

Для фонових зображень і графіки можна підібрати чорно-білі або кольорові растрові зображення, які зберігаються у вигляді стандартних текстів. Ви можете піти в обхід від екрана smartform і відкрити екран Form Graphics. Код транзакції: Se78

Посібник Smartforms

Налаштування у вікні графіки у смарт-формі

Посібник Smartforms

Windows в розумних формах

Windows в розумних формах

Існують два види Windows

  1. головний
  2. Вторинний

Важливі зауваження

  • Ви не можете мати більше ніж 1 головне вікно на сторінці. Ви можете мати кілька додаткових вікон
  • Усе, що ви друкуєте у додатковому вікні… воно має бути статичним. (Якщо у вас є 20 рядків у замовлення на замовлення та існує обмеження сторінки, рядки переносяться на наступну сторінку в головному вікні. Тобто у попередньому та наступному типі вмісту вони друкуватимуться послідовно в головному вікні. Це не дозволено у вторинних вікнах.

Windows в розумних формах

Усередині головного вікна ми можемо додати текст як вступ, щоб налаштувати вихід форми.

Windows в розумних формах

Параметри виводу в кожному вікні визначають розмір лінії, ширину, кольори та фон, які потрібно додати.

Windows в розумних формах

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

Windows в розумних формах

У Smartforms доступні два різні редактори, а саме. Звичайний редактор

Windows в розумних формах

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

Windows в розумних формах

Цей параметр можна змінити за допомогою редактора налаштувань у Службових програмах.

Столи у вікні

У Table painter ви можете намалювати формат відповідно до вимог клієнта (наприклад, заголовок, підзаголовок, елемент, проміжний підсумок, загальний підсумок тощо)

За макетом таблиці можна визначити:

  • Кількість ліній і клітинок
  • Висота кожного рядка
  • Ширина кожної комірки
  • Вирівнювання таблиці у вікні

Windows в розумних формах

У таблиці показано різні типи ліній, які використовуватимуться в таблиці. Типи ліній визначають розмір кожної клітинки та кількість клітинок у кожній лінії.

Windows в розумних формах

Потік програмування Smart Forms

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

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

Цей функціональний модуль взаємодіє з прикладною програмою/програмою друку для створення виводу на носії виводу, визначеному користувачем, для вказаного пристрою.

У випадку смарт-форм ми використовуємо 2 функціональні модулі для обробки смарт-форми. Першому функціональному модулю ми передаємо назву розумної форми як параметр імпорту. Потім це повертає ім’я динамічно згенерованого функціонального модуля, який насправді викличе смартформу.

Ім’я смарт-форми можна передати функціональному модулю – 'SSF_FUNCTION_MODULE_NAME'

Потік програмування Smart Forms

Це поверне назву функціонального модуля смарт-форми, на яку є посилання.

Потік програмування Smart Forms

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

Потік програмування Smart Forms

Як викликати смарт-форму з програми друку

Двокроковий виклик, описаний вище, завжди записується однаково. Програма спочатку розв'язує згенероване ім'я, а потім виконує його з даними програми.

  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

SMART стилі

Розумний стиль містить:

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

Ви можете використовувати транзакцію «smartforms» / «smartstyles», щоб створити розумний стиль.

Шаблони в SAP ABAP

💡 Порада: Призначте смарт-стиль атрибутам форми, а не кожному текстовому вузлу. Тоді одна зміна стилю поширюватиметься на кожен абзац форми.

Це все в цьому підручнику

Поширені запитання

Таблиця зростає разом із кількістю рядків у внутрішній таблиці, тому її висота змінюється під час виконання. Шаблон має фіксовану кількість рядків і комірок, що підходить для чека, квитка або податкової форми.

Встановіть GETOTF у структурі керування, зчитайте дані OTF, повернуті згенерованим модулем, та передайте їх до функціонального модуля CONVERT_OTF. Результатом є двійкова таблиця, яку можна надіслати поштою або завантажити.

Ні. Розумна форма не залежить від клієнта, тому вона доступна в кожному клієнті системи після активації. SAPФорма скрипта залежить від клієнта та має бути скопійована разом із SCC1.

Асистенти штучного інтелекту створюють чернетку програми друку, включаючи виклик SSF_FUNCTION_MODULE_NAME та обробку винятків. Сам макет все ще впорядкований вузол за вузлом у Конструкторі форм, оскільки це графічний об'єкт.

Так. Розумні форми залишаються стандартними для масового друку в багатьох SAP системи, тоді як Adobe Forms охоплюють інтерактивні документи. Інструменти штучного інтелекту в основному пришвидшують виконання супутніх завдань, таких як читання форми та складання її документації.

Підсумуйте цей пост за допомогою: