Forum Discussion
Beschleunigung meines M-Code
...schon klar, aber vergleiche doch bitte mal Deinen Abschnitt in List.Accumulate mit diesem:
List.Accumulate(
{
each
//Mitarbeiter1 zusammenfassen
if _[Mitarbeiter1] = "U" then
if _[Mitarbeiter4] = "Frei" then
Record.TransformFields(_, {{"Mitarbeiter4", each "L"}})
else if List.Contains({"HK","HK + LK"}, _[Mitarbeiter2]) then
Record.TransformFields(_, {{"Mitarbeiter3", each "HL"}})
else if _[Mitarbeiter3] = "HL" then
Record.TransformFields(_, {{"Mitarbeiter2", each "HK"}})
else if _[Mitarbeiter4] = "LK" then
Record.TransformFields(_, {{"Mitarbeiter2", each "HK + LK"}})
else if (try Text.Upper(Text.Trim(r[GV][Wt])) otherwise null) = "DI" then
_ & [Mitarbeiter2 = "HL", Mitarbeiter3 = "HK"]
else if Text.Start(Date.DayOfWeekName(r[Datum], "de-DE"), 2) = "Do" then
Record.TransformFields(_, {{"Mitarbeiter2", each "HL"}, {"Mitarbeiter3", each "HK"}})
else _
//Das gleiche hier mit Mitarbeiter4
else if _[Mitarbeiter4] = "U"
then Record.TransformFields(_, {{"Mitarbeiter2", each "L"}}) else _,
each if _[Mitarbeiter4] = "U" and _[Mitarbeiter3] = "Frei"
then Record.TransformFields(_, {{"Mitarbeiter3", each "HK"}}) else _,
each if _[Mitarbeiter4] = "U" and _[Mitarbeiter1] = "Frei"
then Record.TransformFields(_, {{"Mitarbeiter1", each "HK"}}) else _,
each if _[Mitarbeiter4] = "U" and _[Mitarbeiter3] = "W"
then Record.TransformFields(_, {{"Mitarbeiter4", each "L"}}) else _,
Du prüfst 6 mal auf MA1 (mit jeweils anderen Bedingungen). Wie gesagt, wenn MA nicht MA1 ist, dann muss ich das nicht 6 x prüfen. Und das für jeden dieser tausenden Datensätze. Da reicht 1 x....
MA4 hab ich im Bsp. nicht angepasst... zum besseren Vergleich.
Da gibt es im restlichen Code sicher noch mehr solcher unnötigen Prüfungsschritte., da musst Du schon mal selbst schauen...
Und weshalb machst Du das für 6 Jahre? 2024 und bald auch 2025 sind Geschichte und völlig irrelevant für eine Planung und wer weiß heute schon, wann er in 4 Jahren Urlaub nimmt?
- lud_ex7 months agoFrequent Visitor
Hallo
Vielen dank für deine Hilfe, habe das Ganze nun schafft so um zubauen wie von dir vorgeschlagen, hat es gedauert aber geschafft. Leider hat dies nicht den gewünschten Geschwindigkeit Erfolg gezeigt, habe mal genauer auf meiner Uhr geschaut, die Aktualisierung nach dieser Optimierung immer 35 Minuten. Weis denn jemanden noch einen Vorschlag wie ich das besser machen könnte, auf ein Jahr begrenzen ist keine Option für mich??