Indizierte Felder hinzufügen oder entfernen
Indizierte Felder werden verwendet, um die Suche in der Datenbank zu optimieren. Sie werden als Beschränkung für die zugehörige Spalte in der Datenbanktabelle definiert.
Indiziertes Feld hinzufügen
So fügen Sie einer vorhandenen Datenbanktabelle ein indiziertes Feld hinzu:
1. Navigieren Sie zu dem entsprechenden Manager für die ThingWorx Entität, die der Datenbanktabelle zugehörig ist. Diese Manager werden in der Tabelle ManagerConfigurationSettings auf der Seite Konfiguration des Startpunkt-Konfigurationsdings (PTC.Factory.C_LaunchPointConfigurationThing_[Release-Version]) festgelegt. Der Manager für die Operator Advisor Entitäten ist z.B. PTC.SCA.SCO.DefaultProductionOrderManager.
2. Suchen Sie unter Dienste den Dienst Get<entity>DBInfo für die Entität, der Sie das indizierte Feld hinzufügen möchten, und überschreiben Sie ihn. Um z.B. ein indiziertes Feld einer Datenbanktabelle hinzuzufügen, suchen Sie den Dienst GetJobOrderDBInfo und überschreiben Sie ihn.
3. Scrollen Sie im Skripteditor nach unten zu dem Eintrag für den Data Shape, dem Sie das indizierte Feld hinzufügen möchten.
4. Fügen Sie für den Data Shape ein Array indexedFields mit den folgenden Eigenschaften hinzu:
name (erforderlich) – Name der Spalte.
unique – Angabe, ob die Spalte einen eindeutigen Wert aufweisen muss.
identifier – Der Name der Entität in der Datenbank. Wenn kein Name festgelegt wird, generiert das System den Wert automatisch im Format <Tabellenname>_<Spaltenname>_idx. Wenn der Name festgelegt wird, muss dieser sowohl für festgelegte Werte als auch für alle automatisch generierten Werte eindeutig sein. Die maximale Länge für den Wert entspricht der in der Datenbank zulässigen maximalen Länge von IDs.
5. Klicken Sie auf Speichern, um die Änderungen an dem Dienst zu speichern.
6. Navigieren Sie zum Ding PTC.SCA.SCO.DatabaseManager.
7. Synchronisieren Sie die Datenbankinformationen in Operator Advisor mit dem Datenbankschema. Weitere Informationen finden Sie unter Datenbankinformationen mit Datenbankschema synchronisieren.
Indiziertes Feld entfernen
So entfernen Sie ein indiziertes Feld:
* 
Entfernen Sie keine indizierten Felder, die standardmäßig definiert sind. Entfernen Sie nur indizierte Felder, die zuvor von Ihnen hinzugefügt wurden, z.B. durch Operator Advisor Entitäten benutzerdefinierte Eigenschaften hinzufügen oder Dem Operator Advisor Datenmodell benutzerdefinierte Entitäten hinzufügen.
1. Navigieren Sie zu dem Datenbankding, das für Ihr System konfiguriert ist, z.B. PTC.SCA.SCO.PostgresDatabase oder PTC.SCA.SCO.MSSQLDatabase.
2. Führen Sie unter Dienste den Dienst RemoveIndex mit den folgenden Eingaben aus:
dataShapeName – Der Data Shape für die Datenbanktabelle, aus der Sie die Beschränkung für das indizierte Feld entfernen
fieldName – Das Feld auf dem Data Shape, auf dem Sie die Beschränkung für das indizierte Feld entfernen
dbInfo – Die JSON-Beschreibung der zu entfernenden Beschränkung für das indizierte Feld. Es müssen dieselben Informationen für identifier (falls erforderlich) und name angegeben werden, die im Dienst Get<entity>DBInfo, in dem das indizierte Feld definiert ist, angegeben sind.
3. Klicken Sie auf Ausführen.
4. Navigieren Sie zum Dienst Get<entity>DBInfo, in dem das indizierte Feld definiert ist, und entfernen Sie die Definition des indizierten Felds aus den Diensten. Wird die Definition nicht entfernt, wird das indizierte Feld der Datenbank bei der nächsten Ausführung der Synchronisationsdienste wieder hinzugefügt.
Beispiel: Geben Sie die folgenden Eingabeparameter an, um eine Beschränkung für ein indiziertes Feld mit Angabe von identifier aus einem Feld mit dem Namen WorkDefinitionUID auf dem Data Shape MyObject zu entfernen:
dataShapeNameMyObject
fieldNameWorkDefinitionUID
dbInfo
{
"identifier":"myobject_workdefinitionuid_idx"
"name":"WorkDefinitionUID",
}