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: