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.
650
Views
Die Beschreibung der Workflowaufgabe enthält nur 1 Zeile
von kaim77 » 16.01.2019 17:47 • Verfasst in ABAP® Core
1
Antw.
1907
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.
1746
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

Trennen Strasse und Hausnummer
vor einer Stunde von ralf.wenzel 21 / 11225
Dialog-Container mit Toolbar/Status
vor 22 Stunden von black_adept gelöst 27 / 4328
IT0024 Qualifikationen CP-ID
Gestern von ArjenR 1 / 219

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

Trennen Strasse und Hausnummer
vor einer Stunde von ralf.wenzel 21 / 11225
Dialog-Container mit Toolbar/Status
vor 22 Stunden von black_adept gelöst 27 / 4328
IT0024 Qualifikationen CP-ID
Gestern von ArjenR 1 / 219

Unbeantwortete Forenbeiträge

IT0024 Qualifikationen CP-ID
Gestern von ArjenR 1 / 219
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 3150
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9743