Diese TechNote beschreibt in ACC:

  1. Wie funktioniert die Funktion „Automatische Sequenzgenerierung“?
  2. Wie funktioniert die neue API GenCreateOrUpdateSchemaSequenceDDL
  3. Die Änderung der Sequenznutzung für einige OOB-Schemas

Hintergrund

In ACC könnten Schema-ID-Werte automatisch durch das Festlegen von autopk="true" im Stammelement generiert werden.

Ohne dieses Attribut (oder ohne seinen Wert auf „false“ zu setzen) werden die Werte manuell mit JavaScript oder einem Workflow eingespeist.

Bei autopk="true" verwendet die ID den Sequenznamen, der im Attribut pkSequence übergeben wird. Wenn pkSequence fehlt, verwendet ACC standardmäßig die Sequenz OOB XtkNewId.

Zusammenfassend:

screen_shot_2018-04-18at111737

Der Hauptzweck dieser Funktion besteht darin, so weit wie möglich die „XtkNewId“-Sequenz insbesondere für benutzerdefinierte Schemas und für einige OOB-Schemas (XtkWorkflowLog, usw.) zu vermeiden. Stattdessen erstellen wir für sie zuständige Sequenzen.

Beschreibung

Automatische Sequenzgenerierung für benutzerdefinierte autopk-Sequenz*

Dieses Feature enthält die folgenden Funktionen:

  1. Während PostUpgrade erstellen Sie eine Option „XtkSequence_AutoGeneration“ vom Typ Datum/Uhrzeit (Datum/Uhrzeit von PostUpgrade)

  2. Wenn ein benutzerdefiniertes autopk-Schema vor dem Wert „XtkSequence_AutoGeneration“ erstellt wird (nach der Prüfung des Erstellungsdatums des Schemas), nehmen wir standardmäßig keine Änderung vor.

  3. Wenn ein benutzerdefiniertes autopk-Schema nach dem Wert von „XtkSequence_AutoGeneration“ erstellt wird, wird während der Generierung des Schemas eine eigene Sequenz automatisch generiert. Diese Sequenz enthält im Allgemeinen** einen Namen wie zum Beispiel auto_<nameSpace><schemaName>_seq

  4. Es gibt eine Möglichkeit, um diese Funktion zu deaktivieren, indem Sie die Einstellungsoption XtkSequence_AutoGeneration auf ein Datum in der Zukunft stellen (zum Beispiel 01/01/2999)

  5. Unterstützte Datenbanken: PostgreSQL, Oracle und MSSQL

  6. Diese Funktion ist nicht für FDA-Schemas

  7. Erweiterte Schemas werden weiterhin deren Mutterschema-Sequenzen verwenden.

Hinweis:

* Benutzerdefiniertes autopk-Schema: ein Schema, das keinen OOB-Namespace hat (d.h. nl, nms, xtk, crm oder ncm) mit dem autopk="true" und ohne angegebene pkSequence

**, wenn der automatisch generierte Sequenzname mehr als 30 Zeichen aufweist, moderieren wir den Teil <nameSpace><schemaName> mit CRC32

Neue „GenCreateOrUpdateSchemaSequenceDDL“-API

Diese Funktion wird dank der neueingeführten API implementiert, was das SQL-Skript generiert, das verwendet wird, um autopk-Schemasequenzen zu erstellen oder zu aktualisieren:

GenCreateOrUpdateSchemaSequenceDDL(schemaID, newSequenceName, oldSequenceName)
 
  schemaID (mandatory): "<nameSpace>:<schemaName>"
  newSequenceName (mandatory): new sequence name
  oldSequenceName (optional): old sequence name

Im Allgemeinen rufen wir diese API auf, um eine autopk-Schemasequenz zu erstellen. In diesem Fall ist „oldSequenceName“ leer. Wenn Sie beispielsweise ein benutzerdefiniertes autopk Schema erstellen, rufen wir diese API intern mit ihrer schemaID und dem automatisch generierten Sequenznamen auf und aktualisieren dann die Datenbankstruktur, um die Sequenz in der Datenbank zu erstellen.

Diese neue API kann auch zum Aktualisieren einer autopk-Schemasequenz verwendet werden, indem "oldSequenceName" bereitgestellt wird. Beispiel: Es gab ein benutzerdefiniertes autopk-Schema, „cus:mySchema“, wobei „XtkNewId“ als seine Sequenz verwendet wurde. Jetzt möchten wir eine neue Sequenz, „mySequence“, verwenden. Dazu können Sie Folgendes in JavaScript aufrufen und die Output DDL-Statements in Datenbank ausführen. 

GenCreateOrUpdateSchemaSequenceDDL("cus:mySchema", "mySequence", "XtkNewId")

In diesem Fall beginnt die neue Sequenz mit der höchsten ID des Schemas.

XtkWorkflowLog Schema – Wechseln zu einer bestimmten Sequenz (von XtkNewId)

Das XtkWorkflowLog-Schema könnte die XtkNewID-Sequenz überbeanspruchen. Ab der ACC Version 18.4 wird das Schema XtkWorkflowLog eine neue dedizierte Sequenz XtkWorkflowLogId statt XtkNewId verwenden.  Die Umschaltung erfolgt automatisch im Upgrade auf ACC18.4 für bereits vorhandene Instanzen. Für neue 18.4-Instanzen wird die XtkWorkflowLogId-Sequenz standardmäßig verwendet.

Hinweis:

Ein anderes Schema, das die ID überbeanspruchen könnte, wird in der nächsten Version zu einer dezidierten Sequenz gewechselt.

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie