ich habe die Aufgabe zwei IDocs miteinander zu vergleichen und zwar per Segment, Feld pro Segment und Feldinhalt.
Die DB mit allen IDocs müsste die EDIDC sein. Und die Segmente pro IDoc kann ich in der EDID4 finden, soweit bin ich schon.
Leider kann ich nicht herausfinden in welchen DBs ich die Felder pro Segment und den dazugehörigen Inhalt finden kann.
Meine anschließende Ausgabe soll den techn Feldnamen (EDI_TECH_FIELDNAME), die Beschreibung des Feldes (EDI_DESCRFELD) und den Feldinhalt (EDI_FELDVALUE) haben. Diese Datenelemente kann ich aber nur in einer Struktur, aber in keiner DB finden. Deshalb fällt mir grad keine Möglichkeit mehr ein, wie ich die richtigen Datenbanktabellen finden kann.
die Daten findest du in der EDID4 im Feld SDATA - aufbereiten kannst du dir die Daten indem du den inhalt von SDATA in eine Struktur gleichen Namens wie das Segment (steht im Feld SEGNAME der EDID4 ) schaufelst (schau im DDIC nach - mit dem Segmentnamen findest du dort dann eine entsprechende Struktur
Den Aufbau der Struktur kannst du entweder mit RTTI dir besorgen (wäre der OO Ansatz) oder du benutzt den FUBA - LVC_FIELDCAT_MERGE - da bekommst du dann alle Feldinformationen der Struktur (also letztendlich des Segmentnamens) zurück
Hoffe damit kommst du weiter
Mein Ausgabe soll die Struktur EDI_ALV_DATA sein. Kann ich die Daten, die in SDATA stehen, in die Komponente value vom Typ EDI_FELDVALUE schreiben?
Aber dann fehlen mir ja immernoch technischer Feldname und Feldbeschreibung. Wo krieg ich die Informationen her? In diesen E1* Strukturen kann ich keins meiner benötigten Felder finden.
nun wenn du meinen Beitrag richtig gelesen hast - dann dürfte es klar sein - denn entweder mit den RTTI oder mit dem FUBA bekommst du die Informationen zu den Strukturen der Segmente und somit auch die technischen Eigenschaften.
Ich habe inzwischen eine Lösung gefunden. Der FuBa EDI_DOCUMENT_PRINT macht so in etwa was ich möchte. Wenn ich den kopier und etwas abändere, kann ich über seine Ausgabetabelle meine 2 IDocs miteinander vergleichen.