Die Smart Form in die Anwendung integrieren 

Verwendung

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.

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.

Voraussetzungen

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

Vorgehensweise

  1. Rufen Sie im Form Builder die Funktion Umfeld ® Name des Funktionsbausteins auf und kopieren Sie sich mit STRG-Y und STRG-C den Namen.
  2. Definieren Sie im Datenbeschaffungsprogramm eine Variable vom Typ rs281_fnam für den Namen des generierten Funktionsbausteins:
  3. data fm_name type rs38l_fnam.

    Sie können die 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.

  4. 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.
  5. Rufen Sie den Funktionsbaustein SSF_FUNCTION_MODULE_NAME auf. Er gibt den Namen des generierten Funktionsbausteins zurück:
  6. 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.

  7. 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 :
  8. 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.

    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.

  9. Übergeben Sie an der Schnittstelle alle Daten, die Sie an das Formular übergeben möchten.

Ergebnis

Der generierte Funktionsbaustein arbeitet die in der Smart Form definierte Formularlogik ab. Dessen Ausgabe wird an die Druckerspoolverarbeitung 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 Datenbeschaffungsprogramm anpassen.