Framework:Formeln: Unterschied zwischen den Versionen

Aus CoPlanner 10
Zur Navigation springenZur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 91: Zeile 91:
'''Tabellen welche bei Änderungen diese Formel auslösen'''
'''Tabellen welche bei Änderungen diese Formel auslösen'''


Man kann hier mehrere Tabellen definieren, welche Tabellen bei Änderungen die Formel auslösen. Man kann auch eine Reihenfolge für die Abarbeitung mit dem Feld "Order" definieren.
Bisher konnten Formeln nur per Makrobefehl oder durch Änderungen der Dateninhalte der Quelltabelle der Formel angestoßen werden. Pro Quelltabelle konnte eine Reihenfolge der Formelabarbeitung angegeben werden. Sameformeln werden unabhängig von der Reihenfolge immer zuerst ausgeführt.
 
Zusätzlich ist es nun aber möglich das Auslösen einer Formel durch Änderungen der Quelltabelle abzuschalten. Bisher waren komplexe Modellierungen wie Makromodus, Formeln aktivieren/deaktivieren oder Quelltabelle „keine“ notwendig.  Nun kann die Tabelle einfach abgewählt werden.
 
Zusätzlich ist es möglich eine Formel durch Änderungen in unterschiedlichen Tabellen auszulösen. Es muss kein technischer Bezug zu den Inhalten der Formel bestehen. Z.B.: Umsatzformel wird nicht nur bei Änderungen der tb_Umsatz sondern auch bei Änderungen der tb_Zahlungsschlüssel angestoßen.


==Zuweisungen Bedingungen==
==Zuweisungen Bedingungen==
Zeile 151: Zeile 155:


Ist im Register „Verknüpfung“ eine Iterationstabelle angegeben, kann hiermit zu den Datensätzen der Iterationstabelle gesprungen werden.
Ist im Register „Verknüpfung“ eine Iterationstabelle angegeben, kann hiermit zu den Datensätzen der Iterationstabelle gesprungen werden.
==Tabellen==
Hier kann man weitere Quelltabellen angeben und verknüpfen.
'''Syntax für weitere Quelltabellen:'''<br>
Tabellenname,Alias,Join;<br>
Bsp.: Umsatzerloese_PLAN,Umsatz,HAS;
'''Join hinzufügen'''<br>
Hier können Sie angeben, wie die Tabellen untereinander verknüpft sind.


__NOEDITSECTION__  
__NOEDITSECTION__  

Version vom 18. Februar 2016, 14:25 Uhr

Eine Formel ist ein Objekt, dass zumindest eine Quell- und eine Zieltabelle besitzt. Diese können zwar auch dieselbe Tabelle sein, grundsätzlich unterscheiden sich Formeln von berechneten Feldern (siehe Tabellendesigner) durch einen erweiterten Verwendungsgrad, komplexere Anwendungsmöglichkeiten und einer meist höheren Ausführungszeit.

Formel-Designer

Verknüpfungen

Framework, Formeln

Aktiv

Die Formel wird ausgeführt, wenn ein Datensatz in der Quelltabelle gespeichert wird. Dieses Speichern wird entweder durch eine User-Eingabe und dem Klick auf den Speicher-Button ausgelöst, oder aber durch eine andere Formel, die als Zieltabelle obige Quelltabelle eingestellt hat. Eine weitere Möglichkeit aktive Formeln ausführen zu lassen, ist per Makrobefehl „Tabellensätze dieses Plans neu rechnen“.

Bei Makro rechnen

Die Formel wird ausgeführt, wenn man im MakroMode ist. Man wechselt in diesen MakroMode mit dem Makro-Befehl „Session Parameter ändern“, mit dem Parameter „MakroMode=1. Mit dem Parameter „MakroMode=0“ wechselt man wieder in den User-Modus.

Formelart

Bezieht sich auf die Ausführungslogik der Fromel, wobei folgende Typen unterschieden werden:

  • Row (ehem. Sinlge): Ein Datensatz erzeugt einen anderen Datensatz
  • Same: Ein Datensatz rechnet auf sich selbst, beschreibt also bspw. ein Feld des selben Datensatzes
  • SourceRow (ehem. Quellsatz): Kann nur in Kombination mit einer Formel vom Typ Row verwendet werden. Die Formel erzeugt keine eigenen Datensätze, sondern schreibt ihre Werte immer auf den Quelldatensatz der Row-Formel. Z.B.: Eine Row-Formel auf Tabelle tb_A erzeugt einen neuen Datensatz in Tabelle tb_B. Manuelle Änderungen direkt in Tabelle tb_B können auf die erzeugende Zeile von Tabelle tb_A mittels SourceRow-Formel zurückgeschrieben werden. (Eine Formel vom Typ „Row“ würde immer eine weitere Zeile anlegen)
  • Group: Mehrere Datensätze werden zu Zieldatensätzen gruppiert. Die Berechnung wird auch bei vielen Änderungen in der Quelltabelle nur einmal gestartet.
  • Makro: Lässt es zu, Makros bei Änderungen einer Tabelle anzustarten. Dies ermöglicht die Einbindung von Möglichkeiten der Servermakros in ein durch Datenänderungen getriggertes Rechenmodell.
  • Aggregation (ehem. Aggregat): Mehrere Datensätze werden zu einem Datensatz zusammengefasst. Die Ausführung erfolgt pro geänderter Quellzeile. In den meisten Fällen ist eine Group-Formel effizienter. Aufgrund von logischen, nicht lösbaren Problemen wird dieser Typ in zukünftigen Versionen wahrscheinlich nicht mehr enthalten sein. Alle logischen Anforderungen sollten durch andere Möglichkeiten, insbesondere Group-Formel ersetzt werden.

Typed calculations

Wenn TypedCalculations auf true ist, werden Ausdrücke schon beim Laden des Rechenwerks in echte Codefunktionen kompiliert. Diese sind bei der Ausführung wesentlich schneller, als das bisherige ersetzten von Zeichenketten. Parameter dieser Codefunktionen haben nun eindeutige Datentypen, daher der Name „TypedCalculations“. Die Verwendung dieser Parameter ist nun einheitlicher und eindeutiger (z.B.: Zeichenketten in Hochkommas), allerdings ergeben sich dadurch einige wenige Änderungen in bestehenden Formeln. (Nur bei Verwendung der Option)

Die Option muss bei Mengenformeln verwendet werden und kann bei Aggregatformeln nicht verwendet werden. Es wird empfohlen, alle neu angelegten Formeln mit TypedCalculations auf true anzulegen und bestehende Formeln ebenfalls umzustellen.

Hinweis  Umschreiben von Formeln mit FKT_GetRecord und FKT_Aggregat bei Verwendung von TypedCalcultaions

Alte Schreibweise: FKT_GetRecord(Kurse_TBL_Standard.Kurs, Unternehmen !me [Umsatzerloese_PLAN_REC.Unternehmen_1.COPSYS_ID], Zeit !me [Umsatzerloese_PLAN_REC.Zeit_1.COPSYS_ID])

Neue Schreibweise: FKT_GetRecord(„Kurse_TBL_Standard.Kurs“, "Unternehmen !me " + [Umsatzerloese_PLAN_REC.Unternehmen_1.COPSYS_ID],"Zeit !me " + [Umsatzerloese_PLAN_REC.Zeit_1.COPSYS_ID] )


Hinweis  Wenn Typed calculations aktiviert sind, werden FKT_CIF und FTK_CHOOSE nicht mehr unterstützt.


Hinweis  Wenn Typed calculations aktiviert sind, gibt es die neue Funktion FKT_TimeDimDatePart

FKT_TimeDimDatepart('M',[tbPers.Zeit_1.COPSYS_ID]) Parameter: Y,Q,M & D (als string), Keine Überprüfung ob gültiges Datum, Keine Wirtschaftsjahrfunktionalität (hier eigentlich nie gewünscht)

Quelltabelle

Jene Tabelle oder Dimension, welche als Auslöser für die Formel dienen soll

Zieltabelle

Jene Tabelle oder Dimension, in welcher ein Feld oder Lookup geschrieben werden soll.

Execution Order

Reihenfolge der Abarbeitung. Ist dann zu verwenden, wenn mehrere Formeln dieselbe Quelltabelle verwenden, und die Reihenfolge der Berechnungen wichtig ist. Bspw. soll in der Erfolgsplanung jene Formel die den Ust-Betrag mittels dem UST-Satz errechnet, vor der Formel ausgeführt worden sein, die diesen Ust-Betrag dann weiter in die Zahllast-Ermittlung rechnet.

Löschweitergabe

Vorgänger

Wenn aktiv, dann werden beim Löschen eines Datensatzes der aus einer Formel generiert wurde, auch die dazugehörigen Quelldatensätze gelöscht. Dieses Verhalten ist nur in Ausnahmefällen gewünscht.

Nachfolger

Mit dieser Option werden die aus dem Quellsatz erzeugten Zielsätze automatisch gelöscht, wenn der Quellsatz gelöscht wird. Dieses Verhalten ist in den meisten Fällen gewünscht!

Hinweis  Die Löschweitergabe betrifft nur Formeln des Typs Single. Bei Formeln des Typs Same ist diese Einstellung wirkungslos, da der Satz selbst ja gelöscht wird. Bei Formeln des Typs Aggregation, wird beim Löschen eines Quellsatzes die Formeln ausgeführt, nicht aber der Zielsatz gelöscht, da dieser ja mehrere Quellsätze zu einem Zielsatz zusammenfasst.


Iterationstabelle

Um eine Formel mehrfach mit verschiedenen Parametern aufzurufen, können Iterationen verwendet werden. Sollen die Elemente, über die iteriert werden sollen, aus einer Tabelle kommen, wird diese hier ausgewählt (siehe nachfolgendes Beispiel unter Iterationen).

Tabellen welche bei Änderungen diese Formel auslösen

Bisher konnten Formeln nur per Makrobefehl oder durch Änderungen der Dateninhalte der Quelltabelle der Formel angestoßen werden. Pro Quelltabelle konnte eine Reihenfolge der Formelabarbeitung angegeben werden. Sameformeln werden unabhängig von der Reihenfolge immer zuerst ausgeführt.

Zusätzlich ist es nun aber möglich das Auslösen einer Formel durch Änderungen der Quelltabelle abzuschalten. Bisher waren komplexe Modellierungen wie Makromodus, Formeln aktivieren/deaktivieren oder Quelltabelle „keine“ notwendig. Nun kann die Tabelle einfach abgewählt werden.

Zusätzlich ist es möglich eine Formel durch Änderungen in unterschiedlichen Tabellen auszulösen. Es muss kein technischer Bezug zu den Inhalten der Formel bestehen. Z.B.: Umsatzformel wird nicht nur bei Änderungen der tb_Umsatz sondern auch bei Änderungen der tb_Zahlungsschlüssel angestoßen.

Zuweisungen Bedingungen

Framework, Formeln - Bedingungen & Formeln

Zuweisungen

Im oberen Teil des Registers „Zuweisungen Bedingungen“ werden nun die Inhalte einer Formel definiert. Während in der linken Spalte „Quelle“ (bzw. SUM(Wertzuweisung) bei Group-Formeln) eine Berechnung oder ein Wert aus der Quelltabelle stehen, wird in der rechten Spalte „Ziel“ das zu beschreibende Feld der Zieltabelle ausgewählt. Um meine neue Verbindung anzugeben, klicken Sie auf die obere „Add“-Schaltfläche. Danach springen Sie mit Klick auf das …-Symbol in den Editor des jeweiligen Feldes. Dort stehen Ihnen dann alle Felder der Quell- bzw. Zieltabelle sowie alle Funktionen, Variablen und Anwendungseigenschaften zur Verfügung.

Gemeinsame Lookups synchron halten

Verbindungen zwischen Quelle und Ziel werden für Wertfelder explizit durch eigene Zeilen in den Zuweisungen angegeben. Auch Dimensionen können auf diese Weise verknüpft werden – durch Anklicken des Hakens „Gemeinsame Lookups synchron halten“ werden jedoch alle Dimensionen, deren Alias-Namen zwischen Quelle und Ziel übereinstimmen, automatisch synchronisiert. Felder, die nicht verknüpft sind bzw. durch diese Option verbunden werden können, werden im Ziel bei Neuanlage mit deren Standardwert versorgt.

Funktionen

Funktionen können im Formeldesigner ausgewählt werden und ermöglichen umfangreiche Berechnungen und Datenmanipulationen in Formeln. Eine Übersicht der CoPlanner Funktionen finden Sie hier

Bedingungen

Im unteren Teil des Registers „Zuweisungen Bedingungen“ werden nun allfällige Bedingungen für die Formel definiert, das heißt die Formel wird nur angewandt, wenn bestimmte Bedingungen erfüllt sind. Im Standardmodell des CoPlanner sind zum Beispiel alle Formeln auf den Planzeitraum eingeschränkt. Um eine neue Bedingung einzufügen, klicken Sie auf die untere „Add“-Schaltfläche. Danach springen Sie mit Klick auf das …-Symbol in den Editor des jeweiligen Feldes. Dort stehen Ihnen dann alle Felder der Quell- und Zieltabelle sowie alle Funktionen, Variablen und Anwendungseigenschaften zur Verfügung. Zwischen den beiden zu vergleichenden Werten wählen Sie bitte einen passenden Vergleichsoperator aus und definieren am Ende einen Vergleichstyp (Numerisch, Text oder Datum). Ist die angegebenen Bedingung erfüllt (z. B. [Umsatzerloese_PLAN.Umsatz]>0), wird die Formel für diesen Datensatz ausgeführt.

Iterationen

Framework, Formeln - Iterationen

Iterationen erlauben die mehrfache Abarbeitung einer Formel mit verschiedenen Parametern. Dazu wird das Register Iterationen verwendet. Fügen Sie zunächst mit der Schaltfläche „Parameter hinzufügen“ einen Parameter (eine Spalte) hinzu, danach fügen Sie mittels „Iteration hinzufügen“ beliebig viele Zeilen ein. Dann vergeben Sie Werte für den Parameter.

Benötigen Sie weitere Parameter, fügen Sie diese mit der Schaltfläche „Parameter hinzufügen“ hinzu. Mit „Parameter löschen“ können diese auch wieder gelöscht werden. Um eine einzelne Iteration zu löschen, markieren Sie diese und drücken Entf oder das X-Symbol am rechten Ende des Datensatzes.

In der Formel selbst sprechen Sie die in den Feldern „Parameter“ defnierten Werte mit dem Platzhalter [PAR 0] etc. an.

Haben Sie also eine Formel definiert, die den Wert [PAR 0]*100 in ein Zielfeld schreibt und danach zwei Iterationen definiert, die die Werte 0,8 und 0,2 beinhalten, werden bei der Abarbeitung der Formel zwei Zieldatensätze erzeugt, einer mit dem Wert 80 und einer mit dem Wert 20.

Ist eine Iterationstabelle angegeben, wird das Register „Iterationen“ durch das Register „Spaltenmapping für Iterationstabelle“ ersetzt. Da nun eine Tabelle angegeben ist, über die iteriert wird, werden automatisch alle Datensätze dieser Iterationstabelle nacheinander abgearbeitet. Dabei können alle zur Verfügung stehenden Felder dieser Tabelle als Parameter verwendet werden. Diese werden durch „Mapping hinzufügen“, Klick auf „Neuen Eintrag“ und Auswahl eines Feldes angegeben.

Die Zeit-Dimension wird häufig für solche Iterationen verwendet, wenn etwa für alle Monate in einem bestimmten Zeitraum (zu definieren über die Bedingungen der Formel) ein Datensatz erzeugt werden soll. Bei der Zeitdimension empfiehlt sich darüber hinaus die Einschränkung nur auf Monate, z. B. über die Funktion "fkt_TimeDimTypeFlag".

Framework, Formeln - Spaltenmapping für Iterationstabelle


Groups

Diese werden nur beim Formeltyp Group und Aggregation verwendet. Sie definieren, nach welchen Look-Ups in der Zieltabelle der Zieldatensatz ermittelt werden soll.

Framework, Formeln - Groups

Zielsatzbindung

Die Option „Zielsatzbindung“ gibt an, ob die erzeugten Gruppen von Datensätzen je Tabelle, je Formel oder nur bezogen auf die in der Gruppierung angegebenen Felder aktualisiert werden sollen. Diese Option steht nur beim Formeltyp Aggregation zur Verfügung.


Interationen

Framework, Formeln - Groups

Ist im Register „Verknüpfung“ eine Iterationstabelle angegeben, kann hiermit zu den Datensätzen der Iterationstabelle gesprungen werden.

Tabellen

Hier kann man weitere Quelltabellen angeben und verknüpfen.

Syntax für weitere Quelltabellen:
Tabellenname,Alias,Join;
Bsp.: Umsatzerloese_PLAN,Umsatz,HAS;


Join hinzufügen
Hier können Sie angeben, wie die Tabellen untereinander verknüpft sind.