Struktur als Using-Parameter aus Fuba an Unterprogramm


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

Struktur als Using-Parameter aus Fuba an Unterprogramm

Beitragvon kbit100 » 12.02.2016, 14:32

Hallo,

ich einem Fuba rufe ich mit perform <UProg> using ... ein Unterprogramm auf und übergebe u.a. eine Struktur. Wenn ich im Unterprogramm einzelne Felder dieser Struktur anspreche, erhalte ich die Fehlermeldung "Das Datenobjekt "IS_CHECK_ADR" besitzt keine Struktur und daher auch keine Komponente mit Namen "N_HNRVON"."

Im Fuba wurde die Struktur so deiniert:
Code: Alles auswählen
  TYPES:
    BEGIN OF ts_check_adr,
      datum_von  TYPE sy-datum,
      datum_bis  TYPE sy-datum,
      country    TYPE land1,
      langu      TYPE langu,
      city_name  TYPE ad_city1,
      city_part  TYPE ad_city2,
      city_code  TYPE ad_citynum,
      cityp_code TYPE ad_citypnm,
      post_code  TYPE post_code,
      street     TYPE ad_street,
      strt_code  TYPE strt_code,
      housenum_h TYPE housenum_h,
      hsn_supp_h TYPE hsn_supp_h,
      housenum_l TYPE housenum_l,
      hsn_supp_l TYPE hsn_supp_l,
      hsn_ind      TYPE hsn_ind,
      n_hnrvon   TYPE ad_hsnm1,
      n_hnrbis   TYPE ad_hsnm2,
      a_hnrvon   TYPE ad_hsnm1,
      a_hnrbis   TYPE ad_hsnm2,
    END OF ts_check_adr.
 


Der Arbeitsbereich wurde so definiert:
Code: Alles auswählen
    ls_check_adr     TYPE ts_check_adr,
 


Das Unterprogramm wird so aufgerufen:
Code: Alles auswählen
              perform get_netz using '01'
                                     lv_s_netz
                                     ''
                                     ''
                                     ''
                                     ls_check_adr
                            changing ct_net_xxx.
 


Im Unterprogramm werden die Daten so empfangen:
Code: Alles auswählen
FORM get_netz USING iv_sparte
                    iv_s_netz
                    iv_g_netz
                    iv_g_teilnetz
                    iv_g_netzbereich
                    is_check_adr
           CHANGING ct_net_xxx TYPE table.
 


IS_CHECK_ADR entspricht dem übergebenen LS_CHECK_ADR. Im Unterprogramm kommen auch Daten in der Struktur an.

Im Unterprogramm gibt's Probleme mit dieser Anweisung:
Code: Alles auswählen
        ls_net_xxx-housenum_l = is_check_adr-n_hnrvon.
        ls_net_xxx-hsn_supp_l = is_check_adr-a_hnrvon.
        ls_net_xxx-housenum_h = is_check_adr-n_hnrbis.
        ls_net_xxx-hsn_supp_h = is_check_adr-a_hnrbis.
 


während ein
Code: Alles auswählen
MOVE-CORRESPONDING is_check_adr TO ls_net_xxx.
 

keine Probleme macht.
Leider kann ich bei den vier Feldern keinen MOVE-CORRESPONDING machen, da die festgeschriebene Struktur ls_net_xxx das nicht hergibt.

Für einen Tipp wäre ich sehr dankbar.

Gruß

K.
kbit100
Specialist
 
Beiträge: 128
Registriert: 11.12.2006, 14:55
Dank erhalten: 0 mal

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Struktur als Using-Parameter aus Fuba an Unterprogramm

Beitragvon JHM » 12.02.2016, 15:00

kbit100 hat geschrieben:Für einen Tipp wäre ich sehr dankbar.


Wieso typisierst du in der FORM die Übergabeparameter nicht sauber?

Code: Alles auswählen
*Tabellentyp für die Übergabe definieren
TYPES: tt_check_adr TYPE TABLE OF ts_check_adr.

*FORM mit typisierten Übergabeparametern:
FORM get_netz USING iv_sparte
                    iv_s_netz TYPE ?
                    iv_g_netz TYPE ?
                    iv_g_teilnetz TYPE ?
                    iv_g_netzbereich TYPE ?
                    is_check_adr TYPE ?
           CHANGING ct_net_xxx TYPE tT_check_adr.
 


Wenn es wegen den Programmstrukturen nicht geht, dann muss man die TYPES-Definition eben im DDIC machen.

Oder man ist ganz der Faule, lässt es wie es ist und arbeitet mit ASSING COMPONENT OF STRUCTURE. Aber das wäre an dieser Stelle echt nicht sinnvoll, da man damit nur Fehler im Desing ausbügeln würde.
Gruß Hendrik
JHM
Top Expert
 
Beiträge: 1132
Registriert: 15.02.2006, 12:39
Wohnort: Aachen
Dank erhalten: 178 mal

Re: Struktur als Using-Parameter aus Fuba an Unterprogramm

Beitragvon kbit100 » 16.02.2016, 08:24

Vielen Dank.

Müsste dann nicht auch iv_sparte typisiert werden?

Gruß

K.
kbit100
Specialist
 
Beiträge: 128
Registriert: 11.12.2006, 14:55
Dank erhalten: 0 mal


Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
(LKW)Bedarfsvorschau je Debitor
vor 55 Minuten von owny 0 Antw.
(LKW)Bedarfsvorschau je Debitor
vor 55 Minuten von owny 0 Antw.
Lieferplan, Einteilungen, Feinabrufe
vor 15 Stunden von bapimueller 0 Antw.
gelöst Smartforms Struktur rechtsbündig
vor 19 Stunden von qyurryus 3 Antw.
CALL_FUNCTION_SYSCALL_ONLY in RFC-Aufruf
vor 20 Stunden von lausek 0 Antw.

  Ähnliche Beiträge beta
Berechtigung f. bestimmtes Unterprogramm o. Fuba?
16.09.2016, 12:00 von ralf.wenzel 2 Antw.
gelöst Changing interne Tabelle Unterprogramm in einem Fuba
12.02.2016, 10:46 von kbit100 1 Antw.
Unterprogramm
20.09.2005, 09:09 von ereglam 3 Antw.
Funktionsbaustein, Unterprogramm
28.12.2007, 13:33 von ralf.wenzel 1 Antw.
peinlich ... Parameterübergabe/Unterprogramm
19.04.2007, 11:57 von MarkusW 4 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: Google Adsense [Bot]