Funktionsbaustein ADDR COMM GET
Aus SAP-Wiki
Zur Navigation springenZur Suche springen
Kategorie: TP Funktionsbausteine
Siehe Sammlung Funktionsbausteine.
Der Funktionsbaustein ADDR_COMM_GET kann verwendet werden, um zu einer Adresse die Kommunikationsdaten auszulesen.
Lesen einer Adresse, die zur Laufzeit angelegt wird
- Mindestens im Kundenauftrag hat die Verwendung dieses Funktionsbausteins den Vorteil, dass auch zur Laufzeit (im Kundenauftragserstellungsprozess) angelegte Adressen hiermit ausgelesen werden können. Direktes Lesen der entsprechenden Datenbankentabellen würde hier nicht weiterhelfen, da die Daten noch nicht auf die Datenbanktabellen fortgeschrieben sind. In diesem Fall werden offensichtlich im Coding der Kundenauftragserstellung Daten in das Hauptprogramm der Funktionsgruppe SZA0 geschrieben, die dann vom Funktionsbaustein verwendet werden können.
- Im Kundenauftrag sieht man in der internen Tabelle der Vertriebspartner XVBPA im Feld der Adressnummer, dass hier keine Adressnummer steht, sondern u. a. das Sonderzeichen "$", wenn die Adresse erst im Kundenauftragsprozess angelegt wird. Diesen Feldwert wird nun dem Adresshandler (Parameter ADDR_HANDLE) übergeben und der Parameter mit der Adressnummer (Parameter ADDRESS_NUMBER) leer gelassen.
- Im Kundenprojekt hat dieser Trick geholfen eine Telefonnummer einer angelegten Adresse vom Warenempfänger auszulesen, die ansonsten in der vollständigen Länge nicht in den globalen Daten vom Kundenauftragsprozess zu finden war. In den globalen Daten (einer Adressstruktur) war die Telefonnummer nur bis zur Länge 16 zu finden, was bei den meisten Adressen ausreichen würde, aber leider nicht immer.
Coding
DATA: lv_table_type TYPE szad_field-table_type, lt_comm_table TYPE TABLE OF adtel, lv_returncode TYPE szad_field-returncode, lt_error_table TYPE STANDARD TABLE OF addr_error, lv_adrnr TYPE adrc-addrnumber, lv_adrnr_handle TYPE szad_field-handle. ... "Die Partnerdaten vom Partner WE stehen in der Field-Symbol-Struktur "<fs_vbpa>" * Prüfung auf das Sonderzeichen '$', dann ist die Adresse frisch angelegt im Beleg IF <fs_vbpa>-adrnr CA '$'. lv_adrnr = space. lv_adrnr_handle = <fs_vbpa>-adrnr. "'WE $...' ELSE. "Hier ist die Adresse bekannt lv_adrnr = <fs_vbpa>-adrnr. "Adressnummer vom WE clear lv_adrnr_handle. ENDIF. lv_table_type = 'ADTEL'. * Lesen Telekommunikationsdaten zu einer Adresse CALL FUNCTION 'ADDR_COMM_GET' EXPORTING ADDRESS_HANDLE = lv_adrnr_handle address_number = lv_adrnr * DATE_FROM = '00010101' * LANGUAGE = sy-langu table_type = lv_table_type IV_CURRENT_STATE = 'X' IMPORTING returncode = lv_returncode TABLES comm_table = lt_comm_table error_table = lt_error_table EXCEPTIONS parameter_error = 1 address_not_exist = 2 internal_error = 3 address_blocked = 4 OTHERS = 5. IF sy-subrc <> 0. message i531(0u) with 'Fehler bei Funktionsbaustein ADDR_COMM_GET'. ENDIF.