OFFICIUM INSERVIO
Your reliable partner for your business software...
Lokatoren / Locators
(alle Versionen/all versions)
Montag, 13. Oktober 2025
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.

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.

Weitere Lokatoren als Basis für die Suche definieren
Im unteren Teil der Datenklasse kann man eigene Lokatoren ergänzen.


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




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.
