SAP Jobsuche bei DV-Treff
daytona80
vor 5 Jahre
Hallo zusammen,

ich habe in einem Infoset für eine Query 3 Zusatzfelder definiert, welche sich aus einem zuvor gelesenen Funktionsbaustein (Call Function...) befüllen sollen.

Bevor jedoch der FuBa aufgerufen wird, muss ich einige Deklarationen vornehmen, sowohl für den FuBa Import (Table) als dann auch für die Weiterverarbeitung/Ausgabe in die Zusatzfelder.

Nun habe ich zuerst für jedes Zusatzfeld das komplette Coding (Deklaration, Call Function, und Ausgabe in Zusatzfeld) hinterlegt, was dann jedoch zu einen Dump führt, mit "... Variable already declared".

Wenn ich nur ein Zusatzfeld mit dem Coding ausstatte, funktioniert es korrekt und wie erwartet.

Wie kann ich jedoch nun das Coding so "aufteilen" dass es auch bei mehreren Zusatzfeldern funktioniert? Leider habe ich keine Möglichkeit gefunden die Deklaration vom Aufruf FuBa bzw Ausgabe in Z-Feld zu trennen...


Vielen Dank und viele Grüße
wreichelt
vor 5 Jahre
Hallo,

unter Springen -> Zusätze -> kann zu div. Zeitpunkte die Tabelle definiert werden.

Gruß Wolfgang

daytona80
vor 5 Jahre
Hallo Wolfgang,

ja, unter springen habe ich 3 Zusatzfelder mit unterschiedlicher Reihenfolge. Jedes Zusatzfeld hat beginnend mit 1 - 3 seine eigene Nummer.


Vielen Dank und viele Grüße
wreichelt
vor 5 Jahre
Hallo,

das meinte ich nicht

unter Springen -> Codings -> Satzverarbeitung kann die Tabelle einmalig definiert werden und das Coding der

Zusatzfelder hat die Tabelle dann schon definiert.

Und kann bei den Zusatzfeldern heraus genommen werden.

Habe gerade kein system und kann es nicht besser erklären.

Gruß Wolfgang

Nordwolf
vor 5 Jahre
Ein alternativer Weg (aber gleiches Ziel wie bei Wolfgang) ist vom Bild der Definition der Zusatzfelder aus: Hier gibt es den Reiter "Coding" und dort kannst du die einzelnen Stellen auswählen, wo der Code hin soll.
daytona80
vor 5 Jahre
Danke erstmal.

Habe ich gemacht aber offensichtlich scheint das Problem tiefgründiger zu sein, da meine lokale Tabelle keine "echte" Dictionary-Tabelle zu sein scheint:

Hier mal das Coding vielleicht könnt ihr mir auf die Sprünge helfen:-)

Data: lv_szenario type esescen,

lt_return TYPE STANDARD TABLE OF BAPIRET2,

ls_return like line of lt_return,

lt_sub_header TYPE STANDARD TABLE OF BAPI1077RH,

ls_sub_header like line of lt_sub_header,

lt_prop_val TYPE STANDARD TABLE OF BAPI1077VA,

ls_prop_val like line of lt_prop_val,

lt_prop_data TYPE STANDARD TABLE OF BAPI1077PR,

ls_prop_data like LINE OF lt_prop_data.

ls_sub_header-SUBSTANCE = ESTRH-SUBID.

INSERT ls_sub_header INTO TABLE lt_sub_header.

lv_szenario = '01'.

CALL FUNCTION 'BAPI_BUS1077_GETDETAIL'

EXPORTING

SCENARIO = lv_szenario

KEY_DATE = SY-DATUM

* CHANGE_NUMBER =

* VALFR =

* VALTO =

* FLG_KEY_DATE_SWITCH_ONLY =

* FLG_RETURN_WHOLE_INTERVAL =

* MULTLANGU_PARAMS =

* FLG_HEADER =

* FLG_HEADER_USAGE =

* FLG_REFSUBS =

* FLG_IDENT =

* FLG_IDENT_LONGTEXT =

* FLG_IDENT_USAGE =

* FLG_MATJOIN =

* FLG_TPLREL =

* FLG_APPLSCP =

FLG_PROPERTIES = 'X'

FLG_PROP_DATA = 'X'

* FLG_PROP_DETAILS = 'X' NICHT setzen!

* FLG_PROP_FTEXT_LONGTEXT =

* FLG_SORT_PROP_DATA =

* FLG_READ_ALL_CHARACT =

* FLG_READ_WITHOUT_REF =

* FLG_DANG_GOOD_DATA =

* FLG_SHOW_LOCAL_INH_REC =

* FLG_SKIP_PROP_PACK =

* FLG_SKIP_PROP_SPROV =

* FLG_SKIP_PROP_CARR =

* SCENARIO_CALLBACK_FUNC =

* FLG_GET_TMSTMPS =

* FLG_SKIP_AUTH_MESSAGES =

* IMPORTING

* FLG_ABORT_ON_ERROR =

TABLES

RETURN = lt_return

SUB_HEADER = lt_sub_header

* REFSUBS =

* IDENT_HEADER =

* IDENT_LONGTEXT =

* IDENT_SUBLIST =

* MATJOIN =

* TPLREL =

* APPLSCP =

* PROP_HEADER =

PROP_VAL = lt_prop_val

PROP_DATA = lt_prop_data.

* PROP_COMPONENT =

* PROP_USAGE =

* PROP_RELIABILITY =

* PROP_SOURCE =

* PROP_FTEXT =

* PROP_FTEXT_LONGTEXT =

* PROP_TAB07 =

* PROP_TAB0B =

* PROP_TAB0D =

* PROP_TAB0F =

* PROP_PACK =

* PROP_SPROV =

* PROP_CARR =

* SUB_TIMESTAMP =

***dies wäre der individuelle Teil je Zusatzfeld****

Loop at lt_prop_data INTO ls_prop_data

Where name_char = 'SAP_EHS_1022_012_VALUE'.

Z_BEFOERDERTEMP = ls_prop_data-CHAR_VALUE.

ENDLOOP.


Vielen Dank und viele Grüße
wreichelt
vor 5 Jahre
Hallo,

evtl. ist es eine Möglichkeit die Routine unter Abschnitt 11 Freies Coding als Form Routine anzulegen und dann bei

den Zusatzfeldern einen Perform darauf zu machen.

Gruß und viel Erfolg

Wolfgang

daytona80
vor 5 Jahre
Geht, gesamtes Coding unter Satzverarbeitung und gut
Vielen Dank und viele Grüße