|
|
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) |
| Zeile 1: |
Zeile 1: |
| Eine Formel rechnet Werte automatisch weiter, sobald sich Daten ändern. Sie liest eine Quelltabelle, bei Bedarf ergänzt um weitere Tabellen, und schreibt das Ergebnis in eine Zieltabelle. Ausgelöst wird sie durch das Speichern in einer ihrer Auslösertabellen, zum Beispiel wenn ein Planer in einer Maske einen Wert speichert.
| | ---Artikel ist in Moment noch Gegenstand von Überarbeitungen und Abstimmungen--- |
| | |
| Die Beispiele stammen aus dem Demomodell der Bike GmbH.
| |
| | |
| __TOC__
| |
| | |
| ==Formeltypen==
| |
| Im Formeldesigner wählen Sie zwischen vier Formeltypen.
| |
| | |
| {| class="wikitable"
| |
| ! Formeltyp !! Was die Formel tut !! Beispiel Bike GmbH !! Frühere Bezeichnung
| |
| |-
| |
| | '''Datensatz aktualisieren''' || Ergänzt vorhandene Datensätze um berechnete Werte. Quell- und Zieltabelle sind dieselbe Tabelle. Neue Datensätze entstehen nie. || <code>ENT_UPDATE_UMS_PLAN_CAL</code> ergänzt jede Umsatzzeile um Umsatzsteuer, Wechselkurs und Zahlungsmonat. || Update-Formel
| |
| |-
| |
| | '''Zeilenweises Weiterschreiben''' || Jeder Quelldatensatz erzeugt eigene Datensätze in der Zieltabelle. Wird der Quelldatensatz gelöscht, werden sie mitgelöscht. || <code>ENT_ROW_BestAnlagen_Abschreibung_PLAN_CAL</code> erzeugt aus jeder bestehenden Anlage die monatlichen Abschreibungen. || Zeilenformel
| |
| |-
| |
| | '''Summiertes Weiterschreiben''' || Fasst Quelldatensätze gruppiert zusammen und schreibt die Summen in die Zieltabelle. Zieldatensätze, die die Formel früher geschrieben hat und für die es keine Quelldaten mehr gibt, werden entfernt. || <code>ENT_GROUP_UMS_Ergebnis_PLAN_CAL</code> summiert die Umsätze nach Unternehmen, Monat, Kostenstelle und GuV-Position ins Ergebnis. || Mengenformel
| |
| |-
| |
| | '''Makro ausführen''' || Startet ein Makro, wenn sich Daten einer Auslösertabelle ändern. Das Makro läuft immer im Hintergrund. || Eine Formel mit dem Auslöser <code>Unternehmen</code> startet das Makro <code>MKR_DIMSYNC_Unternehmen_Partner</code>, sobald sich die Dimension Unternehmen ändert. || Makroformel
| |
| |}
| |
| | |
| {{Hinweis|Text=Die Formeltypen Same, Quellsatz und Aggregat gibt es nur im Windows-Client. Solche Formeln bearbeiten Sie weiterhin dort. Öffnen Sie eine im Windows-Client erstellte Formel im Web, zeigt der Designer an, welche Einstellungen beim Speichern umgestellt werden. Im Windows-Client deaktivierte Auslöser zeigt der Web-Designer nicht an. Beim Speichern im Web werden sie entfernt.}}
| |
| | |
| ==Formel öffnen und anlegen==
| |
| Für den Formeldesigner benötigen Sie PowerUser-Rechte.
| |
| | |
| Eine bestehende Formel öffnen Sie über
| |
| | |
| <nowiki>@Session_WebAppUrl@/coplanner/formulaeditor/?formula=<Formelname></nowiki>
| |
| | |
| Eine neue Formel legen Sie über eine Kachel oder einen Link mit <code>formula=[new]</code> an, alternativ in der [[Framework:Objektverwaltung|Objektverwaltung]] des Windows-Clients. Eine neue Formel ist vom Typ „Datensatz aktualisieren“ und hat „Gesamte Tabelle rechnen“ eingeschaltet. Schalten Sie die Option aus, wenn die Formel nur geänderte Datensätze rechnen soll.
| |
| | |
| ==Der Formeldesigner==
| |
| Der Designer führt Sie in fünf Schritten durch die Formel: Allgemein, Zuweisungen, Auslöser & Bedingungen, Durchführungen und Ergebnis. Bei „Makro ausführen“ entfallen die Schritte Auslöser & Bedingungen und Durchführungen.
| |
| | |
| ===Allgemein===
| |
| Hier vergeben Sie eine Beschreibung und wählen den Formeltyp. Der Name der Formel lässt sich nicht ändern. Beim Wechsel des Formeltyps passt der Designer Quelle, Zuweisungen und Joins an. Er warnt vorher.
| |
| | |
| „Gesamte Tabelle rechnen“ gibt es nur bei „Datensatz aktualisieren“. Ist die Option aus, rechnet die Formel bei Änderungen in ihrer eigenen Tabelle nur die geänderten Datensätze. Ist sie an, rechnet sie dabei alle Datensätze des Szenarios neu. Ändert sich eine andere Auslösertabelle, rechnet die Formel immer alle Datensätze.
| |
| | |
| [[Datei:WebApps_Formeln_Allgemein.png|ohne|mini|900px|Allgemein: Beschreibung, Formeltyp und „Gesamte Tabelle rechnen“]]
| |
| | |
| ===Zuweisungen===
| |
| Links steht der Objektkatalog mit Ausdrücken, Tabellen und Dimensionen. Tabellen ziehen Sie per Drag-and-drop in den Arbeitsbereich. Ganz links steht die Quelltabelle, ganz rechts die Zieltabelle, dazwischen weitere Tabellen.
| |
| | |
| * '''Weitere Tabellen''' ziehen Sie in den Bereich zwischen zwei Tabellen. Jede weitere Tabelle braucht einen eindeutigen Alias, über den Sie sie in Ausdrücken ansprechen.
| |
| * '''Joins''' verbinden zwei Tabellen über gleiche Werte, meist über Dimensionen. Ziehen Sie dazu ein Feld auf das passende Feld der anderen Tabelle. Berechnete Join-Werte legen Sie unter „Join-Operanden“ an. Die Join-Art (Inner Join, Left Outer Join, Full Outer Join) wählen Sie über das Symbol zwischen den Tabellen.
| |
| * '''Zuweisungen''' ziehen Sie von einem Feld der Quelle auf ein Feld der Zieltabelle. Einen berechneten Ausdruck hinterlegen Sie über das Kontextmenü des Zielfelds („Zuweisungsausdruck am Feld definieren“).
| |
| * '''Gruppierte Unterabfrage''': Mit dem Schalter „gruppierte Unterabfragen (Subquery)“ an einer weiteren Tabelle fassen Sie deren Zeilen vor dem Verknüpfen zusammen, zum Beispiel zu einem Kurs je Währung und Monat.
| |
| | |
| Im Beispiel <code>ENT_UPDATE_UMS_PLAN_CAL</code> holt die Formel über die Dimension <code>Unternehmen</code> die Währung des Unternehmens und damit aus <code>TBL_WECHSELKURSE_PLAN</code> den Kurs des Monats. Die Wechselkurse sind als gruppierte Unterabfrage nach Währung und Zeit zusammengefasst.
| |
| | |
| [[Datei:WebApps_Formeln_Zuweisungen.png|ohne|mini|1100px|Zuweisungen bei „Datensatz aktualisieren“: Quelltabelle, zwei Tabellen per Join, Unterabfrage und Zieltabelle]]
| |
| | |
| Bei „Summiertes Weiterschreiben“ bestimmen die Zuweisungen an die Dimensionen der Zieltabelle, wonach gruppiert wird. Alle Quelldatensätze mit gleichen Zielwerten werden zu einem Zieldatensatz summiert. Im Beispiel <code>ENT_GROUP_UMS_Ergebnis_PLAN_CAL</code> wird die GuV-Position des Gesamtkostenverfahrens über die Umsatzerlösart ermittelt, die des Umsatzkostenverfahrens über die Kostenstelle, die Herkunft ist fest <code>@HK_Umsatzplanung@</code>.
| |
| | |
| [[Datei:WebApps_Formeln_Zuweisungen_Summiert.png|ohne|mini|800px|Zuweisungen bei „Summiertes Weiterschreiben“]]
| |
| | |
| Bei „Makro ausführen“ wählen Sie auf dieser Seite das Makro und legen die Auslöser fest.
| |
| | |
| [[Datei:WebApps_Formeln_Makro.png|ohne|mini|1100px|„Makro ausführen“: Makro und Auslöser]]
| |
| | |
| ===Auslöser & Bedingungen===
| |
| '''Auslöser''' sind die Tabellen oder Dimensionen, deren Änderung die Formel startet. Wenn Sie eine Quelltabelle hinzufügen, trägt der Designer sie automatisch als Auslöser ein. Entfernen Sie Auslöser, die keine Neuberechnung starten sollen.
| |
| | |
| Die '''Priorität bei Ausführung''' legt die Reihenfolge fest, wenn mehrere Formeln anstehen. Niedrigere Werte laufen vor höheren. Die Priorität gilt je Auslöser. Maßgeblich ist die Priorität der Tabelle, die die Formel gerade ausgelöst hat. Auf Auslöser mit einer Priorität kleiner 0 warten Masken standardmäßig (siehe [[#Warten in Masken|Warten in Masken]]).
| |
| | |
| [[Datei:WebApps_Formeln_Ausloeser.png|ohne|mini|1100px|Fünf Auslöser, die Umsatztabelle selbst mit Priorität −1]]
| |
| | |
| '''Bedingungen''' schränken ein, für welche Datensätze die Formel rechnet. Eine Bedingung besteht aus „Ausdruck 1“, „Operator“, „Ausdruck 2“ und „Datentyp“. Neben den Vergleichsoperatoren gibt es die dimensionalen Operatoren isChildOf, isParentOf, isNotChildOf und isNotParentOf. Für diese wählen Sie in der Spalte „Dimensionsoperator“ die Dimension, in deren Hierarchie verglichen wird.
| |
| | |
| Im Beispiel <code>ENT_GROUP_UMS_Ergebnis_PLAN_CAL</code> rechnet die Formel nur Umsätze ungleich 0 und nur Monate im Rechenzeitraum des Szenarios, also von <code>@Session_JP_DimMon_CalcStart@</code> bis <code>@Session_JP_DimMon_Bis@</code>.
| |
| | |
| [[Datei:WebApps_Formeln_Bedingungen.png|ohne|mini|1100px|Bedingungen: nur Umsätze ungleich 0 im Rechenzeitraum]]
| |
| | |
| ===Durchführungen===
| |
| Durchführungen rechnen eine Formel mehrfach mit verschiedenen Parametern.
| |
| | |
| * '''einmalige Durchführung''': Standard. Die Formel rechnet einmal.
| |
| * '''manuelle Durchführungen''': Sie legen Durchführungen und Parameter selbst fest. In Ausdrücken sprechen Sie die Werte mit <code>[PAR 0]</code>, <code>[PAR 1]</code> usw. an.
| |
| * '''Durchführungen über die Zeit''': Die Formel rechnet jedes Element der „Zeitdimension“ zwischen „Startwert“ und „Endwert“ nacheinander, im gewählten „Zeittyp“ (Jahre, Quartale, Monate, Wochen, Tage oder Alle). Die COPSYS_ID des aktuellen Elements steht als <code>[PAR 0]</code> zur Verfügung. So kann ein Monat auf dem Ergebnis des Vormonats aufbauen.
| |
| | |
| Im Beispiel <code>ENT_ROW_BestAnlagen_Abschreibung_PLAN_CAL</code> laufen manuelle Durchführungen mit <code>[PAR 0]</code> = 0, 1, 2 … Die Zuweisung <code>FKT_TimeDimAdd(M, [PAR 0], …)</code> schreibt damit jede Abschreibung in einen eigenen Monat.
| |
| | |
| [[Datei:WebApps_Formeln_Durchfuehrungen_manuell.png|ohne|mini|1100px|Manuelle Durchführungen mit dem Parameter PAR 0]]
| |
| | |
| Im Beispiel <code>CAL_Gewinnvortrag_GuVGKV_PLAN</code>, einer Formel vom Typ „Summiertes Weiterschreiben“ auf dieselbe Tabelle, laufen die Durchführungen über die Zeit, Monat für Monat im Rechenzeitraum. Die Formel trägt den Gewinn jedes Monats mit <code>FKT_TimeDimAdd(M,1,…)</code> in den Folgemonat vor.
| |
| | |
| [[Datei:WebApps_Formeln_Durchfuehrungen_Zeit.png|ohne|mini|1100px|Durchführungen über die Zeit: Monate im Rechenzeitraum]]
| |
| | |
| ===Ergebnis===
| |
| Die Zusammenfassung beschreibt die Formel in einem Satz und listet Auslöser, Bedingungen, Verhalten, Quell- und Zieltabelle, Durchführungen, Status und Beschreibung. Prüfen Sie hier vor dem Speichern, ob die Formel tut, was Sie erwarten.
| |
| | |
| [[Datei:WebApps_Formeln_Ergebnis.png|ohne|mini|1000px|Zusammenfassung der Formel]]
| |
| | |
| ===Menü, Speichern und Durchrechnen===
| |
| [[Datei:WebApps_Formeln_Menue.png|rechts|mini|260px|Menü des Formeldesigners]]
| |
| * '''Speichern''' und '''Zurücksetzen''': Zurücksetzen verwirft alle ungespeicherten Änderungen.
| |
| * '''Formel aktiv / Formel inaktiv''': Eine inaktive Formel wird nie ausgeführt, auch nicht über „Formel durchrechnen“.
| |
| * '''Inaktive Verbindungen sichtbar / ausgeblendet''': Blendet Verbindungen ein oder aus, die gerade nicht verwendet werden.
| |
| * '''Dimensionen verknüpfen''': Verbindet alle gleichnamigen Dimensionen zwischen den Tabellen der Formel in einem Schritt.
| |
| * '''Gesamte Tabelle rechnen''': Wie im Schritt Allgemein, nur bei „Datensatz aktualisieren“.
| |
| * '''Formel durchrechnen''': Rechnet die gespeicherte Formel für das aktuelle Szenario vollständig neu. Die Berechnung läuft im Hintergrund weiter.
| |
| „Inaktive Verbindungen“, „Dimensionen verknüpfen“ und „Gesamte Tabelle rechnen“ stehen im Menü nur auf der Seite Zuweisungen.
| |
| | |
| | |
| Beim '''Speichern''' prüft der Designer die Formel. Fehler, etwa eine fehlende Quelle oder ein doppelter Alias, müssen Sie beheben. Warnungen, etwa ein Join ohne Bedingung, können Sie bestätigen.
| |
| <div style="clear:both"></div>
| |
| | |
| ==Wann Formeln rechnen==
| |
| * '''Auslösung beim Speichern''': Speichern in einer Auslösertabelle startet die Formel. Ändern sich Daten der Quelltabelle selbst, rechnet die Formel nur die geänderten Datensätze. Ändern sich Daten einer anderen Auslösertabelle, rechnet sie die ganze Quelltabelle des Szenarios neu. „Summiertes Weiterschreiben“ und „Datensatz aktualisieren“ mit „Gesamte Tabelle rechnen“ rechnen immer die ganze Quelltabelle.
| |
| * '''Kette''': Was eine Formel schreibt, kann weitere Formeln auslösen. Die Kette endet, sobald eine Formel keine Werte mehr ändert.
| |
| * '''Reihenfolge''': Anstehende Formeln laufen nach Priorität, niedrigere zuerst. In der Bike GmbH löst eine Umsatzeingabe <code>ENT_UPDATE_UMS_PLAN_CAL</code> (Priorität −1) und <code>ENT_GROUP_UMS_Ergebnis_PLAN_CAL</code> (Priorität 5) aus. Die Aktualisierung läuft zuerst, danach schreibt die Summierung ins Ergebnis.
| |
| * '''Szenario''': Eine Formel rechnet immer im Szenario, in dem die Daten geändert wurden. In schreibgeschützten Szenarien schreibt sie nichts.
| |
| * '''Löschen''': Beim Löschen in der Quelltabelle rechnen summierende Formeln und Makroformeln neu. Beim Löschen in einer anderen Auslösertabelle rechnen alle Formeln neu. Zeilenweise erzeugte Datensätze werden mitgelöscht.
| |
| | |
| ===Warten in Masken===
| |
| Nach dem Speichern kann eine Maske auf Formeln warten, bevor sie die Werte neu anzeigt. Mit den Standardeinstellungen wartet die Maske nur auf Auslöser mit einer Priorität kleiner 0. Priorität 0 und höher rechnet dann im Hintergrund. Nur die Stufen „Warten auf alle Formeln aus der eigenen Session“ und „Alle Berechnungen abschließen“ warten unabhängig von der Priorität.
| |
| | |
| {| class="wikitable"
| |
| ! Maske !! Standard
| |
| |-
| |
| | Matrixmaske || „Kein Warten auf Berechnungen“
| |
| |-
| |
| | Tabellensicht || neue Masken „Kein Warten auf Berechnungen“, ältere Masken erste Ebene
| |
| |-
| |
| | Einzelsatzmaske || „Warten auf Berechnungen der ersten Ebene mit hoher Priorität“
| |
| |}
| |
| | |
| „Erste Ebene“ heißt: Die Maske wartet nur auf Formeln mit negativer Priorität, die Ihre Eingabe direkt auslöst. Formeln, die erst von diesen Formeln ausgelöst werden, laufen im Hintergrund weiter. In der Einzelsatzmaske stellen Sie das Warten in den Einstellungen unter „Auf Berechnungen warten“ ein. Bei Matrixmasken setzen Sie es im Maskendesigner des Windows-Clients.
| |
| | |
| {{Hinweis|Text=Werte, die Formeln im Hintergrund rechnen, sind unmittelbar nach dem Speichern eventuell noch nicht aktuell. Laden Sie die Maske neu, sobald die Berechnung abgeschlossen ist.}}
| |
| | |
| Sollen alle Formeln sicher fertig sein, bevor es weitergeht, führen Sie ein Makro mit dem Serverbefehl „Formeln fertigrechnen“ aus, zum Beispiel im Modus „Alle Berechnungen abschließen“ oder „Warten auf alle Formeln aus der eigenen Session“. In diesen beiden Modi wartet das Makro unabhängig von der Priorität. Die Modi beschreibt [[Objektverwaltung:Makros]].
| |
| | |
| ==Tipps==
| |
| * '''Herkunft eines Datensatzes''': Datensätze, die eine Formel erzeugt hat, erkennen Sie an der Spalte COPSYS_HK_FORMEL. Sie enthält die ID der Formel und den Namen der Durchführung.
| |
| * '''Priorität bewusst setzen''': Der Designer trägt neue Auslöser mit Priorität 0 ein. Nur bei „Datensatz aktualisieren“ erhält die eigene Tabelle −99. Mit Priorität 0 und höher warten Masken in den Standardeinstellungen nicht auf die Formel. Vergeben Sie einen negativen Wert, wenn eine Maske auf das Ergebnis warten soll.
| |
| * '''Formel testen''': Speichern Sie die Formel, prüfen Sie die Zusammenfassung und starten Sie „Formel durchrechnen“. Kontrollieren Sie danach die Zieltabelle.
| |
| | |
| ==Siehe auch==
| |
| * [[WebApps:Formeldesigner]]
| |
| * [[Framework:Formeln|Formeln im Windows-Client]]
| |
| * [[Framework:Formeln:WarumTyped|Warum typed Formeln]]
| |
| * [[:Kategorie:Funktionen - serverseitig|Serverseitige Funktionen (FKT)]]
| |
| * [[Tutorial: Monatsverteilung mit Formeln erstellen]]
| |
| | |
| <!--Formel, Formeln, Formeldesigner, Formeleditor, Webformeleditor, Auslöser, Priorität, Durchführungen-->
| |
|
| |
|
| __NOEDITSECTION__ | | __NOEDITSECTION__ |
|
| |
|
| [[Category:WebApps|Formeln]] | | [[Category:WebApps|Formeln]] |