Beispiel: Formularaufruf im
Anwendungsprogramm
Der nachfolgende Programmauszug zeigt die Aufrufe der Funktionsbausteine.
...
1. FP_JOB_OPEN, um den Spool-Job zu öffnen
2. FP_FUNCTION_MODULE_NAME, um den Formularnamen zu ermitteln,
3. generierter Funktionsbaustein des Formulars
4. FP_JOB_CLOSE, um den Spool-Job zu schließen.
In diesem Beispiel werden die Parameter CUSTOMER, BOOKINGS und CONNECTIONS an die Formularschnittstelle übergeben, in der sie auch definiert sein müssen.
DATA: CUSTOMER TYPE SCUSTOM,
BOOKINGS TYPE TY_BOOKINGS,
CONNECTIONS TYPE TY_CONNECTIONS,
FM_NAME TYPE RS38L_FNAM,
FP_DOCPARAMS TYPE SFPDOCPARAMS,
FP_OUTPUTPARAMS TYPE SFPOUTPUTPARAMS.
* ERMITTLUNG DER DATEN
<Selektion der Daten>
* AUSDRUCKEN:
* Setzen der Ausgabeparameter und Öffnen des Spool-Jobs
CALL FUNCTION 'FP_JOB_OPEN'
CHANGING
IE_OUTPUTPARAMS = FP_OUTPUTPARAMS
EXCEPTIONS
CANCEL = 1
USAGE_ERROR = 2
SYSTEM_ERROR = 3
INTERNAL_ERROR = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
<Fehlerbehandlung>
ENDIF.
* Name des generierten Funktionsbausteines ermitteln
CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
EXPORTING
I_NAME = ‘<Formularname>’
IMPORTING
E_FUNCNAME = FM_NAME.
IF SY-SUBRC <> 0.
<Fehlerbehandlung>
ENDIF.
* Sprach- und Ländereinstellung (hier z.B. Deutsch)
fp_docparams-langu = 'D'.
fp_docparams-country = 'DE'.
* Aufruf des generierten Funktionsbausteines
CALL FUNCTION FM_NAME
EXPORTING
/1BCDWB/DOCPARAMS = FP_DOCPARAMS
CUSTOMER = CUSTOMER
BOOKINGS = BOOKINGS
CONNECTIONS = CONNECTIONS
* IMPORTING
* /1BCDWB/FORMOUTPUT =
EXCEPTIONS
USAGE_ERROR = 1
SYSTEM_ERROR = 2
INTERNAL_ERROR = 3.
IF SY-SUBRC <> 0.
<Fehlerbehandlung>
ENDIF.
* Spool-Job schließen
CALL FUNCTION 'FP_JOB_CLOSE'
* IMPORTING
* E_RESULT =
EXCEPTIONS
USAGE_ERROR = 1
SYSTEM_ERROR = 2
INTERNAL_ERROR = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
<Fehlerbehandlung>
ENDIF.