Gelöst IDoc Feldinhalt bearbeiten

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

Postby Eliana364 » Wed Sep 16, 2009 7:26 am

Aha danke. Das mit dem Segmentnamen wusste ich scohn, nur das man daraus ne eigenen Struktur bauen kann war mir neu. Ich sehen schon das ich nicht drum herumkommen werde mir erstmal die Grundlagen anzueignen.


Danke dir vielmals
Eliana364
..
..
 
Posts: 63
Joined: Fri Aug 22, 2008 9:11 am

Postby Eliana364 » Wed Sep 16, 2009 10:30 am

So habe das ganze jetzt ein bischen anders gelöst.

Ich habe den Standardfunktionsb. in meinen Z-Namensraum kopiert
In meinem Fall war es der INPUT_IDOC_QPMK (gibt es auch für Kreditoren usw.)

->Über die BD51 habe ich den FB für die Eingangsfunktion angegeben
-> WE42 den FB angeben und den Nachrichtentyp
-> WE20 bei der Zuordnung der Log. systeme in dem Nachrichtentyp den neuen Vorgangscode angeben
-> und beim nächsten IDoc transport wird der Z FB aufgerufen und nun kann das mappen beginnen.
Der Rest mit dem Zuweisen udn den iNfos holen aus den Control und Data Tabellen bleibt gleich.

Danke nochmals für die Hilfe

mfg
Eliana364
..
..
 
Posts: 63
Joined: Fri Aug 22, 2008 9:11 am

Postby Eliana364 » Wed Sep 16, 2009 1:43 pm

Anmerkung:

Nach dem ich nun auch das debuggin herausgefunden habe über WE19 dann die IDoc-Nr angeben, konnte ich sehen das auch der IDOC_DATA_Mapper benutzt wird :)
Eliana364
..
..
 
Posts: 63
Joined: Fri Aug 22, 2008 9:11 am

Postby Mattes1043 » Tue Oct 20, 2009 3:28 pm

Hallo!

Ich verwende den erwähnten BADi IDOC_DATA_MAPPER. Jedoch bekomme ich es nicht zustande, Werte innerhalb des Idocs zu ändern.

Mein Coding sieht bspw. so aus:

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.   LOOP AT DATA INTO WA_IDOC_DATA.
  2.  
  3.     CASE WA_IDOC_DATA-SEGNAM.
  4.       WHEN 'E1KNA1M'.                                       " KNA1
  5.         MOVE WA_IDOC_DATA-SDATA TO LV_CUSTSG.
  6.         MOVE LV_CUSTSG TO WA_IDOC_DATA-SDATA.
  7.         IF CONTROL-RCVPRN EQ 'E07-120'.
  8.           CLEAR WA_MAPPING_TAB.
  9.           WA_MAPPING_TAB-SEGNUM = WA_IDOC_DATA-SEGNUM.
  10.           WA_MAPPING_TAB-FELDNAME = 'KUNNR'.
  11.           WA_MAPPING_TAB-VALUE    = '402'.
  12.           APPEND WA_MAPPING_TAB TO MAPPING_TAB.
  13.         ENDIF.
  14.  
  15.         MOVE 'X'  TO HAVE_TO_CHANGE
GeSHi ©


Läuft prima durch, ändern nur nicht die KUNNR in "402" ab.
Was mache ich falsch?

Danke für Eure Hilfe !
Mattes1043
..
..
 
Posts: 61
Joined: Thu May 08, 2008 2:49 pm

Re: Gelöst IDoc Feldinhalt bearbeiten

Postby Santino1307 » Thu Oct 08, 2015 2:40 pm

Hallo zusammen,

hatte heute ebenfalls dieses Problem, bin aber auf die Lösung gekommen. Anbei das Coding für die Nachwelt :)

METHOD if_ex_idoc_data_mapper~process.

DATA: ls_data TYPE edid4,
ls_maptab TYPE idoc_chang.
IF control-mestyp = 'DEBMAS'.
LOOP AT data INTO ls_data.
CASE ls_data-segnam.
WHEN 'E1KNA1M'.
CLEAR ls_maptab.
ls_maptab-segnum = ls_data-segnum.
ls_maptab-feldname = 'BRSCH'.
ls_maptab-value = '970'.
ls_maptab-save_type = 'X'.
APPEND ls_maptab TO mapping_tab.
MOVE 'X' TO have_to_change.
IF protocol-stamid IS INITIAL. " Ohne diesen Eintrag KEINE Änderung!!!!
protocol-stamid = 'DEBI'.
protocol-stamno = '001'.
ENDIF.
ENDCASE.
ENDLOOP.
ENDIF.
ENDMETHOD.

Grüsse,
Rossi
Santino1307
..
..
 
Posts: 28
Joined: Wed Sep 16, 2009 9:26 am

Previous

Return to ABAP® für Anfänger

Who is online

Users browsing this forum: No registered users and 4 guests