FB ADDR_DIALOG (Rückgabestruktur enthält keine Telefonnr...)

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
2 Beiträge • Seite 1 von 1
2 Beiträge Seite 1 von 1

FB ADDR_DIALOG (Rückgabestruktur enthält keine Telefonnr...)

Beitrag von alex1 (ForumUser / 5 / 0 / 0 ) »
Hallo,

ich möchte Adressdaten über den Funktionsbaustein ADDR_DIALOG anzeigen, sowie im Dialog ändern.
Soweit so gut, allerdings gibt mir die Schnittstelle nach dem Dialog keine Telefon / Faxnr... zurück (Struktur ADDR1_DATA).
Zum setzen eines Vorschlagswerte (Struktur ADDR1_DIA) kann ich allerdings eine Telefonnummer etc. mitgeben.

Hat jemand eine Idee, wie ich an die fehlenden Daten komme?

Danke für eure Hilfe...

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: FB ADDR_DIALOG (Rückgabestruktur enthält keine Telefonnr

Beitrag von a.koch (ForumUser / 5 / 0 / 0 ) »
Hallo,
es ist ziemlich Mühselig, aber es geht. Hier ein Bsp.
Coding

*** data definition
DATA gt_handle TYPE STANDARD TABLE OF addr1_dia
WITH NON-UNIQUE DEFAULT KEY.
DATA gs_handle LIKE LINE OF gt_handle.
DATA gv_maint_mode LIKE gs_handle-maint_mode.
DATA gv_okcode TYPE syucomm.
DATA gt_values TYPE STANDARD TABLE OF addr1_data.
DATA gv_offset TYPE i.
DATA gs_address_reference LIKE addr_ref.
DATA gs_addr1_val TYPE addr1_val.
DATA gs_addr1_sel TYPE addr1_sel.
DATA gs_fisel TYPE addr1_fsel-fisel.

*** makro for field settings
DEFINE cf.
gv_offset = &1 - 1.
gs_fisel+gv_offset(1) = &2.
END-OF-DEFINITION.

PARAMETERS p_adrnr TYPE adrnr.
PARAMETERS p_edit AS CHECKBOX.

START-OF-SELECTION.

*** set parameters
gs_addr1_sel-addrhandle = space.
gs_addr1_sel-addrnumber = p_adrnr.

*** read address
CALL FUNCTION 'ADDR_GET'
EXPORTING
address_selection = gs_addr1_sel
IMPORTING
address_value = gs_addr1_val
EXCEPTIONS
parameter_error = 1
address_not_exist = 2
version_not_exist = 3
internal_error = 4
OTHERS = 5.
IF sy-subrc = 0.
IF p_edit <> space.
gv_maint_mode = 'CHANGE'.
ELSE.
gv_maint_mode = 'DISPLAY'.
ENDIF.
gs_handle-handle = space.
ELSEIF p_edit <> space.
gv_maint_mode = 'CREATE'.
gs_handle-handle = 'TRICKTRESOR'.
ELSE.
MESSAGE i000(oo) WITH 'Address does not exist.'.
ENDIF.

*** prepare address handle
gs_handle-owner = 'X'.
gs_handle-addrnumber = gs_addr1_sel-addrnumber.
gs_handle-maint_mode = gv_maint_mode.
gs_handle-addr_group = 'SD01'.
gs_handle-country = 'DE'.
APPEND gs_handle TO gt_handle.

*** prepare field selection
CLEAR gs_fisel WITH '-'.
cf: 002 ' ', " Name
004 ' ', " Name2
010 ' ', " Street
016 ' ', " Country
022 ' ', " House number
029 '#', " Building
030 '#', " Floor
031 '#', " Room number
012 ' ', " Postal code
013 ' ', " Postal code
014 ' ', " City
019 ' ', " Telefon
020 ' '. " Fax

*** set field selection
CALL FUNCTION 'ADDR_DIALOG_PREPARE'
EXPORTING
field_selection = gs_fisel
EXCEPTIONS
internal_error = 1
OTHERS = 2.

*** maintain address
CALL FUNCTION 'ADDR_DIALOG'
IMPORTING
ok_code = gv_okcode
TABLES
number_handle_tab = gt_handle
values = gt_values
EXCEPTIONS
address_not_exist = 1
group_not_valid = 2
parameter_error = 3
internal_error = 4
OTHERS = 5.

IF sy-subrc = 0.
IF gv_okcode = 'CONT'.
CASE gv_maint_mode.
*** Create address
WHEN 'CREATE'.
*** set references for address type
gs_address_reference-appl_table = 'VBUK'.
gs_address_reference-appl_field = 'VBELN'.
gs_address_reference-appl_key = '$000000001'.
gs_address_reference-addr_group = gs_handle-addr_group.
gs_address_reference-owner = 'X'.
*** get new address number
CALL FUNCTION 'ADDR_NUMBER_GET'
EXPORTING
address_handle = gs_handle-handle
address_reference = gs_address_reference
IMPORTING
address_number = p_adrnr
EXCEPTIONS
OTHERS = 4.
IF sy-subrc > 0.
WRITE: / 'Error ADDR_NUMBER_GET'.
STOP.
ENDIF.
ENDCASE.
*** save address
CALL FUNCTION 'ADDR_MEMORY_SAVE'
EXCEPTIONS
address_number_missing = 1
person_number_missing = 2
internal_error = 3
database_error = 4
reference_missing = 5
OTHERS = 6.
IF sy-subrc = 0.
WRITE: / 'Address saved:', p_adrnr.
ELSE.
WRITE: / 'Error ADDR_MEMORY_SAVE, SUBRC=', sy-subrc.
ENDIF.
ELSE.
*** Dialog cancelled
WRITE: / 'Dialog cancelled'.
ENDIF.
ELSE.
*** Error in dialog
WRITE: / 'Error ADDR_DIALOG'.
ENDIF.
Viele Grüße

a.koch

Seite 1 von 1

Vergleichbare Themen

1
Antw.
4722
Views
SmartForms: Übersetzung enthält #
von Timoniac » 15.01.2018 11:23 • Verfasst in SAP - Allgemeines
2
Antw.
653
Views
Die Beschreibung der Workflowaufgabe enthält nur 1 Zeile
von kaim77 » 16.01.2019 17:47 • Verfasst in ABAP® Core
1
Antw.
1911
Views
Überprüfung ob interne Tabelle Werte enthält
von nkuhn » 16.02.2007 14:43 • Verfasst in Basis
5
Antw.
1397
Views
Prüfung: Feld enthält Instanz einer Ausnahmeklasse
von ralf.wenzel » 16.09.2019 09:30 • Verfasst in ABAP Objects®
1
Antw.
1748
Views
Der Parameter NODE enthält einen ungültigen Wert
von Dyrdek » 10.08.2014 14:50 • Verfasst in Web-Dynpro, BSP + BHTML

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Regex in where
vor 20 Stunden von tar 8 / 367
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1636
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 285
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 528

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Regex in where
vor 20 Stunden von tar 8 / 367
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1636
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 285
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 528

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 2 Tagen von snooga87 1 / 221
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 3403
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9953