Kundendefinierte Felder in M3

Dieses Dokument beschreibt das Konzept der Verwendung von kundendefinierten Feldern (Customer-defined Fields, im Folgenden als CDF bezeichnet) in M3. CDFs werden verwendet, um kundenspezifische Informationen zur M3-Datenbank hinzuzufügen, ohne dass eine Modifikation erforderlich ist. CDFs können auch direkt in konfigurierbaren Listen, Ad-hoc-Berichten, XML-Ausgaben usw. verwendet werden.

Hintergrund

M3 Business Engine bietet verschiedene freie Felder für bestimmte Arten von Informationen. Diese sind jedoch auf bestimmte Typen begrenzt und decken oft nicht alle Bedürfnisse ab. Die CDF-Funktionalität wird hinzugefügt, um diese zu ergänzen und die Notwendigkeit von Modifikationen für das Hinzufügen von Informationen zur M3-Datenbank zu minimieren.

Definition eines CDF

Die Metadaten, die das zu verwendende CDF definieren, werden über das Programm "Kundendefinierte Felder. Öffnen" (CMS080) hinzugefügt. Die Metadaten beinhalten eine Auswahl der zu erweiternden M3-Tabelle (siehe unten), die Art der Information (String, numerische Informationen usw.) sowie die verwendete Länge, Anzahl der Dezimalstellen usw. Der Benutzer legt auch die Beschreibung für das CDF fest, das als Spaltenüberschrift in Listen, Berichten usw. verwendet wird.

Die erste Auswahl dieser Informationen erfolgt, indem der Benutzer ein Feld in der Drop-down-Liste auswählt, das so nahe wie möglich an der endgültigen Definition liegt. Der Benutzer kann aus verschiedenen Typen wie Kontrollfeldern, Datumsangaben und numerischen Feldern sowie verschiedenen Längen alphanumerischer Felder auswählen.

Beachten Sie, dass die Metadaten des CDF für Informationen definiert werden müssen, die einem Feld in den CDF-Tabellen hinzugefügt werden sollen, oder für die CDF-Informationen, die in M3-Listen, Berichten usw. verwendet werden sollen.

CDFs zur Erweiterung der M3-Standardinformationen hinzufügen

Der Benutzer gibt den Namen der zu erweiternden M3-Tabelle an und wählt dann den zu verwendenden Feldtyp aus.

CDFs hinzufügen, die nicht mit M3-Standardinformationen in Zusammenhang stehen

Dieser Typ von CDFs wird zum Speichern von Informationen verwendet, die nicht mit den standardmäßigen M3-Informationen verbunden sind oder in keinem direkten Zusammenhang mit diesen stehen. Außerdem werden dort verknüpfte Informationen gespeichert, die zusätzliche oder weniger Schlüssel als die standardmäßigen M3-Informationen benötigen.

Um diesen Typ von CDFs hinzuzufügen, wählt der Benutzer eine Tabelle aus, in der die Information gespeichert werden soll (CUGEX2 oder CUGEX3), und definiert anschließend die ID der Information in Form der Kundenerweiterungsreferenz, bevor der zu verwendende Feldtyp ausgewählt wird. Die Kundenerweiterungsreferenz wird später als Schlüssel zur Trennung unterschiedlicher Informationen verwendet, die in derselben Tabelle gespeichert sind. Sie sollte so benannt werden, dass leicht zu erkennen ist, welche Art von Information darin gespeichert ist.

Definition gültiger Werte

Die CDF-Definition kann auch Regeln zur Validierung eingegebener Werte enthalten. Dies beinhaltet einen gültigen Bereich und ein Vielfaches für numerische Werte (gültige Werte sind beispielsweise 4–12, aber jeder Wert muss ganzzahlig durch 4 teilbar sein, d. h. nur 4, 8 und 12 sind gültig) sowie eine Liste für beide numerische und alphanumerische Werte. Letzteres wird durch ein separates Programm verwaltet: "Kd.-def. Felder - Wertzuordnung. Öffnen"(CMS081). Beachten Sie, dass ein eingegebener Datumswert vom Typ CDF als aktives Datum im M3-Systemkalender vorhanden sein muss.

Verwaltung von CDFs

Informationen, die in CDFs gespeichert sind, werden über die CDF-API (CUSEXTMI) verwaltet. Die API führt eine Validierung gemäß den in den CDF-Metadaten definierten Regeln durch. Die Information ist dann auch konform mit der etablierten Form der Speicherung in der M3-Datenbank.

Verwendung von CDFs

Die in CDFs gespeicherten Informationen können ohne spezielle Kodierung oder Modifikation als Teil von M3 verwendet werden. Eine Ausnahme besteht darin, dass das CDF einem detaillierten M3 Business Engine-Bild hinzugefügt oder als Teil einer bestehenden oder neuen Geschäftslogik verwendet werden muss.

  • CDFs in konfigurierbaren Listen, benutzerdefinierten Listen, konfigurierbaren XML-Dateien und Ad-hoc-Berichten verwenden

    Im Folgenden sind zwei unterschiedliche Anwendungsfälle beschrieben:

    1. CDFs existieren bereits, wenn eine Liste oder ein Bericht erstellt wird

      Wenn eine neue konfigurierbare Liste oder ein neuer Bericht erstellt wird, werden bereits definierte CDFs für die Stammtabelle der Liste bzw. des Berichts automatisch zur Liste hinzugefügt oder als verfügbare Felder gemeldet. Sie sind direkt verfügbar, wenn der Benutzer die Spalten in der Liste oder im Bericht definiert. Wenn später ein neues CDF zur Stammtabelle hinzugefügt wird, muss es als verfügbares Feld manuell hinzugefügt werden (dies erfolgt aus der Definition der verknüpften Tabellen).

    2. CDFs werden hinzugefügt, nachdem eine Liste oder ein Bericht erstellt wurde.

      Wenn CDFs zur Stammtabelle einer bereits existierenden Liste oder eines bereits vorhandenen Berichts hinzugefügt werden, müssen sie manuell als verknüpfte Tabelle zu jeder Liste und jedem Bericht hinzugefügt werden, in denen sie verwendet werden sollen. Der Benutzer fügt die CDF-Tabelle (CUGEX1) hinzu und überprüft die Standardwerte. Dasselbe Verfahren muss für das Hinzufügen von CDFs verwendet werden, die nicht mit der Stammtabelle in Zusammenhang stehen. Der einzige Unterschied besteht darin, dass der Benutzer wissen muss, ob die Tabelle CUGEX2 oder CUGEX3 verwendet werden soll. Der Benutzer muss außerdem die Erweiterungsreferenz auswählen, die zum Abrufen der korrekten Informationen verwendet werden soll.

  • CDFs in APIs und der Suchfunktion verwenden

    Die CDFs werden auch bei API-Transaktionen über (CMS100MI) und der Suchfunktion auf die gleiche Weise wie oben verwaltet. In beiden Fällen bildet das benutzerdefinierte Listenprogramm "Informationsbrowserkategorie. Öffnen" (CMS010) die Grundlage.

  • CDFs in älteren, nicht konfigurierbaren Listen verwenden

    Dies wird derzeit nicht unterstützt, und aufgrund von Leistungsbeeinträchtigungen wird davon abgeraten, dieses Problem mithilfe eines UI-Skripts zu beheben. Eine provisorische Lösung kann darin bestehen, mittels der benutzerdefinierten Liste in (CMS010) eine neue Liste für die verwendete Tabelle zu erstellen.

  • CDFs in detaillierten M3-Bildern verwenden

    Dies wird derzeit nicht unterstützt. Die empfohlene Lösung besteht darin, ein UI-Skript zu verwenden, das relevante Informationen über (CMS080MI) und CUSEXTMI abruft bzw. aktualisiert.

  • CDFs in M3 Mashup verwenden

    Die empfohlene Lösung besteht darin, dass zum Verwalten der Informationen und zur Pflege der gespeicherten Informationen immer die CDF-API (CUSEXTMI) verwendet wird.

  • CDFs als Teil der M3-Geschäftslogik verwenden

    Dies erfordert eine Modifikation des Codes. Eine Alternative besteht darin, die Funktionalität außerhalb des M3-Standards durch andere Kodierungs-Frameworks wie Mongoose zu kodieren. Alle Informationen zur Aktualisierung der M3-CDFs werden über die CDF-API hinzugefügt.

  • CDFs mit Enterprise Search verwenden

    Die CDF-Informationen sind Teil des in IES indexierten Standard-Datensatzes und können ohne spezifische Anforderungen zum Filtern verwendet werden. Beachten Sie, dass die indexierten Tabellen Informationen für viele erweiterte Tabellen oder andere Typen von nicht verknüpften Daten enthalten. Um falsche Treffer zu vermeiden, sollte die Suchabfrage immer den Namen der Datei oder die Erweiterungsreferenz enthalten. Beachten Sie auch, dass für die Suche nach CDFs "Schlüsselsuche. Öffnen" (CMS030) verwendet werden muss. Eine spezifische Schlüsselsuche sollte pro Tabellenerweiterung erstellt werden und den verwendeten Tabellennamen als Teil der vordefinierten Abfrage in der Schlüsselsuche einbetten. Außerdem müssen in "Feldalias. Öffnen" (CMS031) Aliasse für die Übersetzung zwischen den Schlüsseln der Standardtabellen und den Schlüsseln der Erweiterungstabellen erstellt werden. Die Aliasse sollten auf die Schlüsselsuche für die CDFs für eine spezifische Tabelle beschränkt sein.

Technischer Speicher von CDFs in der M3-Datenbank

Die in CDFs gespeicherten Informationen werden von drei speziellen CDF-Tabellen der M3-Datenbank verwaltet. Die CDF-Informationen werden daher nicht in der Originaltabelle gespeichert, wenn sie als Erweiterung einer Standardtabelle verwendet werden, sondern mit einem separaten Datenbankzugriff abgerufen. Diese Tabellen haben folgende Namen:

  • CUGEX1: Wird zur Erweiterung von M3-Standardtabellen mit CDFs verwendet
  • CUGEX2: Wird verwendet, um nicht M3-bezogene, numerische Informationen zu speichern
  • CUGEX3: Wird verwendet, um nicht M3-bezogene, alphanumerische Informationen zu speichern

Die in CDFs gespeicherten Informationen werden in der M3-Datenbank in der CUGEX1-Tabelle für erweiterte Tabellen oder in CUGEX2/CUGEX3 für nicht verknüpfte Informationen gespeichert. Die CDF-Informationen werden in den in der Definition der CDFs ausgewählten Feldern gespeichert. Die erweiterten Informationen in der CUGEX1-Tabelle werden mit dem Namen der erweiterten Tabelle als erster Schlüssel (im Feld FILE) gespeichert. Die restlichen Schlüssel werden genau wie der Primärschlüssel der erweiterten Tabelle festgelegt. Nicht verknüpfte Informationen werden entweder in CUGEX2 oder CUGEX3 gespeichert, abhängig davon, was bei der Definition des CDF ausgewählt wurde. Der zweite Schlüssel ist die Kundenerweiterungsreferenz, die ebenfalls bei der Definition ausgewählt wurde. Die anderen Schlüssel werden durch die Aktualisierung gesteuert und nicht validiert.

Einschränkung

Die CDFs können maximal acht Schlüssel zur Trennung von Informationen verwenden. Das bedeutet, dass M3-Tabellen mit mehr als acht Primärschlüsseln nicht erweitert werden können.

Kundendefinierte Felder (CDF) sind eingeschränkt, um die ausschließliche Verwendung der Stammdatentabellen zu erzwingen. Beim Erstellen oder Aktualisieren von CDFs für Transaktionsdatentabellen werden Fehler- und Warnmeldungen angezeigt.

Zu Beginn wird diese Einschränkung auf die folgenden Tabellen angewendet:
  • CINACC
  • CRACTR
  • FSLEDG
  • FSLEDG
  • FGLEDG
  • MDOPLA
  • MGLINE
  • MGHEAD
  • MITPLO
  • MITTRA
  • MHDISH
  • MHDISL
  • MHPICH
  • MHPICL
  • MMOPLP
  • MMOHED
  • MMOMAT
  • MMOOPE
  • MPHEAD
  • MPLINE
  • MPOPLP
  • ODHEAD
  • ODLINE
  • OINACC
  • OINVOH
  • OINVOL
  • OOCHRG
  • OOHEAD
  • OOLINE
  • OOLICH
  • OPROMT
  • OPROML
  • OSASTD
  • OSBSTD

Wenn Sie einen vorhandenen Datensatz in (CMS080) mit einer anderen Definition importieren und ersetzen, kann dies dazu führen, dass die Daten in der Kundenerweiterungsdatei-Tabelle (CUGEXn) nicht übereinstimmen.