Slimme formulieren in SAP ABAP

โšก Slimme samenvatting

Slimme formulieren in SAP ABAP maakt en onderhoudt formulieren voor massaprinten, met uitvoer naar een printer, fax, e-mail of internet. Deze pagina beschrijft de architectuur, de Form Builder-nodes, vensters, tabellen, sjablonen, stijlen en de gegenereerde functiemodule.

  • ๐Ÿ–จ๏ธ Kerndoel: Smart Forms produceert documenten die in grote hoeveelheden worden afgedrukt en ondersteunt uitvoer naar printers, faxen, e-mail en internet via de gegenereerde XML.
  • ๏ธ Oorsprong: SAP introduceerde Smart Forms in 1998 om de beperkingen van te overwinnen SAPscripts zijn eenvoudiger te ontwikkelen, te onderhouden en te transporteren.
  • ๐Ÿงฑ Grafisch ontwerp: In de formulierbouwer worden knooppunten door middel van slepen en neerzetten gerangschikt, waardoor een formulier kan worden aangepast zonder ook maar รฉรฉn regel scripttaal te hoeven schrijven.
  • โš™๏ธ Gegenereerde module: Door een formulier te activeren wordt een functiemodule gegenereerd, en het afdrukprogramma verkrijgt de naam ervan tijdens de uitvoering met SSF_FUNCTION_MODULE_NAME.
  • ๐ŸชŸ Vensterregel: Een pagina bevat maximaal รฉรฉn hoofdvenster, dat zich over meerdere pagina's uitstrekt, terwijl elk secundair venster alleen statische inhoud weergeeft.
  • ๐Ÿ“ Tabel of sjabloon: Een tabel groeit dynamisch mee met de gegevens, terwijl een sjabloon wordt gebruikt wanneer de uitvoer een vaste grootte heeft, zoals een cheque of een ticket.
  • ???? Slimme stijlen: Alinea-indelingen, tekenindelingen, kleuren en barcodes worden opgeslagen in een slimme stijl en hergebruikt in verschillende formulieren.

SAP ABAP Smart Forms

Wat zijn slimme formulieren in SAP ABAP?

SAP Smart Forms wordt gebruikt voor het maken en onderhouden van formulieren voor massaafdrukken SAP Systemen.Als uitvoermedium SAP Smart Forms ondersteunen een printer, een fax, e-mail en internet (door gebruik te maken van de gegenereerde XML-uitvoer).

SAP introduceerde SmartForms in 1998 om de beperkingen in SAP Scripts. SmartForms zijn gemakkelijker te ontwikkelen, te onderhouden en te transporteren dan SAP Script.

Vergelijking tussen Smart Forms en SapScripts

  • Er zijn meerdere paginaformaten mogelijk in SmartForms, wat niet het geval is bij SAP Scripts
  • Het is mogelijk om een โ€‹โ€‹SmartForm te hebben zonder hoofdvenster.
  • Routines kunnen worden geschreven in de SmartForms-tool.
  • SmartForms genereert bij activering een functiemodule.
  • Etiketten kunnen niet worden aangemaakt in SmartForms.
criteria Slimme formulieren SAPscript
Pagina-indelingen Verschillende paginaformaten in รฉรฉn formulier Eรฉn paginaformaat per formulier
Hoofd venster Niet verplicht Er is precies รฉรฉn hoofdvenster nodig.
Routines In het formulier zelf geschreven. Geschreven in het aparte drukprogramma.
Activering Genereert een functiemodule Er wordt geen functiemodule gegenereerd.
labels Kan niet worden aangemaakt Kan worden gecreรซerd

Voordelen van slimme formulieren

  • Ze maken het mogelijk om formulieren aan te passen zonder programmeerkennis dankzij een volledig grafische gebruikersinterface.
  • Bij het activeren van het slimme formulier genereert het systeem automatisch de functiemodule en tijdens de runtime .
  • Om wijzigingen aan te brengen, moeten we Drag & Drop, Cut & Paste gebruiken. Deze acties omvatten niet het schrijven van coderegels of het gebruik van een scripttaal.
  • We kunnen statische en dynamische tabellen invoegen. Deze omvatten de regelfeeds in de afzonderlijke tabelcellen, het activeren van gebeurtenissen voor tabelkoppen en subtotalen en het sorteren van gegevens vรณรณr uitvoer.
  • De slimme formulieren stellen de gebruiker in staat om afbeeldingen op te nemen, die kunnen worden weergegeven als onderdeel van het formulier of als achtergrondafbeeldingen. Tijdens het afdrukken kan de gebruiker de achtergrondafbeelding onderdrukken indien nodig.
  • Webpublicatie is mogelijk met behulp van de gegenereerde XML uitvoer

Archistructuur van SAP Slimme vorm

Archistructuur van SAP Slimme vorm

Het architectuurdiagram toont de drie betrokken lagen. Het formulier wordt ontworpen in de Form Builder, de activering genereert de functiemodule en het afdrukprogramma roept die module aan met de applicatiegegevens. De ontwerpstappen van de eerste laag worden hierna besproken.

Smartforms-gids

Laten we er doorheen gaan SAP system-

  1. Transactie invoeren SMARTFORMEN in het transactiecodevak.
  2. Voer in het volgende scherm een โ€‹โ€‹formuliernaam in en klik op Maken

Smartforms-gids

Het volgende scherm is verdeeld in drie secties:

Smartforms-gids

Navigatievenster bestaat uit knooppunten en subknooppunten. Ze bevatten alle elementen (tekst, venster enz.) die bij sapformulieren horen

  • Onderhoudsvenster toont attributen van de elementen
  • Formulierenprinter venster toont de lay-out van de pagina

Wanneer we slimme formulieren maken, SAP creรซert/genereert een functiemodule.In tegenstelling tot SAPscripts, SAP Met FORMULIEREN kunt u de taal wijzigen.

In het navigatievenster vindt u

Mondiale gegevensverklaringen : De hier gedefinieerde gegevens kunnen in het hele smartform worden gebruikt voor coderingsdoeleinden.

Formulierinterface : Hier worden alle gegevens gedefinieerd die vanuit het Print-programma naar de smartform worden doorgegeven.

Smartforms-gids

Door met de rechtermuisknop op de pagina's te klikken, kunt u een nieuwe pagina, venster, afbeelding of adres aanmaken.

Smartforms-gids

Het afdrukken vindt plaats op basis van het veld 'volgende pagina'.

Maar de verwerking zal gebeuren volgens de volgorde in het navigatievenster!

Smartforms-gids

Voor achtergrondafbeeldingen en afbeeldingen kunt u bitmapafbeeldingen in zwart-wit of kleur ophalen en deze opslaan in de vorm van standaardteksten. U kunt een omweg nemen vanaf het smartform-scherm en het Form Graphics-scherm openen. Transactie code: Se78

Smartforms-gids

Instellingen in de grafische weergave in het Smart Form-venster.

Smartforms-gids

Windows in slimme formulieren

Windows in slimme formulieren

Er zijn twee types Windows

  1. Hoofd
  2. Secundair

Belangrijke aandachtspunten

  • U kunt niet meer dan 1 hoofdvenster op een pagina hebben. U kunt meerdere secundaire vensters hebben
  • Wat u ook afdrukt in het secundaire venster... het moet statisch zijn. (Als u 20 regels in een PO hebt en er is een paginabeperking, worden de regels doorgestuurd naar de volgende pagina in het hoofdvenster. Dat wil zeggen in een voorganger- en opvolgertype van inhoud, worden ze in volgorde afgedrukt in het hoofdvenster. Dit is niet toegestaan โ€‹โ€‹in secundaire vensters.

Windows in slimme formulieren

In het hoofdvenster kunnen we tekst toevoegen als introductie om de formulieruitvoer aan te passen.

Windows in slimme formulieren

De uitvoeropties in elk venster bepalen de lijngrootte, breedte, kleuren en achtergrond die moeten worden geplaatst.

Windows in slimme formulieren

Smartforms biedt de mogelijkheid om het adresnummer op te geven dat wordt bijgehouden in het centrale adresbeheer. Het adres wordt rechtstreeks uit de ADRC-tabel gehaald en in het formulier ingevuld.

Windows in slimme formulieren

De twee verschillende editors zijn beschikbaar in Smartforms, namelijk: Normale editor

Windows in slimme formulieren

en de grafische editor.

Windows in slimme formulieren

Deze instelling kan worden gewijzigd met behulp van de Configure-editor in Hulpprogramma's.

Tafels in een etalage

In Table Painter kunt u de opmaak tekenen volgens de vereisten van de klant (bijv. kop, subkop, artikel, subtotaal, eindtotaal, etc.)

Met behulp van de tabelindeling kunt u bepalen:

  • Het aantal lijnen en cellen
  • De hoogte van elke lijn
  • De breedte van elke cel
  • De uitlijning van de tabel in het venster

Windows in slimme formulieren

De tabel toont de verschillende lijntypen die in de tabel zullen worden gebruikt. De Lijntypen definiรซren de grootte van elke cel en het aantal cellen in elke lijn.

Windows in slimme formulieren

Slimme formulieren programmeerstroom

wanneer een SAP Er wordt een Smart Form-sjabloon gemaakt, een gebruiker maakt de formulierindeling, definieert de vereiste velden, voorwaarden en speciale programmeerinstructies in de Smart Form-sjabloon met behulp van de Smart Form Builder.

Nadat het formulierontwerp is voltooid, moet het formulier worden geactiveerd voordat het kan worden getest of geopend door de afdrukprogramma's. Door het formulier te activeren, wordt een functiemodule gegenereerd die de volledige verwerking van het formulier afhandelt.

Deze functiemodule werkt samen met het applicatieprogramma/printprogramma om de uitvoer te creรซren in de door de gebruiker gedefinieerde uitvoermedia voor het opgegeven apparaat.

Bij slimme formulieren gebruiken wij 2 functiemodules voor de verwerking van het slimme formulier. Aan de eerste functiemodule geven we de naam van het slimme formulier door als importparameter. Dit retourneert vervolgens de naam van de dynamisch gegenereerde functiemodule die de smartform daadwerkelijk zal aanroepen.

De smartform naam kan doorgegeven worden aan de functie Module โ€“ 'SSF_FUNCTION_MODULE_NAME'

Slimme formulieren programmeerstroom

Hierdoor wordt de functiemodulenaam geretourneerd van de smartform waarnaar wordt verwezen.

Slimme formulieren programmeerstroom

Het Print-programma belt de FM 'SSF_FUNCTION_MODULE_NAME' om de naam van de functiemodule tijdens Runtime op te halen. Daarna zal het de aldus verkregen Functiemodule oproepen om de smartform uit te voeren.

Slimme formulieren programmeerstroom

Hoe u een slim formulier vanuit een afdrukprogramma kunt oproepen

De hierboven beschreven aanroep in twee stappen wordt altijd op dezelfde manier geschreven. Het programma lost eerst de gegenereerde naam op en voert deze vervolgens uit met de applicatiegegevens.

  1. Los de naam van de functiemodule op: Geef de formuliernaam door aan SSF_FUNCTION_MODULE_NAME. De gegenereerde naam verschilt per systeem, dus deze mag nooit hardgecodeerd worden.
  2. Roep de gegenereerde module dynamisch aan: Gebruik CALL FUNCTION met de variabele die de opgeloste naam bevat, en geef de gegevens door via de parameters die zijn gedefinieerd in de formulierinterface.
  3. Regel de uitvoer: Vul de besturingsstructuur SSFCTRLOP in om het afdrukdialoogvenster te onderdrukken of een voorbeeldweergave aan te vragen, en vul SSFCOMPOP in met het uitvoerapparaat.
  4. Verwerk de uitzonderingen: De gegenereerde module geeft de foutmeldingen FORMATTING_ERROR, INTERNAL_ERROR, SEND_ERROR en USER_CANCELED, dus SY-SUBRC moet na de aanroep gecontroleerd worden.
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.

โš ๏ธ Waarschuwing: De gegenereerde functiemodulenaam, bijvoorbeeld /1BCDWB/SF00000123, verschilt per systeem. Los deze altijd op met SSF_FUNCTION_MODULE_NAME, anders mislukt het programma na transport.

Templates

Een sjabloon kan worden gebruikt wanneer u de exacte grootte van de uitvoer weet of wanneer de uitvoer een vast formaat heeft.

Bijvoorbeeld belastingformulier/cheques/vliegticket/treinkaartje: al deze gebruiken sjablonen.

Het grote verschil tussen een tabel en een sjabloon is dat de hoogte van een tabel dynamisch verandert. In een sjabloon noemen we een rij een 'lijn'.

Sjablonen erin SAP ABAP

SMART-stijlen

Een slimme stijl bevat:

  • Kopgegevens die de standaardwaarden van een slimme stijl bevatten
  • Alinea-indelingen, waaronder inspringingen en spatiรซring, lettertypekenmerken, tabs en omtrek en nummering
  • Tekenformaten inclusief effecten (superscript, subscript), streepjescode en lettertype-attributen
  • Kleuren en onderstrepingen voor een alinea- of tekenopmaak

Met de transactie 'smartforms' / 'smartstyles' kunt u een slimme stijl aanmaken.

Sjablonen erin SAP ABAP

๐Ÿ’กTip: Wijs de slimme stijl toe in de formulierkenmerken in plaats van aan elk tekstknooppunt. Eรฉn stijlwijziging heeft dan invloed op alle alinea's van het formulier.

Dat is alles voor deze tutorial

Veelgestelde vragen

Een tabel groeit mee met het aantal rijen in de interne tabel, waardoor de hoogte ervan tijdens de uitvoering verandert. Een sjabloon heeft een vast aantal regels en cellen, wat geschikt is voor een cheque, een ticket of een belastingformulier.

Stel GETOTF in de besturingsstructuur in, lees de OTF-gegevens die door de gegenereerde module worden geretourneerd en geef deze door aan de functiemodule CONVERT_OTF. Het resultaat is een binaire tabel die per e-mail kan worden verzonden of gedownload.

Nee. Een Smart Form is clientonafhankelijk en is dus na activering beschikbaar in elke client van het systeem. SAPHet scriptformulier is clientafhankelijk en moet met SCC1 worden gekopieerd.

AI-assistenten stellen het afdrukprogramma op, inclusief de aanroep van SSF_FUNCTION_MODULE_NAME en de afhandeling van uitzonderingen. De lay-out zelf wordt nog steeds knooppunt voor knooppunt opgebouwd in de Form Builder, omdat het een grafisch object is.

Ja. Smart Forms blijft in veel gevallen de standaard voor massaprinten. SAP AI-systemen zijn er in het algemeen, terwijl Adobe Forms zich richt op interactieve documenten. AI-tools versnellen vooral de bijbehorende taken, zoals het lezen van een formulier en het opstellen van de bijbehorende documentatie.

Vat dit bericht samen met: