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.
4531
Views
SmartForms: Übersetzung enthält #
von Timoniac » 15.01.2018 11:23 • Verfasst in SAP - Allgemeines
2
Antw.
587
Views
Die Beschreibung der Workflowaufgabe enthält nur 1 Zeile
von kaim77 » 16.01.2019 17:47 • Verfasst in ABAP® Core
1
Antw.
1814
Views
Überprüfung ob interne Tabelle Werte enthält
von nkuhn » 16.02.2007 14:43 • Verfasst in Basis
5
Antw.
1267
Views
Prüfung: Feld enthält Instanz einer Ausnahmeklasse
von ralf.wenzel » 16.09.2019 09:30 • Verfasst in ABAP Objects®
3
Antw.
2499
Views
Fehler:Die BSP URL / enthält keine Angabe eines Namensraumes
von Jana » 03.12.2004 11:32 • Verfasst in Web-Dynpro, BSP + BHTML

Über diesen Beitrag


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

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.