Benutzerdefinierte Felder, Tabellen, Objekte und Werte anpassen

Objective

After completing this lesson, you will be able to nutzen Sie die Funktionen des Customizings von UDFs, UDTs, UDOs und UDVs.

Benutzerdefinierte Felder

Geschäftsszenario

Stammdaten und Belegen werden häufig zusätzliche Felder hinzugefügt, um den Geschäftsprozess eines Kunden zu implementieren. Im Folgenden finden Sie zwei Geschäftsanforderungen, die mit benutzerdefinierten Feldern implementiert werden können.

  • Für jeden Kunden muss eine Statusstufe verfolgt werden: Gold, Silber und Bronze. Sie können den Kundenstammdaten ein benutzerdefiniertes Feld hinzufügen, um den Statuswert zu speichern und zu verfolgen.
  • Darüber hinaus muss der Verkäufer bei der Bearbeitung eines Kundenauftrags die bevorzugten Lieferanweisungen des Kunden erfassen. Sie können dem Kundenauftragsbeleg ein benutzerdefiniertes Feld hinzufügen und die Lieferanweisungen in diesem Feld erfassen.

Benutzerdefinierte Felder hinzufügen

Hier erfahren Sie, wie Sie benutzerdefinierte Felder hinzufügen.

Benutzerdefinierte Felder

  • Sie können den meisten Business-Objekten, einschließlich Geschäftspartner- und Artikelstammdaten sowie Belegen, neue Felder hinzufügen. Diese Felder werden in der Datenbank und Tabelle des Business-Objekts gespeichert.
  • Nur berechtigte Benutzer können benutzerdefinierte Felder hinzufügen. Die allgemeine Berechtigung lautet Anpassungstools > Benutzerdefinierte Felder - Verwaltung.

Belegzeilen- und -kopffelder

  • Sie können Felder sowohl zum Kopfbereich als auch zu den Zeilen von Belegen hinzufügen.
  • Wenn Sie dem Belegobjekt ein benutzerdefiniertes Feld hinzufügen, wird das neue Feld allen Logistikbelegarten hinzugefügt, einschließlich aller Verkaufs- und Einkaufsbelegarten sowie einigen Bestandsbelegen wie Wareneingang und Warenausgang.

Benutzerdefinierte Felder - Kopfebene

  • Wenn Sie benutzerdefinierte Felder (UDFs) auf Kopfebene hinzufügen, werden die neuen Felder in einem separaten Fenster angezeigt, das standardmäßig rechts neben dem vorhandenen Belegfenster positioniert ist.
  • Dieses Fenster ist nicht sofort sichtbar. Um dieses Fenster zu öffnen, wählen Sie in der oberen Menüleiste Ansicht > Benutzerdefinierte Felder, oder verwenden Sie die Tastenfolge Strg+Umschalt+U. Sie können dieses Fenster links oder unten im vorhandenen Fenster neu positionieren.
  • UDFs, die dem Kopf hinzugefügt wurden, können bearbeitet werden, nachdem der Beleg hinzugefügt wurde.
  • Wenn die benutzerdefinierten Felder nicht in einem Beleg verwendet werden, kann das neue Fenster geschlossen bleiben.

Benutzerdefinierte Felder verschieben - Kopfebene

  • Berechtigte Benutzer können die Funktion Werkzeuge > Formular-UI bearbeiten verwenden, um relevante benutzerdefinierte Felder aus dem Seitenfenster in den Hauptformularbereich zu ziehen und so auf das Seitenfenster zu verzichten.
  • Berechtigte Benutzer können diese Änderung nur für ihre eigene Verwendung oder für andere Benutzer vornehmen, indem sie eine UI-Konfigurationsvorlage anlegen. Wählen Sie in der UI-Konfigurationsvorlage das Formular aus, dem die benutzerdefinierten Felder hinzugefügt wurden, und ziehen Sie die Felder an die gewünschte Position. Die Vorlage kann dann Benutzern zugeordnet werden. Weitere Informationen zu UI-Konfigurationsvorlagen finden Sie im Kurs UI-Konfigurationsvorlagen im Kapitel Systemeinrichtung und Administration.

Einstellungen für benutzerdefinierte Felder

  • Wenn Sie benutzerdefinierte Felder im Seitenfenster beibehalten möchten, können Sie diese über das Einstellungsfenster verwalten. Das Einstellungsfenster unterscheidet sich vom Standardfenster für Formulareinstellungen, funktioniert aber ähnlich. Um das Einstellungsfenster für benutzerdefinierte Felder zu öffnen, drücken Sie Strg+Umschalt+B, oder wählen Sie Extras > Anpassungstools > Einstellungen. Das Menü wird nur aktiv angezeigt, wenn Sie ein Formular mit benutzerdefinierten Feldern auswählen.
  • Der Benutzer kann die benutzerdefinierten Felder im Seitenfenster für benutzerdefinierte Felder sichtbar oder unsichtbar und aktiv oder inaktiv machen. Sie können z.B. alle für einen Kundenauftrag relevanten Felder in einer Bestellung unsichtbar machen.
  • Es gibt auch die Möglichkeit, neue Kategorien zu definieren, um zugehörige Felder zu gruppieren und nur die Felder für eine Kategorie anzuzeigen.

UDF-Werte in Belegen kopieren

  • Wenn Sie die Funktion Kopieren nach/Kopieren von verwenden, um einen neuen Beleg aus einem Basisbeleg zu generieren, wird der Wert eines benutzerdefinierten Felds in den Zielbeleg übertragen. Dies gilt auch für Belege, die über den Belegerstellungsassistenten generiert wurden.
  • Wenn mehrere Basisbelege in einen Zielbeleg kopiert werden und das benutzerdefinierte Feld in diesen Basisbelegen unterschiedliche Werte hat, wird der Feldwert nicht kopiert.

Benutzerdefinierte Felder - Zeilenebene

  • Wenn Sie ein Feld auf Zeilenebene hinzufügen, fügt das System dieses Feld als zusätzliche Spalte in der Zeile hinzu. Das Feld ist standardmäßig sichtbar und aktiv.
  • Sie können diese Einstellungen ändern oder das Feld mithilfe der Standardformulareinstellungen an eine neue Position in der Zeile verschieben.

Benutzerdefinierte Felder auf Zeilenebene bearbeiten

  • UDFs auf Zeilenebene verhalten sich wie Systemspalten. Dies ist z.B. der Fall, wenn ein Kundenauftrag offen ist und Zeilen aktualisiert werden können. Dies gilt auch für die benutzerdefinierten Felder. Sobald der Auftrag geschlossen wurde, werden auch die benutzerdefinierten Felder gesperrt.
  • Sie können das Bearbeiten von benutzerdefinierten Feldern auf Zeilenebene unter Administration → Systeminitialisierung → Belegeinstellungen → Pro Beleg zulassen.
  • Darüber hinaus können Sie die allgemeine Berechtigung verwenden, um festzulegen, welcher Benutzer UDFs auf Zeilenebene in den Verkaufs- und Einkaufsmodulen bearbeiten kann.

Eigenschaften und Struktur von benutzerdefinierten Feldern

  • Benutzerdefinierte Felder werden der entsprechenden Datenbanktabelle für das Objekt hinzugefügt. Sie können in der Tabelle schnell identifiziert werden, da sie das Präfix "U_" haben. Im Folienbeispiel sehen Sie zwei neue Felder, die der Auftragszeilentabelle RDR1 hinzugefügt wurden.
  • Benutzerdefinierte Felder bleiben beim Upgrade auf ein neues Release erhalten. Wenn Sie eine neue Firma anlegen, haben Sie die Möglichkeit, benutzerdefinierte Felder aus der aktuellen Firma in die neue Firma zu kopieren.
  • Ein wichtiger Punkt zu benutzerdefinierten Feldern ist, dass beim Hinzufügen eines neuen Felds zu einem Objekt das neue Feld zu allen Instanzen des Objekts hinzugefügt wird, einschließlich der Datensätze, die bereits in der Datenbank gesichert wurden.
  • UDFs fungieren als normale Felder und können daher in Abfragen und Berichten verwendet werden.
  • Sie können Daten auch mit der Datenübernahme-Workbench in benutzerdefinierte Felder importieren. Fügen Sie in der DTW-Vorlage diese Felder einfach am Ende der Tabellenkalkulation hinzu. Geben Sie den Namen des Felds in der Kopfzeile ein, und geben Sie den Wert wie für ein Standardfeld ein.
  • Beachten Sie, dass die Datenbankstruktur aktualisiert wird, wenn Sie ein benutzerdefiniertes Feld hinzufügen. Daher sollten Sie nur dann neue Felder hinzufügen, wenn keine anderen Benutzer angemeldet sind.
  • Wenn Sie versuchen, ein neues Feld hinzuzufügen, warnt Sie das System, wenn angemeldete Benutzer vorhanden sind. Sie haben folgende Möglichkeiten:
    • Erneut versuchen – Sie können die Benutzer benachrichtigen, dass sie ihre Arbeit geschlossen haben, und warten, bis sie sich vom System abgemeldet haben.
    • Ignorieren - Das System erzwingt das Schließen aller offenen Belege für alle verbundenen Benutzer.

Typ und Struktur

  • Wenn Sie ein benutzerdefiniertes Feld anlegen, können Sie für jedes benutzerdefinierte Feld einen Typ und optional eine Struktur auswählen.
  • Die Struktur ist vom Typ abhängig und beeinflusst das Format des Felds.
  • Beachten Sie, dass Sie den Typ und die Struktur nicht mehr ändern können, nachdem Sie das Feld zur Datenbank hinzugefügt haben. Wenn Sie irrtümlich den falschen Typ oder die falsche Struktur wählen, können Sie das Feld entfernen und von vorne beginnen.

Felder vom Typ Alphanumerisch können eine der hier gezeigten Strukturen haben. Eine reguläre Struktur kann bis zu 254 Zeichen lang sein. Eine Textstruktur kann 2 GB Text in Kopffeldern und 255 KB Text in Zeilenfeldern enthalten.

Felder vom Typ Numerisch können nur ganze Zahlen enthalten. Daher gibt es keine Struktur.

  • Felder, die mit dem Typ Datum/Uhrzeit ausgewählt wurden, können Datum oder Stunde als Struktur haben.
  • Diese Felder verhalten sich genauso wie andere Datums- und Zeitfelder im System, z.B. ist das Kalendersymbol in einem Feld mit der Datumsstruktur verfügbar.
  • Um Bruchzahlen und ganze Zahlen in das neue Feld einzugeben, verwenden Sie den Typ Einheiten und Summen, und wählen Sie eine der hier angezeigten Strukturen aus.
  • Die Dezimalstellen werden im neuen Feld gemäß den Initialisierungseinstellungen auf der Registerkarte Anzeige der allgemeinen Einstellungen angezeigt.
  • Wenn Sie den Typ Allgemein auswählen, kann das neue Feld Links oder Grafiken enthalten.
    • Felder mit der Struktur Link können auf eine Datei oder eine Web-Adresse verweisen. Sie müssen zunächst den Standardpfad zum Ordner Anhänge definieren. Dies erfolgt in den Allgemeinen Einstellungen. Dieser Standardpfad wird geöffnet, wenn der Benutzer auf das neue Feld doppelklickt. Der Benutzer kann entweder eine Datei aus dem Standardordner auswählen oder eine Webadresse anstelle des Dateinamens eingeben.
    • Felder mit der Struktur Bild können Bilder aufnehmen. Sie müssen zunächst den Standardpfad zum Ordner Bilder in den allgemeinen Einstellungen definieren. Wenn dieser Standardpfad nicht definiert ist, tritt ein Fehler auf, wenn das Bildfeld verwendet wird. Wenn der Benutzer auf das Bildfeld doppelklickt, wird der Standardordner geöffnet, in dem er eine Bilddatei auswählen kann. Der Benutzer kann dann in einen anderen Ordner wechseln, um das Bild zu finden.
  • Der Benutzer kann jederzeit ein Bild oder eine Webadresse ändern, indem er die Strg-Taste drückt und auf das Bild oder die Webadresse doppelklickt.

Validierungsoptionen

Neben dem Typ und der Struktur für ein benutzerdefiniertes Feld haben Sie die Möglichkeit, Validierungsoptionen anzugeben.

  • Mit der Option Mit Entitäten verknüpft können Sie eine direkte Verknüpfung zwischen einem benutzerdefinierten Feld in einem Formular und einem Systemobjekt, einer benutzerdefinierten Tabelle oder einem benutzerdefinierten Objekt einrichten. Im Beispiel haben wir ein benutzerdefiniertes Feld im Servicevertragsformular mit dem Ausgangsrechnungsobjekt verknüpft.
  • Die Verknüpfung wird tatsächlich von dem Benutzer hergestellt, der das Formular erstellt. Im benutzerdefinierten Feld wird dem Benutzer alle Instanzen des ausgewählten Objekts angezeigt, und er kann eine Instanz auswählen, um die direkte Verknüpfung anzulegen. Wenn Sie beispielsweise einen Servicevertrag für den Kunden C40000 anlegen, kann der Benutzer die von diesem Kunden bezahlte Rechnung für die Serviceposition auswählen. Nachdem der Link hergestellt wurde, kann der Benutzer die Ausgangsrechnung direkt über das benutzerdefinierte Feld öffnen.
  • Beachten Sie, dass der Benutzer die richtige Instanz auswählen muss, da das System alle Zeilen anzeigt, die in der Datenbank für das ausgewählte Objekt gespeichert sind.
  • Wenn gültige Werte ausgewählt werden, können Sie eine Liste möglicher Werte für das benutzerdefinierte Feld definieren. Diese Definition erfolgt, wenn Sie das benutzerdefinierte Feld hinzufügen.
  • Im Beispiel sehen Sie, dass es drei mögliche Werte für das Feld gibt: Silber, Gold und Platin.
  • Diese Liste ist im Dokument als Dropdown-Liste verfügbar, sodass der Benutzer einen der Werte auswählen kann.
  • Der Benutzer kann die Werte in der Liste nicht aktualisieren. Die Listenwerte können nur vom berechtigten Benutzer im Fenster Benutzerdefinierte Felder - Verwaltung aktualisiert werden.
  • Wenn die Option Erweitert ausgewählt ist, können Sie einige einfache Validierungsregeln festlegen, wenn der Benutzer Daten in das benutzerdefinierte Feld eingibt.
  • Die Validierungsregeln gelten für alle UDF-Typen mit Ausnahme des Typs Allgemein.
  • Die Validierungssteuerungen variieren je nach Typ und Struktur der benutzerdefinierten Felder. Beispielsweise können die Regeln für den alphanumerischen Typ prüfen, welche Zeichen der Benutzer in das Feld eingeben kann und wie viele Zeichen er eingeben kann. Für Einheiten und Summen können die Regeln prüfen, ob der eingegebene Betrag in einem bestimmten Bereich liegt.
  • Mit anderen Regeln können Sie überprüfen, ob der eingegebene Wert gleich, kleiner oder größer als ein Wert ist, der beim Hinzufügen des benutzerdefinierten Felds eingegeben wurde.

Benutzerdefiniertes Feld mit benutzerdefinierten Werten hinzugefügt

  • Eine flexible Möglichkeit, ein benutzerdefiniertes Feld zu verwenden, besteht darin, eine Abfrage mithilfe benutzerdefinierter Werte mit dem Feld zu verknüpfen.
  • Die Abfrage kann den Feldwert basierend auf dem Ergebnis der Abfrage automatisch füllen.
  • Im gezeigten Beispiel wird eine Abfrage zu einem benutzerdefinierten Feld im Kopf eines Kundenauftrags hinzugefügt. Die Abfrage ruft den Kontostand des Kunden aus der Geschäftspartner-Stammdatentabelle OCRD ab. Die Abfrage wird automatisch ausgeführt, wenn der Benutzer beim ersten Anlegen des Kundenauftrags den Kundencode auswählt.
  • Die Funktion für benutzerdefinierte Werte wird im Begleitkurs Benutzerdefinierte Werte behandelt.

Standard- und Mussfelder

  • Optional können Sie einen Standardwert für jedes benutzerdefinierte Feld festlegen.
  • Im Beispiel haben wir eine Standardzeit aus der Liste der gültigen Werte ausgewählt.
  • Der für ein Feld festgelegte Standardwert wird in allen neuen Instanzen des Objekts angezeigt.
  • Optional können Sie das benutzerdefinierte Feld als obligatorisch festlegen. Der Benutzer kann keinen neuen Datensatz hinzufügen, ohne Daten in das Mussfeld einzugeben.
  • Wenn Sie ein benutzerdefiniertes Feld als obligatorisch festlegen, müssen Sie zunächst einen Standardwert angeben, um die Integrität der Datenbank aufrechtzuerhalten. Nachdem Sie das benutzerdefinierte Feld hinzugefügt haben, können Sie den Standardwert entfernen.
  • Wenn Sie ein benutzerdefiniertes Feld aktualisieren, sodass es obligatorisch ist, und das Feld bereits einen Standardwert hat, werden Sie vom System aufgefordert, auszuwählen, ob der Standardwert in alle vorhandenen Instanzen des Objekts eingefügt werden soll oder ob der Standardwert nur in neue Instanzen eingefügt werden soll.

Zusammenfassung

  • Sie können den meisten Objekten benutzerdefinierte Felder hinzufügen.
  • Benutzerdefinierte Felder werden der Tabelle für das ausgewählte Objekt in der Datenbank hinzugefügt und haben das Präfix "U_".
  • Für Belege können Sie Felder zum Kopfbereich (Titel) oder zu den Zeilen hinzufügen.
  • Benutzerdefinierte Felder, die auf Kopfebene eines Belegs hinzugefügt wurden, werden zunächst in einem separaten Fenster auf der Seite angezeigt. Sie können dieses Fenster über das Menü Ansicht öffnen.
  • Mit der Funktion Formular-UI bearbeiten können Sie benutzerdefinierte Felder aus dem Seitenfenster in den Hauptbereich des Belegs verschieben. Anschließend können Sie das bearbeitete Dokument Benutzern in einer UI-Konfigurationsvorlage zur Verfügung stellen.
  • Ein in benutzerdefinierte Felder eingegebener Wert wird mit der Funktion Kopieren nach/Kopieren von in einen Zielbeleg übertragen.
  • Benutzerdefinierte Felder können verschiedene Typen und Strukturen haben, z.B. alphanumerisch und regulär. Die Auswahl der Struktur wirkt sich auf die maximale Feldlänge und die Art der Daten aus, die Sie in das Feld eingeben können.
  • Optional können Sie eine Liste gültiger Werte zu einem UDF hinzufügen, es mit einem Systemobjekt verknüpfen, Regeln für die Validierung der Dateneingabe in das Feld definieren, einen Standardwert festlegen oder es als obligatorisch festlegen. Sie können das benutzerdefinierte Feld auch mit einer benutzerdefinierten Tabelle oder einem benutzerdefinierten Objekt verknüpfen.

Benutzerdefinierte Werte

Geschäftsszenario

Im Folgenden finden Sie zwei Beispiele für Anforderungen, die durch das Hinzufügen benutzerdefinierter Werte zu Formularfeldern erfüllt werden können:

  • Im ersten Beispiel möchte das Unternehmen das Lieferdatum, das ein Mussfeld ist, automatisch in Kundenaufträgen berechnen lassen, sodass der Verkäufer das Datum nicht manuell eingeben muss. Im Geschäftsprozess wird das Lieferdatum nicht verwendet, da Kundenaufträge sofort zur Lieferung eingeplant werden.
  • Im zweiten Beispiel benötigt der Vertriebsmitarbeiter die Möglichkeit, den aktuellen Kontostand eines Kunden sofort anzuzeigen, wenn er einen neuen Kundenauftrag telefonisch bearbeitet. Bei benutzerdefinierten Werten muss der Verkäufer keinen manuellen Drilldown auf die Stammdaten durchführen.

Benutzerdefinierte Werte

  • Sie können benutzerdefinierte Werte zu jedem bearbeitbaren Kopffeld in einem Dokument oder Formular und zu Feldern auf Zeilenebene hinzufügen. Sie können benutzerdefinierte Werte auch zu benutzerdefinierten Feldern hinzufügen.
  • Wenn benutzerdefinierte Werte auf Zeilenebene hinzugefügt werden, gelten sie für jede Zeile.
  • Benutzerdefinierte Werte können einem Feld wie folgt hinzugefügt werden:
    • Werteliste. Der Benutzer wählt aus einer Liste vordefinierter Werte für das Feld aus.
    • Benutzerabfrage. Wenn die Abfrage ausgeführt wird, werden die Abfrageergebnisse im Feld gespeichert. Im Beispiel wurde dem Feld Lieferdatum eine Abfrage hinzugefügt. Die Abfrage berechnet ein gültiges Datum für die Lieferung. Die Verwendung einer Abfrage ist die flexibelste Option, da die Abfrage so eingerichtet werden kann, dass sie manuell oder automatisch ausgeführt wird.

Kennzeichen für benutzerdefinierte Werte

  • Ein Lupensymbol zeigt an, dass dem Feld benutzerdefinierte Werte hinzugefügt wurden.
  • Benutzer können die Anzeige dieses Symbols über das Menü Ansicht > Auswahlfunktionen > Benutzerdefinierte Werte ein- und ausschalten.
  • Im Beispiel sehen wir, dass benutzerdefinierte Werte zum Feld Lieferdatum und zu einem benutzerdefinierten Feld namens Quelle hinzugefügt wurden.

Benutzerdefinierte Werte hinzufügen

  • Um benutzerdefinierte Werte zu einem Feld hinzuzufügen, wählen Sie das Feld im Beleg oder Formular aus, und drücken Sie die Tastenkombination Alt+Umschalt+F2, oder wählen Sie den Menüpfad Extras > Customizing Tools > Benutzerdefinierte Werte - Definition.
  • Das Einrichtungsbild für benutzerdefinierte Werte wird geöffnet.
  • Nur berechtigte Benutzer können benutzerdefinierte Daten hinzufügen. Sie finden die Berechtigung im Fenster Allgemeine Berechtigungen, indem Sie zu Customizing Tools > Benutzerdefinierte Werte - Definition navigieren.

Benutzerdefinierte Werte entfernen

  • Verwenden Sie im Setup-Fenster für benutzerdefinierte Werte die Option Ohne Suche in benutzerdefinierten Werten, um benutzerdefinierte Werte aus dem Feld zu entfernen.
  • Es gibt keine Einschränkungen beim Entfernen benutzerdefinierter Werte aus einem Feld. Nachdem Sie die benutzerdefinierten Werte entfernt haben, behalten die im System gesicherten Belege die in den Feldern eingegebenen Werte bei.

Werteliste

Sie können einem Feld mithilfe benutzerdefinierter Werte eine Werteliste hinzufügen.

Werteliste hinzufügen

  • Um einem Feld eine Werteliste hinzuzufügen, wählen Sie die Option In vorhandenen benutzerdefinierten Werten suchen. Wählen Sie auf dem Einrichtungsbild das Symbol zum Durchsuchen, und geben Sie die Werte für die Liste ein.
  • Stellen Sie bei der Definition der Werte sicher, dass der Wert die in der Datenbank definierte Feldlänge nicht überschreitet. In diesem Beispiel wurde eine Werteliste zu einem benutzerdefinierten Feld namens Quelle hinzugefügt. Wenn das Feld Quelle 15 Zeichen lang ist und Sie einen Wert mit 16 Zeichen eingeben, wird das letzte Zeichen abgeschnitten.
  • Um die Werteliste bei der Bearbeitung eines Formulars zu öffnen, kann der Benutzer das Lupenkennzeichen auswählen oder Umschalt+F2 im Feld drücken. Der Benutzer wählt dann einen Wert aus der Liste aus. Darüber hinaus kann der Benutzer der Liste neue Werte hinzufügen, indem er die Drucktaste Neu wählt.
  • Dieses Beispiel zeigt eine Liste von Werten, die einem benutzerdefinierten Feld hinzugefügt wurden. Beachten Sie, dass eine Werteliste auch beim ersten Anlegen eines benutzerdefinierten Felds über das Fenster Benutzerdefinierte Felder - Verwaltung definiert werden kann. Der Unterschied besteht darin, dass der Benutzer der Liste keine neuen Werte hinzufügen kann. Die Liste kann nur über das Fenster Benutzerdefinierte Felder - Verwaltung gepflegt werden.

Belege und benutzerdefinierte Daten

  • Beachten Sie, dass wenn Sie benutzerdefinierte Werte zu einer bestimmten Belegart hinzufügen, z.B. zu einem Kundenauftrag, andere ähnliche Belegarten wie Lieferungen und Rechnungen nicht betroffen sind. Das heißt, benutzerdefinierte Werte verhalten sich anders als benutzerdefinierte Felder und werden nicht an andere Belegarten vererbt. Daher müssen Sie jeder bestimmten Belegart nach Bedarf benutzerdefinierte Werte hinzufügen.
  • Der in einem Feld mit benutzerdefinierten Werten eingegebene Wert wird jedoch mit der Funktion Kopieren nach/Kopieren von in einen Zielbeleg übertragen.

Benutzerabfrage anhängen

Sie können eine Abfrage mit benutzerdefinierten Werten an ein Feld anhängen.

Hinzufügen einer Abfrage zu einem Feld

  • Mit der Option Suche in vorhandenen benutzerdefinierten Werten gemäß gespeicherter Abfrage können Sie eine Abfrage an das Feld anhängen.
  • Diese Option ist sehr leistungsstark, da das Feld mit den Ergebnissen der Abfrage gefüllt wird.
  • Die Abfrage kann einen Wert im Feld festlegen, die Ergebnisse einer Berechnung im Feld speichern oder einen anderen Feldwert aus der Datenbank abrufen, um in das Feld zu gelangen.
  • Die Abfrage kann auch eine Variable verwenden, um den Benutzer zur Eingabe eines Parameters aufzufordern, und den Parameter zur Berechnung der Ergebnisse verwenden.
  • Wenn Sie eine Abfrage verwenden, stellen Sie sicher, dass das Abfrageergebnis mit dem Feldtyp im Dokument übereinstimmt und die Größe des Felds nicht überschreitet. Geben Sie beispielsweise keine alphanumerische Zeichenfolge als Ergebnis in ein Feld zurück, das als numerisch definiert ist.
  • Im hier gezeigten Beispiel wird eine Abfrage verwendet, um das Lieferdatum in einem Kundenauftrag festzulegen. Die Abfrage addiert 7 Tage zum aktuellen Datum (DocDate) und speichert das Ergebnis als Lieferdatum. Die Abfrage bezieht sich auf das Feld DocDate im aktuell aktiven Beleg und verwendet daher $ und eckige Klammern.
  • Die Query wird mit SAP-HANA-Syntax geschrieben und erfordert die Klausel "FROM DUMMY", da es keine FROM-Klausel in der Query gibt.
  • Weitere Informationen zum Anlegen von Queries mit den Query-Werkzeugen finden Sie im Kurs Queries.
  • Wenn Sie die Option auswählen, eine Abfrage als benutzerdefinierte Werte zu verwenden, können Sie entscheiden, ob die Abfrage automatisch ohne Benutzerbeteiligung ausgeführt werden soll.
  • Das Ankreuzfeld Automatische Aktualisierung bei Feldänderungen legt fest, ob die Abfrage automatisch ausgeführt wird.
  • Wenn Sie dieses Ankreuzfeld nicht markieren, erfolgt die Abfrage nicht automatisch und wird nur ausgeführt, wenn der Benutzer auf die Lupe klickt oder Umschalt+F2 im Feld drückt.

Automatische Aktualisierung

  • Wenn Sie das Ankreuzfeld Automatische Aktualisierung bei Feldänderungen markieren, werden Sie aufgefordert, abhängige Felder auszuwählen. Sie können bis zu 5 Felder auswählen, um die Ausführung der Abfrage auszulösen. Die Abfrage wird automatisch ausgeführt, wenn sich der Wert des abhängigen Felds ändert oder der Benutzer einen Wert in das abhängige Feld eingibt.
  • In Belegen wird häufig der Kunden- oder Lieferantencode als abhängiges Feld ausgewählt.

Automatische Aktualisierung - Aktualisierungshäufigkeit

  • Wenn Sie Automatische Aktualisierung bei Feldänderungen wählen, werden zwei weitere Optionen angezeigt. Diese Optionen bestimmen, ob die Abfrage nur einmal oder immer dann ausgeführt wird, wenn sich die abhängigen Felder ändern.
  • Die Standardoption ist Gespeicherte benutzerdefinierte Werte anzeigen und wird empfohlen, da sie das initiale Ergebnis der Abfrage beibehält. Die Abfrage wird einmal ausgeführt, wenn sich das abhängige Feld ändert, und wird nicht erneut ausgeführt, auch wenn sich das abhängige Feld ändert. Ein Beispiel ist eine Abfrage, die dem Lieferdatum in einem Beleg hinzugefügt wurde. Die Query berechnet ein Lieferdatum basierend auf dem Systemdatum. Sie möchten, dass die Query nur einmal ausgeführt wird. Wenn die Abfrage mehrmals ausgeführt wurde, wird das Lieferdatum unter Umständen falsch aktualisiert.
  • Wenn Sie Regelmäßig aktualisieren wählen, wird die Abfrage jedes Mal ausgeführt, wenn sich das abhängige Feld ändert oder in einem Dokument ausgewählt wird. Sie sollten diese Option mit Vorsicht verwenden, da sie dazu führen kann, dass sich der Feldwert ändert, wenn dies nicht erwartet wird. Wenn die Abfrage ausgeführt wird, ändert sich der Dokumentstatus in den Aktualisierungsmodus, und Sie müssen die Änderungen sichern, wenn Sie die neuen Abfrageergebnisse aufzeichnen möchten. Ein Beispiel für die Verwendung von Regelmäßig aktualisieren ist eine Abfrage, die den aktuellen Kontenstand eines Geschäftspartners anzeigt. Sie möchten, dass die Abfrage immer dann ausgeführt wird, wenn Sie den Beleg durchsuchen oder öffnen, damit Sie immer den neuesten Saldo sehen können. Sie werden jedoch weiterhin aufgefordert, das Dokument zu aktualisieren, wenn Sie die Abfrageergebnisse sichern möchten.

Automatische Aktualisierung – Beispiel

Im Folgenden finden Sie ein Beispiel, das veranschaulicht, wie die Funktion für die automatische Aktualisierung funktioniert.

  • Eine Abfrage wird einem benutzerdefinierten Feld im Kundenauftrag hinzugefügt. Die Query greift auf den Kontostand des Kunden aus den Geschäftspartner-Stammdaten zu.
  • Der Kunden-/Lieferantencode wird als abhängiges Feld ausgewählt. Wenn der Benutzer den Geschäftspartnercode in einem neuen Kundenauftrag auswählt, löst diese Aktion die Ausführung der Abfrage aus.
  • Dies ist in der Regel die erste Aktion, wenn ein Benutzer einen neuen Beleg verarbeitet. Daher ist es üblich, den Kunden-/Lieferantencode als abhängiges Feld zu verwenden, um die Ausführung der Abfrage auszulösen.

Automatische Aktualisierung für Felder auf Zeilenebene

  • Für eine Abfrage, die einem Kopffeld in einem Beleg hinzugefügt wurde, können Sie nur ein anderes Kopffeld als abhängiges Feld auswählen. Dazu gehören alle Felder im Beleg, die nicht in der Zeilentabelle enthalten sind.
  • Für eine Abfrage, die einem Feld auf Zeilenebene hinzugefügt wurde, können Sie entweder ein Kopfzeilenfeld oder ein Feld auf Zeilenebene als abhängiges Feld auswählen. Wenn Sie einem Zeilenfeld benutzerdefinierte Werte hinzufügen und Automatisch regenerieren wählen, haben Sie zwei Möglichkeiten:
    • Wählen Sie Wenn sich das Feld ändert, wenn Sie ein Kopffeld als abhängiges Feld für eine Abfrage auf Zeilenebene verwenden möchten. Wählen Sie Beim Beenden einer geänderten Spalte oder Wenn sich der Spaltenwert ändert, wenn Sie ein anderes Zeilenfeld als abhängiges Feld verwenden möchten. 
    • Wenn Sie möchten, dass die Abfrage ausgeführt wird, wenn die Position ausgewählt ist, verwenden Sie immer eines der abhängigen Felder als Positionsnummer. Oder Beschreibung
  • Im Beispiel wird eine Abfrage zu einem Zeilenfeld mit der Bezeichnung Provision hinzugefügt. Die Query berechnet den Provisionsbetrag durch Multiplikation von Menge, Preis und Provisionsprozentsatz. Die Abfrage wird ausgeführt, wenn die Artikelnummer zum ersten Mal ausgewählt wird und wenn die Menge oder der Preis vom Benutzer aktualisiert wird.

Optionen für automatische Aktualisierung von Feldern auf Zeilenebene

  • Wählen Sie für eine Abfrage, die einem Feld auf Zeilenebene hinzugefügt wurde, in Abhängigkeit von anderen Zeilenfeldern eine der beiden folgenden Optionen:
    • Wählen Sie Beim Beenden der geänderten Spalte, um die UDV-Ausführung basierend auf bearbeitbaren Feldern auszulösen.
    • Wählen Sie Wenn sich der Spaltenwert ändert, um die Ausführung der UDV basierend auf allen verfügbaren Feldern in der Zeile auszulösen, einschließlich nicht bearbeitbarer Felder wie Steuerbetrag, Bruttogewinnbetrag usw. 

Zusammenfassung

  • Benutzerdefinierte Werte (UDVs) können Benutzer bei der Dateneingabe unterstützen, indem sie eine Werteliste oder eine Abfrage verwenden, um einen Feldwert zu füllen.
  • Sie können benutzerdefinierte Werte zu bearbeitbaren Feldern auf Kopf- und Zeilenebene sowie zu jedem beliebigen benutzerdefinierten Feld hinzufügen. Um benutzerdefinierte Werte hinzuzufügen, wählen Sie das Feld aus, und drücken Sie Alt+Umschalt+F2.
  • Ein Lupenkennzeichen zeigt an, ob für ein Feld benutzerdefinierte Werte vorhanden sind. Sie können dies über das Menü Ansicht > Auswahlfunktionen aktivieren.
  • Benutzerdefinierte Werte können als Werteliste oder allgemeiner als Benutzerabfrage eingerichtet werden.
  • Ein Benutzer kann die Werteliste öffnen oder eine Abfrage manuell ausführen, indem er das Lupenkennzeichen auswählt oder Umschalt+F2 im Feld drückt.
  • Wenn eine Query verwendet wird, werden die Ergebnisse der Query im Zielfeld gespeichert. Um festzulegen, dass die Abfrage ohne Benutzerbeteiligung automatisch ausgeführt wird, verwenden Sie die Option für die automatische Aktualisierung, und wählen Sie ein abhängiges Feld aus. Für die Ausführung der Query stehen zwei weitere Optionen zur Verfügung:
    • Wenn Sie Regelmäßig aktualisieren auswählen, wird die Abfrage jedes Mal ausgeführt, wenn sich das abhängige Feld ändert oder ausgewählt wird, oder wenn Datensätze durchsucht werden. Dies kann je nach Abfrage zu inkonsistenten Ergebnissen oder zu einer Verschlechterung der Performance beim Durchsuchen von Datensätzen führen.
    • Wenn Sie Gespeicherte benutzerdefinierte Werte anzeigen auswählen, wird die Abfrage einmal ausgeführt und das Ergebnis im Feld beibehalten. Diese Option wird empfohlen, da sie den Initialwert des Felds beibehält, aber die Auswahl dieser Option hängt von der Geschäftsanforderung und der Abfrage ab.
  • Bei Bedarf sollten Abfragen geschrieben werden, um auf das aktive Fenster zu verweisen.

Benutzerdefinierte Tabellen

Geschäftsszenario

  • Ein Unternehmen möchte Lieferbelegen ein Lieferfahrzeug zuordnen können.
  • Die Lieferflotte kann als benutzerdefinierte Tabelle gepflegt und dem Lieferbeleg zur Verfügung gestellt werden.
  • Benutzer können die Flotteneinträge in der Tabelle verwalten.

Benutzerdefinierte Tabellen

  • Zusätzlich zu benutzerdefinierten Feldern können Sie der Datenbank neue Tabellen hinzufügen. Benutzerdefinierte Tabellen (UDTs) bieten Ihnen die Möglichkeit, zusätzliche, zugehörige Datensätze zu speichern.
  • Die benutzerdefinierte Tabelle wird Teil der Firmendatenbank. Das System identifiziert benutzerdefinierte Tabellen anhand des Präfixes '@', sodass Sie sie leicht von Systemtabellen unterscheiden können.
  • Wenn Sie eine neue Firma anlegen, haben Sie die Möglichkeit, benutzerdefinierte Tabellen aus der aktuell ausgewählten Firma in die neue Firma zu kopieren.

Objekttyp für benutzerdefinierte Tabellen

  • Benutzerdefinierte Tabellen können mit einem benutzerdefinierten Feld (UDF) in einem Dokument oder Formular verknüpft werden. Dazu müssen Sie beim Anlegen der Tabelle den richtigen Objekttyp wählen.
  • Um eine Verknüpfung zu einem UDF herzustellen, wählen Sie Kein Objekt oder Kein Objekt mit automatischem Inkrement.
  • Um eine Verknüpfung zu einem benutzerdefinierten Objekt (UDO) herzustellen, wählen Sie eine der anderen Optionen:
    • Wählen Sie Stammdaten, wenn das Objekt Stammdaten enthalten soll. Sie können auch untergeordnete Tabellen anlegen, indem Sie Stammdatenzeilen als Objekttyp auswählen.
    • Wählen Sie Beleg, wenn das Objekt Bewegungsdaten enthält. Sie können auch untergeordnete Tabellen anlegen, indem Sie Belegzeilen als Objekttyp auswählen.
  • Beachten Sie, dass Sie den Objekttyp nicht mehr ändern können, nachdem Sie die Benutzertabelle zum System hinzugefügt haben.

Informationen zu benutzerdefinierten Tabellen

Informationen zu jeder neuen Tabelle werden in der Systemtabelle OUTB gespeichert. Zu den Informationen gehört der Objekttyp.

Benutzerdefinierte Tabelle mit einem UDF verknüpfen

Um eine Tabelle mit einem benutzerdefinierten Feld (UDF) in einem Beleg oder Formular zu verknüpfen, legen Sie die Tabelle mit dem Objekttyp Kein Objekt an.

Zugriff auf eine neue Tabelle

  • Sie greifen auf eine neu angelegte benutzerdefinierte Tabelle zu, indem Sie die Tabelle im Menü Werkzeuge auswählen.
  • Die Tabelle enthält zunächst zwei Spalten: Code und Name.

Daten in eine neue Tabelle eingeben

  • In unserem Szenario möchten wir die Tabelle in einem benutzerdefinierten Feld in einem Lieferbeleg verwenden. Daher konnte beim Einrichten der Tabelle entweder Kein Objekt oder Kein Objekt mit automatischem Inkrement als Objekttyp ausgewählt werden.
    • Wenn Sie beim Anlegen der Tabelle Kein Objekt als Objekttyp wählen, ist die Spalte Code editierbar, und Sie können für jede Zeile einen eindeutigen Wert eingeben.
    • Wenn Sie Kein Objekt mit automatischer Inkrementierung als Objekttyp auswählen, kann die Spalte Code nicht bearbeitet werden, und der Wert wird für jede von Ihnen eingegebene Datenzeile automatisch erhöht. Wir haben diese Option gewählt, damit der Primärschlüssel für uns aktualisiert wird.
  • Der Code ist der Primärschlüssel, und der Name muss für jede Zeile, die Sie der Tabelle hinzufügen, eindeutig sein. Darüber hinaus haben Sie die Möglichkeit, ein beliebiges Feld oder eine beliebige Kombination von Feldern aus der Benutzertabelle als neuen Schlüssel auszuwählen. Diese Option kann die Suche beschleunigen.

Hinzufügen von Spalten zu einer BDT

  • Um nützlich zu sein, benötigt eine benutzerdefinierte Tabelle zusätzliche Spalten. Jede Spalte wird als benutzerdefiniertes Feld hinzugefügt.
  • Wählen Sie den Namen der Tabelle im Verwaltungsfenster für benutzerdefinierte Felder aus. Fügen Sie dann für jede Spalte ein benutzerdefiniertes Feld hinzu.
  • Im Beispiel wurden der Tabelle Lieferfahrer vier zusätzliche Spalten hinzugefügt: Name, Schicht, Verfügbar und Lokation. In diesen Feldern werden der Name des Fahrers, die Arbeitsstunden, sofern diese für die Zuordnung verfügbar sind, und deren Standort erfasst. Mit diesen Informationen kann ein Benutzer den besten Fahrer für die Lieferung auswählen.
  • Informationen zu benutzerdefinierten Feldern finden Sie im zugehörigen Kurs Benutzerdefinierte Felder.

Einem BDT hinzugefügte Spalten anzeigen

Nachdem die zusätzlichen Spalten zur Tabelle hinzugefügt wurden, können Sie Daten eingeben oder neue Zeilen hinzufügen, indem Sie dann das Menü Extras > Benutzerdefinierte Fenster wählen. Wählen Sie, und wählen Sie die Tabelle aus. Wenn die neuen Spalten im Fenster nicht sichtbar sind, müssen Sie möglicherweise die Breite der Spalten anpassen, um die neuen Felder anzuzeigen.

Abfragen

Zu diesem Zeitpunkt ist die benutzerdefinierte Tabelle an kein Formular oder Dokument angehängt, sodass der Benutzer nicht darauf zugreifen kann. Sie können die Tabelle jedoch in Abfragen verwenden und Daten mit der Datenübernahme-Workbench in die Tabelle importieren.

Tabelle mit einem UDF verknüpfen

  • Um eine Benutzertabelle für Benutzer in einem Formular oder Dokument direkt sichtbar zu machen, verknüpfen Sie die Tabelle mit einem benutzerdefinierten Feld im Dokument oder Formular.
  • Beachten Sie, dass Benutzertabellen nur mit UDFs des Typs Alphanumerisch und der Struktur Regulär verknüpft werden können.
  • Im Beispiel wird dem Titelbereich des Belegobjekts ein benutzerdefiniertes Feld namens Treiber hinzugefügt. Wenn Sie das benutzerdefinierte Feld hinzufügen, wählen Sie die Validierungsoption Verknüpfte Tabelle festlegen. Wählen Sie dann die benutzerdefinierte Tabelle aus der Dropdown-Liste aus.
  • Sie können dieselbe benutzerdefinierte Tabelle mit mehreren benutzerdefinierten Feldern in verschiedenen Objekten sowohl auf Kopf- als auch auf Zeilenebene verknüpfen. Sie können beispielsweise die LKW-Tabelle zusätzlich zum Lieferbeleg mit einem benutzerdefinierten Feld im Kommissionierlistenbeleg verknüpfen.

Verwendung der BDT in einem Beleg

  • Wenn Sie das benutzerdefinierte Feld auswählen, werden die ersten beiden Spalten angezeigt. Wählen Sie Neu definieren, um alle Spalten in der Tabelle anzuzeigen und darauf zuzugreifen.
  • Der Benutzer kann Zeilen bearbeiten und zur Tabelle hinzufügen.

Auswahl des Wertes aus der BDT

In diesem Beispiel hat der Kunde eine abendliche Lieferung angefordert. Daher wird ein Fahrer ausgewählt, der in für eine abendliche Lieferung verfügbar ist. Der Name aus der benutzerdefinierten Tabelle wird nun im benutzerdefinierten Feld im Dokument gespeichert.

UDT als benutzerdefiniertes Objekt verknüpfen

Um eine Benutzertabelle als benutzerdefiniertes Objekt (UDO) zu verknüpfen, legen Sie die Tabelle mit dem Objekttyp Stammdaten oder Dokument an.

Felder zur Benutzertabelle für UDO hinzufügen

  • Um eine Benutzertabelle als benutzerdefiniertes Objekt (UDO) zu verknüpfen, stellen Sie sicher, dass Sie die Tabelle mit dem Objekttyp Stammdaten oder Dokument angelegt haben.
  • Ein benutzerdefiniertes Objekt besteht aus einer benutzerdefinierten Tabelle und hinzugefügten benutzerdefinierten Feldern. Diese Felder enthalten die Daten für das neue Business-Objekt.
  • Sie können benutzerdefinierte Felder mithilfe der SAP-Business-One-Anwendung oder über das DI API hinzufügen. In diesem Beispiel haben wir eine Benutzertabelle namens Firmenwagen als Stammdatenobjekt angelegt.
  • Wir haben vier benutzerdefinierte Felder hinzugefügt.

Neue Tabelle als Objekt registrieren

  • Nachdem Sie die Benutzertabelle mit den benutzerdefinierten Feldern angelegt haben, müssen Sie sie mit dem Objektregistrierungsassistenten als Objekt in SAP Business One registrieren. Die Registrierung erfolgt pro Firma.
  • Geben Sie eine eindeutige ID ein, und wählen Sie den Namen der benutzerdefinierten Tabelle aus.
  • Wenn Sie den Assistenten durchlaufen, werden Sie aufgefordert, die Dienste für das Objekt auszuwählen, z.B. Hinzufügen, Aktualisieren, Suchen, Löschen. Hinzufügen und Aktualisieren sind Basisservices und können nicht entmarkiert werden.
  • Sie können optional eine untergeordnete Tabelle auswählen, die als Zeilen im Stammdaten- oder Belegobjekt angezeigt wird. Untergeordnete Tabellen werden angelegt, indem der Objekttyp Belegzeilen oder Stammdatenzeilen ausgewählt wird.

Objekt zum Hauptmenü hinzufügen

Sie können das Objekt zum Hauptmenü hinzufügen, indem Sie das Ankreuzfeld Menüeintrag im Assistenten markieren. Anschließend wählen Sie das Modul aus dem Auswahlformular und die Position innerhalb des Modulmenüs aus.

Stil der neuen Tabelle

Sie können entweder Kopfzeilenstil oder Matrixstil im Assistenten auswählen. Dies wirkt sich darauf aus, wie die Tabelle angezeigt wird, wenn der Benutzer darauf zugreift. Beispiele sind hier dargestellt.

Zusammenfassung

  • Sie können der Datenbank eigene benutzerdefinierte Tabellen hinzufügen. Diese Tabellen können zusätzliche, zugehörige Informationen enthalten.
  • Benutzerdefinierte Tabellen können mit dem Präfix "@" identifiziert werden.
  • Um eine benutzerdefinierte Tabelle mit einem benutzerdefinierten Feld in einem Dokument oder Formular verknüpfen zu können, wählen Sie für Objekttyp die Option Kein Objekt oder Kein Objekt mit autom. Schrittweite
  • Die Tabelle wird zunächst mit zwei Spalten angelegt: Code und Name. Benutzerdefinierte Felder können als zusätzliche Spalten in der Tabelle hinzugefügt werden.
  • Um eine BDT für einen Benutzer in einem Dokument oder Formular zugänglich zu machen, legen Sie ein benutzerdefiniertes Feld im Dokument oder Formular an, und wählen Sie dann die Option Verknüpfte Tabelle festlegen, um die Tabelle mit dem UDF zu verknüpfen. Nur UDTs mit Objekttyp Kein Objekt oder Kein Objekt mit autom. Das Inkrement kann mit einem UDF verknüpft werden. Endbenutzer können über das benutzerdefinierte Feld auf die Tabelle zugreifen, Zeilen zur Tabelle hinzufügen und Daten in die benutzerdefinierten Feldspalten eingeben.
  • Um eine Tabelle als benutzerdefiniertes Objekt (UDO) zu verwenden, wählen Sie Stammdaten oder Dokument als Objekttyp aus.
  • Fügen Sie der Tabelle benutzerdefinierte Felder als Spalten hinzu.
  • Führen Sie den Objektregistrierungsassistenten aus, um das Objekt anzulegen, wählen Sie die Dienste für das Objekt aus, wählen Sie beliebige untergeordnete Tabellen für Zeilen im Objekt aus, und fügen Sie das Objekt dem Hauptmenü hinzu. Benutzer können über das Menü auf das Objekt zugreifen und es bearbeiten und Datensätze durchsuchen.