2.1.4 IC_Scripts
In der Tabelle "IC_Scripts" werden die SQL-Abfragen bereitgestellt, die letztlich die in einer Auswertung zu visualisierenden Daten liefern. Abhängig vom Element- bzw. Auswertungstyp kann es sich dabei um eine Ergebnismenge von mehreren Datensätzen oder einen Ergebniswert für eine bestimmte Eigenschaft des Auswertungselements handeln.
Der Bezug zur Tabelle "IC_Scripts" findet i.d.R. über die Spalte "ScriptName" in der Tabelle "IC_Elements" statt.
Die Einstellung "IsDiabled", "UserOrGroup", "Station", "DeviceType" und "Version" werden analog zu "IC_Groups" und weiteren Tabellen zur Steuerung der Verfügbarkeit des jeweiligen Skripts verwendet. Generell gilt, dass mindestens ein Skript mit dem in IC_Elements angegebenen "ScriptName" verfügbar sein muss, wenn das betroffene Auswertungselement zugänglich ist.
Ebenso dient die in allen Tabellen verfügbare Spalte "IsStandard“ zum Schutz des jeweiligen Datensatzes vor Veränderungen durch Updates der Standard-Auswertungen.
|
Spaltenname
|
Bedeutung
| ||||
|
Name
|
Eindeutiger (interner) Name des SQL-Scripts
Auf diesen Namen wird über die Spalte "ScriptName" in Tabelle "IC_Elements" verwiesen.
| ||||
|
IsStandard
|
Standarddatensatz
| ||||
|
IsDisabled
|
Verwendung im infra.infocenter deaktiviert
| ||||
|
Connection
|
Hier kann eine alternative Verbindungszeichenfolge angegeben werden, um z.B. Daten für das betroffene Auswertungselement aus einer Fremd-Datenbank zu beziehen. Standardmäßig wird der infra Standard-Connectionstring, der für die aktuell angemeldete infra Datenquelle definiert ist, für den SQL-Zugriff verwendet.
| ||||
|
Encrypted
|
wird derzeit nicht ausgewertet
| ||||
|
Script
|
SQL-Skript zur Ausführung oder alternativ ein infra-Makro, das das zu verwendenden SQL-Skript z.B. aus einer INI-Datei holt:
INI(infraChart,SQL_UmsatzJahr) | ||||
|
Station
|
Die Verfügbarkeit des SQL-Skripts kann auf bestimmte infra Stationsnamen eingeschränkt werden. infra Stationen werden über die infra-Server-Managementkonsole verwaltet.
| ||||
|
UserOrGroup
|
Die Verfügbarkeit des SQL-Skripts kann auf bestimmte infra Benutzer und/oder Benutzergruppen eingeschränkt werden. infra Benutzer werden über die infra-Server-Managementkonsole verwaltet.
Hinweis: Wenn ein SQL-Skript für bestimmte Benutzer, die aber Zugriff auf die betroffenen Auswertungen haben, nicht verfügbar ist, muss ein alternatives Skript mit gleichem Namen für diese Benutzer verfügbar sein, ansonsten werden die betroffenen Auswertungen auf einen Fehler laufen. | ||||
|
DeviceType
|
Der Zugriff auf das Skript kann für zukünftige Anwendungen auf bestimmte Gerätetypen begrenzt werden (z.B. Desktop, Browser, Mobile).
| ||||
|
Version
|
Versionsnummer in der Form "x.y" - sind mehrere Datensätze mit gleichem Namen vorhanden, wird die höhere Version bevorzugt
|
Makros in SQL-Scripts
Prinzipiell können alle verfügbaren infra-Makros in dem in Tabelle IC_Scripts hinterlegten SQL-Skript verwendet werden. Dazu ist folgender Ausdruck an der entsprechenden Stelle im SQL-Skript einzubauen:
$Macros[Makroausdruck]
Dieser Text wird dann durch das Ergebnis des angegebenen "Makroausdruck" ersetzt, bevor das SQL-Skript an die SQL-Datenbank zur Ausführung übergeben wird.
Für den Zugriff auf infocenter-Elemente (z.B. Selektionsdaten, verknüpfte Datensätze, Spaltenwerte anderer Auswertungen) sind im Kontext des infocenters folgende Makros zum Einbau in SQL-Scripts verfügbar:
INFOCENTERFieldValue(ControlD)
Liefert den Wert des angegebenen Steuerelements (ControlID) im infocenter-Dialog. So kann z.B. der Inhalt des globalen Suchfeldes "SEL_1" ausgelesen und zur Einschränkung der Auswertungsergebnisse in der WHERE-Clause des SQL-Statements benutzt werden. Es empfiehlt sich aber die Verwendung des INFOCENTERFielValueSQL-Makros, da hier automatisch der Standard-infra-Platzhalter "*" durch den SQL-Platzhalter "%" ersetzt wird.
INFOCENTERFieldValueSQL(ControlD)
Liefert den Wert des angegebenen Steuerelements (ControlID) im infocenter-Dialog. So kann z.B. der Inhalt des globalen Suchfeldes "SEL_1" ausgelesen und zur Einschränkung der Auswertungsergebnisse in der WHERE-Clause des SQL-Statements benutzt werden. Dabei wird automatisch der Standard-infra-Platzhalter "*" durch den SQL-Platzhalter "%" ersetzt, so dass z.B. "Büro*" als Suchmuster bei der Eingabe zulässig ist.
ICSelValue(Selektionsname)
ICSelValueMin(Selektionsname)
ICSelValueMax(Selektionsname)
Wurden für eine Auswertung Filter definiert (siehe Tabelle IC_Selecions), können die Eingaben aus den jeweiligen Selektionsfeldern ausgelesen und im SQL-Skript zur Einschränkung der Suche in der WHERE-Clause der Auswertung verwendet werden. Für STATICFILTER (einzelnes Eingabefeld) kann "ICSelValue" verwendet werden. Für RANGEFILTER (von/bis-Eingabefelder) liefert "ICSelValueMin" die untere Grenze (von) und "ICSelValueMax" die obere Grenze (bis). Als "Selektionsname" muss der Name des Filters (Spalte "Name" in IC_Selections" angegeben werden.
ICLinkParentValue(Spaltenname)
Wenn eine Auswertung über eine Verknüpfung gestartet wurde, kann mit diesem Makro auf die Spaltenwerte der in der auslösenden Auswertung selektierten Zeile zugegriffen werden. Damit kann in der aktuellen Auswertung auf die Auswahl in der "übergeordneten" Auswertung reagiert werden.
Verknüpfte Auswertungen werden automatisch aktualisiert, sobald in der "übergeordneten" Auswertung ein anderes Element (z.B eine Zeile) selektiert wird. ICLinkParentValue liefert dann den jeweiligen Spaltenwert zu der neuen Auswahl.
ICDragSourceRowIndex()
Bei einer Drag&Drop-Operation liefert das Makro den Zeilenindex der selektierten Zeile in der Auswertung, die mit dem Mauszeiger "aufgenommen" (Drag) wurde. Über den Zeilenindex in Kombination mit "ICGridRowValue" kann in den Drag&Drop-SQL-Skripten auf die Werte der Ausgangsauswertung zugegriffen werden.
ICDragSourceRowValue(Spaltenname)
Das Makro liefert bei einer Drag&Drop-Operation den Inhalt der angegebenen Spalte der selektierten Zeile in der Auswertung, die mit dem Mauszeiger "aufgenommen" (Drag) wurde. Damit kann in den Drag&Drop-SQL-Skripten auf die Werte der Ausgangsauswertung reagiert werden.
ICDropTargetRowIndex()
Im Gegensatz zu "ICDragTargetRowIndex" liefert das Makro bei einer Drag&Drop-Operation den Zeilenindex der Zeile in der Auswertung, auf der mit dem Mauszeiger die "migenommen" Zeile der Ausgangsauswertung "fallengelassen" (Drop) wurde. Über den Zeilenindex in Kombination mit "ICGridRowValue" kann in den Drag&Drop-SQL-Skripten auf die Werte der Zielauswertung zugegriffen werden.
ICDropTargetRowValue(Spaltenname)
Das Makro liefert bei einer Drag&Drop-Operation den Inhalt der angegebenen Spalte der Zeile in der Auswertung, auf der mit dem Mauszeiger die "migenommen" Zeile der Ausgangsauswertung "fallengelassen" (Drop) wurde. Damit kann in den Drag&Drop-SQL-Skripten auf die Werte der Zielauswertung reagiert werden.
ICDragSourceID()
Liefert bei einer Drag&Drop-Operation die interne ID der Asuwertung, aus der mit dem Mauszeiger eine Zeile "mitgenommen" wurde. In Kombination mit "ICDragSourceRowIndex" und "ICGridRowValue" kann so auf Werte der Ausgangsauswertung zugegriffen werden.
ICDropTargetID()
Liefert bei einer Drag&Drop-Operation die interne ID der Asuwertung, auf der mit dem Mauszeiger eine "mitgenommene" Zeile "fallengelassen" wurde. In Kombination mit "ICDropTargetRowIndex" und "ICGridRowValue" kann so auf Werte der Zielsauswertung zugegriffen werden.
ICGridRowValue(ID, Zeilenindex, Spaltenname)
ICGridRowValue(Zeilenindex, Spaltenname)
Das Makro liefert den Inhalt der angegebenen Spalte aus der angegebenen Zeile (Zeilenindex ab 0) entweder der aktuellen Auswertung (ohne "ID") oder der angegebenen Auswertung (ID = interne ID, z.B. als Ergebnis von "ICDragSourceID").