Schritte zum Erstellen von angepassten Tabellen
Sie können eine angepasste Tabelle erstellen.
- um Daten aus benutzerdefinierten Tabellen in die entsprechenden Historientabellen zu verschieben, falls diese existieren, und
- um Löschungen aus den benutzerdefinierten Verlaufstabellen zu behandeln.
Informationen zu diesem Vorgang
So erstellen Sie eine angepasste Tabelle:
Vorgehensweise
- Kopieren Sie die Datei <runtime_sandbox>/repository/entity/extensions/Extensions.xml.sample als <runtime_sandbox>/extensions/global/entities/your_custom_filename.xml -Datei ODER ändern Sie Ihre vorhandene XML-Erweiterungsdatei. Nehmen wir beispielsweise an, dass es sich bei ABC_CUSTOMER_ORDER_LINE um eine angepasste Tabelle handelt.
- Bearbeiten Sie die Datei your_custom_filename.xml wie im folgenden Beispiel gezeigt, um angepasste Tabellen zu erstellen. Eine Beschreibung der XML-Attribute finden Sie in der Tabelle, die auf das Beispiel folgt.
<DBSchema> <Entities> <Entity ApiNeeded="Y/N" AuditRequired="Y" Description="" XMLName="OPTIONAL" Name="OPTIONAL" HasHistory="Y/N" Prefix="ABC" TableName="ABC_CUSTOMER_ORDER_LINE" KeyType="Random" > <!-- table columns --> <Attributes> <Attribute ColumnName="CREATETS" DataType="TimeStamp" DefaultValue="sysdate" Description="Create TimeStamp" /> <Attribute ColumnName="MODIFYTS" DataType="TimeStamp" DefaultValue="sysdate" Description="Modify TimeStamp" /> <Attribute ColumnName="CREATEUSERID" DataType="UserId" DefaultValue="' '" Description="Creating User ID" /> <Attribute ColumnName="MODIFYUSERID" DataType="UserId" DefaultValue="' '" Description="Modifying User ID" /> <Attribute ColumnName="CREATEPROGID" DataType="ProgramID" DefaultValue="' '" Description="Creating Program ID" /> <Attribute ColumnName="MODIFYPROGID" DataType="ProgramID" DefaultValue="' '" Description="Modifying Program ID" /> <Attribute ColumnName="LOCKID" DataType="Lockid" DefaultValue="0" Description="Lock ID" /> <Attribute ColumnName="TABLE_KEY" DataType="Key" DefaultValue=" " Description="" Nullable="True/False" XMLName="TableKey" /> . . </Attributes> <!-- PrimaryKey is a mandatory attribute in entity definition. This element can have ONLY ONE attribute element --> <PrimaryKey Name="TABLE_NAME_PK"> <Attribute ColumnName="TABLE_KEY" /> </PrimaryKey> <!-- Indices --> <Indices> <Index Name="INDEX_I1" Unique="True/False"> <Column Name="Attribute2" /> . . </Index> . . </Indices> <!-- Relationship --> <Parent ParentTableName="YFS_ORDER_LINE" XMLName="YFSOrderLine" > <Attribute ColumnName="CUSTOM_ORDER_KEY" ParentColumnName="ORDER_LINE_KEY" /> . . </Parent> <!-- ForeignKeys --> <ForeignKeys> <ForeignKey ParentTableName="PARENT_ORDER_LINE" XMLName="PARENTName1" > <Attribute ColumnName="CUSTOM_ORDER_KEY" ParentColumnName="PARENT_COLUMN_KEY" /> . . </ForeignKey> . . </ForeignKeys> <!-- AuditReferences --> <AuditReferences> <Reference ColumnName="TABLE_KEY" /> . . </AuditReferences> </Entity> </Entities> </DBSchema>Hinweise:
- Wenn TableName mit einem Nicht-ASCII-Zeichensatz angegeben wird, sind die Attribute XMLName und Name für diese Tabelle oder Entität erforderlich.
- Wenn ColumnName mit einem Nicht-ASCII-Zeichensatz angegeben wird, sind die Attribute XMLName und Name für diese Spalte oder dieses Attribut erforderlich.
- In der folgenden Tabelle werden die Attribute in der XML-Entität erläutert:
Attribut
Beschreibung
Entität
ApiNeeded
Gibt an, ob APIs generiert werden sollen. Gültige Werte sind Y oder N. . Eine Standardgruppe von APIs wird generiert, wenn Y übergeben wird.
Beispielsweise werden in den Tabellen ABC_CUSTOMER_ORDER_LINE von der Anwendung die folgenden APIs erstellt, wenn die JAR-Datei der Datenbankerweiterung generiert wird:- getABCCustomerOrderLine()
- getABCCustomerOrderLineList()
- createABCCustomerOrderLine()
- changeABCCustomerOrderLine()
- deleteABCCustomerOrderLine()
Auf diese APIs kann über das Servicedefinitionsframework als Service zugegriffen werden.
AuditRequired
Bei Y, wird ein Prüfdatensatz für diese Entität erstellt.
HasHistory
Dieses Flag gibt an, ob der angepassten Tabelle eine Verlaufstabelle zugeordnet werden kann.
Der Standardwert lautet N.
Wenn das Attribut auf Y festgelegt ist, werden von dbverify die entsprechenden Scripts zum Generieren von Datenbankscripts generiert, mit deren Hilfe die Protokolltabelle erstellt und geändert wird.
In einer angepassten Tabelle muss das Attribut "HasHistory" auf Y festgelegt sein, damit Protokolltabellen generiert werden. Wenn jedoch in der XML-Entität eine übergeordnete Beziehung definiert ist, wird dieses Attribut aus der Definition der übergeordneten Tabelle kopiert und es kann von keiner untergeordneten Entität außer Kraft gesetzt werden.
Präfix
Das Präfix, das Ihren angepassten Tabellen hinzugefügt wird. Es wird empfohlen, kein Präfix zu verwenden, das mit Y beginnt.
TableName
Der Name, der Ihrer angepassten Tabelle zugeordnet wird
KeyType
Optional: Der gültige Wert lautet Random (wahlfrei). Wenn der Wert Random lautet, werden aufgrund der verwendeten Logik zum Generieren von Primärschlüsseln für die Tabelle wahlfreie Primärschlüssel anstelle von sequenziellen Primärschlüsseln generiert. Dies bedeutet bei KeyType=”Random”, dass die Primärschlüssel zwei wahlfreie Stellen enthalten. Beispielsweise entspricht das Format von generierten Primärschlüsseln YYYYMMDDHHRRMM(SS)NNNNNNNN, wobei "RR" die beiden wahlfreien Stellen darstellen. Entity/Attributes/Attribute
ColumnName
Die Namen der Spalte, aus der die Tabelle besteht.
DataType
Der Datentyp der Spalte. Gültige Datentypen sind in der Datei installationsverzeichnis/repository/datatypes/datatypes.xml angegeben.
Hinweis:- Der BLOB-Datentyp (BLOB - großes Binärobjekt) wird nicht unterstützt.
- Verwenden Sie nicht den Datentyp "Key", da er einen Index im Schema SYSIBM erstellt, der dazu führt, dass der UCD-Selbstbedienungsprozess Update OMS Application fehlschlägt und das manuelle Löschen des Primärschlüssels erzwingt, um den Index zu entfernen. Der Datentyp "Schlüssel" ist nicht erforderlich, da <PrimaryKey> dasselbe Ergebnis erzielt, ohne den unerwünschten Index zu erstellen.
CompressionSupported
Optional: Mit diesem Attribut wird angegeben, ob die Datenkomprimierung für diese Spalte unterstützt wird. Gültige Werte sind True oder False. Wenn True festgelegt ist, ist die Unterstützung der Komprimierung aktiviert.
Hinweis: Wenn für die in eine Spalte eingefügten Daten die Attribute CompressionSupported und UseCompression auf Truegesetzt sind, sollte dieses Attribut nicht auf Falsezurückgesetzt werden. Andernfalls würden alle komprimierten Daten ohne jegliche Dekomprimierung abgerufen werden.UseCompression
Optional: Mit diesem Attribut werden Daten für diese Spalte komprimiert. Gültige Werte sind True oder False. Wenn True festgelegt ist, werden Daten komprimiert.
Anmerkung: Der Wert dieses Attributs sollte nur auf True gesetzt werden, wenn das Attribut CompressionSupported auf Truegesetzt ist.QueryAllowed
Optional: Mit diesem Attribut wird eine komprimierbare Spalte aktiviert, die für Abfragen in einer Listen-API verwendet wird. Gültige Werte sind True oder False. Wenn True festgelegt ist, kann die Spalte für Abfragen in den Listen-APIs verwendet werden.
Hinweis: Wenn der Wert des Attributs CompressionSupported auf 'true' gesetzt ist, muss auch der Wert dieses Attributs auf Truegesetzt werden.DefaultValue
Der Standardwert der Spalte.
Beschreibung
Eine Beschreibung der Spalten, die in Javadoc oder ERD verwendet werden können
NULL-Werte zulassen
Optional: Mit diesem Attribut wird der nullfähige Wert eines Feldes beschrieben. Der Standardwert lautet 'false'. Nullable=true ist für alle Spalten zulässig, mit Ausnahme der Spalte für Primärschlüsselattribute und für Entitätsbeziehungen.
XMLName
Optional: Der XML-Name des Attributs, wenn er sich vom Namen des Attributs unterscheidet.
Hinweis: Wenn ColumnName mit einem Nicht-ASCII-Zeichensatz angegeben wird, ist dieses Attribut erforderlich.Wählen Sie einen Namen aus, der nicht mit der Basiserweiterung in Konflikt steht. Es wird empfohlen, dass Sie Extn als Präfix verwenden. Es wird außerdem dringend empfohlen, dass Sie dieselbe Konvention für XMLName verwenden wie vom Basisprodukt verwendet: Verwenden Sie für jeden Buchstaben, der auf einen Unterstrich im Spaltennamen folgt, die Großschreibung und schreiben Sie die übrigen Buchstaben klein. Entfernen Sie anschließend die Unterstriche. Dadurch muss aus Extn_Item_Id Folgendes werden: ExtnItemId.
Name
Obligatorisch. Der Name der Datenbankklasse.
Entity/PrimaryKey
Name
Der Name des eindeutigen Indexes, der für den Primärschlüssel erstellt wird.
Hinweis: Der Name des Primärschlüssels in der Erweiterungs-XML muss mit _PKenden.ColumnName
Der Name der Tabellenspalte, die als der Primärschlüssel angegeben ist.
Entity/Indices/Index
Name
Der Indexname. Dieser Wert darf nicht länger als 18 Zeichen sein.
Eindeutig
Dieser Schlüssel ist nur für benutzerdefinierte Entitäten vorhanden. Gültige Werte sind True oder False. Wenn True festgelegt ist, wird ein eindeutiger Index erstellt.
AllowCompressedColumns
Optional: Wenn True festgelegt ist, darf der Index Spalten enthalten, die mit dem auf True festgelegten Attribut "CompressionSupported" markiert sind.
Column/ Name
Der Tabellenspaltenname, der zum Index gehört.
Entity/Parent
ParentTableName
Der Name der Tabelle, mit der diese Entität eine Fremdschlüsselbeziehung aufweist.
XMLName
Der XML-Name des übergeordneten Attributs. Der Name muss mit dem Präfix beginnen, das in der übergeordneten Tabelle angegeben ist.
Standardmäßig wird der Name der übergeordneten Tabelle angenommen.
Parent/Attribute Level
ParentColumnName
Der Spaltenname in der übergeordneten Tabelle.
Hinweis: Wenn Sie Beziehungen zwischen Entitäten erstellen möchten, muss der Datentyp der übergeordneten Spalte dem Typ CHAR oder VARCHAR entsprechen.
ColumnName
Der Spaltenname in dieser benutzerdefinierten Entität.
Entity/ForeignKeys/ForeignKey
ParentTableName
Der Name der Tabelle, mit der die Entität eine Fremdschlüsselbeziehung aufweist.
XMLName
Die XML-Darstellung des Elementnamens.
Standardmäßig wird der Name der übergeordneten Tabelle angenommen.
Entity/ForeignKeys/ForeignKey/Attribute
ParentColumnName
Der Spaltenname der übergeordneten Tabelle.
Hinweis: Wenn Sie Fremdschlüssel zwischen Entitäten erstellen möchten, muss der Datentyp der übergeordneten Spalte dem Typ CHAR oder VARCHAR entsprechen.
ColumnName
Der Spaltenname in dieser benutzerdefinierten Entität.
Entity/AuditReferences/Reference
ColumnName
Der Referenzspaltenname in der Audittabelle.
Hinweis: In der Entitätsdefinition kann eine Beziehung unter den Elementen "Parent" und ForeignKey definiert werden. - Die unter dem Element "ForeignKey" definierte Beziehung gibt Folgendes an:
- Wenn es sich bei der Fremdtabelle um eine Anwendungsdatenbank handelt, sind möglicherweise in dieser angepassten Tabelle für einen einzelnen Datensatz in der Fremdtabelle null oder mehrere Datensätze vorhanden.
- Da es sich um eine schreibgeschützte Beziehung handelt, bewirkt das Löschen eines Datensatzes aus der Fremdtabelle nicht, dass ein übereinstimmender Datensatz aus dieser angepassten Tabelle gelöscht wird.
- Die unter dem Element Parent definierte Beziehung gibt Folgendes an:
- Für einen einzelnen Datensatz in der übergeordneten Tabelle können mehrere untergeordnete Datensätze vorhanden sein.
- Das Löschen eines Datensatzes aus der übergeordneten Tabelle bewirkt, dass übereinstimmende Datensätze aus der untergeordneten Tabelle gelöscht werden, sofern vorhanden.
- Erweitern Sie die entsprechenden API-Vorlagen (z. B. getOrderDetails()-API), indem Sie die Anweisungen im Abschnitt "API-Vorlagen erweitern" befolgen.Hinweis: Die von der Anwendung für die angepassten Tabellen generierten APIs können als Service und über eine multiAPI -Wrapperkomponente aufgerufen werden.
- Erstellen und implementieren Sie Ihre Erweiterungen.