SAP Jobsuche bei DV-Treff
Radinator
vor 4 Jahre
Guten Morgen!

Für das Einspielen der Daten aus dem Alt-System in ein "neues" SAP werden ja die Migrationsobjekte (Excel Tabellen) verwendet. Nun ist es so, dass bei uns einige Daten über Massenänderung geändert werden sollen. Dafür wurde mir die Aufgabe übertragen Excel Dateien zu exportieren. Diese Export Dateien sollen die Inhalte der Migrationsobjekte Einkaufsinfosatz und Einkaufsinfosatz mit Konditionen enthalten.

Am Ende sollen 2 Excel Dateien rausfallen. Jede der Excel Dateien soll Tabellenblätter mit jeweils den Daten aus den Migrationstabellen enthalten.

Am Beispiel von EKInfosatz mit Konditionen:

MigObjekt hat 5 Tabellenblätter (General Data, Purchasing Organization Data, Conditions, Scales und Purchasing Organization Text).

Export Datei soll ebenfalls 5 Tabellenblätter mit den gleichen Namen und Feldern + Daten haben.

Gibt es eine Möglichkeit herauszufinden aus welchen Tabellen ich die Daten ziehen soll? Gibt es da irgendwo in den Weiten des Internets eine Seite wo aufgelistet ist, welches Migrationsobjekt welchen Tabellen bzw Feldern zugeordnet ist?

Da man ja nur die Vorlagen für das Migrationsobjekt und nicht die Daten selber extrahieren kann, muss das leider auf diese Weise gemacht werden.

Danke schon mal für die Antwort!

wreichelt
vor 4 Jahre
Hallo,

die Tabellennamen bekommst du am schnellsten, wenn du auf ein Feld z.B. Ek_Infosatz klickst mit F1.

jetzt wird auch der Tabellenname angezeigt, die Tabelle mit ihren Feldern kannst du mit der SE11 einsehen.

Gruß Wolfgang

hochlebediesap
vor 4 Jahre
Hi,

so ganz verstehe ich deine Frage nicht. Nutz ihr ihr ein SAP mit Industriesolution z.B. IS-H IS-U ...? Dann gibt es die EMIGALL, da findest du diverse Mig Objekte.

Oder migriert ihr non SAP zu SAP?

Nutzt ihr andere MIG Programme, muss doch der Migrateur sagen was er aus welchen Tabellen benötigt. Nutzt er die LSMW mit Aufzeichnung oder Batch / Bapi oder Idoc, hat er auch die Struktur die er braucht.

Wenn du Abhängigkeiten von Tabellen sehen willst, kannst du z.B. die SE11 nutzen. Tabelle eingeben z.B. EKKO ==> DISPLAY ==> dann gibt es in der Mitte einen Button links drei kleine gelbe Kästchen / Mitte ein grünes Rechteck und rechts zwei grüne kleine Rechtecke (oder Strg+Shift+F11) drücken, dann öffnet sich eine graphische Oberfläche.

Hier kannst du alle abhängigen Tabellen finden.

Hoffe es hilft.

Grüße

Stephan

Radinator
vor 4 Jahre
Hi, ich glaube ich habe mich vlt etwas unglücklich ausgedrückt. Daher eure Antworten mal inline beantwortet:

die Tabellennamen bekommst du am schnellsten, wenn du auf ein Feld z.B. Ek_Infosatz klickst mit F1.

jetzt wird auch der Tabellenname angezeigt, die Tabelle mit ihren Feldern kannst du mit der SE11 einsehen.

> Ne, das meine ich nicht. Die Migrationsobjekte liegen mir als Excel XML Dateien vor. Ich möchte wissen aus welcher Tabelle und welchem Feld ich die Daten beziehen muss, sodass bei einem erneuten Einspielen der Daten der Wert in der Spalte EXPRF_LAND1, Tabellenblatt Purchasing Organization Data wieder an der richtigen Stelle rauskommt.

so ganz verstehe ich deine Frage nicht. Nutz ihr ihr ein SAP mit Industriesolution z.B. IS-H IS-U ...? Dann gibt es die EMIGALL, da findest du diverse Mig Objekte.

> Nein, wir verwenden die von dir genannte Industrielösung nicht.

Nutzt ihr andere MIG Programme, muss doch der Migrateur sagen was er aus welchen Tabellen benötigt. Nutzt er die LSMW mit Aufzeichnung oder Batch / Bapi oder Idoc, hat er auch die Struktur die er braucht.

> Soweit ich das sehen kann, wurde von unseren SAP Beratern mit der Transaktion LTMOM ein Migrationsobjekt angelegt und aufgrund dessen die Excel XML Dateien erzeugt.

hochlebediesap
vor 4 Jahre
Hi,

also wenn ich das richtig verstehe reden wir gerade von einer R/3 zu HANA Migration. Das ist dann natürlich etwas anders gelagert. Die LTMOM ist der Nachfolger der LSMW. Somit wird wahrscheinlich mit der LTMC als Cockpit gearbeitet.

Somit ändern sich die Strukturen und Tabelle R3 zu S4.

Es gibt ein MIG Objekt mit entsprechender maximal Ausprägung und ihr müsst entsprechend schauen, was ihr braucht.

Somit würde ich an eurer Stelle hingehen und ihm sagen, er soll die Strukturen die er benötigt entsprechend liefern.

z.B. EKKO-BSART in "NEUE TABELLE-NEUES FELD" usw. alles andere macht doch keinen Sinn bzw. macht arbeitet die zum Schluss umsonst sein kann.

Vielleicht denke ich auch falsch.

Grüße

Radinator
vor 4 Jahre
Hi hochlebedisap,

also wenn ich das richtig verstehe reden wir gerade von einer R/3 zu HANA Migration.

> Jo, war mein Fehler, dass ich das nicht klar genug gemacht habe. Wusste leider auch nicht welche Begrifflichkeiten hier wichtig sind.

Um hier nochmal Kontext zu schaffen: Wir haben am Anfang 2020 einen Umstieg von einer iSeries auf SAP HANA S/4 gemacht. Jetzt ist es so, dass haufenweise EK-Infosätze nicht ganz richtig sind und wir das gerne per Massenänderung ändern wollen. Dafür soll aus dem aktuellen S/4 ein Datenextrakt in Form des Migrationsobjektes "Einkaufsinfosatz" und "Einkafusinfosatz mit Konditionen" gezogen werden. Dieser wird dann an die Fachabteilung zur Korrektur weiter gegeben. Im Anschluss soll das Migrationsobjekt wieder in das aktuelle S/4 eingespielt werden.

Was ich jetzt brauche ist die Information: In welche Tabellen/Felder werden die Daten aus dem MigObjekt geschrieben?

hochlebediesap
vor 4 Jahre
Ah jetzt schließt sich das Quadrat ;-)

Somit gehe ich davon aus, dass ihr schon auf S/4 seid und die neuen Strukturen nutzt.

Sorry da bin ich dann leider raus. Im R/3 gab es allerdings die MEMASSIN ==> Massenänderung EKI.

Vielleicht gibt es die weiterhin, bzw. unter S/4 eine andere Transaktion.

Grüße

Radinator
vor 4 Jahre
Hi

Ja es gibt anscheinend da eine App, allerdings "kommen da immer Fehler daher" (nicht gepflegte Stammdaten *augenroll*).

Da wir aber "den einfachen" Weg gehen wollen, würde mich wie gesagt interssieren welche Felder aus Tabellen wichtig sind bzw verwendet werden.

Aber nachdem wir noch ein paar weiter Sachen haben wo Massenpflege notwendig ist, denke ich mal dass sich die Aufgabenstellung wiederholen wird ;D

LG Radinator

Radinator
vor 4 Jahre
Hi nochmal

Da in dem Excel XML File eine Spalte die Spaltennamen enthält bin ich dazu über gegangen die Felder in meinem Programm wie das Spaltenfeld zu definieren.


begin of eki_general_data,
 infnr              type eina-infnr,
 matnr              type matnr,
 matkl              type matkl,
 lifnr              type lifnr,
end of eki_general_data,
Und dann einfach per Doppelklick auf das Typen Typenfeld + anschließender Verwendungssuche die Tabelle zu finden wo (vermutlich) die benötigten Daten liegen. Das funktioniert auch überraschenderweise sehr gut, jedoch hat diese Vorgehensweise 2 gravierende Nachteile:

1.) das "(vermutlich)" vorhin. Nur weil das Feld MHDRZ auch in der Tabelle EINE (EK-Infosatz Einkaufsorganisationsdaten) vorkommt, muss das noch lange nicht heißen, dass hier auch der benötigte Wert steht. Die Chance hier ist zwar seeehr hoch, jedoch ned 100%. (War jetzt nur ein Beispiel)

2.) Es gibt immer wieder Felder, für die es im SAP kein standart Feld gibt. Als Beispiel wäre hier in etwa APLFZ (Planned delivery time in days) zu nennen.

Vielleicht habe ich ja nur ein Verständnisproblem, aber wenn ich mit der LTMOM mir ein Migrationsobjekt definiere, dann mach ich mir ja doch nur eine Vorlage, die ein befüllbares Excel erzeugt, und definiere Regeln wie mit Felder umgegangen werden soll. Und das alles zum Zweck, dass beim Import die Excel Datei ausgelesen anhand der Regeln die Daten in das SAP importiert werden. Also muss doch auch irgendwo definiert werden welches Feld der Excel Datei in welches Feld der SAP Tabelle kommt oder?

Da es in der LTMOM zwar den Baumeintrag "Quellstruktur" gibt (definiert die Felder in der Excel Datei), jedoch in "Zielstruktur" bei jedem Eintrag nur ein und der selbe Funktionsbaustein zu finden ist, liegt meine letzte Vermutung darin, dass es nicht fixes gibt wo man nachlesen kann welches Import Feld auf welches Tabellen Feld gemappt wird. Sondern man den Quellcode des FuBas verstehen und nachvollziehen muss um zu wissen welches Feld wohin gehört.

Lg Radinator

ezekiel49
vor 4 Jahre
Hi radinator, wenn es noch aktuell ist. Schau dir am besten mal den opensap Kurs

Migrating Your Business Data to SAP S4HANA von diesem Jahr an.

Migrating Your Business Data to SAP S/4HANA – New Implementation Scenario

https://open.sap.com/courses/s4h16/pinboard 

Da kannst Du viel zum LTMON herausziehen.

Gruss

R.W

Radinator
vor 4 Jahre
Hi,

leider hat mir die LTMOM nichts gebracht :(

Hab dann durch langwiereiges Suchen doch noch was gefunden. Ich hab das MigObjekt für die EkInfosätze mit Konditionen verwendet. Da sind 6 Tabellen drinnen, die es zu befüllen gilt:

General Data

> Tabelle EINA

General Text

> FuBa READ_TEXT mit II 'AT', OBJECTNAME gleich Infosatznummer und OBJECT 'EINA'

Purchasing Organization Data

> Tabelle EINE

Conditions

> Mit Lieferantennummer, Materialnummer, EKOrg, Werk+Infosatztyp aus EINA auf die A017 bzw mit LIFNR, MATNR, EKORG und ESOKZ ohne WERKS auf A018. Aus den zwei bekomm ich die Konditionssatznummer. Damit gehe ich auf die KONH+KONP und hol mir die Konditionen

Scales (Staffeln)

> Selbiges wie bei den Konditionen, nur hier schau ich auf das Feld KZBZG in der KONP ob es 'B' oder 'C' (für Werte oder Mengenstaffel sind) und hol mir die Staffelwerte aus der KONM bzw KONW.

Purchasing Organization Text

> Hier wieder READ_TEXT mit ID 'BT', Infosatznummer und OBJECT 'EINE'

Kleiner Hinweis: In den Tabellen ist (bei uns) die sprachenabhängige Einheit (ST für Stück) gespeichert. Hier einfach ein Lookup auf die T006 machen und im Feld ISOCODE findet sich die ISO Bezeichnung (ST => PCE)

Das ganze wurde dann noch mit cl_ehfnd_xlsx (inspiriert durch diesen Blog )in Excel geschrieben


data: filecontent type xstring.
data(xlsx_handling) = cl_ehfnd_xlsx=>get_instance( ).
data(xlsx_document) = xlsx_handling->create_doc( ).
data(xlsx_sheets) = xlsx_document->get_sheets( ).
data(lv_column) = 1.
data(lv_row) = 1.

data(first_xlsx_sheet) = xlsx_document->get_sheet_by_id( xlsx_sheets[ 1 ]-sheet_id ).
first_xlsx_sheet->change_sheet_name( 'First Sheet' ).

  first_xlsx_sheet->set_cell_content(
      iv_row      = lv_row
      iv_column   = lv_column
      iv_value    = 'Blatt 1'
  ).

  xlsx_sheet = xlsx_document->add_new_sheet( 'Second Sheet' ).
  first_xlsx_sheet->set_cell_content(
      iv_row      = lv_row
      iv_column   = lv_column
      iv_value    = 'Blatt 2'
  ).

filecontent = xlsx_document->save( ).

cl_scp_change_db=>xstr_to_xtab(
    exporting   im_xstring = filecontent
    importing   ex_xtab    = data(filecontentab)
).

filecontent = xlsx_document->save( ).

cl_scp_change_db=>xstr_to_xtab(
    exporting   im_xstring = filecontent
    importing   ex_xtab    = data(filecontentab)
).
cl_gui_frontend_services=>gui_download(...)

Wie immer, ich hoffe jemand kann es gebrauchen ;D

Lg Radinator