Smarte skjemaer i SAP ABAP

⚡ Smart oppsummering

Smarte skjemaer i SAP ABAP oppretter og vedlikeholder skjemaer for masseutskrift, med utdata til en skriver, en faks, e-post eller Internett. Denne siden forklarer arkitekturen, skjemabyggernodene, vinduene, tabellene, malene, stilene og den genererte funksjonsmodulen.

  • 🖨️ Kjerneformål: Smarte skjemaer produserer masseutskrift av dokumenter og støtter utskrift via skriver, faks, e-post og Internett via den genererte XML-filen.
  • 🕰️ Opprinnelse: SAP introduserte Smart Forms i 1998 for å overvinne begrensningene til SAPskript, og de er enklere å utvikle, vedlikeholde og transportere.
  • 🧱 Grafisk design: Noder ordnes ved å dra og slippe i skjemabyggeren, slik at et skjema tilpasses uten å skrive en eneste linje med skriptspråk.
  • ⚙️ Generert modul: Aktivering av et skjema genererer en funksjonsmodul, og utskriftsprogrammet får navnet sitt under kjøring med SSF_FUNCTION_MODULE_NAME.
  • 🪟 Vindusregel: En side inneholder maksimalt ett hovedvindu, som flyter på tvers av sider, mens hvert sekundærvindu bare skriver ut statisk innhold.
  • 📐 Tabell eller mal: En tabell vokser dynamisk med dataene, og en mal brukes når utdataene har en fast størrelse, for eksempel en sjekk eller en billett.
  • 🎨 Smarte stiler: Avsnittsformater, tegnformater, farger og strekkoder lagres i en smart stil og brukes på nytt på tvers av skjemaer.

SAP ABAP Smart Forms

Hva er smarte skjemaer i SAP ABAP?

SAP Smart Forms brukes til å lage og vedlikeholde skjemaer for masseutskrift i SAP Systems.Som output medium SAP Smart Forms støtter en skriver, en faks, e-post eller Internett (ved å bruke den genererte XML-utdata).

SAP introduserte SmartForms i 1998 for å overvinne begrensningene i SAP Skript. SmartForms er enklere å utvikle, vedlikeholde og transportere enn SAP Manus.

Sammenligning av Smart Forms og SapScripts

  • Flere sideformater er mulig i SmartForms, noe som ikke er tilfelle i SAP scripts
  • Det er mulig å ha en SmartForm uten hovedvindu.
  • Rutiner kan skrives i SmartForms-verktøyet.
  • SmartForms genererer en funksjonsmodul når den er aktivert.
  • Etiketter kan ikke opprettes i SmartForms.
Kriterier Smarte skjemaer SAPscript
Sideformater Flere sideformater i ett skjema Én side per skjema
Hovedvindu Ikke obligatorisk Nøyaktig ett hovedvindu er nødvendig
Rutiner Skrevet inni selve skjemaet Skrevet i det separate utskriftsprogrammet
Aktivering Genererer en funksjonsmodul Ingen funksjonsmodul genereres
etiketter Kan ikke opprettes Kan opprettes

Fordeler med smarte skjemaer

  • De hjelper med å tilpasse skjemaer uten programmeringskunnskaper på grunn av det fullstendig grafiske brukergrensesnittet
  • Ved aktivering av smartskjemaet genererer systemet automatisk funksjonsmodulen og ved kjøretid.
  • For å gjøre endringer må vi bruke Dra og slipp, Klipp og Lim inn. Disse handlingene inkluderer ikke skriving av kodelinjer eller bruk av et skriptspråk.
  • Vi kan sette inn statiske og dynamiske tabeller. Disse inkluderer linjefeedene i de individuelle tabellcellene, utløsende hendelser for tabelloverskrifter og delsummer og sortering av data før utdata.
  • De smarte skjemaene lar brukeren inkludere grafikk, som kan vises som en del av skjemaet eller som bakgrunnsgrafikk. Under utskrift kan brukeren undertrykke bakgrunnsgrafikken når det er nødvendig.
  • Webpublisering er mulig ved å bruke den genererte XML produksjon

Architecture av SAP Smart form

Architecture av SAP Smart form

Arkitekturdiagrammet viser de tre lagene som er involvert. Skjemaet utformes i skjemabyggeren, aktiveringen genererer funksjonsmodulen, og utskriftsprogrammet kaller modulen med applikasjonsdataene. Designtrinnene for det første laget dekkes deretter.

Smartforms guide

La oss gå gjennom det inn SAP system-

  1. Angi transaksjon SMARTFORMER i transaksjonskodeboksen.
  2. I neste skjermbilde skriver du inn et skjemanavn og klikker på opprett

Smartforms guide

Den neste skjermen er delt inn i tre seksjoner-

Smartforms guide

Navigasjonsvindu består av noder og undernoder. De inneholder alle elementene (tekst, vindu osv.) som tilhører sap-skjemaer

  • Vedlikeholdsvindu viser attributter til elementene
  • Skjemaskriver vinduet viser layouten til siden

Når vi lager smarte skjemaer, SAP oppretter/genererer en funksjonsmodul.Unlike SAPskript, SAP FORS lar deg endre språk.

I navigasjonsvinduet finner du

Globale dataerklæringer : Dataene som er definert her kan brukes i hele smartformen til kodingsformål.

Skjemagrensesnitt : Her defineres alle data som skal sendes til smartform fra Print-programmet.

Smartforms guide

Høyreklikk på sidene vil tillate opprettelse av ny side, vindu, grafikk eller adresse.

Smartforms guide

Utskriften vil foregå på grunnlag av 'neste side'-feltet.

Men behandlingen vil skje i henhold til sekvensen i navigasjonsvinduet!

Smartforms guide

For bakgrunnsbilde og grafikk kan du plukke opp enten svart-hvitt eller farge punktgrafikkbilder og lagres i form av standardtekster. Du kan ta en omvei fra smartform-skjermen og åpne Skjemagrafikk-skjermen. Transaksjonskode: Se78

Smartforms guide

Innstilling i grafikk i Smart Form-vinduet-

Smartforms guide

Windows i Smart Forms

Windows i Smart Forms

Det er to typer Windows

  1. Hoved
  2. Sekundær

Viktige punkter å merke seg

  • Du kan ikke ha mer enn ett hovedvindu på en side. Du kan ha flere sekundære vinduer
  • Uansett hva du skriver ut i sekundært vindu ... må det være statisk. (Hvis du har 20 linjer i en PO og det er sidebegrensning, blir linjene videreført til neste side i hovedvinduet. dvs. i en forgjenger og etterfølger type innhold, vil de bli skrevet ut i rekkefølge i hovedvinduet. Dette er ikke tillatt i sekundære vinduer.

Windows i Smart Forms

Inne i hovedvinduet kan vi legge til tekst som introduksjon for å tilpasse skjemautgangen.

Windows i Smart Forms

Utdataalternativene i hvert vindu bestemmer linjestørrelse, bredde, farger og bakgrunn som skal settes.

Windows i Smart Forms

Smartforms gir mulighet for å oppgi adressenummeret som vedlikeholdes i den sentrale adressestyringen. Adressen vil bli tatt direkte fra ADRC-tabellen og vil fylles ut i skjemaet.

Windows i Smart Forms

De to forskjellige redaktørene er tilgjengelige i Smartforms, nemlig. Normal redaktør

Windows i Smart Forms

og grafikkredigereren.

Windows i Smart Forms

Denne innstillingen kan endres ved hjelp av Konfigurer-redigeringsprogrammet i Verktøy.

Bord i et vindu

I Table painter kan du tegne formatet i henhold til kundens krav (f.eks. Overskrift, Underoverskrift, Vare, Undertotal, Totalsum osv.)

Du kan bruke tabelloppsettet til å bestemme:

  • Antall linjer og celler
  • Høyden på hver linje
  • Bredden på hver celle
  • Justeringen av bordet i vinduet

Windows i Smart Forms

Tabellen viser de ulike linjetypene som skal brukes i tabellen. Linjetypene definerer størrelsen på hver celle og antall celler i hver linje.

Windows i Smart Forms

Smart Forms-programmeringsflyt

Når en SAP Smart Form-mal opprettes, en bruker oppretter skjemaoppsettet, definerer de nødvendige feltene, betingelsene og spesielle programmeringsinstruksjoner i Smart Form-malen ved hjelp av Smart Form Builder.

Etter at skjemautformingen er fullført, må skjemaet aktiveres før det kan testes eller åpnes av utskriftsprogrammene. Aktivering av skjemaet starter genereringen av en funksjonsmodul som håndterer all skjemaets behandling.

Denne funksjonsmodulen samhandler med applikasjonsprogrammet/utskriftsprogrammet for å lage utdataene i det brukerdefinerte utdatamediet for den angitte enheten.

Ved smartskjema bruker vi 2 funksjonsmoduler for behandlingen av smartskjemaet. Til den første funksjonsmodulen sender vi navnet på det smarte skjemaet som importparameter. Dette returnerer deretter navnet på den dynamisk genererte funksjonsmodulen som faktisk vil kalle smartformen.

Smartform-navnet kan sendes videre til funksjonen Modul – 'SSF_FUNCTION_MODULE_NAME'

Smart Forms-programmeringsflyt

Dette vil returnere funksjonsmodulnavnet til smartformen som det refereres til.

Smart Forms-programmeringsflyt

Print-programmet vil ringe FM 'SSF_FUNCTION_MODULE_NAME' for å få funksjonsmodulnavnet ved Runtime. Deretter vil den kalle opp funksjonsmodulen som er oppnådd på denne måten for å utføre smartformen.

Smart Forms-programmeringsflyt

Slik kaller du et smartskjema fra et utskriftsprogram

To-trinnskallet beskrevet ovenfor skrives alltid på samme måte. Programmet løser først det genererte navnet, og kjører det deretter med applikasjonsdataene.

  1. Løs opp navnet på funksjonsmodulen: Send skjemanavnet til SSF_FUNCTION_MODULE_NAME. Det genererte navnet endres med hvert system, så det må aldri hardkodes.
  2. Kall den genererte modulen dynamisk: Bruk CALL FUNCTION med variabelen som inneholder det løste navnet, og send dataene gjennom parameterne som er definert i skjemagrensesnittet.
  3. Kontroller utgangen: Fyll kontrollstrukturen SSFCTRLOP for å undertrykke utskriftsdialogen eller for å be om en forhåndsvisning, og fyll SSFCOMPOP med utdataenheten.
  4. Håndter unntakene: Den genererte modulen genererer FORMATTING_ERROR, INTERNAL_ERROR, SEND_ERROR og USER_CANCELED, så SY-SUBRC må sjekkes etter kallet.
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 genererte navnet på funksjonsmodulen, for eksempel /1BCDWB/SF00000123, er forskjellig i hvert system. Løs det alltid med SSF_FUNCTION_MODULE_NAME, ellers feiler programmet etter transport.

maler

Malen kan brukes når du vet den nøyaktige størrelsen på resultatet, eller når resultatet er i et fast format.

For eksempel Skatteskjema/sjekker/flyselskapsskjema/jernbanebillett: alle disse bruker maler.

Den store forskjellen mellom en tabell og en mal er at høyden i en tabell endres dynamisk. Vi kaller en rad for en «linje» i en mal.

Maler i SAP ABAP

SMARTE stiler

En smart stil inneholder:

  • Overskriftsdata som inneholder standardverdiene til en smart stil
  • Avsnittsformater inkludert innrykk og mellomrom, skriftattributter, tabulatorer og disposisjon og nummerering
  • Tegnformater inkludert effekter (superskrift, senket), strekkode og fontattributter
  • Farger og understreker for et avsnitt eller tegnformat

Du kan bruke transaksjonen "smartforms" / "smartstyles" for å lage en smart stil.

Maler i SAP ABAP

💡 Tips: Tildel den smarte stilen i skjemaattributtene i stedet for på hver tekstnode. Én endring i stilen gjelder deretter for hvert avsnitt i skjemaet.

Det var alt til denne opplæringen

Spørsmål og svar

En tabell vokser med antall rader i den interne tabellen, slik at høyden endres under kjøring. En mal har et fast antall linjer og celler, som passer til en sjekk, en billett eller et skatteskjema.

Sett GETOTF i kontrollstrukturen, les OTF-dataene som returneres av den genererte modulen, og send dem til funksjonsmodulen CONVERT_OTF. Resultatet er en binærtabell som kan sendes via e-post eller lastes ned.

Nei. Et smart skjema er klientuavhengig, så det er tilgjengelig i alle klienter i systemet etter aktivering. SAPSkriptskjemaet er klientavhengig og må kopieres med SCC1.

AI-assistenter utarbeider utskriftsprogrammet, inkludert SSF_FUNCTION_MODULE_NAME-kallet og unntakshåndteringen. Selve oppsettet er fortsatt ordnet node for node i skjemabyggeren, fordi det er et grafisk objekt.

Ja. Smarte skjemaer er fortsatt standarden for masseutskrift i mange SAP systemer, mens Adobe Forms dekker interaktive dokumenter. AI-verktøy fremskynder hovedsakelig de omkringliggende oppgavene, som å lese et skjema og utarbeide dokumentasjonen.

Oppsummer dette innlegget med: