Show TOC

 Subscreens für das Bearbeiten von Verknüpfungsdaten

Verwendung

Diese Ablauflogik ist nur in folgender Bearbeitungssituation relevant: Sie bearbeiten ein Dokument (anlegen, ändern oder anzeigen) und möchten dieses Dokument mit einem anderen SAP-Objekt verknüpfen.

In diesem Bearbeitungsprozeß werden Daten zwischen folgenden Subscreens übertragen:

  • Trägerdynpro für die Bearbeitung der Dokuments

    (Subscreen 1500, Funktionsgruppe CV130)

  • kundeneigener Subscreen für die Pflege der Verknüpfungsdaten

    Hinweis Hinweis

    Weitere Informationen über die Kommunikation zwischen dem Trägerdynpro und dem kundeneigenem Subscreen finden Sie hier: Trägerdynpro und kundeneigener Subscreen .

    Ende des Hinweises

Bildaufbau (PBO)

Der Bildaufbau erfolgt im Verarbeitungsblock Process Before Output (PBO), der nach dem Aufruf eines Dynpros, aber vor der eigentlichen Bildanzeige verarbeitet wird.

PBO Subscreen 1500 in der Funktionsgruppe CV130

Im SAP-System ist die Ablauflogik des Trägerdynpros 1500 (Programm SAPLCV130) vollständig programmiert. Über die BAdI-Schnittstelle wird der kundeneigene Subscreen für die Pflege der Objektverknüpfung dynamisch ermittelt.

Im PBO-Module DYN1500_INIT OUTPUT des BAdI wird die Instanz der Implementierung filterabhängig erzeugt. Der Filtertyp ist DOKOB (Verknüpftes SAP-Objekt).

Die gelesenen Objektverknüpfungen (Tabelle DRAD) werden im Module DYN1500_SET_DATA an das Anwenderprogramm übergeben. Die Information, welcher Subscreen für die Pflege der Verknüpfungsdaten aufgerufen wird, enthält die von Ihnen angelegte Implementierung zum jeweiligen Filtertyp (Objekttyp).

PBO Subscreen im kundenspezifischen Programm

Programmieren Sie im Screen Painter (Transaktion SE51) ein Programm mit folgender Ablauflogik:

  • Holen der Instanz zur Objektreferenz:

    data object type ref to IF_EX_DOCUMENT_OBJ. ***get instance CALL METHOD CL_EXITHANDLER=>GET_INSTANCE_FOR_SUBSCREENS        CHANGING           INSTANCE                       = object.

  • Übergabe der Daten über die Methode GET_DATA von der Applikationsseite

  • Aufbereiten der Daten als Table Control

Bildabarbeitung (PAI)

Die Bildabarbeitung erfolgt im Verarbeitungsblock Process After Input (PAI), der nach der Anzeige eines Dynpros verarbeitet wird. Dieser Verarbeitungsblock ruft Module in ABAP-Programmen auf und legt dadurch fest, welche Verarbeitung nach einer Benutzeraktion auf dem Bildschirm stattfindet.

PAI Subscreen 1500 (Funktionsgruppe CV130): Übergabe Funktionscode

Dem Anwendungsprogramm wird der Funktionscode übergeben. An dieser Stelle kann vom Anwendungsprogramm über die Methode GET_FUNCTION_CODE der jeweilige Funktionscode ermittelt werden.

In der Implementierung kann der Funktionscode über im hierfür vorgesehenen Attribut gespeichert und übergeben werden:

IF_EX_DOCUMENT_OBJ~FUNCTION_CODE = FUNCTION_CODE.

bzw.

FUNCTION_CODE = IF_EX_DOCUMENT_OBJ~FUNCTION_CODE.

PAI Subscreen im kundenspezifischen Programm

Programmieren Sie im Screen Painter das Programm für die Bearbeitung des Dynpros. Der folgende Ablauf ist ein Vorschlag.

  • Übertragen der auf dem Table Control vorhandenen Daten über die Methode PUT_DATA

    Die Markierungen müssen im Feld TAB_MARK der Schnittstellentabelle TAB_DRAD_WORK mit dem Zeichen 'X' geschrieben werden.

  • Für die Eingabeprüfung (field-Anweisung) auf dem Table Control kann folgender Baustein verwendet werden: cv140_links_check .

    CALL FUNCTION 'CV140_LINKS_CHECK'              EXPORTING: pf_check_exist      = space                         pf_check_authority = 'X'                         pf_check_enq        = 'X'                         pf_check_1_n        = ''                        pf_dokob            = 'X'                         pf_dokst            = gs_draw_SAVE-dokst                         PF_TYPE_CHECK       = 'D'              TABLES:     pt_check_links      = lt_check_drad              EXCEPTIONS: found_error         = 1                         OTHERS              = 2.         IF sy-subrc <> 0.           LOOP AT lt_check_drad WHERE check_flag CA 'X'.             EXIT.           ENDLOOP.           CASE sy-fdpos.             WHEN '0'.               MESSAGE e284(26) WITH lt_check_drad-dokob               RAISING error.             WHEN '1'.               MESSAGE e285(26) WITH lt_check_drad-dokob               RAISING error.             WHEN '2'. MESSAGE e286(26) WITH lt_check_drad-dokob               RAISING error.             WHEN '3'.               MESSAGE e287(26) WITH lt_check_drad-dokob               RAISING error.             WHEN '4'.               MESSAGE e288(26) WITH lt_check_drad-dokob               lt_check_drad-dokar               RAISING error.           ENDCASE.         endif.

PAI Subscreen 1500 in der Funktionsgruppe CV130

Um Datenschiefstände zu vermeiden, enthält die Ablauflogik des Trägerdynpros 1500 (Programm SAPLCV130) eine Prüfung der Verknüpfungsdaten:

  • Übernahme der Daten mit Hilfe der Methode GET_DATA im Module DYN1500_GET_DATA.

Alte und neue Daten werden vom Baustein CV140_LINKS_CHECK geprüft.

Beim Auftreten eines Fehlers wird eine Nachricht vom Typ E (Error) ausgelöst.

  • Aufruf der aktuellen Funktion im Table Control im Module DYN1500_SAVE_EXECUTE.

Bevor die neuen Verknüpfungsdaten aus dem Table Control des kundeneigenen Subscreens gesichert werden, kann eine zusätzliche Sicherheitsabfrage erfolgen. Das Sichern der Verknüpfungsdaten kann hier auch abgebrochen werden:

  • Anwender:

    Vor der Verarbeitung des Funktionscodes wird die Methode BEFORE_EXECUTE_FUNCTION aufgerufen. Wird das Kennzeichen lf_no_run gesetzt, werden keine Funktionen der Applikation ausgeführt.

  • Applikation:

    • Verarbeitung des OK-Codes für die markierten Einträge der übergebenen Tabelle TAB_DRAD_WORK .

    • Beim Ausführen eines Doppelklicks oder Auswählen der Funktion Anzeigen wird die Methode JUMP_TO_SCREEN aufgerufen. In dieser Methode muß der Absprung zum jeweiligen Objekt implementiert sein.