top of page

Lokatoren / Locators

(alle Versionen/all versions)

Montag, 13. Oktober 2025

Deutsch

Hintergrund

Suchtrennzeichen-Definition

Kundenanforderung

Basis für Artikelsuche im AppDesigner

Weitere Lokatoren als Basis für die Suche definieren

Anwendung der Lokatoren in der Belegerfassung

Wie das Sage ERP-System die SQL für die Suche zusammenbaut

Eigene Datenquelle für die Basis der Lokatoren-Suche über "Fremdtabelle"



Deutsch


Hintergrund

Schon seit der Sage 100-Versionen 8.0 gibt es sogenannte "Lokatoren".

Mit Hilfe von Lokatoren ist es für wichtige Sage Suchklassen (z.B. Artikel) möglich , bei direkten Sucheingabe gezielt in bestimmten Datenfeldern zu suchen.

Ein gutes Beispiel ist die Sage Belegerfassung und das dortige Feld "Artikelnummer".

Durch die Eingabe von "4711@E" erreicht man , dass der Sage ERP Such-Engine mitgeteilt wird , dass der Wert "4711" im Feld "EAN-Nummer" gesucht werden soll , anstatt in den Standard-Suchfeldern "Artikelnummer" und/oder "Matchcode".

Sage startet eine solche Suche , wenn das eingestellte Suchtrennzeichen (im Standard "@") in der Feldeingabe erkannt wird.


Suchtrennzeichen-Definition

Der Anwender kann das Suchtrennzeichen in den Einstellungen selber anpassen.

In den neueren Sage 100 Versionen geschieht dies über den Regiezentrum-Eintrag "Grundlagen" -> "Benutzer" -> "Einstellungen".

Im Reiter "Allgemein" stellt man das Suchtrennzeichen nach Bedarf ein.

Vorgabe des Suchtrennzeichens (pro Benutzer)
Vorgabe des Suchtrennzeichens (pro Benutzer)

Kundenanforderung

Ein Kunde hatte im konkreten Fall den Wunsch , dass in der Verkaufsbelegerfassung bei der Suche nach einem Artikel im Feld "Artikelnummer" die Suche nach dem Hersteller des Artikels , einem Mindest-Lagerbestand oder dem Vorkommen einer xRM-Objektnummer möglich sein sollte.


Basis für Artikelsuche im AppDesigner

Die Basis für die Artikelsuche im AppDesigner ist die Datenklasse "clsArtikelVarianten".

Folglich muss man sich an diese Datenklasse anhängen.

"Anhängen an" die Datenklasse "clsArtikelVarianten" , welches die Basis für die Standardsuche nach Artikeln ist
"Anhängen an" die Datenklasse "clsArtikelVarianten" , welches die Basis für die Standardsuche nach Artikeln ist

Weitere Lokatoren als Basis für die Suche definieren

Im unteren Teil der Datenklasse kann man eigene Lokatoren ergänzen.

Aufruf der Lokatoren
Aufruf der Lokatoren
Definition der Lokatoren
Definition der Lokatoren

In der SQL-"Where"-Definition greift man mittels festem Platzhalter "$[SearchValue]" auf die Eingabe des Anwenders zu.


Wie im Screenshot gut zu sehen , kann man auch eine "Fremdtabelle" bzw. "Foreign Table" einbinden , um die Datenzugriffe über die von Sage im Standard angebotenen Tabellen zu erweitern.

Dies war im vorliegenden Fall für die Kundenanforderung zwingend notwendig , da xRM-Daten abgefragt werden sollen.

Außerdem mussten die verfügbaren Lagerbestände eigens in SQL speziell errechnet werden , da bestimmte Lagerbestände berücksichtigt werden mussten. Für dieses Beispiel wurde jedoch vereinfacht das Sage Standardfeld für den Lagerbestand in der SQL-View eingebaut (siehe unten).


Es wurden in Summe drei weitere Lokatoren ergänzt , wie man im Screenshot erkennen kann:


  • "Lieferant (SAG)" über @P: Dafür wurde lediglich das Feld "Hersteller" ergänzt , welches bereits in den Tabellen enthalten ist , die im Sage Standard in der Datenklasse als Tabelle(n) eingetragen wurden.

  • "Mindestbestand (SAG)" über @Q: Je nach Komplexität kann es erforderlich sein , hier eine eigene Datenquelle anzubinden. Dies geschieht über "Fremdtabelle" (Foreign Table) , wie im Beispiel zu sehen. Idee des Kunden ist , sich auf einen Blick einen Überblick über die Lagerbestände zu verschaffen bzw. die Lagerbestände , die mindestens der Eingabe entsprechen (der Kunde arbeitet nur mit einer "überschaubaren" Menge ähnlicher Artikel im Verkaufsmandanten , die sich in einer Liste gut scrollen lassen).

  • "xRM-Objektnummer (SAG)" über @X: Dabei möchte der Kunde alle Objektnummern finden , die Artikeln in den xRM-Objekten zugeordnet wurden (der Kunde arbeitet mit sehr vielen xRM-Objekten). Auch hierfür ist der Zugriff über "Fremdtabelle" möglich. Als Besonderheit wurde hier explizit die Eingabe des Anwenders in der Lokatoren-Definition % gekapselt , für die SQL-"LIKE"-Suche , so dass auch Eingaben wie 5@X zu einem Ergebnis führen und dass der Anwender nicht jedes Mal %5@X oder *5@X eingeben muss.


Mittels "Fremdtabelle" bzw. "Foreign Table" kann man sich auch auf eine SQL-View beziehen , was wir in jedem Fall empfehlen. Die entsprechende SQL-View haben wir als Beispiel (vereinfacht) nachfolgend eingefügt.

Eine SQL-View erlaubt sehr viel mehr Feinsteuerung , eine ausführliche Dokumentation des Sachverhalts über Kommentare und bietet mehr Optimierungspotenzial für den SQL-Server.


⚠️Zu beachten ist , dass Sage die "Fremdtabelle" bzw. "Foreign Table" immer mit SQL-"Inner Join" hinzufügt. Es ergeben sich außerdem Herausforderungen bei den Feldnamen. Diesbezüglich ist es empfehlenswert , ein eigenes festes Präfix vor die Feldnamen zu setzen (im Beispiel "SAG").


Anwendung der Lokatoren in der Belegerfassung

Suche nach "Hersteller"
Suche nach "Hersteller"
Suche nach "xRM-Objektnummer (SAG)"
Suche nach "xRM-Objektnummer (SAG)"
Beispiel Lager(mindest)bestandssuche
Beispiel Lager(mindest)bestandssuche
Weiteres Beispiel für Suche nach "xRM-Objektnummer (SAG)"
Weiteres Beispiel für Suche nach "xRM-Objektnummer (SAG)"

Wie das Sage ERP-System die SQL für die Suche zusammenbaut

Die SQL , die Sage mit der eigenen Such-Engine für die Suche zusammenbaut , ist relativ komplex. Nachfolgend ein Beispiel für eine der durchgeführten Suchen des Lagerbestands.


Eigene Datenquelle für die Basis der Lokatoren-Suche über "Fremdtabelle"

Für die vorliegende Anforderung wurden alle Datenermittlungen in eine SQL-View gekapselt. Dies erleichtert die Dokumentation und Pflege beim Endkunden und außerdem stehen dadurch mehr Optimierungsmöglichkeiten für den SQL-Server zur Verfügung.

⚠️Zu beachten ist , dass Sage die "Fremdtabelle" bzw. "Foreign Table" immer mit SQL-"Inner Join" hinzufügt. Somit sind die wichtigen Schlüsselfelder "Mandant" und "Artikelnummer" in diesem Fall notwendig.





bottom of page