Smarte formularer i SAP ABAP

⚡ Smart opsummering

Smarte formularer i SAP ABAP opretter og vedligeholder formularer til masseudskrivning med output til en printer, en fax, e-mail eller internettet. Denne side forklarer arkitekturen, Form Builder-noderne, vinduerne, tabellerne, skabelonerne, typografierne og det genererede funktionsmodul.

  • 🖨️ Kerneformål: Smart Forms producerer masseudskrevne dokumenter og understøtter printer-, fax-, e-mail- og internetoutput via den genererede XML.
  • 🕰️ Oprindelse: SAP introducerede Smart Forms i 1998 for at overvinde begrænsningerne ved SAPscript, og de er nemmere at udvikle, vedligeholde og transportere.
  • 🧱 Grafisk design: Noder arrangeres ved hjælp af træk og slip i Form Builder, så en formular tilpasses uden at skrive en eneste linje scriptsprog.
  • 🇧🇷 Genereret modul: Aktivering af en formular genererer et funktionsmodul, og udskriftsprogrammet får sit navn under kørsel med SSF_FUNCTION_MODULE_NAME.
  • 🪟 Vinduesregel: En side indeholder højst ét ​​hovedvindue, der flyder på tværs af sider, mens hvert sekundært vindue kun udskriver statisk indhold.
  • 📐 Tabel eller skabelon: En tabel vokser dynamisk med dataene, og en skabelon bruges, når outputtet har en fast størrelse, f.eks. en check eller en billet.
  • 🎨 Smarte stilarter: Afsnitsformater, tegnformater, farver og stregkoder gemmes i en smart typografi og genbruges på tværs af formularer.

SAP ABAP Smart Forms

Hvad er Smart Forms i SAP ABAP?

SAP Smart Forms bruges til at oprette og vedligeholde formularer til masseudskrivning i SAP Systems.Som output medium SAP Smart Forms understøtter en printer, en fax, e-mail eller internettet (ved at bruge det genererede XML-output).

SAP introducerede SmartForms i 1998 for at overvinde begrænsningerne i SAP Scripts. SmartForms er nemmere at udvikle, vedligeholde og transportere end SAP Manuskript.

Sammenligning af Smart Forms og SapScripts

  • Flere sideformater er mulige i SmartForms, hvilket ikke er tilfældet i SAP Scripts
  • Det er muligt at have en SmartForm uden hovedvindue.
  • Rutiner kan skrives i SmartForms værktøj.
  • SmartForms genererer et funktionsmodul, når det er aktiveret.
  • Etiketter kan ikke oprettes i SmartForms.
Kriterier Smarte formularer SAPscript
Sideformater Flere sideformater i én formular Format på én side pr. formular
Hovedvindue Ikke obligatorisk Der kræves præcis ét hovedvindue
Rutiner Skrevet inde i selve formularen Skrevet i det separate printprogram
Aktivering Genererer et funktionsmodul Der genereres ikke noget funktionsmodul
Etiketter Kan ikke oprettes Kan oprettes

Fordele ved smarte formularer

  • De hjælper med at tilpasse formularer uden programmeringskendskab takket være den fuldt grafiske brugergrænseflade
  • Ved aktivering af den smarte formular genererer systemet automatisk funktionsmodulet og ved kørsel.
  • For at foretage ændringer skal vi bruge Træk og slip, Klip og Indsæt. Disse handlinger inkluderer ikke skrivning af kodningslinjer eller brug af et scriptsprog.
  • Vi kan indsætte statiske og dynamiske tabeller. Disse omfatter linjefeeds i de individuelle tabelceller, udløsning af hændelser for tabeloverskrifter og subtotaler og sortering af data før output.
  • De smarte formularer giver brugeren mulighed for at inkludere grafik, som kan vises som en del af formularen eller som baggrundsgrafik. Under udskrivning kan brugeren undertrykke baggrundsgrafikken efter behov.
  • Webpublicering er muligt ved hjælp af den genererede XML output

Architecture af SAP Smart form

Architecture af SAP Smart form

Arkitekturdiagrammet viser de tre involverede lag. Formularen designes i Form Builder, aktivering genererer funktionsmodulet, og udskrivningsprogrammet kalder dette modul med applikationsdataene. Designtrinnene i det første lag gennemgås derefter.

Smartforms guide

Lad os gå igennem det SAP systemet-

  1. Indtast transaktion SMARTFORMER i transaktionskodeboksen.
  2. På det næste skærmbillede skal du indtaste et formularnavn og klikke på opret

Smartforms guide

Den næste skærm er opdelt i tre sektioner-

Smartforms guide

Navigationsvindue består af noder og sub noder. De indeholder alle de elementer (tekst, vindue osv.), der hører til sap-formularer

  • Vedligeholdelsesvindue viser elementernes attributter
  • Form printer vinduet viser layoutet af siden

Hver gang vi skaber smarte formularer, SAP opretter/genererer et funktionsmodul.Unlike SAPscripts, SAP FORMS giver dig mulighed for at ændre sprog.

I navigationsvinduet finder du

Globale dataerklæringer : De data, der er defineret her, kan bruges i hele smartformen til kodningsformål.

Formgrænseflade : Her defineres alle de data, som vil blive sendt til smartformen fra Print-programmet.

Smartforms guide

Højreklik på siderne vil tillade oprettelse af ny side, vindue, grafik eller adresse.

Smartforms guide

Udskrivning vil foregå på basis af feltet 'næste side'.

Men behandlingen vil ske som i sekvensen i navigationsvinduet!

Smartforms guide

Til baggrundsbilleder og grafik kan du hente enten sort/hvid eller farve bitmapbilleder og gemmes i form af standardtekster. Du kan tage en omvej fra smartform-skærmen og åbne skærmen Form Graphics. Transaktionskode: Se78

Smartforms guide

Indstilling i grafikken i Smart Form-vinduet -

Smartforms guide

Windows i Smart Forms

Windows i Smart Forms

Der er to typer af Windows

  1. Main
  2. Sekundær

Vigtige punkter at bemærke

  • Du kan ikke have mere end 1 hovedvindue på en side. Du kan have flere sekundære vinduer
  • Uanset hvad du udskriver i et sekundært vindue ... skal det være statisk. (Hvis du har 20 linjer i en PO, og der er sidebegrænsning, flyttes linjerne videre til næste side i hovedvinduet. dvs. i en forgænger og en efterfølger type indhold, vil de blive udskrevet i rækkefølge i hovedvinduet. Dette er ikke tilladt i sekundære vinduer.

Windows i Smart Forms

Inde i hovedvinduet kan vi tilføje tekst som introduktion for at tilpasse formularoutputtet.

Windows i Smart Forms

Outputindstillingerne på hvert vindue bestemmer den linjestørrelse, -bredde, -farver og baggrund, der skal sættes.

Windows i Smart Forms

Smartforms giver mulighed for at give adressenummeret, som vedligeholdes i den centrale adressestyring. Adressen vil blive taget direkte fra ADRC-tabellen og vil blive udfyldt i formularen.

Windows i Smart Forms

De to forskellige editorer er tilgængelige i Smartforms, dvs. Normal Editor

Windows i Smart Forms

og grafikeditoren.

Windows i Smart Forms

Denne indstilling kan ændres ved hjælp af Configure-editoren i Utilities.

Borde i et vindue

I Table painter kan du tegne formatet efter kundens krav (f.eks. Overskrift, Underoverskrift, Vare, Undertotal, Totaltotal osv.)

Du kan bruge tabellayoutet til at bestemme:

  • Antallet af linjer og celler
  • Højden af ​​hver linje
  • Bredden af ​​hver celle
  • Justeringen af ​​bordet i vinduet

Windows i Smart Forms

Tabellen viser de forskellige linjetyper, som vil blive brugt i tabellen. Linjetyperne definerer størrelsen af ​​hver celle og antallet af celler i hver linje.

Windows i Smart Forms

Smart Forms-programmeringsflow

når en SAP Smart Form-skabelonen oprettes, en bruger opretter formularlayoutet, definerer de nødvendige felter, betingelser og særlige programmeringsinstruktioner i Smart Form-skabelonen ved hjælp af Smart Form Builder.

Når formulardesignet er færdigt, skal formularen aktiveres, før den kan testes eller tilgås af printprogrammerne. Aktivering af formularen starter genereringen af ​​et funktionsmodul, der håndterer hele formularens behandling.

Dette funktionsmodul interagerer med applikationsprogrammet/printprogrammet for at skabe output i det brugerdefinerede outputmedie for den specificerede enhed.

Ved smarte formularer anvender vi 2 funktionsmoduler til behandlingen af ​​den smarte formular. Til det første funktionsmodul videregiver vi navnet på den smarte formular som importparameter. Dette returnerer derefter navnet på det dynamisk genererede funktionsmodul, som faktisk kalder smartformen.

Smartform-navnet kan videregives til funktionen Modul – 'SSF_FUNCTION_MODULE_NAME'

Smart Forms-programmeringsflow

Dette vil returnere funktionsmodulnavnet på den smartform, som der henvises til.

Smart Forms-programmeringsflow

Print-programmet vil ringe til FM 'SSF_FUNCTION_MODULE_NAME' for at få funktionsmodulnavnet ved Runtime. Derefter kalder den det således opnåede funktionsmodul for at udføre smartformen.

Smart Forms-programmeringsflow

Sådan kalder du en smart formular fra et udskriftsprogram

Det ovenfor beskrevne totrinsopkald skrives altid på samme måde. Programmet opløser først det genererede navn og udfører det derefter med applikationsdataene.

  1. Løs funktionsmodulets navn: Send formularnavnet til SSF_FUNCTION_MODULE_NAME. Det genererede navn ændrer sig med hvert system, så det må aldrig hardcodes.
  2. Kald det genererede modul dynamisk: Brug CALL FUNCTION med den variabel, der indeholder det opløste navn, og send dataene gennem de parametre, der er defineret i formulargrænsefladen.
  3. Styr outputtet: Udfyld kontrolstrukturen SSFCTRLOP for at undertrykke udskriftsdialogen eller for at anmode om en forhåndsvisning, og udfyld SSFCOMPOP med outputenheden.
  4. Håndter undtagelserne: Det genererede modul genererer FORMATTING_ERROR, INTERNAL_ERROR, SEND_ERROR og USER_CANCELED, så SY-SUBRC skal kontrolleres efter kaldet.
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.

⚠️ Advarsel: Det genererede funktionsmodulnavn, for eksempel /1BCDWB/SF00000123, er forskelligt i hvert system. Løs det altid med SSF_FUNCTION_MODULE_NAME, ellers fejler programmet efter transport.

Skabeloner

Skabelonen kan bruges, når du kender den nøjagtige størrelse af outputtet, eller når outputtet er i et fast format.

F.eks. skatteformular/checks/flyselskabsformular/jernbanebillet: alle disse bruger skabeloner.

Den store forskel mellem en tabel og en skabelon er, at højden i en tabel ændrer sig dynamisk. Vi kalder en række for en 'linje' i en skabelon.

Skabeloner i SAP ABAP

SMART Styles

En smart stil indeholder:

  • Overskriftsdata, der indeholder standardværdierne for en Smart Style
  • Afsnitsformater inklusive indrykning og mellemrum, skrifttypeattributter, tabulatorer og disposition og nummerering
  • Tegnformater inklusive effekter (superscript, subscript), stregkode og skrifttypeattributter
  • Farver og understreger for et afsnit eller tegnformat

Du kan bruge transaktionen 'smartforms' / 'smartstyles' til at skabe en smart stil.

Skabeloner i SAP ABAP

💡 Tip: Tildel den smarte stil i formularattributterne i stedet for på hver tekstnode. Én ændring i stilen når derefter hvert afsnit i formularen.

Det er alt til denne tutorial

Ofte Stillede Spørgsmål

En tabel vokser med antallet af rækker i den interne tabel, så dens højde ændres under kørsel. En skabelon har et fast antal linjer og celler, der passer til en check, en billet eller en skatteformular.

Sæt GETOTF i kontrolstrukturen, læs OTF-dataene returneret af det genererede modul, og send dem til funktionsmodulet CONVERT_OTF. Resultatet er en binær tabel, der kan sendes via e-mail eller downloades.

Nej. En Smart Form er klientuafhængig, så den er tilgængelig i alle systemets klienter efter aktivering. SAPScriptformularen er klientafhængig og skal kopieres med SCC1.

AI-assistenter udarbejder udskriftsprogrammet, inklusive SSF_FUNCTION_MODULE_NAME-kaldet og håndteringen af ​​undtagelser. Selve layoutet er stadig arrangeret node for node i Form Builder, fordi det er et grafisk objekt.

Ja. Smarte formularer er fortsat standarden for masseudskrivning i mange SAP systemer, mens Adobe Forms dækker interaktive dokumenter. AI-værktøjer fremskynder primært de omkringliggende opgaver, såsom at læse en formular og udarbejde dens dokumentation.

Opsummer dette indlæg med: