Gelöst IDoc Feldinhalt bearbeiten

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

Gelöst IDoc Feldinhalt bearbeiten

Postby Eliana364 » Mon Sep 14, 2009 1:48 pm

Hi,

folgendes Problem.

Es wird per ALE ein IDoc von System A -> B geschickt. I System A gibt es nur Werke mit der Bezeichnung XYZ und im B System heißen diese nun DE10, DE20 usw. Ich müsste irgendwie vor der Verarbeitung des IDoc eingreifen und den Feldinhalt ändern, nur wie.
Habe schon rausgefunden das man irgendwie einen Funktionsbaustein davor setzen muss, nur wie?
PS: ist mein zweiter Tag im Bereich ALE,IDoc

Ich danke schon mal für eure Hilfe.

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

Postby Constantin3326 » Mon Sep 14, 2009 3:32 pm

Um welchen IDoc-Typ bzw. Nachrichtenart geht's denn? Möglicherweise gibt es auch einen Userexit, den man hier bemühen könnte...
Constantin3326
....
....
 
Posts: 840
Joined: Tue Dec 20, 2005 11:47 am

Postby Ines3642 » Mon Sep 14, 2009 4:57 pm

Hallo Assassin,

mit dem BAdI "IDOC_DATA_MAPPER" (SE18) solltest Du Dein Vorhaben realisieren können. Anfangs ist die Nutzung ein wenig gewöhnungsbedürftig, aber man kann damit wirklich sehr viel anstellen.

Wichtig ist nur: Du kannst nur bestehende Segmente verändern und keine neuen hinzufügen, oder alte Löschen.

Aber wenn ich Dein Problem verstanden habe, müsstest Du lediglich ein Mapping entweder für Deine ausgehenden IDOCs oder, vielleicht besser, für die eingehenden IDOCs (dann in dem Zielsystem) auf Deine Werke angepasst, schreiben.

Gruß
Ines3642
...
...
 
Posts: 268
Joined: Tue Jan 27, 2009 5:49 pm

Postby Eliana364 » Tue Sep 15, 2009 6:30 am

Hi, es gut um den Nachrichtentyp QPMK (Prüfmerkmale).
Werde mal die SE 18 auspropieren, danke schon mal für die Hilfe.
Und ja es solle eigentlich nur ein Mapping werdem, altes Werk gegen neues Austauschen.

Du erwähntest ja noch das ich nur ein Mapping schreiben soll, die Frage ist nur wo bzw. wie füge ich das ganze ein?

Und noch eine Frage, wo gebe ich denn mein Coding an, oder meinstest du ich sollte mir den Badi in ein ZBAdi kopieren und dann damit weiterarbeiten?


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

Postby Ines3642 » Tue Sep 15, 2009 7:26 am

Guten Morgen,

hast Du schonmal ein BAdI implementiert? In der SE18 kannst Du Dir die Definition ansehen. Die Implementierung "startest" Du anschließend in der SE19.

Mit "eine" Implementierung meinte ich eine Unterscheidung der Richtung. Du hast im Mapper alle Infos über das aktuelle IDOC. Dazu gehört auch die Kennzeichnung, ob es ein eingehendes oder ausgehendes IDOC ist. Je nachdem, auf welchem System das Mapping durchgeführt werden soll (also abhängig von den eingetragenen Partnern), musst Du Dein Mapping ausprägen.

Z.B.: [ eingehendes IDOC + PartnerQ = Quell-System ] oder eben [ausgehendes IDOC + PartnerQ = Quell-System ]
Ines3642
...
...
 
Posts: 268
Joined: Tue Jan 27, 2009 5:49 pm

Postby Eliana364 » Tue Sep 15, 2009 7:44 am

Moin,

einen BADi habe ich schon implementiert, sollte ich trotzdem nicht weiterkommen, kann ich ja noch einen Kollegen fragen. Wenn ich dich richtig verstanden habe, soll ich den Badi in den FB einbauen, der das IDoc verarbeitet?

Grüße
Eliana364
..
..
 
Posts: 63
Joined: Fri Aug 22, 2008 9:11 am

Postby Ines3642 » Tue Sep 15, 2009 8:14 am

BAdIs werden an bestimmten Stellen im Standard-Coding automatisch gerufen, wenn sie implementiert und aktiviert sind.

Du legst Dir also mit der SE19 eine Implementierung an und aktivierst sie, fertig.

Der IDOC-Mapper wird immer vor der Verarbeitung eines (aller!) IDOCs gerufen. Daher ist es umso wichtiger, dass Du Dein Mapping gezielt für Deine Zwecke ausprägst, sonst verarbeitet der Mapper auch IDOCs, mit denen er eigentlich nichts anfangen kann, was stark auf die Performance drücken kann.

edit, nochmal explizit: Du musst hier nichts in einen FB hängen, modifizieren oder sonstwas ändern - nur das BAdI implementieren und aktivieren. Lies Dir mal die Infos durch, die Du so zu BAdIs im Netz findest, um ein besseres Verständnis für die Verwendung und den Nutzen von BAdIs zu bekommen.
Ines3642
...
...
 
Posts: 268
Joined: Tue Jan 27, 2009 5:49 pm

Postby Eliana364 » Tue Sep 15, 2009 8:18 am

Ok danke,
die Implementierung habe ich schon angelegt, müsste also nur sicherstellen, dass das Coding nur dann aufgerufen wird wenn ich die Werke umsetzen möchte?

Danke dir für deine Hilfe.

Grüße
Eliana364
..
..
 
Posts: 63
Joined: Fri Aug 22, 2008 9:11 am

Postby Ines3642 » Tue Sep 15, 2009 8:21 am

Du kannst Dir ja den Kopf und die Segmente alle einlesen. Dadurch kannst Du dann auch gezielt den Sender, den Empfänger, die Richtung, den Nachrichtentyp, den IDOC-Typ und auch die entsprechenden Segmente auf der richtigen Ebene raussuchen.

Hier sind mehr IF und/oder CASE auch wirklich ein Gewinn. ;)
Ines3642
...
...
 
Posts: 268
Joined: Tue Jan 27, 2009 5:49 pm

Postby Eliana364 » Tue Sep 15, 2009 10:23 am

hi,

habe soweit alles hinbekommen.
Könntest du mir noch sagen warum bei einem Export von System A nach B, wo die IDoc's auch ankommen, nicht die Methode aufgerufen wird?

Ich hatte über die SE19 eine Implementierung angelegt "ZIDOC_DATA_MAPPER". Das ganz in mein ZPaket gepackt.
Inteface => IF_EX_IDOC_DATA_MAPPER stimmt auch soweit überein
Liegt es eventuell an dem Klassennamem ZCL_IM_IDOC_DATA_MAPPER?

Die erweiterung IDOC_DATA_MAPPER ist in dem Paket SED nur definiert und nicht implementiert, woher weiß dann also das Paket wann oder wo es mein Coding aufrufen soll?

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. method IF_EX_IDOC_DATA_MAPPER~PROCESS.
  2.  
  3. data: wa_edid4 type edid4,
  4.       it_edid4 type STANDARD TABLE OF edid4,
  5.       wa_data type edidd.
  6.  
  7.  
  8. MOVE-CORRESPONDING wa_data to wa_data.
  9.  
  10. IF CONTROL-MESTYP EQ 'QPMK'    and
  11.    control-Status eq '51'      and
  12.    control-RCVPRN eq 'Q11010' and
  13.    control-IDOCTP eq 'QPMK01'.
  14.  
  15.   from edid4
  16.   into CORRESPONDING FIELDS OF TABLE it_edid4
  17.   where docnum = control-docnum.
  18.  
  19.  
  20.   loop at it_edid4 INTO wa_edid4.
  21.  
  22.  
  23.  
  24.  
GeSHi ©



Grüße
Eliana364
..
..
 
Posts: 63
Joined: Fri Aug 22, 2008 9:11 am

Next

Return to ABAP® für Anfänger

Who is online

Users browsing this forum: No registered users and 6 guests

cron