Benutzerbezogene Darstellungsmodelle
Verfügbar ab Version 25.1.143
Diese Funktion steht nur für Postgres und Oracle zur Verfügung!
Diese Funktion ist ähnlich aber nicht exakt gleich wie die Funktion TB_VARIABLE in Map3D. TB_VARIABLE ist anders als ME_VARIABLE keine Datenbankseitige Funktion.
Mit benutzerbezogenen Variablen können Sie dem Endanwender ermöglichen zur Laufzeit Einfluss auf das Darstellungsmodell zu nehmen.
Um Benutzerbezogenen Variablen im Darstellungsmodell nutzen zu können muss die Tabelle ME_USER_VARIABLE in Kombination mit der Datenbank Funktion ME_VARIABLE und einem View verwendet werden.
Konfiguration
Erzeugen Sie in der Tabelle "ME_USER_VARIABLE" einen neuen Datensatz.
Lassen Sie das Feld "USER_NAME" leer.
Tragen Sie bei "VAR_NAME" einen sprechenden Namen für ihre Variable ein, z.B. "STRASSEN_NAME"
Geben Sie bei "VAR_VALUE" einen Default Wert ein der benutzt werden soll wenn für einen Benutzer noch kein Wert definiert ist z.B. "Ditzinger Strasse".
Aktivieren Sie bei der Datenbankverbindung die Option "Benutze Client Identifier". Wird dies nicht eingeschaltet dann liefert die Funktion "ME_VARIABLE" immer den Default Wert zurück (den wert wo USER_NAME=null ist).
Informationen dazu finden Sie für Oracle hier:
https://help.mapedit.de/admin-guide/mapedit-appbuilder/database-connections/structure/database-connection#oracle---benutze-client-identifier
für Postgres hier:
https://help.mapedit.de/admin-guide/mapedit-appbuilder/database-connections/structure/database-connection#postgres---benutze-client-identifier
Erzeugen Sie nun im AppBuilder einen View der zur Darstellung ihrer Strasse dienen soll. In diesem View kann nun die Datenbank Funktion "ME_VARIABLE" verwendet werden um den Wert des aktuellen Benutzers aus der Tabelle "ME_USER_VARIABLE" zu lesen.
Beispiel View:
select fid, geom from STRASSEN where NAME=ME_VARIABLE('STRASSEN_NAME')
ME_VARIABLE liefert immer einen Text zurück. Wenn Sie ME_VARIABLE für Zahlenwerte verwenden wollen müssen Sie diese mit TO_NUMBER in eine Zahl umwanden.
select fid, geom from STRASSEN where FID=TO_NUMBER(ME_VARIABLE('STRASSEN_FID'))
Diesen View können Sie nun in das Darstellungsmodell einbinden.
Wenn Sie den TileUpdater verwenden, dann verwendet der TileUpdater zum neu Render der Kacheln immer den Wert wo USER_NAME=null ist.
Die Funktion "ME_VARIABLE" kann nicht direkt bei den Thematischen Regel etc. benutzt werden.
Sie kann beim Darstellungsmodell nur via View benutzt werden da es sich bei den Thematischen Regeln
nicht um wirkliche Datenbank SQLs handelt sondern um Formalausdrücke.
siehe: https://help.mapedit.de/admin-guide/mapedit-appbuilder/ConditionParser
An anderen Stellen wie der Suche etc ist kein View notwendig.
Gehen Sie im AppBuilder in den Ribbon Designer und fügen Sie das Kommando "Variable Editor" hinzu.
Klicken Sie auf den Knopf "Configure".
Klicken Sie dann auf "Hinzufügen" und wählen Sie im letzten Feld (Connection) die Datenbankverbindung.
Klicken Sie dann auf ".." in der Spalte "Variable Name" und wählen den Variablennamen "STRASSEN_NAME".
Tragen Sie in der Spalte "Titel" einen für den Endanwender verständlichen Text ein, dieser wird dann über der Eingabebox angezeigt.
Schließen und speichern Sie.
Wird der Ribbon Knopf gedrückt erscheint ein Dialog in dem der Anwender den Wert der Variable ändern kann.
Sie können hier auch mehrere Variablen hinzufügen oder mehrere separate Dialoge erzeugen und diese unterschiedlich benennen.
Anwendung im Client/Professional
Starten Sie Client/Professional.
Klicken Sie auf den gerade hinzugefügten Ribbon Knopf.
Geben Sie nun den Wert ein den Sie verwenden wollen.
Der Wert wird dann in der Tabelle "ME_USER_VARIABLE" benutzerabhängig gespeichert.
Wenn Sie nun einen neuen Bildaufbau machen wird der neue Wert im View eingesetzt und die Daten entsprechend angezeigt.
Sie können wahlweise stattdessen auch einen Generischen Dialog auf die Tabelle "ME_USER_VARIABLE" erzeugen.
Die Funktion ME_VARIABLE liefert bei MapGuide/MapServer und Mobile immer den default Wert zurück der im Datensatz USER_NAME = null steht.