Code: Alles auswählen.
LOOP AT me->t_agreements ASSIGNING FIELD-SYMBOL(<lw_agreements>).
* Neuer Vertrag
AT NEW waers.
me->t_bdc = VALUE #( ( program = 'SAPMM06E' dynpro = '0200' dynbegin = abap_true )
( fnam = 'EKKO-LIFNR' fval = <lw_agreements>-lifnr )
( fnam = 'RM06E-EVART' fval = <lw_agreements>-evart )
( fnam = 'RM06E-VEDAT' fval = sy-datum )
( fnam = 'EKKO-EKORG' fval = <lw_agreements>-ekorg )
( fnam = 'EKKO-EKGRP' fval = <lw_agreements>-ekgrp )
( fnam = 'BDC_OKCODE' fval = '/00' )
( program = 'SAPMM06E' dynpro = '0201' dynbegin = abap_true )
( fnam = 'EKKO-KDATB' fval = sy-datum )
( fnam = 'EKKO-KDATE' fval = <lw_agreements>-kdate )
( fnam = 'EKKO-WAERS' fval = <lw_agreements>-waers )
( fnam = 'EKKO-ZTERM' fval = <lw_agreements>-zterm )
( fnam = 'EKKO-IHREZ' fval = <lw_agreements>-ihrez )
( fnam = 'BDC_OKCODE' fval = '/00' ) ).
ENDAT.
* alle Positionen
ADD 1 TO ln_index.
me->t_bdc = VALUE #( ( program = 'SAPMM06E' dynpro = '0220' dynbegin = abap_true )
( fnam = 'EKPO-EMATN(' && ln_index && ')' fval = <lw_agreements>-ematn )
( fnam = 'EKPO-IDNLF(' && ln_index && ')' fval = <lw_agreements>-idnlf )
( fnam = 'EKPO-KTMNG(' && ln_index && ')' fval = <lw_agreements>-ktmng )
( fnam = 'EKPO-ETFZ1(' && ln_index && ')' fval = <lw_agreements>-etfz1 )
( fnam = 'EKPO-ETFZ2(' && ln_index && ')' fval = <lw_agreements>-etfz2 )
( fnam = 'EKPO-ABUEB(' && ln_index && ')' fval = <lw_agreements>-abueb )
( fnam = 'EKPO-WERKS(' && ln_index && ')' fval = <lw_agreements>-werks )
( fnam = 'EKPO-NETPR(' && ln_index && ')' fval = <lw_agreements>-netpr ) ).
Code: Alles auswählen.
APPEND VALUE #( ( program = 'SAPMM06E' dynpro = '0220' dynbegin = abap_true )
( fnam = 'BDC_OKCODE' fval = '=NP' ) ) to me->t_bdc.
Code: Alles auswählen.
me->t_bdc = VALUE #( BASE me->t_bdc
( program = 'SAPMM06E' dynpro = '0220' dynbegin = abap_true )
( fnam = 'EKPO-EMATN(' && ln_index && ')' fval = <lw_agreements>-ematn )
( fnam = 'EKPO-IDNLF(' && ln_index && ')' fval = <lw_agreements>-idnlf )
( fnam = 'EKPO-KTMNG(' && ln_index && ')' fval = <lw_agreements>-ktmng )
Code: Alles auswählen.
TYPES: BEGIN OF ty_test,
eins TYPE c LENGTH 1,
zwei TYPE c LENGTH 2,
drei TYPE c LENGTH 3,
END OF ty_test,
ty_test_t TYPE STANDARD TABLE OF ty_test WITH DEFAULT KEY.
DATA lt_test TYPE ty_test_t.
APPEND LINES OF VALUE ty_test_t( ( eins = 'A' zwei = 'a' )
( eins = 'a' drei = 'c' ) ) TO lt_test.
Erst ALLES lesen, dann denken, dann schreiben...
Hast Du es noch immer nicht geschnallt? DeathAndPain hat nur auf einen Beitrag geantwortet in dem von einem Batch Input gesprochen wurde, der aber garnicht das Thema war.
Folgende Benutzer bedankten sich beim Autor Romaniac für den Beitrag:
DeathAndPain
Sorry, Du schlägst eine Lösung mit LOOP vor wo es wesentlich eleganter mit VALUE geht und schreibst noch selbst dass es 30% langsamer ist, wirfst dann aber den anderen vor dass sie einen simplen LOOP mit Feldsymbolzuweisung nicht verstehen??? Und im gleichen Atemzug wirfst ihm den Batch Input vor die Füße der gar nicht von ihm stammt?Hakk hat geschrieben: ↑10.09.2020 19:22Also es ist 30 % langsamer als wenn du tab1 = tab2 machst. Und nichts für ungut, wenn du den Lösungsansatz nicht verstehst dann frag doch nicht in die Foren rein. Und sogar wenn es 200 % langsamer wäre, ich denke nicht dass irgend jemanden dich Programme schreiben lässt, bei denen es darauf ankommt ob diese eine Millisekunde langsamer sind...
Folgende Benutzer bedankten sich beim Autor Romaniac für den Beitrag (Insgesamt 2):
Murdock • DeathAndPain