Enterprise Edition:Kontext

Aus CoPlanner 10
(Weitergeleitet von Framework:Kontext)
Zur Navigation springenZur Suche springen


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)
Matrixmasken, Kontext, Position


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:

Konfiguration Beschreibung
Eigenschaften Measureeinstellungen Unter Eigenschaften Measureeinstellungen kann der Kontext über die Eigenschaft DetailContext konfiguriert werden, auf welchen beim Detailsatzsprung zurückgegriffen wird.
Masken, Eigenschaften Measureeinstellungen, DetailContext
MakroDeskriptor-Auflistungs-Editor Beim Aufruf von Makros kann der Kontext über DetailContext im MakroDeskriptor-Auflistungs-Editor konfiguriert werden.
MakroDeskriptor-Auflistungs-Editor, DetailContext


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':
Eingabemaske, Makro


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:
Objektverwaltung, Makro
  • Öffnen Sie die Quellmaske mit Einschränkung des Filters 'Umsatzerlösarten':
Eingabemaske, Filtereinstellungen
  • 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.

CopContextLinkDialog

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.

Filteroperator Aufruf im Kontext Aufruf im Kontext im Web Beschreibung
2 mu Ausgewähltes Element und alle Ebenen darunter werden dargestellt.
5 mf Ausgewähltes Element und eine Ebenen darunter werden dargestellt.
1 fu Alle Ebenen unter dem ausgewähltem Element werden dargestellt.
4 un Eine Ebene unter dem ausgewähltem Element wird dargestellt.
= 0 eq Nur Werte dieses Dimensionselement werden dargestellt.
<> 3 ne Alle Werte werden dargestellt, nur die des ausgewählten Filterelements nicht.

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