Benutzerwerte ( Custom Values)
Zuletzt geändert: 24.10.2025 18:02

Eigene Datenfelder zu beliebigen Datensätzen #

Zuweilen kommt der Wunsch auf, zu den einzelnen Datensätzen zusätzliche Informationen zu speichern. Grundsätzlich bieten viele Objektklassen (Adresse, Artikel, Auftrag, …) eine feste Anzahl die sog. Benutzerfelder (Siehe Benutzerfelder | Handbuch ). Wenn diese bereits belegt sind, können auf Datenbankebene die hier beschriebenen Benutzerwerte zum Verwendet werden.

[!Note] Dieses Feature ist ausschließlich in der Professional und Enterprise-Line von EULANDA verfügbar

Benutzerwerte sind ein Mechanismus zum Speichern zusätzlicher Werte (“CustomValue”) auf SQL-Ebene. Hierüber ist es möglich einfache Werte zu einem bestehenden Datensatz abzulegen ohne eigene Tabellen anlegen zu müssen. Es können Strings, Boolean und Integer gespeichert werden.

Die Werte werden aktuell nicht in der Oberfläche angezeigt, lassen sich aber über iScript entsprechend in Menüpunkten bedienen oder in ein angepasstes Kurzinfo einbinden.

Die Werte werden über einen frei definierbaren Bezeichner (@CustomValueName) abgelegt. Der Bezeichner muss dabei mit user. beginnen. Beim Setzen und Abrufen über die entsprechenden SQL-Methoden wird außerdem noch die jeweilige Objektklasse (Paramater @ObjectType) und die ID des Datensatzes benötigt. Eine Liste der unterstützten Objektklassen befindet sich am Ende dieser Seite.

Benutzerwerte müssen nicht separat initialisiert werden. Die Initialisierung erfolgt automatisch beim ersten Setzen über eine der cn_CustomVal_XXX Methoden.

Beispiel: #

-- setzt user.Farbe auf grün für Artikel mit ID 5
exec cn_CustomVal_SetVarchar 'AR', 'user.Farbe', 5, 'grün'

-- ruft die Eigenschaft user.Farbe des Artikel mit ID 5 ab
select dbo.cnf_CustomVal_Varchar('AR', 'user.Farbe', 5)

-- zeigt alle Artikelnummern mit der hinterlegten Farbe an
-- Wenn die Farbe nicht gesetzt ist, wird ein NULL-Wert zurückgegeben
select ArtNummer, dbo.cnf_CustomVal_Varchar('AR', 'user.Farbe', id) as Farbe
from dbo.Artikel

-- zeigt alle Artikelnummern mit der hinterlegten Farbe
-- aber nur, wenn auch eine Farbe gesetzt wurde
select ar.ArtNummer, 
  vals.CustomValue as Farbe
from dbo.Artikel ar
join [dbo].[cnf_CustomVal_AllVarchar]('AR', 'user.Farbe') vals
  on vals.id = ar.id

SQL-Methoden #

SQL-Objekt Typ Bedeutung
String-Werte
dbo.cn_CustomVal_SetVarchar Prozedur Setzt einen String-Wert zu einer Datensatz-ID
dbo.cnf_CustomVal_Varchar Funktion Ermittelt den String-Wert zu einer ID oder NULL, falls dieser nicht gesetzt ist
dbo.cnf_CustomVal_AllVarchar Tabellen-Funktion. gib eine Tabelle mit sämtlichen hinterlegten Werten zurück. Die Tabelle enthält die Datensatz-ID und den eigentlichen Wert. NULL-Werte werden nicht gespeichert und entsprechend hierbei nicht zurückgegeben.
Boolean-Werte (bit)
cn_CustomVal_SetBit Prozedur Setzt einen Boolean-Wert zu einer Datensatz-ID
dbo.cnf_CustomVal_Bit Funktion Ermittelt den Boolean-Wert zu einer ID. Hierbei gibt es kein NULL
dbo.cnf_CustomVal_AllBit Tabellen-Fuktion gib eine Tabelle mit sämtlichen hinterlegten Werten zurück. Die Tabelle enthält die Datensatz-ID und den eigentlichen Wert. NULL-Werte werden nicht gespeichert und entsprechend hierbei nicht zurückgegeben.
Integer-Werte
cn_CustomVal_SetInt Prozedur Setzt einen Integer-Wert zu einer Datensatz-ID
dbo.cnf_CustomVal_Int Funktion Ermittelt den Integer-Wert zu einer ID oder NULL, falls dieser nicht gesetzt ist
dbo.cnf_CustomVal_AllInt Tabellen-Fuktion - ab DB-Ver. 2025.105 Tabellenrückgabe wird bei Integer-Werten aktuell nicht unterstützt

Datentypen Kompatibilität #

Wird ein bestimmter Datentyp ungleich NULL gesetzt, so ist das Rückgabeergebnis bei Abfrage desselben Typs immer eindeutig. Wird jedoch ein anderer Datentyp abgefragt, als ursprünglich gesetzt wurde, ist das Verhalten nicht immer eindeutig und kann sich zukünftig ohne Ankündigung ändern. Folgendes Verhalten spiegelt den Stand in Datenbankversion 2025.105 wider:

Abfrage eines Boolean (dbo.cnf_CustomVal_Bit): Es wird immer 1 zurückgegeben, wenn ein Wert überhaupt vorhanden ist und 0 ansonsten. Insbesondere wird auch ein Integer mit Wert 0 oder ein Leerstring als 1 zurückgegeben. Boolean wird nie als NULL zurückgegeben.

Abfrage eines Strings ( dbo.cnf_CustomVal_Varchar): Integer werden in Text umgewandelt. True wird in 1 umgewandelt. Ein Boolean von Wert false wird intern nicht gespeichert und entsprechend wird SQL NULL zurückgegeben

Abfrage eines Integers ( dbo.cnf_CustomVal_Int): Falls möglich, wird ein Text in Integer gewandelt, wenn dies nicht möglich ist, wird NULL zurückgegeben. Boolean true wird als 1 zurückgegeben, Boolean false wird als NULL zurückgegeben, da dieser intern nicht gespeichert wird.

Unterstützte Objektklassen #

[!NOTE] Title Benutzerwerte werden nicht von Adresse in den Auftragskopf bzw. vom Artikel in die Position übernommen, wie es bei den Benutzerfeldern der Fall ist.

ObjectType Name TableName
AD Eulanda.Adresse Adresse
AN Eulanda.Angebot Angebot
ANP Eulanda.AngebotPos AngebotPos
AR Eulanda.Artikel Artikel
ARI Eulanda.ArtikelIdent ArtikelIdent
AF Eulanda.Auftrag Auftrag
AFP Eulanda.AuftragPos AuftragPos
BR Eulanda.Brief Brief
JB Eulanda.Jumbo Jumbo
CB Eulanda.KasseBeleg KasseBeleg
KT Eulanda.Kontakt Kontakt
KA Eulanda.KrArtikel KrArtikel
KF Eulanda.KrAuftrag KrAuftrag
KR Eulanda.Kreditor Kreditor
LL Eulanda.Lagerbeleg Lagerbeleg
LBS Eulanda.LagerBuchungsSatz LagerBuchungsSatz
LO Eulanda.LagerOrt LagerOrt
LP Eulanda.LagerPlatz LagerPlatz
LF Eulanda.Lieferschein Lieferschein
RE Eulanda.Rechnung Rechnung
SPM Eulanda.SepaMandat SepaMandat
SR Eulanda.ServiceArtikel ServiceArtikel
VT Eulanda.Vertreter Vertreter