Willkommen Gast! Um alle Funktionen zu aktivieren müssen Sie sich Anmelden oder Registrieren.

Mitteilung

Icon
Error

Optionen
Gehe zum aktuellsten Beitrag Gehe zum letzten Ungelesenen
Offline Arnold_BW  
#1 Geschrieben : Mittwoch, 7. November 2018 13:12:40(UTC)
Arnold_BW

Beiträge: 8
Germany
Wohnort: Berlin
Hallo SAP BW Experten,
habe eine Frage zur Stützstellenfortschreibung im Bestandscube 0IC_C03 (habe OSS und Google schon ausgiebig durchforstet):
Bei uns wird in dem besagtem Cube 0IC_C03 zu jeder Materialbewegung scheinbar eine Stützstelle angelegt (0RECORDTP = 1 und CALDAY = 31.13.9999) sowie jede Materialbewegung als „richtiger“ Bewegungssatz (0RECORDTP = 0 und CALDAY = Datum des Materialbelegs).
Ist das so korrekt bzw. das gedachte Konzept der Stützstellenfortschreibung?

Die Initialbeladung indes ist korrekt, die ist je Material und Werk und Lager (aber OHNE Materialbeleg) abgelegt und stimmt von der Menge auch mit dem Bestand aus dem Quellsystem vom Tag der Beladung in die PSA überein.

Frage: Sollte diese Initialbeladung nicht als Stützstelle für die zukünftigen Bewegungen immer wieder aktualisiert werden, so dass man immer den aktuellen Bestand (nach der Komprimierung) hat und davon lediglich die Bewegungen der Vergangenheit abziehen, falls der Bestand der Vergangenheit gewünscht ist?

Aufgefallen ist es uns, da die Performance der Queries recht schlecht ist. Ich vermute, dass beim Query-Aufruf nun alle Stützstellen, die wie gesagt bei jeder Materialbewegung angelegt werden, aufaddiert werden und daher die Performance recht schlecht ist.

Würde es Sinn machen, falls die bei uns vorhandene Logik doch korrekt ist, Aggregate für den Cube zu erstellen um die Zugriffszeiten der Queries zu verbessern?

Vielen Dank vorab für jegliche Hilfe! :)

VG
Arnold

Nehmen Sie an dieser Diskussion teil! SAP FORUM - SAP Community LoginHier registrieren.

Offline Denis Reis  
#2 Geschrieben : Dienstag, 13. November 2018 21:38:32(UTC)
Denis Reis

Beiträge: 60
Germany
Hallo Arnold,
die Initialbeladung wird ja durch das Delta automatisch aktualisiert oder nicht?
Aggregate können bei der Performance helfen. Schau mal hier vorbei: http://www.denisreis.com/how-to-sap-bi-aggregate/

Es ist auch sinnvoll, sich nicht auf die ausgelieferte Modellierung zu verlassen, wenn es um Performance geht. Alternativ kannst du darüber nachdenken, einen eigenen Cube nach den Performance Richtlinien zu erstellen - http://www.denisreis.com...i-infocube-modellierung/

Viele Grüße
Denis
SAP Business Intelligence Tipps & Tricks -> www.denisreis.com
Offline Arnold_BW  
#3 Geschrieben : Mittwoch, 14. November 2018 08:47:34(UTC)
Arnold_BW

Beiträge: 8
Germany
Wohnort: Berlin
Hallo Denis,

vielen Dank für Deine Unterstützung!

Die Initialbeladung wurde und wird eben leider nicht aktualisiert nach Delta bzw. Komprimierung (das hatte ich im ersten Beitrag nicht ganz eindeutig formuliert, sorry).
Das scheint der springende Punkt zu sein, oder? Aber wie kann das passieren? Die Stützstellenfortschreibung bei der Komprimierung ist aktiviert (kein Haken gesetzt) und in der Prozesskette ist diese Einstellung auch richtig gesetzt.

Statt die Initialbeladung (bzw. also die Stützstelle) zu aktualisieren, wird für jede Materialbewegung eine separate Stützstelle angelegt (0RECORDTP = 1 und CALDAY = 31.13.9999), wo dann auch die Nummer des Materialbelegs hinterlegt ist (zusätzlich wird jede Materialbewegung mit Datum der Bewegung abgelegt, was m.E. das korrekte Vorgehen ist).

Hast das jemand schon mal gehabt? Oder eine Idee, woran das liegen könnte?

Bin dankbar für jeden Tipp :)

Viele Grüße
Arnold
Offline Denis Reis  
#4 Geschrieben : Mittwoch, 14. November 2018 20:48:58(UTC)
Denis Reis

Beiträge: 60
Germany
Hallo Arnold,
fällt mir leider spontan nichts ein.
Wie schaut es denn im Quellsystem aus? Wäre vllt einen Versuch Wert sich das Delta im Quellsystem anzuschauen.
Viele Grüße
Denis
SAP Business Intelligence Tipps & Tricks -> www.denisreis.com
Offline Denis Reis  
#5 Geschrieben : Donnerstag, 15. November 2018 21:16:21(UTC)
Denis Reis

Beiträge: 60
Germany
Es kann ja richtig sein, weil es als Bestandskennzahl modelliert ist. Wenn du es als Flusskennzahl abbilden möchtest, musst du die Modellierung entsprechend anpassen.
Viele Grüße
Denis
SAP Business Intelligence Tipps & Tricks -> www.denisreis.com
Offline Arnold_BW  
#6 Geschrieben : Dienstag, 20. November 2018 12:39:24(UTC)
Arnold_BW

Beiträge: 8
Germany
Wohnort: Berlin
Zitat von: Denis Reis Gehe zum zitierten Beitrag
Es kann ja richtig sein, weil es als Bestandskennzahl modelliert ist.


Was meinst Du damit, es kann richtig sein? In welchen Fällen denn?
Für Bestandskennzahlen habe ich das so verstanden, dass die Stützstelle nach dem Komprimieren den aktuellen Bestand darstellt und die Bewegungen dann zur Berechnung vergangener Bestände genutzt wird. Wann kann es richtig sein, dass jede Bewegung als Stützstelle abgelegt wird? Oder habe ich Dich da missverstanden? ;)

Bei uns sind die Bestandskennzahlen als "Bestandsgröße mit Zugang/Abgang" definiert.
Offline Denis Reis  
#7 Geschrieben : Mittwoch, 21. November 2018 21:37:48(UTC)
Denis Reis

Beiträge: 60
Germany
Ne, vielleicht habe ich es nicht richtig verstanden.
Aber entspricht es nicht dem hier beschriebenen Verhalten?

https://help.sap.com/sap...0000a42189b/frameset.htm
SAP Business Intelligence Tipps & Tricks -> www.denisreis.com
Offline Arnold_BW  
#8 Geschrieben : Donnerstag, 22. November 2018 08:29:07(UTC)
Arnold_BW

Beiträge: 8
Germany
Wohnort: Berlin
Doch, das Verhalten wie im Link beschrieben liegt bei uns quasi schon vor. Die Werte stimmen ja auch (Sorry, falls ich das noch nicht geschrieben hatte).

Aber die Performance ist sehr schlecht, auch (oder besonders) wenn man auf den Bestand des aktuellen Tages auswertet. Das liegt daran, dass die Initialbeladung (also die Stützstellen) nie aktualisiert wurden. Um dann den aktuellen Bestand zu berechnen, nimmt das System eben diese Initialbeladung und addiert alle Bewegungen (die ja auch ALLE als Stützstellen abgelegt wurden, also mit 31.12.9999 und 0RECORDTP = 1) dazu. Richtig aber wäre, dass die Stützstellen der Initialbeladung nach dem Komprimieren immer den aktuellen Bestand abbilden, richtig?

Ich hoffe, ich habe es jetzt etwas verständlicher erklärt? :)
Offline Denis Reis  
#9 Geschrieben : Montag, 26. November 2018 21:51:05(UTC)
Denis Reis

Beiträge: 60
Germany
Hi Arnold,
sorry, dachte es liegen noch Zweifel an der Logik vor.
Um die Performance zu verbessern kannst du es mit Aggregaten probieren. http://www.denisreis.com/how-to-sap-bi-aggregate/

Brauchst du denn die Stützstellen im irgendeinen anderen Bericht?

Viele Grüße
Denis
SAP Business Intelligence Tipps & Tricks -> www.denisreis.com
Offline Arnold_BW  
#10 Geschrieben : Dienstag, 27. November 2018 09:05:09(UTC)
Arnold_BW

Beiträge: 8
Germany
Wohnort: Berlin
Nein, die Stützstellen an sich werden (aktuell) nicht benötigt.

Und Zweifel an der Logik sind leider doch noch ein wenig vorhanden, denn das System verhält sich einfach nicht so, wie ich es erwarten würde gemäß unserer Einstellungen. Denn: so wie unser System eingestellt ist ("Bestandsgröße mit Zugang/Abgang"), ist das Ablegen jeder Materialbewegung als Stützstelle falsch, oder?

Dass die Werte am Ende stimmen ist zwar positiv, aber wir wundern uns natürlich schon, wieso das so bei uns abläuft und nicht nach dem "regulärem" Weg.

Ich hoffe, ich vergrößere nicht die Verwirrung mit jedem Beitrag ;-)

VG
Arnold
Offline Arnold_BW  
#11 Geschrieben : Mittwoch, 28. November 2018 12:22:39(UTC)
Arnold_BW

Beiträge: 8
Germany
Wohnort: Berlin
Um das Problem zu verdeutlichen, hier ein Beispiel, wie es bei uns im System abläuft (meiner Meinung nach eben falsch):
(Hinweis vorab: bei den Stützstellen (Sätze mit Datum 31.12.9999) wird die Menge immer unter "Zugang" mit dem entsprechendem Vorzeichen abgelegt)

Initialbeladung Material 4711 mit 500 ST Bestand zum 01.01.18.
Komprimierung der Initialbeladung, Datensatz in 0IC_C03:

MATNR----Materialbeleg----Kalendertag----Abgangsmenge----Zugangsmenge
4711-------- - --------------------31.12.9999-----0----------------------500

Bewegungen von Material 4711:
200 ST Abgang am 02.01.18
100 ST Zugang am 03.01.18
Datenbeladung in den Cube. Datensätze vor dem Komprimieren:

MATNR----Materialbeleg----Kalendertag----Abgangsmenge.----Zugangsmenge.
4711-------- - ---------------------31.12.9999------0----------------------500
4711--------123------------------02.01.2018-----200-------------------0
4711--------456------------------03.01.2018-----0----------------------100

Komprimierung der Bewegungen. Datensätze nach dem Komprimieren im Cube:

MATNR----Materialbeleg----Kalendertag----Abgangsmenge----Zugangsmenge
4711-------- - -------------------31.12.9999------0---------------------500
4711--------123------------------02.01.2018-----200------------------0
4711--------456------------------03.01.2018-----0---------------------100
4711--------123------------------31.12.9999-----0-------------------- -200
4711--------456------------------31.12.9999-----0---------------------100

Um jetzt z.B. den Bestand vom 04.01.18 zu berechnen, werden anscheinend alle Stützstellen addiert und es kommt der richtige Wert raus:
500 + (-200) + 100 = 400

Um den Bestand vom 02.01.18 zu berechnen werden vermutlich auch erst die Stützstellen aufaddiert (siehe oben), und dann noch der Zugang vom 03.01.18 (100 ST) abgezogen. Und man hat auch den richtigen Wert von 300 ST für den 02.01. So ist das ja auch von SAP beschrieben.

Aber bei sehr vielen Material-Bewegungen führt das einfach zu langen Query-Laufzeiten, da alle Materialbewegungen (da sie ja als Stützstellen abgelegt wurden) aufaddiert werden müssen. Das sollte ja eigentlich während der Komprimierung passieren, oder? Nach Komprimierung der der Material-Bewegungen sollte der Cube eigentlich so aussehen:

MATNR----Materialbeleg----Kalendertag----Abgangsmenge----Zugangsmenge
4711-------- - -------------------31.12.9999------0----------------------400
4711--------123------------------02.01.2018-----200-------------------0
4711--------456------------------03.01.2018-----0-----------------------100

Der aktuelle Bestand ist als Stützstelle abgelegt und errechnet sich aus dem Initialbestand (500) und den Bewegungen (-200 +100), zusammen also 400. Die Bewegungen mit Belegdatum sind zur Berechnung vergangener Bestände vorhanden.

Oder habe ich das Konzept doch falsch verstanden?
Ich hoffe, das Beispiel hilft etwas :)
Offline Arnold_BW  
#12 Geschrieben : Mittwoch, 28. November 2018 15:30:15(UTC)
Arnold_BW

Beiträge: 8
Germany
Wohnort: Berlin
Also langsam dämmert es mir, dass doch das Datenmodell die Ursache ist (erkennt man vlt am Beispiel im Eintrag vorher).

Beim Komprimieren wird ja auf jede Merkmalskombination verdichtet, oder?

Und da wir den Materialbeleg im Cube mitaufgenommen haben, wird also auch für jeden Materialbeleg eine "verdichtete" Stützstelle angelegt...
Offline Denis Reis  
#13 Geschrieben : Freitag, 30. November 2018 21:00:10(UTC)
Denis Reis

Beiträge: 60
Germany
Hört sich ganz danach an. Manchmal findet man selbst die Lösung, wenn man das Problem jemanden erzählt. :)
SAP Business Intelligence Tipps & Tricks -> www.denisreis.com
Offline Arnold_BW  
#14 Geschrieben : Donnerstag, 13. Dezember 2018 10:03:57(UTC)
Arnold_BW

Beiträge: 8
Germany
Wohnort: Berlin
Ja, scheint wirklich so zu sein. Vielen Dank für die Unterstützung! :)

Mit Aggregaten haben wir jetzt eine gute Lösung gefunden, so haben wir die Materialbelege einfach verdichtet.
Benutzer, die gerade dieses Thema lesen
Das Forum wechseln  
Du kannst keine neue Themen in diesem Forum eröffnen.
Du kannst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge nicht löschen.
Du darfst deine Beiträge nicht editieren.
Du kannst keine Umfragen in diesem Forum erstellen.
Du kannst nicht an Umfragen teilnehmen.

- Impressum / Datenschutz -