Aufbau des OneOrder Models im S4CRM und Fazit
Im ersten Teil der Artikel-Serie gaben wir Ihnen einen Überblick über das bisherige OneOrder Model als Ausgangspunkt der Entwicklung. Im S4CRM sind die Tabellen CRMD_ORDERADM_H, CRMD_ORDERADM_I, CRMD_LINK und CRMD_ORDER_INDEX noch vorhanden, werden aber nicht mehr genutzt.
Als Einstiegspunkt in das neue OneOrder Modell kann man die Schattentabelle CRMS4D_BTX_H bezeichnen. Sie enthält lediglich den Mandaten, die Header GUID, sowie den Objekttyp, die Header ID und die Vorgangsart eines Beleges. Über sie findet man den entsprechenden Belegkopf z.B. durch Eingabe der Vorgangsart und der ID:
Anhand des OBJTYPE_H kann man nun über die Acronymtabelle CRMS4C_ACRONYM herausfinden, in welchen Tabellen die eigentlichen Daten für den Belegkopf und die Positionen abgelegt sind.
Für alle in der Tabelle gelisteten Acronyme gibt es ggf. ein Tabellenpaar für die Belegköpfe (CRMS4D__H) und die -positionen (CRMS4D__I). Aktivitäten z.B. haben allerdings keine Positionen, weshalb die Tabelle CRMS4D_ACTV_I nicht existiert.
Die einzelnen Tabellen wiederum haben nun Include-Strukturen, in denen die Extension- und Setdaten enthalten sind, die im CRM noch in einzelnen Tabellen abgebildet werden:
Anstatt wie CRM eine Kardinalität vom Kopf zu den zugehörigen Partner-Set-Datensätzen von 1..n, hat nun die Includestruktur (hier z.B. bei den Aktivitäten) pro Partnerfunktion ein eigenes Feld, so dass die 1..n Kardinalität in eine 1..0/1 Kardinalität pro Partnerfunktion aufgelöst wird.
Je nach Belegtyp, unterscheiden sich auch die Include-Strukturen für die einzelnen Segmente. Hier im Vergleich das Partner-Include der Opportunity Header Tabelle CRMS4D_OPPT_H:
Nach dem gleichen Schema sind die Tabellen für die Positionen aufgebaut:
Fazit
Wer aus er CRM Welt kommt, muss im S/4 zunächst umdenken und das neue Datenmodell verstehen.
Die gute Nachricht ist allerdings: bei der Implementierung spürt man keinen Unterschied zum CRM, da die APIs dieselben sind und diese sich um den Zugriff auf die neuen Tabellen kümmern. Ebenso verhält es sich übrigens auch mit dem CRM_ORDER_READ Report.