Dokumentation zur VorgehensweiseDas Smart Form in die Anwendung integrieren

 

Der Druck des Formulars wird durch den Aufruf von nur zwei Funktionsbausteinen angestoßen. Der erste ermittelt über den Namen des Formulars den Namen des generierten Funktionsbausteins. Diesen rufen Sie dann auf.

Achtung Achtung

Der Name des generierten Funktionsbausteins ist nur in einem System eindeutig. Daher muß immer zuerst der Funktionsbaustein aufgerufen werden, der dessen aktuellen Namen über den Namen des Formulars ermittelt.

Ende der Warnung.

Voraussetzungen

Sie haben in Ihrem Formular die Formularschnittstelle definiert und das Formular aktiviert.

Vorgehensweise

  1. Rufen Sie im Form Builder die Funktion Anfang des Navigationspfads Umfeld Navigationsschritt Name Ende des Navigationspfads des Funktionsbausteins auf und kopieren Sie sich mit STRG-Y und STRG-C den Namen.

  2. Definieren Sie im Anwendungsprogramm eine Variable vom Typ RS38L_FNAM für den Namen des generierten Funktionsbausteins:

    Syntax Syntax

    1. data fm_name type RS38L_FNAM.
    Ende des Codes

    Hinweis Hinweis

    Sie können das Smart Form auch an anderen Stellen des Anwendungsprogramm aufrufen. Dann müssen Sie dafür sorgen, daß man auf die zu übergebenen Daten an dieser Stelle zugreifen kann. Es wird empfohlen, auch die Datenbeschaffung in einem Funktionsbaustein zu kapseln.

    Ende des Hinweises
  3. Optional können Sie den Funktionsbaustein SSF_FIELD_LIST aufrufen. Er gibt Ihnen zu einem Formular eine Liste der Formular-Parameter zurück, die tatsächlich im Formular verwendet werden. Mit dieser Information schränken Sie gegebenenfalls die Datenselektion ein.

  4. Rufen Sie den Funktionsbaustein SSF_FUNCTION_MODULE_NAME auf. Er gibt den Namen des generierten Funktionsbausteins zurück:

    Syntax Syntax

    1. CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
      	EXPORTING
      		FORMNAME	= '<Formularname>'
      	IMPORTING
      		FM_NAME		= fm_name
      	EXCEPTIONS
      		NO_FORM		= 1
      		NO_FUNCTION_MODULE = 2
      		OTHERS		= 3.
      
      IF SY-SUBRC <> 0.
      	<Fehlerbehandlung>
      ENDIF.
    Ende des Codes

    Hinweis Hinweis

    Falls das Formular inaktiv ist, löst SSF_FUNCTION_MODULE_NAME die Ausnahme NO_FORM aus. In zwei Fällen generiert sich der Funktionsbaustein selbständig eine aktive Fassung:

    • Nach einem Transport in ein anderes System

    • Wenn Sie die Formularschnittstelle eines schon mal aktivierten Formulars geändert haben

    Ende des Hinweises
  5. Rufen Sie den generierten Funktionsbaustein auf. Verwenden Sie dazu die Muster-Funktion für CALL FUNCTION im ABAP Editor und verwenden Sie den Namen, den Sie im ersten Schritt kopiert haben (auf diese Weise brauchen Sie nicht alle Schnittstellenparameter per Hand übertragen). Dann ersetzen Sie den Funktionbausteinnamen durch die im zweiten Schritt definierte Variable fm_name:

    Syntax Syntax

    1. CALL FUNCTION fm_name
        EXPORTING
      *	ARCHIVE_INDEX	= 
      *	ARCHIVE_PARAMETERS =
      *	CONTROL_PARAMETERS =
      *	MAIL_APPL_OBJ	=
      *	MAIL_RECIPIENT	=
      *	MAIL_SENDER	=
      *	OUTPUT_OPTIONS	=
      *	USER_SETTINGS	= 'X'
      	G_CARRID	= <Variable>
      	G_CONNID	= <Variable> 
      	G_FLDATE	= <Variable>
      * IMPORTING
      *	DOCUMENT_OUTPUT_INFO	=
      *	JOB_OUTPUT_INFO		=
      *	JOB_OUTPUT_OPTIONS	=
        TABLES
      	GT_SBOOK	= <interne Tabelle>
        EXCEPTIONS
      	FORMATTING_ERROR = 1
      	INTERNAL_ERROR	= 2
      	SEND_ERROR	= 3
      	USER_CANCELED	= 4
      	OTHERS		= 5.
      
      IF SY-SUBRC <> 0.
      	<Fehlerbehandlung>
      ENDIF.
    Ende des Codes

    Hinweis Hinweis

    In diesem Beispiel werden drei Variablen und eine interne Tabelle übergeben. Die Parameter G_CARRID, G_CONNID, G_FLDATA und GT_SBOOK sind vorher in der Formularschnittstelle definiert worden.

    Ende des Hinweises
  6. Übergeben Sie an der Schnittstelle alle Daten, die Sie an das Formular übergeben möchten.

Ergebnis

Der generierte Funktionsbaustein arbeitet die in dem Smart Form definierte Formularlogik ab. Dessen Ausgabe wird an die Spool-Verarbeitung weitergeleitet.

Solange Sie die Formularschnittstelle nicht ändern, können Sie das Formular weiter bearbeiten. Wenn Sie es erneut aktivieren, wird mit dem Funktionsbaustein-Aufruf die aktuelle Version des Formulars erzeugt. Nur bei Änderungen der Formularschnittstelle müssen Sie die Schnittstelle im Anwendungsprogramm anpassen.