Objektverwaltung:Makros: Unterschied zwischen den Versionen

Aus CoPlanner 11
Zur Navigation springenZur Suche springen
Keine Bearbeitungszusammenfassung
I.krupinski (Diskussion | Beiträge)
K Ich habe nur als Hinweis den Kontext zu den stored procedures zugefügt....lieber Gruß Ivonne
 
(88 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
__TOC__
__TOC__
Um eine neue AggMaske zu erstellen, wechseln Sie zunächst in den Entwicklermodus und wählen den Menüpunkt [[Framework:Objektverwaltung|Objektverwaltung]].
Ein Makro ist eine Gruppe von Aktionen, die jeweils eine bestimmte Operation ausführen, wie z.B. das Öffnen eines Formulars oder das Ausführen eines Serverbefehles. Mit Hilfe von Makros können Sie häufig vorkommende Aufgaben automatisieren. Sie können z.B. ein Makro ausführen, das einen Bericht öffnet, wenn ein Benutzer diesen über einen Menüpunkt aufruft.
Um das Makro mit Eigenschaften zu versehen, öffnet man mit Klick auf den Button „Entwurf“ [[image:EE_Icon_Berichtseditior.jpg‎]] oder per Klick mit der rechten Maustaste das Kontext-Menü den so genannten Batchdesigner. Über den Menüpunkt „Neu“ kann hier auch ein neues Makro angelegt werden.


[[image:Fw_Makros.jpg|thumb|center|Framework, Makros]]
Um ein neues Makro zu erstellen, wechseln Sie zunächst in den Entwicklermodus und wählen den Menüpunkt [[Framework:Objektverwaltung|Objektverwaltung]].  
 
Ein Makro ist eine Gruppe von Aktionen, die jeweils eine bestimmte Operation ausführen, wie z.B. das Öffnen eines Formulars oder das Ausführen eines Serverbefehles. Mit Hilfe von Makros können Sie häufig vorkommende Aufgaben automatisieren. Sie können z.B. ein Makro erstellen, das einen [[Objektverwaltung:Importe|Import]] ausführt, d. h. Daten löscht, diese neu importiert und z. B. im Anschluss einen Erfolgsbericht öffnet, wenn ein Benutzer dieses über einen Menüpunkt aufruft.
 
Um das Makro mit Eigenschaften zu versehen, öffnet man mit Klick auf die Schaltfläche „Entwurf“, per Klick mit der rechten Maustaste das Kontext-Menü oder per Doppelklick den Batchdesigner. Über den Menüpunkt „Neu“ kann hier auch ein neues Makro angelegt werden.


Im Batchdesigner können diverse Aktionen definiert werden. Diese Aktionen können zusätzlich mit einem Kommentar versehen werden.
Zur Verfügung stehende Aktionen:
Zur Verfügung stehende Aktionen:
:*NavAktion
:*NavAktion
:*ServerBefehl
:*ServerBefehl
:*Meldung
:*Meldung
:*Url


Die erstellten Aktionen werden im Batchdesigner dann nach einander abgearbeitet. Um die Reihenfolge der Abarbeitung zu ändern stehen der Button [[image:Icon Pfeil Up.jpg]] als auch [[image:Icon Pfeil Down.jpg]] zur Verfügung.
Die erstellten Aktionen werden im Batchdesigner dann nach einander abgearbeitet. Um die Reihenfolge der Abarbeitung zu ändern stehen der Button [[image:Icon Pfeil Up.jpg]] als auch [[image:Icon Pfeil Down.jpg]] zur Verfügung.


[[image:Fw_Makrodesigner.jpg|thumb|center|Framework, Batchdesigner]]
[[image:Fw_Makrodesigner.jpg|thumb|center|Framework, Batchdesigner]]
:*Abarbeitungsreihenfolge Verändern (Rot)
:*Aktionen Übersicht (Grün)
:*Parameter der gerade selektierten Aktion (Violett)


Je nach ausgewählter Aktion stehen dem Anwender verschiedene Konfigurationsmöglichkeiten zur Verfügung.
Je nach ausgewählter Aktion stehen dem Anwender verschiedene Konfigurationsmöglichkeiten zur Verfügung.
Zeile 24: Zeile 21:
==NavAktion==
==NavAktion==


NavAktionen ermöglichen es bspw. Masken, Dimensionen etc. zu öffnen. Zusätzlich können NavAktionen auch bspw. Formeln, Importe etc. ausführen
NavAktionen ermöglichen es zum Beispiel, Masken, Dimensionen etc. zu öffnen. Zusätzlich können NavAktionen auch zum Beispiel [[Framework:Formeln|Formeln]], [[Objektverwaltung:Importe|Importe]] etc. ausführen. Eine Beschreibung aller [[Framework:Navigationsaktionen|NavAktionen]] finden Sie [[Framework:Navigationsaktionen|hier]].
Grundsätzlich wird bei einer NavAktion immer ein Programm ausgewählt. Dazu stehen dem Anwender folgende Auswahlmöglichkeiten zur Verfügung: Bericht, Dimension, Formel, Import, Makro, Maske, Sonstige, Subset, Tabelle, AggMaske.


[[image:Fw_Makrodesigner_Navaktion.jpg|thumb|center|Framework, NavAktion]]
[[image:Fw_Makrodesigner_Navaktion.jpg|thumb|center|Framework, NavAktion]]


Nach der Auswahl des Programms muss nur noch das zu startende Objekt und der Fenster-Startbereich ausgewählt werden. Bei der Auswahl des Fenster-Startbereiches stehen vier Auswahlmöglichkeiten zur Verfügung:
==ServerBefehl==


Hier stehen verschiedenste Serverbefehle zur Auswahl.


{| cellspacing="1" cellpadding="3" width={{{breite|80%}}}  border="1"
{| class="wikitable" }
|-
! Befehl
! Beschreibung
|-
|Alle Tabellen komprimieren
|Komprimiert alle Tabellen, bei denen eine Partitionierung aktiv ist.
|-
|-
| style=background-color:#f6f6f6 |'''Auswahl'''  
|Azure Data Factory Pipeline ausführen (''<small>Ab CoPlanner 11 Release 1 2026)</small>''
| style=background-color:#f6f6f6 |'''Beschreibung
|Läuft der CoPlanner über die CoPlanner SaaS Umgebung, kann man hier Pipelines ansteuern.
|-
|-
|Standard
|[[WebApps:Anwendungseigenschaften#Benutzerparameter|Benutzerparameter]] setzen
|Das Fenster wird im Standard Anzeigebereich geöffnet
''<small>(Ab CoPlanner 11 Release 1 2025)</small>''
|Mit diesem Befehl kann man den Wert für einen Benutzerparameter für den Benutzer, der das Makro ausführt, setzen. Ab CoPlanner 11 Release 2 2025 kann man aus einer Liste der Benutzerparameter auswählen, im Release 1 muss man noch den Namen des Parameters (mit @ davor und danach) reinschreiben.
Um Funktionen für die Vergabe des Wertes verwenden zu können, muss man ein Transform= vorne anfügen. z.B. Transform=FKT_TABLE_MAX('TBL_GuV_Gesamtkostenverfahren_IST.Zeit', <nowiki>''</nowiki>) holt aus der Tabelle TBL_GuV_Gesamtkostenverfahren_IST die höchste COPSYS_ID, die bei einem Datensatz bei der Zeit vergeben ist.
|-
|-
|Struktur
| Datenbank synchronisieren
|Das Fenster wird im Strukturenbereich geöffnet (Dimensions – Navigationsstruktur)
| Erzwingt die Synchronisation des CoPlanner Servers und des SQL Servers bevor weitere CoPlanner - Serverbefehle abgearbeitet werden.
|-
|-
|Work
| Datenobjekt synchronisieren
|Das Fenster wird im Arbeitsbereich angezeigt
| Erzwingt die Synchronisation der angegebenen Tabelle/Dimension und des SQL Servers bevor weitere CoPlanner - Serverbefehle abgearbeitet werden.
|-
|-
|Info
| DBC Execute Procedure
|Das Fenster wird im Informationsbereich geöffnet
| Es können Stored Procedures ausgeführt werden. Der Name der Stored Procedure muss dabei genau dem Namen der Stored Procedure des SQL Server entsprechen (bspw. sp_calc_table). Zusätzlich können hier auch noch Parameter der Stored Procedure übergeben werden. Die einzelnem Parameter werden dabei durch „;“ getrennt, und beginnen jeweils mit einem „@“ (bspw: @param1=ErsterParameter;@param2=ZweiterParameter). Als Parameter können auch Session Variablen (bspw.: @Session_PLAN_ID@) oder Kontext (bspw. @Context.PcKst@) übergeben werden. Der Datenbank Connection String sieht wie folgt aus: Server=ServerName;Initial Catalog=DatabaseName;user id=MyUserId; password=MyPassword
|}
{{Hinweis|Text=Keine Hochkommas verwenden bei der Übergabe von Strings.}}
|-
|Ende des IST-Zeitraums in FC setzen
|Setzt das Ende des Istzeitraums auf den angegebenen Benutzerparameter
|-
| [[Framework:Formeln|Formel]] ausführen
| Führt die ausgewählte [[Framework:Formeln|Formel]] aus.
|-
|Formeln auf erster Ebene fertigrechnen
|''Hinweis:''
''Diese Funktion kann ab CoPlanner 11 Release 3 2025 über den Makroserverbefehl "Formel fertigrechnen" im Modus "Warten auf Berechnungen der ersten Ebene mit hoher Priorität" abgebildet werden.''


Einige Programme ermöglichen die Einstellung von zusätzlichen Parametern:
Für inhaltliche Funktionsweise: siehe Beschreibung Serverbefehel "Formel fertigrechnen" in der nächsten Zeile:  


 
* Formel fertigrechnen -> Modus: Warten auf Berechnungen der ersten Ebene mit hoher Priorität.
'''Bericht'''
|-
 
|Formeln fertigrechnen
Bei Berichten kann der Berichtsmodus noch zusätzlich definiert werden:
''<small>(Ab CoPlanner 11 Release 3 2025)</small>''
 
|Hiermit kann die Funktion "Waitforcalc/Warten auf Berechnungen" eingestellt werden.
{| cellspacing="1" cellpadding="3" width={{{breite|80%}}}  border="1"
Es gibt verschiedene Modi die ausgewählt werden können. Die Funktionsweise kann der folgenden Tabelle entnommen werden.
{| class="wikitable"
!Modus
!Programmverhalten
|-
|-
| style=background-color:#f6f6f6 |'''Auswahl'''
|Alle Berechnungen abschließen
| style=background-color:#f6f6f6 |'''Beschreibung
|Wartet, bis alle Formeln fertig gerechnet sind
|-
|-
|RunMode
|Warten auf alle Formeln aus der eigenen Session
|Der Bericht wird vorgerendert angezeigt.
|Ähnliche Funktionsweise wie "Alle Berechnungen abschließen". Allerdings werden nur Formelausführungen '''der "eigenen" Session''' unabhängig von der Priorität berücksichtigt.
{{Achtung|Text= Dadurch kann sich die Reihenfolge der Berechnungen ändern!}}
|-
|-
|DesignMode
|Warten auf Berechnungen der ersten Ebene mit hoher Priorität
|Der Bericht wird im Layout bzw. Datenmodus angezeigt.
|Nach dem Schreiben wird '''einmal''' geprüft, welche Formeln zu berechnen sind, auf alle Formeln mit Priorität < 0 (hohe Priorität) & direkt getriggert wird gewartet.
|}
''Hinweis:''
 


'''Tabelle'''
* Für Zeilensichten, ist dies die Standardeinstellung.
 
* Für Matrixmasken, kann dies optional eingestellt werden.
Bei Tabellen können zusätzlich die Optionen für diese Tabelle defniert werden:
 
{|  cellspacing="1" cellpadding="3" width={{{breite|80%}}}  border="1"
|-
|-
| style=background-color:#f6f6f6 |'''Auswahl'''
|Warten auf Berechnungen mit hoher Priorität
| style=background-color:#f6f6f6 |'''Beschreibung
|Nach dem Schreiben werden alle Formeln mit einer Priorität < 0 (hohe Priorität) ausgeführt. Es wird dabei so lange in die Formelqueue geschaut, solange Formeln mit Priorität < 0 vorhanden sind.
|-
|-
|mit Definition starten
|Warten auf Formeln aus der eigenen Session mit hoher Priorität
|Es kann eine Tabellendefinition ausgewählt werden mit der die Tabelle geöffnet wird (Eingabemaske)
|Ähnliche Funktionsweise wie "Warten auf Berechnungen mit hoher Priorität", allerdings werden nur Formelausführungen '''der "eigenen" Session''' mit einer Priorität < 0 (hohe Priorität) berücksichtigt.
{{Achtung|Text= Dadurch kann sich die Reihenfolge der Berechnungen ändern!}}
|}
|-
|-
|mit Default-Definition starten
| Formelwerk aktivieren
|Die Tabelle wird mit der Eingabemaske gestartet die der Tabelle als „Default“ zugeordnet ist.
| Aktiviert das CoPlanner Formelwerk.
|-
|-
|ohne Definition starten
| Formelwerk deaktivieren
|Die Tabelle geht im Tabellarischen Modus auf.
| Deaktiviert das CoPlanner Formelwerk.
|}
 
 
'''Sonstige'''
 
Hier können verschiedenste NavAktionen gestartet wreden:
 
{|  cellspacing="1" cellpadding="3" width={{{breite|100%}}}  border="1"
|-
|-
| style=background-color:#f6f6f6 |'''Auswahl'''
| Formula activate
| style=background-color:#f6f6f6 |'''Beschreibung
| Dieser Serverbefehl kann [[Framework:Formeln|Formeln]] aktivieren bzw. deaktivieren. Zusätzlich kann die [[Framework:Formeln|Formel]] „Makroaktiv“ gesetzt werden.
|-
|-
|Alle Fenster schließen
| [[Objektverwaltung:Importe|Import]] am Server starten
|Alle geöffneten Fenster im Workbereich werden geschlossen
| Startet ein [[Objektverwaltung:Importe|Importobjekt]] am Server. Da jedes [[Objektverwaltung:Importe|Importobjekt]] eine Erfolgsmeldung zurückgibt, kann diese Erfolgsmeldung über den Parameter „Rückmeldung aktivieren“ unterdrückt werden.
|-
|-
|Benutzerverwaltung
|Log Level setzen
|Öffnet die Benutzerverwaltung
|Zu Entwicklungszwecken kann man sich sämtliche Meldungen die im Log generiert werden in der Console/Telnet ausgeben lassen. Im Echtbetrieb wird das nicht empfohlen da es zu Performanceverschlechterungen kommen kann.
Konfiguration:
[[image:Fw_Makrodesigner_Loglevel_setzen.jpg|thumb|center|Framework, Makro - Loglevel konfigurieren]]
|-
|-
|BrowserWindow
| OffeneBerechnungen abschliessen
|Öffnet das Client Verzeichnis im CoPlanner (mittels Windows Explorer). Falls hier zusätzlich ein Parameter angegeben wird können ausgehend vom Client Ordner auch files (bspw. html\start.html) oder auch CopNav Aktionen (bspw.: cop://name=Umsatzerl-oe-se&amp;aktion=AggMaske&amp;p1=Umsatzerloese_AggMaske_PLAN&amp;p2=&amp;p3=&amp;p4=&amp;bild=3_planung.ico&amp;frmlocation=Work) geöffnet werden.
| Erzwingt die Abarbeitung aller offenen Berechnungen ([[Framework:Formeln|Formeln]]). Anschließend wird einen Datenbanksynchronisation erzwungen, bevor weitere Serverbefehle abgearbeitet werden.
''Hinweis:''
 
''Diese Funktion kann ab CoPlanner 11 Release 3 2025 über den Makroserverbefehl "Formel fertigrechnen" abgebildet werden.''
Dazu bitte ein Makro erstellen mit den folgenden 2 Schritten
 
# Serverbefehl: Formel fertigrechnen -> Modus: "Alle Berechnungen abschließen"
# Serverbefehl: Datenbank synchronisieren
|-
|-
|ClientCache löschen
|OLAP refresh
|Löscht den Client Cache
|Makrobefehl zur Aktualisierung von OLAP-Verbindungen (Verbindungen vom CoPlanner-Server zu SSAS werden geschlossen und bei Bedarf neu aufgebaut). Neben dem Aktualisieren der Dimensionen zielt dieser Befehl auch darauf ab eventuelle AdoMD-Caches (Security) zuverlässig löschen zu können. Nach einem Neustart des Clients sollten geänderte Dimensionselemente im CoPlanner ersichtlich sein.
|-
|-
|CloseProgram
|Partitionen aller Tabellen aktualisieren
|Beendet den CoPlanner Client
|Alle Tabellen wird neu partitioniert und die Daten den entsprechenden Partitionen zugewiesen.
|-
|-
|ExecuteServerCommand
|Partitionen einer Tabelle aktualisieren
|Es können verschiedene Serverbefehle ausgeführt werden.
|Die gewählte Tabelle wird neu partitioniert und die Daten den entsprechenden Partitionen zugewiesen.
:*OBJ_DBDOKU_CREATEVIEWS<br>Erstellt zu den CoPlanner Tabellen die dazugehörenden Sichten
:*OBJ_BACKUP_DATABASE<br>Erstellt ein Datenbank Backupauf dem SQL Server
:*OBJ_OLAP_PROCESS_ALL<br>Bereitet alle Cubes der Olap datenbank auf
:*OBJ_SCRIPT_EXEC<br>GenerateDefaultTimeDimension: Öffnet das Zeitdimensions – Erstellungsformular
|-
|-
|Link
| Plan kopieren
|Der angegebenene Link wird im Fenster – Startbereich geöffnet (bspw. http://www.coplanner.com/) es können jedoch auch CopNav Links (bspw.: copNav.aspx?name=Umsatzerl-oe-se&amp;aktion=AggMaske&amp;p1=Umsatzerloese_AggMaske_PLAN&amp;bild=3_planung.ico&amp) angegeben werden.
| Kopiert alle Datensätze von einem Plan in einen anderen Plan.
|-
|-
|NavDesign
| Plansätze löschen
|Öffnet den Navigations-Designer
| Der ServerBefehl Plansätze löschen, löscht alle Datensätze des ausgewählten Plans aller planabhängigen Tabellen. Wird der Plan auf „Aktueller Plan“ gestellt werden nur Datensätze des Planes gelöscht an den der Benutzer angemeldet ist.
|-
|-
|NavStruktur
| PlanSecurity neu laden
|Öffnet die Navigations-Struktur
| Lädt die Security für den aktuellen Plan neu.
|-
|-
|ObVerwaltung
| Session Parameter ändern
|Öffnet die Objektverwaltung
| Ändert Sessioneigenschaften. Hier kann bspw. angegeben werden, dass der Sessionkontext im Makromode ausgeführt wird, damit in weiterer Folge [[Framework:Formeln|Formeln]] ausgeführt werden deren Eigenschaft ‚Ausführen im Makromode’ gesetzt ist. Dazu geben Sie bitte folgende Parameter an:
Um in den Makromodus zu wechseln: MakroMode=1
 
Um den Makromodus zu verlassen: MakroMode=0
|-
|-
|OlapBrowser
| Tabelle dieses Plans neu rechnen
|Öffnet den Olap – Browser
| Es werden alle Datensätze innerhalb des ausgewählten Planes einer Tabelle neu berechnet. Zusätzlich können hier XML Filter für die Datensätze angegeben werden.
''<small>(Ab CoPlanner 11 Release 4 2023)</small>''
 
Es kann nun ausgewählt werden ob nur der aktuelle Plan durchgerechnet werden soll oder alle aktiven, nicht gesperrten Pläne berücksichtigt werden sollen.
|-
|-
|OlapSelection
|Tabelle komprimieren
|Öffnet das Fenster Olap erstellen
|Gewählte Tabelle wird komprimiert.
|-
|-
|OpenOlapReport
| Tabellensätze kopieren
|Öffnet den als Parameter eingetragenen Olap Report im Olap Browser
| Es werden alle Datensätze innerhalb des ausgewählten Planes einer Tabelle in eine andere Tabelle kopiert. Zusätzlich können hier XML Filter für die Datensätze angegeben werden.
|-
|-
|Planungsdimensionen
| Tabellensätze löschen
|Öffnet den Dimensionsstrukturbaum
| Es werden alle Datensätze innerhalb des ausgewählten Planes einer Tabelle gelöscht. Zusätzlich können hier XML Filter für die Datensätze angegeben werden.
Neben der Auswahl der Tabelle muss auch ein zu löschender Plan gewählt werden. Dies kann durch explizite Auswahl eines bestimmten Plans oder mit der Funktion „Aktueller Plan“ automatisch bezogen auf den Plan der Anmeldung erfolgen. Bei Wahl der Option „planunabhängig“ werden die Daten der gewählten Tabelle aus allen Plänen gelöscht!
Siehe nachfolgendes Beispiel.
|-
|-
|Planverwaltung
|[[WebApps:Webimport|Webimport]] am Server starten
|Öffnet die Planverwaltung
|Startet einen [[WebApps:Webimport|Webimport]] am Server. Da jeder Import eine Erfolgsmeldung zurückgibt, kann diese Erfolgsmeldung über den Parameter „Rückmeldung aktivieren“ unterdrückt werden. Zur Auswahl stehen nur Webimporte mit der Quelle Stage, da bei den anderen eine Benutzerinteraktion benötigt werden würde.
Achtung: der Webimport verfügt über keine Filter und wertet daher keinen Kontext aus.
|-
|-
|ShowFormulaRelations
|Skript am Server ausführen
|Öffnet die Formelübersicht
|Wenn die Option AllowBatchProcessingViaMacro in der svrconifg.xml auf true gesetzt ist, dann kann man diesen Befehl auswählen. Am Server muss dafür ein Ordner "Scripts" vorhanden sein, welcher die Skriptdateien enthält, die ausgeführt werden können. Zusätzlich kann man Session-Variablen als Parameter übergeben. Die Scripts müssen auf .bat enden. Dann werden Sie im Makroexecutor automatisch angezeigt.
|-
|-
|SpaltenMapping Editor
|Trigger a link
|Öffnet den Filter – Editor
''<small>(Ab CoPlanner 11 Release 4 2023, experimentelles Feature)</small>''
|}
|Mit diesem Befehl kann ein Link getriggert werden. Dieses Feature ist experimentell und wurde zur Kommunikation mit dem Microsoft Planner eingeführt. Aufgrund des experimentellen Characters der Änderung, wird es im Windows Client noch nicht in der Auswahlliste angeboten sondern muss manuell eingetragen/eingetippt werden werden. Das bedeutet:
Serverbefehl: Trigger a link


Parameter 1: Die URL angeben, die gepostet werden soll. (Bzw: das ist eigentlich/im Normalfall die Server/Internetadresse an die der Inhalt der Payload verschickt wird. Diese muss natürlich empfangsbereit sein und die Daten verarbeiten können).


==ServerBefehl==
Parameter 2: Den Namen einer CoPlanner Tabelle angeben.


Hier stehen verschiedenste Serverbefehle zur Auswahl.
Das Makro erstellt eine "Payload" aus allen Textspalten der angegeben Tabelle die nicht mit "COPSYS_" beginnen.
|}


===DBC Execute Procedure===
===Beispiel Tabellensätze löschen===


Es können Stored Procedures ausgeführt werden. Der Name der Stored Procedure muss dabei genau dem Namen der Stored Procedure des SQL Server entsprechen (bspw. sp_calc_table). Zusätzlich können hier auch noch Parameter der Stored Procedure übergeben werden. Die einzelnem Parameter werden dabei durch „;“ getrennt, und beginnen jeweils mit einem „@“ (bspw: @param1=ErsterParameter;@param2=ZweiterParameter). Der Datenbank Conneciton String sieht wie folgt aus: Server=ServerName;Initial Catalog=DatabaseName;user id=MyUserId; password=MyPassword
Es sollen mit einem Makro alle Datensätze aus einer Tabelle gelöscht werden die zum angemeldeten Plan gehören.
Legen Sie dazu ein neues Makro an und wählen Sie als Aktion „Serverbefehl“ und treffen Sie die Einstellungen wie in folgender Abbildung dargestellt.  


===Plansätze löschen===
[[image:Fw_Makrodesigner_Makro Tabellensaetze loeschen.jpg|thumb|center|Framework, Makro – Tabellensätze löschen]]


Der ServerBefehl Plansätze löschen, löscht alle Datensätze des ausgewählten Plans aller planabhängigen Tqabellen. Wird der Plan auf „Aktueller Plan“ gestellt werden nur Datensätze des Planes gelöscht an den der Benutzer angemeldet ist.  
Rufen Sie den Filter – Editor auf mit einem Klick auf die Schaltfläche [[image:Icon_Dateiauswahl.jpg‎]].


===Formula activate===
[[image:Fw_Makrodesigner_Makro Filter Editor.jpg|thumb|center|Framework, Makro – Filter - Editor]]


Dieser Serverbefehl kann Formeln aktivieren bzw. deaktivieren. Zusätzlich kann die Formel „Makroaktiv“ gesetzt werden.  
Wählen Sie aus dem Kombinationslistenfeld den Eintrag „BAB_Plan“ und im Filter „Unternehmen“ die „Bike GmbH“ aus. Mit einem Klick auf die Schaltfläche „Hinzufügen“ wird diese Einstellung übernommen. Durch das Ersetzen des Kriteriums mit der [[Framework:Session-Variablen|Sessionvariable]] @Session_Unternehmen_ID@ bezieht sich dieser Filter immer auf das angemeldete Unternehmen.  


===Formelwerk aktivieren===
Sollten Sie diese Filter mehrmals benötigen, können Sie diesen mit dem Befehl „Filter speichern“ sichern und mit „Filter laden“ wieder einfügen.


Aktiviert das CoPlanner Formelwerk.
===Beispiel Tabellensätze in Abhängigkeit eines Dimensionsattributes löschen===


===Formelwerk deaktivieren===
Es sollen mit einem Makro alle Datensätze aus einer Tabelle gelöscht werden, die einer Attributausprägung in einer Dimension entsprechen. In diesem Beispiel werden aus der Tabelle "Tab1" alle Datensätze gelöscht, die in der Dimension im Attribut "AttribFeld" den Wert "True" enthalten.


Deaktiviert das CoPlanner Formelwerk.
[[image:Fw_Makrodesigner_Makro Filter Editor01.png|thumb|center|Framework, Makro – Filter - Editor]]


===PlanSecurity neu laden===
{| class="wikitable" width={{{breite|50%}}}
 
|-
Lädt die Security für den aktuellen Plan neu.
! Spalte
 
! Ausdruck
===Plan kopieren===
|-
 
|Feld
Kopiert alle Datensätze von einem Plan in einen anderen Plan.
|Standard Dimension Column Name
 
|-
===Tabellensätze kopieren===
|Vergleichstyp
 
|Muss zum Datentyp passen (me ist =, not_me ist <>, usw.)
Es werden alle Datensätze innerhalb des ausgewählten Planes einer Tabelle in eine andere Tabelle kopiert. Zusätzlich können hier XML Filter für die Datensätze angegeben werden.
|-
 
|Kriterium
===Tabellensätze löschen===
|Muss auch zum Datentyp passen
 
|-
Es werden alle Datensätze innerhalb des ausgewählten Planes einer Tabelle gelöscht. Zusätzlich können hier XML Filter für die Datensätze angegeben werden.
|Type
 
|BY_ATTRIBVAL_FeldNameInDim (In diesem Beispiel heißt das Attributsfeld in der Dimension "AttribFeld"
===Tabelle dieses Plans neu rechnen===
|}
 
Es werden alle Datensätze innerhalb des ausgewählten Planes einer Tabelle neu berechnet. Zusätzlich können hier XML Filter für die Datensätze angegeben werden.
 
===Import am Server starten===
 
Startet ein Importobjekt am Server. Da jedes Importobjekt eine Erfolgsmeldung zurückgibt, kann diese Erfolgsmeldung über den Parameter „Rückmeldung aktivieren“ unterdrückt werden.
 
===Datenbank synchronisieren===
 
Erzwingt die Synchronisation des CoPlanner Servers und des SQL Servers bevor weitere coPlanner - Serverbefehle abgearbeitet werden.


===OffeneBerechnungen abschliessen===
===Beispiel Tabellensätze in Abhängigkeit einer Anwendungseigenschaft löschen===


Erzwingt die Abarbeitung aller offenen Berechnungen (Formeln). Anschließend wird einen Datenbanksynchronisation erzwungen, bevor weitere Serverbefehle abgearbeitet werden.
Es sollen mit einem Makro alle Datensätze aus einer Tabelle gelöscht werden, die einem Dimensionselement aus den Anwendungseigenschaften entsprechen.  


===Formel ausführen===
[[image:Fw_Makrodesigner_Makro Filter Editor02.png|thumb|center|Framework, Makro – Filter - Editor]]


Führt die ausgewählte Formel aus.


===Session Parameter ändern===
===Tabellensätze in Abhängigkeit einer anderen Tabelle löschen===
Über ein FKT_GetRecord im Kriterium kann eine Eigenschaft aus einer anderen Tabelle abgerufen werden. Hier muss vor dem FKT_GetRecord ein Transform= stehen.


Ändert Sessioneigenschaften. Hier kann bspw. angegeben werden, dass der Sessionkontext im Makromode ausgeführt wird, damit in weiterer Fologe Formeln ausgeführt werden deren Eigenschaft ‚Ausführen im Makromode’ gesetzt ist. Dazu geben Sie bitte folgende Parameter an:
z.B.: Transform=FKT_GetRecord(TabRecordToDelete.Zeit_1,Unternehmen != @Session_Unternehmen_ID@)


Um in den Makromodus zu wechseln: MakroMode=1
Holt den Eintrag der Zeit aus der Zeile der Tabelle TabRecordToDelete, bei der das Unternehmen dem Unternehmen entspricht, auf dem man angemeldet ist.
 
Um den Makromodus zu verlassen: MakroMode=0




Zeile 234: Zeile 249:




{| cellspacing="1" cellpadding="3" width={{{breite|100%}}} border="1"
{| class="wikitable" width={{{breite|100%}}}
|-
|-
|'''Fehler'''
|'''Fehler'''
Zeile 260: Zeile 275:
|}
|}


==URL==
Ab CoP 10 HF 2.5
Bietet die Möglichkeit bei im Webclient ausgeführten Makros z.B. andere Masken zu öffnen.
{{Achtung|Text=Nach diesem Schritt werden keine weiteren Schritte des Makros ausgeführt. Sollte es sich bei dem Makro um ein Submakro handeln, werden auch die weiteren Schritte des aufrufenden Makros nicht weiter ausgeführt. Sollte der Schritt durch z.B. eine Fortsetzungsbedingung nicht ausgeführt werden läuft das Makro wie bisher weiter.}}
Der Kontext kann bei diesem Befehl verwendet werden. Wird das Makro z.B. aus einer Maske aufgerufen und es werden Filter übergeben, so kann man auf diese mit @Context.<Filtername>@ zugreifen. Wird z.B. der Filter PC/KST übergeben, dann könnte so ein Link folgendermaßen aussehen: @Session_WebAppUrl/pivottable/?pivotform=EM Umsatzerloese PLAN&contextFilters="PC/KST" mu @Context.PC/KST@
==Fortsetzungsbedingung==
Die Fortsetzungsbedingung dient dazu, um die Weiterführung des Makros steuern zu können. Wird sie aktiv geschalten, muss die Bedingung zutreffen, um mit dem Makro fortzufahren. Trifft die Bedingung nicht zu, wird das Makro genau an der Stelle beendet. Es besteht die Möglichkeit mittels einer Meldung auf den Abbruch hinzuweisen.
[[image:Fw_Makrodesigner_Fortsetzungsbedingung Inaktiv.jpg|thumb|center|Framework, Makro - Fortsetzungsbedingung - Inaktiv]]
[[image:Fw_Makrodesigner_Fortsetzungsbedingung Aktiv.jpg|thumb|center|Framework, Makro - Fortsetzungsbedingung - Aktiv]]
Es müssen für die Bedingung beide Ausdrucksfelder befüllt werden. Ein Ausdruck kann eine Abfrage zum CoPlanner Server mittels der Funktionen die das Rechenwerk bereitstellt, ein SQL Statement auf die CoPlanner Systemdatenbank oder ein konstanter Wert sein. Die Abfrage zum CoPlanner Server wird mittels Transform=, eine SQL Server Abfrage mittels Sql= gekennzeichnet. Ein konstanter Wert wird ohne besondere Kennung eingetragen.
Beispiele:
[[image:Fw_Makrodesigner_Fortsetzungsbedingung Sql kombiniert mit CoPlanner Abfrage.jpg|thumb|center|Framework, Makro - Fortsetzungsbedingung – Sql kombiniert mit CoPlanner Abfrage]]
[[image:Fw_Makrodesigner_Fortsetzungsbedingung Sql kombiniert mit konstantem Wert.jpg|thumb|center|Framework, Makro - Fortsetzungsbedingung - Sql kombiniert mit konstantem Wert]]
[[image:Fw_Makrodesigner_Fortsetzungsbedingung_SessionVariable_Text.png|thumb|center|Framework, Makro - Fortsetzungsbedingung - Session-Variable kombiniert mit konstantem Wert]]
Bei konstanten Werten muss der Datentyp beachtet werden. Liefert die SQL bzw. CoPlanner Abfrage als Ergebnis eine Zeichenfolge, muss der Wert unter einfache Anführungszeichen gestellt werden. Liefert die Abfrage als Ergebnis einen numerischen Wert, entfallen die Anführungszeichen.
Wird eine SQL Abfrage definiert, welche nicht genau einen Wert, sondern eine Ergebnistabelle liefert, wird der Wert der linken, oberen Ecke für den Vergleich herangezogen.
[[image:Fw_Makrodesigner_Fortsetzungsbedingung Ergebnis bei Abfrage mit Tabelle als Ergebnis.jpg|center|Framework, Makro - Fortsetzungsbedingung - Ergebnis bei Abfrage mit Tabelle als Ergebnis]]
Im folgenden SQL Statement-Beispiel wird überprüft ob in der Tabelle CPM_TBL_BUD_PAYMENTS für den aktuellen Plan und das Project an dem der Benutzer gerade angemeldet ist Datensätze vorhanden sind:
''Sql=select cast(count(*) as bigint) from CPM_TBL_BUD_PAYMENTS where COPSYS_PLAN_ID = @Session_PLAN_ID@ and Projects = (select top 1 value from tb_SessionParameters where Name = 'Projects' and COP_SESSION_ID = @Session_ID@)''
Liefert die SQL Abfrage keine einzige Zeile, so kann dies mittels der Konstante ‘NULL‘ abgefragt werden.
[[image:Fw_Makrodesigner_Fortsetzungsbedingung Abfrage ob Datensaetze geliefert werden.jpg|thumb|center|Framework, Makro - Fortsetzungsbedingung - Abfrage ob Datensätze geliefert werden]]
Ausdrücke können auch mit CoPlanner [[Framework:Session-Variablen|Sessionvariablen]] versehen werden. Vor der eigentlichen Evaluierung des Ausdrucks werden diese durch den entsprechenden Wert ersetzt. [[Framework:Session-Variablen|Sessionvariablen]] können auch als konstanter Wert verwendet werden.
[[image:Fw_Makrodesigner_Fortsetzungsbedingung Abfrage mit Session Variable.jpg|thumb|center|Framework, Makro - Fortsetzungsbedingung - Abfrage mit Session Variable]]
Ist die Option „Meldung bei Nichterfüllung“ aktiviert, wird bei Abbruch des Makros dem Benutzer die Meldung mit dem entsprechenden Text angezeigt. Ist die Option nicht aktiv, wird das Makro ohne weitere Meldung beendet.
[[image:Fw_Makrodesigner_Fortsetzungsbedingung Meldung bei Nichterfuellung.jpg|thumb|center|Framework, Makro - Fortsetzungsbedingung - Meldung bei Nichterfüllung]]
__NOEDITSECTION__  
__NOEDITSECTION__  


[[Category:Framework|Makros]][[Category:Framework Objekte|Makros]]
[[Category:Objektverwaltung|Makros]]
[[en:Framework:Macros]]

Aktuelle Version vom 13. August 2026, 15:47 Uhr

Um ein neues Makro zu erstellen, wechseln Sie zunächst in den Entwicklermodus und wählen den Menüpunkt Objektverwaltung.

Ein Makro ist eine Gruppe von Aktionen, die jeweils eine bestimmte Operation ausführen, wie z.B. das Öffnen eines Formulars oder das Ausführen eines Serverbefehles. Mit Hilfe von Makros können Sie häufig vorkommende Aufgaben automatisieren. Sie können z.B. ein Makro erstellen, das einen Import ausführt, d. h. Daten löscht, diese neu importiert und z. B. im Anschluss einen Erfolgsbericht öffnet, wenn ein Benutzer dieses über einen Menüpunkt aufruft.

Um das Makro mit Eigenschaften zu versehen, öffnet man mit Klick auf die Schaltfläche „Entwurf“, per Klick mit der rechten Maustaste das Kontext-Menü oder per Doppelklick den Batchdesigner. Über den Menüpunkt „Neu“ kann hier auch ein neues Makro angelegt werden.

Zur Verfügung stehende Aktionen:

  • NavAktion
  • ServerBefehl
  • Meldung
  • Url

Die erstellten Aktionen werden im Batchdesigner dann nach einander abgearbeitet. Um die Reihenfolge der Abarbeitung zu ändern stehen der Button als auch zur Verfügung.

Framework, Batchdesigner

Je nach ausgewählter Aktion stehen dem Anwender verschiedene Konfigurationsmöglichkeiten zur Verfügung.

NavAktion

NavAktionen ermöglichen es zum Beispiel, Masken, Dimensionen etc. zu öffnen. Zusätzlich können NavAktionen auch zum Beispiel Formeln, Importe etc. ausführen. Eine Beschreibung aller NavAktionen finden Sie hier.

Framework, NavAktion

ServerBefehl

Hier stehen verschiedenste Serverbefehle zur Auswahl.

Befehl Beschreibung
Alle Tabellen komprimieren Komprimiert alle Tabellen, bei denen eine Partitionierung aktiv ist.
Azure Data Factory Pipeline ausführen (Ab CoPlanner 11 Release 1 2026) Läuft der CoPlanner über die CoPlanner SaaS Umgebung, kann man hier Pipelines ansteuern.
Benutzerparameter setzen

(Ab CoPlanner 11 Release 1 2025)

Mit diesem Befehl kann man den Wert für einen Benutzerparameter für den Benutzer, der das Makro ausführt, setzen. Ab CoPlanner 11 Release 2 2025 kann man aus einer Liste der Benutzerparameter auswählen, im Release 1 muss man noch den Namen des Parameters (mit @ davor und danach) reinschreiben.

Um Funktionen für die Vergabe des Wertes verwenden zu können, muss man ein Transform= vorne anfügen. z.B. Transform=FKT_TABLE_MAX('TBL_GuV_Gesamtkostenverfahren_IST.Zeit', '') holt aus der Tabelle TBL_GuV_Gesamtkostenverfahren_IST die höchste COPSYS_ID, die bei einem Datensatz bei der Zeit vergeben ist.

Datenbank synchronisieren Erzwingt die Synchronisation des CoPlanner Servers und des SQL Servers bevor weitere CoPlanner - Serverbefehle abgearbeitet werden.
Datenobjekt synchronisieren Erzwingt die Synchronisation der angegebenen Tabelle/Dimension und des SQL Servers bevor weitere CoPlanner - Serverbefehle abgearbeitet werden.
DBC Execute Procedure Es können Stored Procedures ausgeführt werden. Der Name der Stored Procedure muss dabei genau dem Namen der Stored Procedure des SQL Server entsprechen (bspw. sp_calc_table). Zusätzlich können hier auch noch Parameter der Stored Procedure übergeben werden. Die einzelnem Parameter werden dabei durch „;“ getrennt, und beginnen jeweils mit einem „@“ (bspw: @param1=ErsterParameter;@param2=ZweiterParameter). Als Parameter können auch Session Variablen (bspw.: @Session_PLAN_ID@) oder Kontext (bspw. @Context.PcKst@) übergeben werden. Der Datenbank Connection String sieht wie folgt aus: Server=ServerName;Initial Catalog=DatabaseName;user id=MyUserId; password=MyPassword
Hinweis  Keine Hochkommas verwenden bei der Übergabe von Strings.
Ende des IST-Zeitraums in FC setzen Setzt das Ende des Istzeitraums auf den angegebenen Benutzerparameter
Formel ausführen Führt die ausgewählte Formel aus.
Formeln auf erster Ebene fertigrechnen Hinweis:

Diese Funktion kann ab CoPlanner 11 Release 3 2025 über den Makroserverbefehl "Formel fertigrechnen" im Modus "Warten auf Berechnungen der ersten Ebene mit hoher Priorität" abgebildet werden.

Für inhaltliche Funktionsweise: siehe Beschreibung Serverbefehel "Formel fertigrechnen" in der nächsten Zeile:

  • Formel fertigrechnen -> Modus: Warten auf Berechnungen der ersten Ebene mit hoher Priorität.
Formeln fertigrechnen

(Ab CoPlanner 11 Release 3 2025)

Hiermit kann die Funktion "Waitforcalc/Warten auf Berechnungen" eingestellt werden.

Es gibt verschiedene Modi die ausgewählt werden können. Die Funktionsweise kann der folgenden Tabelle entnommen werden.

Modus Programmverhalten
Alle Berechnungen abschließen Wartet, bis alle Formeln fertig gerechnet sind
Warten auf alle Formeln aus der eigenen Session Ähnliche Funktionsweise wie "Alle Berechnungen abschließen". Allerdings werden nur Formelausführungen der "eigenen" Session unabhängig von der Priorität berücksichtigt.
Achtung!  Dadurch kann sich die Reihenfolge der Berechnungen ändern!


Warten auf Berechnungen der ersten Ebene mit hoher Priorität Nach dem Schreiben wird einmal geprüft, welche Formeln zu berechnen sind, auf alle Formeln mit Priorität < 0 (hohe Priorität) & direkt getriggert wird gewartet.

Hinweis:

  • Für Zeilensichten, ist dies die Standardeinstellung.
  • Für Matrixmasken, kann dies optional eingestellt werden.
Warten auf Berechnungen mit hoher Priorität Nach dem Schreiben werden alle Formeln mit einer Priorität < 0 (hohe Priorität) ausgeführt. Es wird dabei so lange in die Formelqueue geschaut, solange Formeln mit Priorität < 0 vorhanden sind.
Warten auf Formeln aus der eigenen Session mit hoher Priorität Ähnliche Funktionsweise wie "Warten auf Berechnungen mit hoher Priorität", allerdings werden nur Formelausführungen der "eigenen" Session mit einer Priorität < 0 (hohe Priorität) berücksichtigt.
Achtung!  Dadurch kann sich die Reihenfolge der Berechnungen ändern!


Formelwerk aktivieren Aktiviert das CoPlanner Formelwerk.
Formelwerk deaktivieren Deaktiviert das CoPlanner Formelwerk.
Formula activate Dieser Serverbefehl kann Formeln aktivieren bzw. deaktivieren. Zusätzlich kann die Formel „Makroaktiv“ gesetzt werden.
Import am Server starten Startet ein Importobjekt am Server. Da jedes Importobjekt eine Erfolgsmeldung zurückgibt, kann diese Erfolgsmeldung über den Parameter „Rückmeldung aktivieren“ unterdrückt werden.
Log Level setzen Zu Entwicklungszwecken kann man sich sämtliche Meldungen die im Log generiert werden in der Console/Telnet ausgeben lassen. Im Echtbetrieb wird das nicht empfohlen da es zu Performanceverschlechterungen kommen kann.

Konfiguration:

Framework, Makro - Loglevel konfigurieren
OffeneBerechnungen abschliessen Erzwingt die Abarbeitung aller offenen Berechnungen (Formeln). Anschließend wird einen Datenbanksynchronisation erzwungen, bevor weitere Serverbefehle abgearbeitet werden.

Hinweis:

Diese Funktion kann ab CoPlanner 11 Release 3 2025 über den Makroserverbefehl "Formel fertigrechnen" abgebildet werden. Dazu bitte ein Makro erstellen mit den folgenden 2 Schritten

  1. Serverbefehl: Formel fertigrechnen -> Modus: "Alle Berechnungen abschließen"
  2. Serverbefehl: Datenbank synchronisieren
OLAP refresh Makrobefehl zur Aktualisierung von OLAP-Verbindungen (Verbindungen vom CoPlanner-Server zu SSAS werden geschlossen und bei Bedarf neu aufgebaut). Neben dem Aktualisieren der Dimensionen zielt dieser Befehl auch darauf ab eventuelle AdoMD-Caches (Security) zuverlässig löschen zu können. Nach einem Neustart des Clients sollten geänderte Dimensionselemente im CoPlanner ersichtlich sein.
Partitionen aller Tabellen aktualisieren Alle Tabellen wird neu partitioniert und die Daten den entsprechenden Partitionen zugewiesen.
Partitionen einer Tabelle aktualisieren Die gewählte Tabelle wird neu partitioniert und die Daten den entsprechenden Partitionen zugewiesen.
Plan kopieren Kopiert alle Datensätze von einem Plan in einen anderen Plan.
Plansätze löschen Der ServerBefehl Plansätze löschen, löscht alle Datensätze des ausgewählten Plans aller planabhängigen Tabellen. Wird der Plan auf „Aktueller Plan“ gestellt werden nur Datensätze des Planes gelöscht an den der Benutzer angemeldet ist.
PlanSecurity neu laden Lädt die Security für den aktuellen Plan neu.
Session Parameter ändern Ändert Sessioneigenschaften. Hier kann bspw. angegeben werden, dass der Sessionkontext im Makromode ausgeführt wird, damit in weiterer Folge Formeln ausgeführt werden deren Eigenschaft ‚Ausführen im Makromode’ gesetzt ist. Dazu geben Sie bitte folgende Parameter an:

Um in den Makromodus zu wechseln: MakroMode=1

Um den Makromodus zu verlassen: MakroMode=0

Tabelle dieses Plans neu rechnen Es werden alle Datensätze innerhalb des ausgewählten Planes einer Tabelle neu berechnet. Zusätzlich können hier XML Filter für die Datensätze angegeben werden.

(Ab CoPlanner 11 Release 4 2023)

Es kann nun ausgewählt werden ob nur der aktuelle Plan durchgerechnet werden soll oder alle aktiven, nicht gesperrten Pläne berücksichtigt werden sollen.

Tabelle komprimieren Gewählte Tabelle wird komprimiert.
Tabellensätze kopieren Es werden alle Datensätze innerhalb des ausgewählten Planes einer Tabelle in eine andere Tabelle kopiert. Zusätzlich können hier XML Filter für die Datensätze angegeben werden.
Tabellensätze löschen Es werden alle Datensätze innerhalb des ausgewählten Planes einer Tabelle gelöscht. Zusätzlich können hier XML Filter für die Datensätze angegeben werden.

Neben der Auswahl der Tabelle muss auch ein zu löschender Plan gewählt werden. Dies kann durch explizite Auswahl eines bestimmten Plans oder mit der Funktion „Aktueller Plan“ automatisch bezogen auf den Plan der Anmeldung erfolgen. Bei Wahl der Option „planunabhängig“ werden die Daten der gewählten Tabelle aus allen Plänen gelöscht! Siehe nachfolgendes Beispiel.

Webimport am Server starten Startet einen Webimport am Server. Da jeder Import eine Erfolgsmeldung zurückgibt, kann diese Erfolgsmeldung über den Parameter „Rückmeldung aktivieren“ unterdrückt werden. Zur Auswahl stehen nur Webimporte mit der Quelle Stage, da bei den anderen eine Benutzerinteraktion benötigt werden würde.

Achtung: der Webimport verfügt über keine Filter und wertet daher keinen Kontext aus.

Skript am Server ausführen Wenn die Option AllowBatchProcessingViaMacro in der svrconifg.xml auf true gesetzt ist, dann kann man diesen Befehl auswählen. Am Server muss dafür ein Ordner "Scripts" vorhanden sein, welcher die Skriptdateien enthält, die ausgeführt werden können. Zusätzlich kann man Session-Variablen als Parameter übergeben. Die Scripts müssen auf .bat enden. Dann werden Sie im Makroexecutor automatisch angezeigt.
Trigger a link

(Ab CoPlanner 11 Release 4 2023, experimentelles Feature)

Mit diesem Befehl kann ein Link getriggert werden. Dieses Feature ist experimentell und wurde zur Kommunikation mit dem Microsoft Planner eingeführt. Aufgrund des experimentellen Characters der Änderung, wird es im Windows Client noch nicht in der Auswahlliste angeboten sondern muss manuell eingetragen/eingetippt werden werden. Das bedeutet:

Serverbefehl: Trigger a link

Parameter 1: Die URL angeben, die gepostet werden soll. (Bzw: das ist eigentlich/im Normalfall die Server/Internetadresse an die der Inhalt der Payload verschickt wird. Diese muss natürlich empfangsbereit sein und die Daten verarbeiten können).

Parameter 2: Den Namen einer CoPlanner Tabelle angeben.

Das Makro erstellt eine "Payload" aus allen Textspalten der angegeben Tabelle die nicht mit "COPSYS_" beginnen.

Beispiel Tabellensätze löschen

Es sollen mit einem Makro alle Datensätze aus einer Tabelle gelöscht werden die zum angemeldeten Plan gehören. Legen Sie dazu ein neues Makro an und wählen Sie als Aktion „Serverbefehl“ und treffen Sie die Einstellungen wie in folgender Abbildung dargestellt.

Framework, Makro – Tabellensätze löschen

Rufen Sie den Filter – Editor auf mit einem Klick auf die Schaltfläche .

Framework, Makro – Filter - Editor

Wählen Sie aus dem Kombinationslistenfeld den Eintrag „BAB_Plan“ und im Filter „Unternehmen“ die „Bike GmbH“ aus. Mit einem Klick auf die Schaltfläche „Hinzufügen“ wird diese Einstellung übernommen. Durch das Ersetzen des Kriteriums mit der Sessionvariable @Session_Unternehmen_ID@ bezieht sich dieser Filter immer auf das angemeldete Unternehmen.

Sollten Sie diese Filter mehrmals benötigen, können Sie diesen mit dem Befehl „Filter speichern“ sichern und mit „Filter laden“ wieder einfügen.

Beispiel Tabellensätze in Abhängigkeit eines Dimensionsattributes löschen

Es sollen mit einem Makro alle Datensätze aus einer Tabelle gelöscht werden, die einer Attributausprägung in einer Dimension entsprechen. In diesem Beispiel werden aus der Tabelle "Tab1" alle Datensätze gelöscht, die in der Dimension im Attribut "AttribFeld" den Wert "True" enthalten.

Framework, Makro – Filter - Editor
Spalte Ausdruck
Feld Standard Dimension Column Name
Vergleichstyp Muss zum Datentyp passen (me ist =, not_me ist <>, usw.)
Kriterium Muss auch zum Datentyp passen
Type BY_ATTRIBVAL_FeldNameInDim (In diesem Beispiel heißt das Attributsfeld in der Dimension "AttribFeld"

Beispiel Tabellensätze in Abhängigkeit einer Anwendungseigenschaft löschen

Es sollen mit einem Makro alle Datensätze aus einer Tabelle gelöscht werden, die einem Dimensionselement aus den Anwendungseigenschaften entsprechen.

Framework, Makro – Filter - Editor


Tabellensätze in Abhängigkeit einer anderen Tabelle löschen

Über ein FKT_GetRecord im Kriterium kann eine Eigenschaft aus einer anderen Tabelle abgerufen werden. Hier muss vor dem FKT_GetRecord ein Transform= stehen.

z.B.: Transform=FKT_GetRecord(TabRecordToDelete.Zeit_1,Unternehmen != @Session_Unternehmen_ID@)

Holt den Eintrag der Zeit aus der Zeile der Tabelle TabRecordToDelete, bei der das Unternehmen dem Unternehmen entspricht, auf dem man angemeldet ist.


Meldung

Dem Anwender können mit Meldungen Informationen über die Ausführung des Makros am Client angezeigt werden. Dazu wird der Meldungstext, Meldungstitel und der Meldungstyp eingegeben.

Framework, Makro - Meldung

Meldungstypen

Fehler
Framework, Makro - Meldung - Fehler
Ausnahme
Framework, Makro - Meldung - Ausnahme
Information
Framework, Makro - Meldung - Information
Frage
Framework, Makro - Meldung - Frage
Kein Symbol
Framework, Makro - Meldung - Kein Symbol
Stop
Framework, Makro - Meldung - Stop
Warnung
Framework, Makro - Meldung - Warnung


URL

Ab CoP 10 HF 2.5

Bietet die Möglichkeit bei im Webclient ausgeführten Makros z.B. andere Masken zu öffnen.

Achtung!  Nach diesem Schritt werden keine weiteren Schritte des Makros ausgeführt. Sollte es sich bei dem Makro um ein Submakro handeln, werden auch die weiteren Schritte des aufrufenden Makros nicht weiter ausgeführt. Sollte der Schritt durch z.B. eine Fortsetzungsbedingung nicht ausgeführt werden läuft das Makro wie bisher weiter.


Der Kontext kann bei diesem Befehl verwendet werden. Wird das Makro z.B. aus einer Maske aufgerufen und es werden Filter übergeben, so kann man auf diese mit @Context.<Filtername>@ zugreifen. Wird z.B. der Filter PC/KST übergeben, dann könnte so ein Link folgendermaßen aussehen: @Session_WebAppUrl/pivottable/?pivotform=EM Umsatzerloese PLAN&contextFilters="PC/KST" mu @Context.PC/KST@


Fortsetzungsbedingung

Die Fortsetzungsbedingung dient dazu, um die Weiterführung des Makros steuern zu können. Wird sie aktiv geschalten, muss die Bedingung zutreffen, um mit dem Makro fortzufahren. Trifft die Bedingung nicht zu, wird das Makro genau an der Stelle beendet. Es besteht die Möglichkeit mittels einer Meldung auf den Abbruch hinzuweisen.

Framework, Makro - Fortsetzungsbedingung - Inaktiv
Framework, Makro - Fortsetzungsbedingung - Aktiv

Es müssen für die Bedingung beide Ausdrucksfelder befüllt werden. Ein Ausdruck kann eine Abfrage zum CoPlanner Server mittels der Funktionen die das Rechenwerk bereitstellt, ein SQL Statement auf die CoPlanner Systemdatenbank oder ein konstanter Wert sein. Die Abfrage zum CoPlanner Server wird mittels Transform=, eine SQL Server Abfrage mittels Sql= gekennzeichnet. Ein konstanter Wert wird ohne besondere Kennung eingetragen.

Beispiele:

Framework, Makro - Fortsetzungsbedingung – Sql kombiniert mit CoPlanner Abfrage
Framework, Makro - Fortsetzungsbedingung - Sql kombiniert mit konstantem Wert
Framework, Makro - Fortsetzungsbedingung - Session-Variable kombiniert mit konstantem Wert

Bei konstanten Werten muss der Datentyp beachtet werden. Liefert die SQL bzw. CoPlanner Abfrage als Ergebnis eine Zeichenfolge, muss der Wert unter einfache Anführungszeichen gestellt werden. Liefert die Abfrage als Ergebnis einen numerischen Wert, entfallen die Anführungszeichen. Wird eine SQL Abfrage definiert, welche nicht genau einen Wert, sondern eine Ergebnistabelle liefert, wird der Wert der linken, oberen Ecke für den Vergleich herangezogen.


Framework, Makro - Fortsetzungsbedingung - Ergebnis bei Abfrage mit Tabelle als Ergebnis
Framework, Makro - Fortsetzungsbedingung - Ergebnis bei Abfrage mit Tabelle als Ergebnis

Im folgenden SQL Statement-Beispiel wird überprüft ob in der Tabelle CPM_TBL_BUD_PAYMENTS für den aktuellen Plan und das Project an dem der Benutzer gerade angemeldet ist Datensätze vorhanden sind:

Sql=select cast(count(*) as bigint) from CPM_TBL_BUD_PAYMENTS where COPSYS_PLAN_ID = @Session_PLAN_ID@ and Projects = (select top 1 value from tb_SessionParameters where Name = 'Projects' and COP_SESSION_ID = @Session_ID@)


Liefert die SQL Abfrage keine einzige Zeile, so kann dies mittels der Konstante ‘NULL‘ abgefragt werden.

Framework, Makro - Fortsetzungsbedingung - Abfrage ob Datensätze geliefert werden

Ausdrücke können auch mit CoPlanner Sessionvariablen versehen werden. Vor der eigentlichen Evaluierung des Ausdrucks werden diese durch den entsprechenden Wert ersetzt. Sessionvariablen können auch als konstanter Wert verwendet werden.

Framework, Makro - Fortsetzungsbedingung - Abfrage mit Session Variable

Ist die Option „Meldung bei Nichterfüllung“ aktiviert, wird bei Abbruch des Makros dem Benutzer die Meldung mit dem entsprechenden Text angezeigt. Ist die Option nicht aktiv, wird das Makro ohne weitere Meldung beendet.

Framework, Makro - Fortsetzungsbedingung - Meldung bei Nichterfüllung