CURSOR-Geoanalyse (Freischaltung und Konfiguration)
Voraussetzungen
Zur Einrichtung und Freischaltung der Geoanalyse sind folgende Schritte notwendig:
Einspielen der Geoanalyse-Lizenz in der Moduldatei
Freischaltung der in der Geoanalyse zu betrachtenden Entitäten über die Entitätenkonfiguration
Erstellung der Views über entsprechende SQL-Statements
Anlage der Geometadaten für die Attribute
Selbstverständlich müssen zur Nutzung der Geoanalyse die Adressen im CRM-System Geocodes (Längen-/Breitengrad) besitzen. Dafür existieren entsprechende C0-Prozesse in der Anwendung.
Freischaltung von URLs
Bei der Nutzung der Geocodierung und der Geoanalyse mit dem nicht-öffentlichen Nominatim-Dienst müssen die folgenden URLs vom System aufrufbar sein und ggf. kundenseitig für den Proxy sowie die Firewall freigeschaltet werden:
URL für die Routenoptimerung
URL für den Geocodierungsdienst
URL für das Kartenmaterial
Freischaltung des Moduls 'Geoanalyse'
Einspielen der Lizenzen
In der Administrationskonsole den Bereich Module wählen und über den Schalter Lizenzen importieren die XML-Dateien der Lizenzen auswählen.
Zur Nutzung der Geoanalyse müssen in Versionen < 18.2 beide Lizenzen (Professional und Business) freigeschaltet sein.
Dies ist ab der Version 18.2 und höher nicht mehr notwendig. Hier existiert ausschließlich die Professional-Lizenz.
Im Folgeschritt müssen den entsprechenden Benutzern die Lizenzen zugewiesen werden.
Freischaltung einer Entität für die Geoanalyse
Hier erfolgt die Freischaltung exemplarisch für den Geschäftspartner. Über die Administrationskonsole den Punkt Entitätenkonfiguration bearbeiten öffnen. Über den Schalter Entitätseigenschaften öffnet sich der entsprechende Dialog.
Erstellung der Views
Für die Erstellung der Geo-Tabelle, aus der die Geoanalyse ihre Informationen enthält, ist pro betrachteter Entität eine View erforderlich. Dies kann entweder über die Datenbank oder das CRM-System erfolgen. Dazu muss in der Administrationskonsole der Bereich SQL-Statements aufgerufen werden (falls dieser nicht sichtbar ist, existiert dort ein Aktionsrecht. Um den Eintrag sehen zu können, muss man hierfür Schreibrechte besitzen!).
Pro in der Geoanalyse zu betrachtender Entität muss jeweils eine View generiert werden. Hier wurde das beispielhaft für den Geschäftspartner auf einer Oracle-Datenbank durchgeführt. Die View heißt geo_cu. Als Namenskonvention wird der Shortcut einer Entität anstelle des * in geo_* verwendet. So lautet der Name einer View in der Geoanalyse für die Anschlussobjekte (Location) beispielsweise geo_lo
.
Beispiel für: create view geo_cu (Oracle DB und MS SQL)
CREATE view geo_cu AS
Select Customer0.Pk AS Pk,
Customer0.MatchCode AS DisplayName,
Customer0.MatchCode AS MatchCode,
Customer0.Name1 AS Name1,
Customer0.Name2 AS Name2,
Customer0.Name3 AS Name3,
Address2.Street AS Street,
Address2.StreetNumber AS StreetNumber,
Address2.ZIPKey AS ZIPKey,
Address2.City AS City,
(SELECT Country FROM Country WHERE Pk = Address2.CountryKey) AS Country,
(SELECT p.Name1 + ', ' + p.Name2 FROM Person p, Employee e WHERE p.Pk = e.personPk AND e.Pk = Customer0.EmployeeSales) AS EmployeeSales,
(SELECT p.Name1 + ', ' + p.Name2 FROM Person p, Employee e WHERE p.Pk = e.personPk AND e.Pk = Customer0.EmployeeOffice) AS EmployeeOffice,
(SELECT Displayname FROM S_Keytab WHERE Pk = Customer0.CustTypeKey) AS CustTypeKey,
(SELECT Keyname + ' - ' + Displayname FROM S_Keytab WHERE Pk = Customer0.TradeKey) AS TradeKey,
Address2.Lng AS Lng,
Address2.Lat AS Lat,
Customer0.Active AS Active,
Customer0.CreateDate AS CreateDate,
Customer0.CreateUser AS CreateUser,
Customer0.UpdateDate AS UpdateDate,
Customer0.UpdateUser AS UpdateUser
FROM
rCuAd rCuAd2,
Address Address2,
Person Person1,
Customer Customer0
WHERE
Customer0.Active = 1 AND
Address2.Active = 1 AND
Address2.AddressType != 'pobox' AND
rCuAd2.DefaultCuAd = 1 AND
Customer0.PersonPk = Person1.Pk AND
Customer0.pk = rCuAd2.Masterpk AND
Address2.pk = rCuAd2.Slavepk AND
rCuAd2.Active= 1 AND
Address2.Lat IS NOT NULL AND
Address2.Lng IS NOT NULL
Bei diesem Statement stellen der komplette FROM- und WHERE-Part das Minimum dar, zwingend müssen außerdem die Adressfelder (Street, StreetNumber, ZIPKey, City, Lng, Lat) selektiert werden, da diese für die Anzeige der Adresse im zwingend Detaildialog benötigt werden. Ihre Benamung als Attribute in den Geometadaten muss analog zum Namen der Adressfelder auf der Datenbank erfolgen.
Ebenso muss mindestens ein Attribut als DisplayName definiert werden. Dieses wird in der Geoanalyse zusammen mit den Adressinformationen in der Detailbox eines auf der Karte dargestellten Pins und an weiteren wichtigen Stellen (Tooltip von Pins, Auflistung von Einträgen in der Selektionsliste) verwendet. Für den Geschäftspartner kann wie im obigen Beispiel redundant der Kurzname verwendet werden.
Beispiel für: create view geo_lo (Oracle DB und MS SQL)
CREATE view geo_lo AS
Select Location0.Pk AS Pk,
Location0.ReferenceNumber AS DisplayName,
Location0.ReferenceNumber AS LocationNo,
(SELECT Displayname FROM S_Keytab WHERE Pk = Location0.RegionKey) AS RegionKey,
Address2.Street AS Street,
Address2.StreetNumber AS StreetNumber,
Address2.ZIPKey AS ZIPKey,
Address2.City AS City,
SUBSTRING(Address2.ZIPKey, 1,1) AS PLZ1,
(SELECT Country FROM Country WHERE Pk = Address2.CountryKey) AS Country,
(SELECT p.Name1 + ', ' + p.Name2 FROM Person p, Employee e WHERE p.Pk = e.personPk AND e.Pk = Location0.EmployeeTechnics) AS EmployeeTechnics,
(SELECT p.Name1 + ', ' + p.Name2 FROM Person p, Employee e WHERE p.Pk = e.personPk AND e.Pk = Location0.EmployeeOffice) AS EmployeeOffice,
Address2.Lng AS Lng,
Address2.Lat AS Lat,
Location0.Active AS Active,
Location0.CreateDate AS CreateDate,
Location0.CreateUser AS CreateUser,
Location0.UpdateDate AS UpdateDate,
Location0.UpdateUser AS UpdateUser
FROM
Address Address2,
Location Location0
WHERE
Location0.Active = 1 AND
Address2.Active = 1 AND
Address2.AddressType != 'pobox' AND
Location0.pk = Address2.LocationPk AND
Address2.IsDefault = 1 AND
Address2.Lat IS NOT NULL AND
Address2.Lng IS NOT NULL
Pflege der Geometadata
Über das Menü Administration wird der Punkt Geometadata geöffnet. Hier erscheint die Standardsuche der Geometadata-Entität. Über den Schalter Neu können die Geometadata-Einträge im System gepflegt werden. Hier besteht eine Anbindung an den Customizing-Transport, d.h. bei aktiviertem Customizingtransport erfolgt eine Abfrage zur Zuordnung eines Customizing-Pakets. Nach Abschluss der Pflege der Geometadata-Einträge kann ein Transport der Konfigurationsdaten in das Zielsystem erfolgen.
Für jede in den Geo-Tabellen vorhandenen Spalte (mit Ausnahme der TableTail-Felder Anlage-/Updatedatum, Anlage-/Updateuser und Datensatzstatus) muss ein Attribut in der Geometadata angelegt werden. Entsprechend dem oben verwendeten Statement müssen also mindestens die folgenden Attribute angelegt werden:
Pk
DisplayName
MatchCode
Name1
Name2
Name3
Street
StreetNumber
ZIPKey
City
Country
Lng
Lat
Weiterhin empfiehlt sich die Internationalisierung der Attribute über die Geometadaten-Internationalisierung im Unterbereich.
Attribute
Ein Attribut meint vereinfacht ausgedrückt jeweils einen Spaltennamen in einer geo_*-Tabelle.
Im Folgenden Beispiel wird die Anlage einer Geometadata anhand des Kurznamens eines Geschäftspartners erläutert. Der Name der Spalte in der Tabelle geo_cu, welche die für die Geoanalyse relevanten Geschäftspartnerinfomationen bereithält, lautet in diesem Beispiel "MatchCode".
Feld | Erläuterung |
---|---|
Attribut | Name des Attributs in der Geo-Tabelle |
Tabelle | Interner Name der Entität, auf der die Geotabelle basiert |
Gruppe | Technischer Name der Gruppe, in welcher das Attribut in der Geoanalyse auswählbar sein soll |
Anzeigen in Detaildialog | Ist der Haken gesetzt, wird das Attribut im Detaildialog zu einem Pin angezeigt |
Anzeigen in Attributsauswahl | Ist der Haken gesetzt, steht das Attribut in der Auswahlbox zur Verfügung |
Geometadata-Internationalisierung
Des Weiteren kann nach der Anlage eines Geometa-Datensatzes pro Attribut eine Internationalisierung von Attributen vorgenommen werden. Dies erfolgt über den Unterbereich Geometadata-Internationalisierung. Über die Neuanlage können für die Attribute Bezeichnungen in unterschiedlichen Sprachen hinterlegt werden.
Anlage von Gruppen und Gruppierung von Attributen
Die Anlage einer Gruppe in der Geometadata erfolgt nach demselben Prinzip wie die Anlage und Pflege eines Attributs - mit dem Unterschied, dass das Feld Attribut leer bleibt. Das nachfolgende Beispiel zeigt die Erstellung einer Gruppe "general".
Um ein Attribut an der Oberfläche der Geoanalyse in einer bestimmten Gruppe erscheinen zu lassen, wird der technische Name der Gruppe in dem Feld "Gruppe" im entsprechenden Geometadata-Datensatz des Attributs eingetragen.
Internationalisierung von Attributsgruppen
Eine Gruppe kann analog zu einem Attribut über den Unterbereich Geometadata-Internationalisierung mehrsprachig hinterlegt werden.
Bedingte Attributwerte
Über den Unterbereich von Attributen können bedingte Attributswerte gepflegt werden. Ein solches Attribut existiert selbst nicht als Spalte in der generierten View. Stattdessen lädt der Geoanalyse-Javascript-Client diese Metadaten inklusive der Infos der Bedingten Attributswerte und berechnet aufgrund der angehängten Bedingungen den anzuzeigenden Wert. Dieser ist auch beliebig über den Unterbereich internationalisierbar. Die Bedingungen lassen sich mit eingeschränkten Mitteln gestalten und sind erstmal nur über UND verknüpft. Bei Bedarf könnte eine ODER-Verknüpfung realisiert werden.
Der Operator/Komparator ist ein Nachschlageschlüssel mit den möglichen Werten
IN
NOT_IN
EQUAL
NOT_EQUAL
EMPTY
NOT_EMPTY
Der Feldname bzw. Attributname ist der Name des zu vergleichenden Attributes, wie er in den Metadaten angeben ist. Als Vergleichswert lassen sich USER_GROUPS (Liste der Benutzergruppen-Namen, denen der User zugeordnet ist) und USER (Kürzel oder Pk des aktuellen Users) oder nichts (bei Operator EMPTY/NOT_EMPTY) wählen.
Beispiel 1 - Vergleich mit der UserGroup
In diesem Beispiel sind unsere Geschäftspartner über ein Nachschlagefeld auf der Geschäftspartnermaske einer bestimmten Vertriebsgruppe zugeordnet.
Als Anwender, der die Geoanalyse nutzt, möchte ich sehen können, welche Geschäftspartner einer Vertriebsgruppe zugeordnet sind, die ebenfalls meinem Mitarbeiterdatensatz zugeordnet ist.
Hierfür muss im SQL-Statement zur Generierung der geo_cu-Tabelle das Feld des Customers, welche die besagte Vertriebsgruppe enthält, ebenfalls als Attribut aufgenommen werden, um später einen Feldvergleich damit durchführen zu können.
Beispiel für DB Oracle Quelle erweitern
Der SalesGroupPk muss an der Oberfläche der Geoanalyse nicht zum Tragen kommen.
Um die Vertriebsgruppenzuordnung in der Geoanalyse sichtbar zu machen, wird nun ein Bedingter Attributwert erstellt. Dies erfolgt - wie für alle Attribute - über die Geometadaten. Für Bedingte Attributwerte kann ebenfalls eine Gruppe, in der das besagte Attribut später auswählbar sein soll, zugeordnet werden.
Analog zu "herkömmlichen" Attributen können die Bedingten Attribute über den Unterbereich "Geometadaten-Internationalisierung" internationalisiert werden. In diesem Beispiel lautet folglich die Internationalisierung für das Attribut "CustomerGroupRelation" auf Deutsch "Gruppenzuordnung".
Über den Unterbereich "Bedingte Attributwerte" werden nun die Bedingten Attributwerte durch eine Neuanlage erzeugt. Diese stellen quasi die Ausprägungen dar, welche unser Attribut "Gruppenzuordnung" (CustomerGroupRelation) annehmen kann. Im Feld "Wert" kann pro Attributsausprägung ein beliebiger Name vergeben werden.
Umlaute oder Leerzeichen sollen vermieden werden.
In unserem Beispiel kann das Attribut "Gruppenzuordnung" drei verschiedene Ausprägungen annehmen: IN_NO_GROUP, IN_OTHER_GROUP, IN_MY_GROUP.
Im nächsten Schritt werden pro Attributsausprägung die jeweiligen Bedingungen hinterlegt, welche erfüllt sein müssen, damit ein Marker auf der Karte in eine unserer Attributsausprägungen einsortiert wird. Die Anlage einer Bedingung zu einem Bedingten Attributwert erfolgt über den Unterbereich "Bedingung" des jeweiligen Bedingten Attributwerts.
Nachfolgend wird dies beispielhaft für den Bedingten Attributwert "IN_NO_GROUP" gezeigt:
Ergebnis: Wenn der SalesGroupPk in der Tabelle geo_cu leer ist, landet der Geschäftspartner beim Betrachten des Attribtus "Gruppenzuordnung" in der Klasse "IN_NO_GROUP".
Für den Bedingten Attributwert "IN_MY_GROUP" sieht die Bedingung zum Beispiel so aus:
Letztendlich sollte noch jedes Bedingte Attributwert über den Unterbereich "Bedingter Attributwert - Internationalisierung" internationalisiert werden, da sonst der interne Name (IN_NO_GROUP, IN_MY_GROUP, etc.) an der Oberfläche der Geoanalyse angezeigt wird.
Die Hierarchie der gesamten Konfigurationsdaten für die Anzeige des Attributs "Gruppenzuordnung" und seiner Ausprägungen sieht für das gezeigte Beispiel wie folgt aus:
Standort
Für die Durchführung der Umkreissuche oder die Ermittlung der optimalen Route für eine Rundreise in der Geoanalyse muss dem System der eigene Standort bekannt sein. Beim Start der Umkreissuche im Web Client erfolgt eine automatische Freigabeanfrage des Browsers an den Anwender. Im Rich Client ist dies nicht möglich. Hier kann der Standort über Klick auf das entsprechende Icon gesetzt werden. Dabei erscheint der Cursor als blauer Punkt, der an einer beliebigen Stelle der Karte platziert werden kann.
Umkreissuche
Um die Umkreissuche der Geoanalyse nutzen zu können, muss dem System der eigene Standort bekannt sein. Im Web Client kann dies durch die Freigabe der Standortabfrage des Browsers erfolgen. Im Rich Client erfolgt dies durch das entsprechende Icon in der Werkzeug-Leiste.
Bei Ausführung der Umkreissuche wird zunächst ein Kreis mit einem Radius von 50km um den eigenen Standort gezogen. Darin enthaltene Marker sind automatisch selektiert und werden in der Liste der ausgewählten Adressen aufgelistet. Der Radius des Umkreises ist am unteren rechten Bildschirmrand ersichtlich. Außerhalb des Kreises liegende Marker werden transparent dargestellt. Über den Plus- und Minus-Button in der Werkzeugleiste kann der Radius des Umkreises in Schritten von 50km vergrößert, bzw. verkleinert, werden.
Hinweis
Es werden nur Marker von Datensätzen in der Umkreissuche erfasst, die zuvor in der Suche/Listenansicht an die Geoanalyse übergeben wurden.
Die Umkreissuche kann über einen erneuten Klick auf das Icon der Umkreissuche verlassen werden.
Selektion von Markern auf der Karte
Marker auf der Karte können über zwei Wege selektiert werden:
Massenselektion (Rechteck oder Polygonzug) /
Einzelselektion
Beide Tools befinden sich in der Werkzeugleiste. Selektierte Marker erhalten ein "Häkchen"-Symbol und erscheinen in der Liste der ausgewählten Adressen.
Über das Einzelselektionstool können selektierte Marker mit erneutem Klick aus der Selektion entfernt werden. Zudem ist es möglich, einzelne Adressen aus der Auswahlliste über einen Klick auf das hinter dem Anzeigenamen befindliche Schließen-Symbol zu entfernen.
Routenoptimierung
Eine Routenoptimierung wird auf Adressen, die sich in der Auswahlliste befinden angewendet. Mit Klick auf das Kompass-Symbol am oberen rechten Rand der Auswahlbox wird die optimale Rundroute ermittelt. Die Wegbeschreibung wird am rechten Bildschirmrand angezeigt.
Bei der Ermittlung der Routenoptierung kann der eigene Standort miteinbezogen werden, indem dieser vor deren Ausführung über das entsprechende Tool auf der Karte gesetzt wird.
Download der Wegbeschreibung als gpx-Datei
Über einen Klick auf das entsprechende Symbol in der Anzeige der Wegbeschreibung als gpx-Datei heruntergeladen und im Nachgang beispielsweise an ein Navigationsgerät oder Smartphone gesendet werden.
Öffnen der selektierten Datensätze in einer neuen Ebene
Die selektierten Datensätze können über das Icon in der Liste der ausgewählten Adressen in einer neuen Ebene im CRM geöffnet werden. Diese Datensätze können dann beispielsweise zur weiteren Verarbeitung an einen BPM-Prozess übergeben werden.
Anzeigename bei Mouse-over
Beim Mouse-over einen Marker wird der in der Geo-Tabelle definierte Anzeigename des dahinterliegenden Datensatzes angezeigt.
Verwendung des neuen OSM-Kartenmaterials
Um das neue OSM-Kartenmaterial zu verwenden, muss die Globale Variable "Geoanalysis_MapProvider" in der Administrationskonsole wie folgt angepasst werden:
Wert: CURSOR oder Leerstring
Soll das Kartenmaterial von dem öffentlichen OSM-Server bezogen werden (nicht zu empfehlen), ist hier der Wert "OSM" einzutragen.
Verwendung des Geocodierungsdienstes
Globale Variable C0Geokodierung_NominatimBaseUrl
soll entsprechend definiert werden.