top of page

Sage 100 Benutzerfelder (benutzerdefinierte Felder) / User fields (user defined fields)

(alle Versionen/all versions)

Dienstag, 1. Januar 2019

Deutsch

Hintergrund

Definition der Standard Benutzerfelder

Korrektes Ausrollen/Deployment der Felder aus der Entwicklungsumgebung zu den Kunden

Erweiterung der Benutzerfeld-Klassen

Spezielle Benutzerfelder für Techpartner/Fachhändler



Deutsch

Hintergrund

In der Sage 100 gibt es schon (nahezu) von Anfang an sogenannte "Benutzerfelder" , auch mit "benutzerdefinierte Felder" oder "USER"-Felder bezeichnet.

Diese Datenfelder sind sehr wichtig im Zusammenhang mit Erweiterungen der Sage 100 und können prinzipiell über den Sage Administrator angelegt werden.


In der Praxis fallen bei Kunden und Techpartnern immer wieder Fehlinterpretationen und teils fehlendes Wissen zu diesem Thema auf.

Nachfolgend eine Übersicht der wichtigsten Hintergründe zu den Benutzerfeldern.


Definition der Standard Benutzerfelder

Benutzerfelder können sehr einfach über das Sage Administrator Tool angelegt werden.

Ansicht der Benutzerfelder im Sage Administrator Tool
Ansicht der Benutzerfelder im Sage Administrator Tool

Praxistipp: Wenig bekannt ist die Möglichkeit , im Administrator Tool mit Drag & Drop ein angelegtes Benutzerfeld sehr leicht in eine andere Klasse verschieben zu können , um es identisch auch dort anzulegen.


Benutzerfelder haben prinzipiell nachfolgenden Aufbau und Bedeutung und müssen unbedingt in der SQL-Tabelle "USysClassFields" korrekt registriert sein.


Zu beachten ist , dass der vergebene Name keinen Unterstrich _ enthalten darf , da dieser von Sage reserviert ist.

Außerdem sind die Länge des Datenfeldes und auch die Länge der Bezeichnung des Feldes beschränkt!


Für die korrekte Registrierung der "normalen" Benutzerfelder wird der weiter unten beschriebene "Assistent für Benutzerfelder" von Sage empfohlen!

Definition Sage Benutzerfeldes in der Tabelle "USysClassFields" - laut Sage SDK
Definition Sage Benutzerfeldes in der Tabelle "USysClassFields" - laut Sage SDK

Korrektes Ausrollen/Deployment der Felder aus der Entwicklungsumgebung zu den Kunden

Die Felder werden wie weiter oben erklärt über das Sage Administrator Tool angelegt.

⚠️Für das Ausrollen zum Kunden empfiehlt es sich unbedingt , den im Rahmen des Sage Developer-Programms bereitgestellten "Assistenten für Benutzerfelder" einzusetzen.

Dies ist wichtig , da es nicht mit einem simplen Erzeugen des Feldes auf der zugrundeliegenden Sage-Tabelle und einer Registrierung in der Tabelle "USysClassFields" getan ist.

Für bestimmte Benutzerfeld-Klassen muss das Feld z.B. auch in weiteren , abhängigen SQL-Tabellen angelegt werden.

Ein gutes Beispiel sind die Archiv-Tabellen der Beleg-Tabellen "KHKVKBelege" und "KHKEKBelege" und die temporären Druck-Tabellen.

Für Benutzerfelder der Klassen "Verkaufsbeleg" , "Verkaufsbelegpositionen" sowie "Einkaufsbeleg" und "Einkaufsbelegpositionen" muss das SQL-Datenfeld auch exakt identisch in diesen Tabellen angelegt werden , sonst kommt es zur Laufzeit zu Problemen.


Der "Assistenten für Benutzerfelder" wird von Sage im Rahmen des Developer-Programms als separates Setup ausgerollt und registriert sich nach Ausführung des Setups dort als Assistent.

⚠️ Das Setup wird von Sage regelmäßig aktualisiert und es sollte immer die letzte zur Sage Installation passende Version verwendet werden!

Der Sage Assistent für Benutzerfelder integriert sich als Plugin in das Sage Administrator Tool mit dieser Bezeichnung
Der Sage Assistent für Benutzerfelder integriert sich als Plugin in das Sage Administrator Tool mit dieser Bezeichnung

Die mit dem Assistenten abgerufenen Felder werden durch diesen in ein SQL-Script geschrieben , welches im Root-Ordner der Sage 100-Installation mit dem Namen "OLUpdateUserFields.upd" abgelegt wird (der Name kann beim Export angepasst werden).


Erweiterung der Benutzerfeld-Klassen

Es ist von Sage vorgesehen , dass Fachhändler auch neue Klassen für Benutzerfelder hinzufügen können.

Die Vorgehensweise findet sich in nachfolgendem Beitrag erläutert:

https://www.officium-inservio.com/sage-100-1/userfldnewclass


Spezielle Benutzerfelder für Techpartner/Fachhändler

Sage erlaubt seit bereits ungefähr 2013 die Anlage spezieller Benutzerfelder für Techpartner/Fachhändler.

Auch dieses Feature ist wenig bekannt.

Diese speziellen Benutzerfelder können z.B. vom Endkunden nicht verändert und gelöscht werden.

Dieses Feature der Benutzerfelder soll für besondere Anpassungen sicherstellen , dass der Endunde nicht z.B. versehentlich ein Feld verändert oder sogar löscht und dass es dann zur Laufzeit zu Problemen kommt.


Die Grundidee von Sage für diese speziellen Benutzerfelder ist wie folgt:


  • Felder von Partnerlösungen dürfen nicht durch den Anwender löschbar sein.

  • Namenskollisionen, auch zwischen verschiedenen Partnern, sind vollständig auszuschließen.

  • Felder sind nur sichtbar, wenn vom Partner definiert (kein Aus-/Einblenden durch Anwender).

  • Eigene Felder sollen fest positioniert sein, auch auf Standardseiten.


Technische Unterscheidung:


  • "Normale" benutzerdefinierte Felder:

USER_(Name)

  • Partnerfelder:

USER__(Zweck)_(PartnerId)_(Name)

⚠️ Man beachte den doppelten Unterstrich gegenüber dem einfachen Unterstrich! Für Zweck schlägt Sage das Kürzel "IN" für intern vor.


Es gelten weiterhin folgende Regeln:


  • Solche Felder können nicht über das Sage Administrator Tool angelegt werden.

  • Berücksichtigung der Felder beim Kopieren der Datenbank oder Mandantendaten.

  • Keine automatische Anzeige in Control-Center-Elementen und neuen Bildschirmauskünften.

  • Bei Feldanlage via DB-Skripte ist der Eintrag in der Tabelle "USysClassFields" notwendig. Dies ermöglicht später die Platzierung der Felder über den Administrator im Formularlayout.




bottom of page