Enterprise Edition:Kontext
Beschreibung
Der Kontext beinhaltet die Einstellungen, die der Benutzer aktuell in der aktiven Maske verwendet. Konkret können Sie im Kontext folgende Einstellungen treffen:
- Filter: Die aktuell ausgewählten Filtereinstellungen
- Achse: Die aktuell angezeigten bzw. zur Anzeige ausgewählten Elemente auf den Achsen
- Position: Die aktuelle Position auf der Achse wird als Filter in den Kontext übernommen (nur bei Matrixmasken)

Der Kontext wird immer in der Quellmaske gesetzt.
Das Zielobjekt reagiert immer nur auf den vorhandenen Kontext, wobei die Art der Reaktion natürlich vom Typ des Objektes abhängt. Sind im Kontext Parameter gesetzt, die die aufgerufene Komponente nicht interpretieren kann (z.B. Achselemente werden an einen Detailsatz weitergegeben), so ignoriert die aufgerufene Komponente diese.
| Hinweis Das Matchen der Filter/Achsen zwischen den einzelnen Elementen erfolgt aufgrund des Filternamens in der Maske, dies entspricht dem Alias auf Ebene des CoPlanner Würfels. |
Der Kontext der Quellmaske kann an folgende Zielobjekte weitergegeben werden:
Kontext setzen in Quellmasken
Je nach Maskentyp können im Kontext alle oder nur bestimmte Einstellungen gesetzt werden:
- Eingabemasken: Filter, Achse, Position
- Zeilensichten: Filter
- Einzelsatzmasken: Filter
Die Konfiguration des Kontext kann an folgenden Stellen in der Quellmaske erfolgen:
Kontextweitergabe an Zielobjekt Makro
Der Kontext wird sowohl für serverseitige Makros, als auch für clientseitige (= NAV-Aktionen) Makros unterstützt, wobei jedoch das Verhalten unterschiedlich ist:
- Bei serverseitigen Makros werden Filtereinstellungen übernommen, und für die Abarbeitung des aktuellen Befehls/Requests verwendet; Achseinstellungen spielen hier keine Rolle (werden Achseinstellungen in den Filter übernommen, so wird dies gleich wie ein Filter behandelt). Dies bedeutet, dass das zu bearbeitende Datenset durch die im Kontext übergebenen Filter eingeschränkt wird.
- Bei clientseitigen Makros wird der gesamte Kontext an das Zielobjekt einer Nav-Aktion weitergegeben.
Ein Makro ist immer nur Ziel für Einstellungen, die im Kontext weitergegeben werden. Es kann aber selbst keine Einstellungen weitergeben.
| Hinweis Werden über den Kontext Filtereinstellungen für eine Dimension weitergegeben, so dürfen im Makro keine weiteren Filtereinstellungen für diese Dimension definiert werden; das Verhalten des Systems, wenn beides vorhanden ist, ist nicht definiert. |
Beispiel: Kontext einer Eingabemaske an Löschmakro übergeben
- Erstellen Sie ein Löschmakro mit einem eingeschränkten Filter über die 'Umsatzerlösarten':

| Hinweis Jene Dimensionen, die mittels Kontext übersteuert werden sollen, müssen im Makro im Filter XML hinzugefügt werden.. |
- Binden Sie dieses Makro in die Quellmaske ein und konfigurieren Sie den Kontext mit folgenden Einstellungen:

- Öffnen Sie die Quellmaske mit Einschränkung des Filters 'Umsatzerlösarten':

- Die Makroausführung in der Quellmaske führt zu dem Ergebnis, dass die Dimension 'Umsatzerlösarten' der Quellmaske nicht an das Makro übergeben wird, da diese im Kontext ausgenommen wurde. Stattdessen wird das Makro mit dem selbst definierten Filter ausgeführt. Wäre diese Dimension im Kontext nicht ausgenommen, würden über das Makro nur jene Umsatzerlöse mit der Umsatzerlösart 'Handelswaren' gelöscht werden.
Wenn man mit aktivem Kontext (z.B. einem Link) ein Makro ausführt, so werden Platzhalter im Format @Context.<filtername>@, also zB @Context.COPSYS_ID@ für folgende Parameter ersetzt:
- Fortsetzungsbedingungen
Beispiel: Sql=select COUNT(*) from Tabelle where COPSYS_ID=@Context.COPSYSID@
- NavAktion/Sonstige/BrowserWindow
Beispiel: http://localhost:8058/@SessionID=@Session_ID@,@RecordID=@Context.COPSYSID@
- ServerBefehl/DBC Execute Procedure (unter Parameter)
Beispiel (unter Stored-Procedure Parameter): @COPSYS_ID=@Context.COPSYSID@
- NavAktion/Aktionen die einen Parameter Fenstername haben
Maske für ID @Context.COPSYSID@
Beispiel für einen Kontext erzeugenden Link für den Windowsclient:
cop://name=Name der Aktion & aktion=Makro & p1=MakroKontext & p2= & p3= & p4=ContextFiltersetting:COPSYSID=636172261478600305=0=FilterText=COPSYS_ID & frmlocation=Struktur & bild=__PARAM_NOT_FOUND__ & info=__PARAM_NOT_FOUND__ & styledefinition=Blau Verlauf.maskskin & readonly=__PARAM_NOT_FOUND__
| Hinweis Das Ersetzen der Platzhalter funktioniert momentan nur bei clientseitigen Makros. Also z.B. nicht, wenn das Makro unter MacroOnSave definiert ist.. |
Beispiel für einen Kontext erzeugenden Link für den Webclient:
copaction://macro/?name=MakroKontext&ContextFiltersetting:COPSYSID eq 636172261478600305
Kontextweitergabe an Zielobjekt Import
Für ein Importobjekt werden die Filtereinstellungen übernommen. Analog zu Masken können für einzelne Dimensionen entweder Einstellungen im Importobjekt getroffen werden, oder aber die Werte aus dem Kontext übernommen werden. Wird bei einer einzelnen Dimension beides getan, so wird dies vom System nicht unterstützt (das Verhalten des Systems ist undefiniert).
Ein Importobjekt ist immer nur Ziel für Einstellungen, die im Kontext weitergegeben werden. Es kann aber selbst keine Einstellungen weitergeben.
| Hinweis Die Einstellungen können nur für Importobjekte mit Datenquelle „Datendefinition“ gesetzt werden, nicht jedoch für die Typen „SQL“ oder „Text“. |
Kontextweitergabe an Zielobjekt Maske
Der Kontext kann an Eingabemasken, Zeilensichten und Einzelsatzmasken übergeben werden. Je nach Maskentyp können diese nur bestimmte Werte aus dem Kontext übernehmen:
- Eingabemasken: Filter, Achse, Position
- Zeilensichten: Filter, Position
- Einzelsatzmasken: Filter, Position
Zu setzen ist der Kontext in den Eigenschaften des Measures unter Measureeinstellungen.
Kontextweitergabe an Zielobjekt CoPlanner-Link
Ist das Zielobjekt eine Webpage, kann der aktuelle Kontext über die URL weitergegeben werden und wird auch bei einem Aufruf aus dem CoPlanner Client entsprechend gesetzt.
Eine Webpage ist immer nur Ziel für Einstellungen, die im Kontext weitergegeben werden. Es kann aber selbst keine Einstellungen weitergeben.
Der CopLink kann im CopContextDialog erstellt werden. Dieser wird durch das Tastenkürzel "Strg J" aus einer Matrix- oder Zeilenmaske heraus geöffnet.

Die Option "include invisible filter" können in der
- Eingabemasken
- Zeilensichten
eingestellt werden.
Für die Konfiguration in der Eingabemaske ist folgendes zu beachten:
- Die Einstellung bezieht sich nur auf Filter, die auch auf der Achse vorhanden sind.
- Die Option Zellposition darf NICHT aktiv sein.
Filteroperatoren im CoPlanner-Link
Im Windowsclient:
cop://name=Name der Aktion & aktion=Matrix Builder Eingabemaske & p1=EM Umsatzerloese Plan & p2= & p3= & p4=ContextFiltersetting:Plan=635653045356954538=0=FilterPlan=Plan|Unternehmen=1=0=FilterDim=Unternehmen|PC/KST=1=2=FilterDim=PC/KST|Umsatzerloesarten=1=3=FilterDim=Umsatzerloesarten|Vergleichsplan=635653045356954538=0=FilterPlan=Vergleichsplan|Regionen/Kunden=1=5=FilterDim=Regionen/Kunden|Zeit=2014010101=6=FilterDim=Zeit|Produkte=1=2=FilterDim=Produkte & frmlocation=Struktur & bild=__PARAM_NOT_FOUND__ & info=__PARAM_NOT_FOUND__ & styledefinition=Blau Verlauf.maskskin & readonly=__PARAM_NOT_FOUND__
In diesem Beispiel eines generierten Links sieht man unterschiedliche Filteroperatoren. Diese werden definiert über die Zahl vor dem =FilterPlan bzw. =FilterDim und sind in dem Link fett und kursiv dargestellt.
Hier finden Sie eine Auflistung der Filter und mit welcher Zahl diese aufgerufen werden können.
In Datensatzmasken stehen für Wertfelder folgende Operatoren zur Verfügung:
| Filteroperand | Aufruf im Kontext | Aufruf im Kontext im Web | Beschreibung |
| = | 0 | eq | Standardmäßig wird der Operator “=“ vorgeschlagen, alle Datensätze werden angezeigt. |
| < | 8 | lt | Datensätze kleiner als der eingegebene Wert werden angezeigt. |
| > | 6 | gt | Datensätze größer als der eingegebene Wert werden angezeigt. |
| <= | 9 | le | Datensätze kleiner oder gleich dem eingegebenen Wert werden angezeigt. |
| >= | 7 | ge | Datensätze größer oder gleich dem eingegebenen Wert werden angezeigt. |
| <> | 3 | ne | Jene Datensätze, die größer oder kleiner als der eingegebene Wert sind, werden angezeigt. |
| LIKE | 10 | lk | Jene Datensätze, die den eingegebenen Ausdruck enthalten, werden angezeigt. |
Im Webclient:
Hier würde der Link aus dem Beispiel oben wie folgt aussehen:
@Session_WebAppUrl@/pivottable/?pivotform=EM Umsatzerloese Plan&&contextFilters=Plan eq 635653045356954538 and Unternehmen eq 1 and PC/KST mu 1 and Umsatzerloesarten ne 1 and Vergleichsplan eq 635653045356954538 and Regionen/Kunden mf 1 and Zeit gt 2014010101 and Produkte mu 1

