Konfigurationstabellen
Konfigurationstabellen werden für Dinge, Dingvorlagen, Dingformen, Datentabellen, Streams, Wert-Streams, Zeitgeber, Scheduler,Industrie-Dingformen, Industrie-Gateways,Mashup-Vorlagen, Projekte, Dinggruppen, Benachrichtigungen, Blogs, Wikis,Gadgets,Master und Mashups verwendet, um Werte wie Eigenschaftswerte, die sich nicht oft ändern, zu speichern. Am häufigsten werden Konfigurationstabellen zum Speichern von Anmeldeinformationen und Hostinformationen für eine externe Ressource verwendet. Konfigurationstabellen sollten nicht zum Speichern häufig aktualisierter dynamischer Daten verwendet werden. Diese Informationen werden in ähnlicher Weise wie Eigenschaften definiert. Um Konfigurationen zu verwenden, definieren Sie eine Konfigurationstabelle mit einem Namen und einer Beschreibung und geben an, ob mehrere Zeilen gespeichert werden können. Ähnlich wie bei Eigenschaften sind einigen Konfigurationswerten Aspekte zugeordnet.
* 
Daten in Konfigurationstabellen werden beim Importieren durch in der Datei gespeicherte Werte überschrieben.
Sie können eine Konfigurationstabelle mit einem der folgenden Elemente definieren:
Konfigurationstabellen in Composer definieren
Auf den unterstützten Entitäten können Sie wie folgt eine Konfigurationstabelle definieren:
1. Wählen Sie Mehr > Konfigurationstabelle hinzufügen.
Der Bildschirm Konfigurationstabelle hinzufügen wird angezeigt.
2. Geben Sie einen Namen für die Konfigurationstabelle ein.
Bei Namen wird die Groß-/Kleinschreibung beachtet.
3. Beschreiben Sie im Feld Beschreibung den Zweck oder die Funktionalität der Konfigurationstabelle.
4. Wählen Sie einen Data Shape für die Konfigurationstabelle aus.
Der ausgewählte Data Shape muss ein Feld für einen primären Schlüssel haben.
5. Wenn mehr als eine Datenzeile in der Konfigurationstabelle angezeigt werden soll, aktivieren Sie das Kontrollkästchen Mehrere Zeilen zulassen.
6. Wenn die Entität mehrere Konfigurationstabellen besitzt, können Sie deren Position steuern, indem Sie eine Zahl in das Feld Ordinal eingeben.
Die Position kann nicht geändert werden, nachdem die Konfigurationstabelle hinzugefügt wurde.
7. Klicken Sie auf Fertig.
Die Konfigurationstabelle wird auf der Seite Konfiguration angezeigt.
8. Um eine Konfigurationstabelle zu löschen, klicken Sie auf die Schaltfläche Löschen.
Konfigurationstabellen durch Hinzufügen von Anmerkungen für Java-Klassen definieren
Sie können Konfigurationstabellen erstellen, indem Sie Anmerkungen für Java-Klassen hinzufügen. Weitere Informationen finden Sie in der API-Dokumentation für ThingWorx Platform im Thema zu com.thingworx.metadata.annotations.ThingworxConfigurationTableDefinition.
Das folgende Code-Snippet zeigt beispielsweise die Konfigurationstabellendefinitionen, die sich über der Klassendefinition befinden:
@ThingworxConfigurationTableDefinitions(tables = {
@ThingworxConfigurationTableDefinition(
name="ConfigTableExample1",
description="Example 1 config table", isMultiRow=false,
dataShape = @ThingworxDataShapeDefinition( fields = {
@ThingworxFieldDefinition(name="field1",
description="",baseType="STRING"),
@ThingworxFieldDefinition(name="field2",
description="",baseType="NUMBER"),
@ThingworxFieldDefinition(name="field3",
description="",baseType="BOOLEAN"),
@ThingworxFieldDefinition(name="field4",
description="",baseType="USERNAME"),
} ) ),
@ThingworxConfigurationTableDefinition(
name="ConfigTableExample2",
description="Example 2 config table", isMultiRow=true,
dataShape = @ThingworxDataShapeDefinition( fields = {
@ThingworxFieldDefinition(name="columnA",
description="",baseType="STRING"),
@ThingworxFieldDefinition(name="columnB",
description="",baseType="NUMBER"),
@ThingworxFieldDefinition(name="columnC",
description="",baseType="BOOLEAN"),
@ThingworxFieldDefinition(name="columnD",
description="",baseType="USERNAME"),
} ) )
})
public class GoodByeThing extends Thing {
}
Konfigurationstabellen durch XML-Import/-Export definieren
Sie können Konfigurationstabellen für Dinge, Dingvorlagen, Dingformen und Mashups auch über XML-Importe definieren. Im folgenden Beispiel wird eine Konfigurationstabellendefinition für eine Entität dargestellt, die im XML-Format exportiert wird:
<ConfigurationTableDefinitions>
<ConfigurationTableDefinition category="TemplateConfigTables"
dataShapeName="MyDS" description="Template Config Table" isHidden="false"
isMultiRow="true" name="ConfigTableOnTemplate" ordinal="2" source="REST"/>
</ConfigurationTableDefinitions>
* 
Konfigurationstabellendefinitionen, die durch Anmerkungen erstellt werden, werden nicht im XML-Export angezeigt.
Nachfolgend finden Sie ein Beispiel für im XML-Format exportierte Konfigurationstabellendaten:
<ConfigurationTables>
<ConfigurationTable description="Template Config Table"
isMultiRow="true" name="ConfigTableOnTemplate" ordinal="2">
<DataShape>
<FieldDefinitions>
<FieldDefinition aspect.isPrimaryKey="true" aspect.tagType="ModelTags" baseType="STRING" description="" name="p1" ordinal="1"/>
<FieldDefinition aspect.isPrimaryKey="true" aspect.tagType="ModelTags" baseType="STRING" description="" name="p2" ordinal="2"/>
<FieldDefinition aspect.isPrimaryKey="true" aspect.tagType="ModelTags" baseType="STRING" description="" name="p3" ordinal="3"/>
</FieldDefinitions>
</DataShape>
<Rows>
<Row>
<p1>
<![CDATA[1]]>
</p1>
<p2>
<![CDATA[2]]>
</p2>
<p3>
<![CDATA[3]]>
</p3>
</Row>
</Rows>
</ConfigurationTable>
</ConfigurationTables>
Konfigurationstabellen für Dinge und Mashups unter Verwendung der REST-API definieren
Sie können Konfigurationstabellen unter Verwendung von REST-API-Diensten zu Dingen und Mashups hinzufügen. Jede Konfigurationstabelle ist einem Data Shape zugeordnet. Der Data Shape für eine mehrzeilige Konfigurationstabelle muss einen primären Schlüssel haben. Sobald die Konfigurationstabelle gespeichert wurde, kann ein Data Shape nicht mehr geändert werden. Sie können jedoch Änderungen in den Data Shape-Feldern vornehmen. Sie können dem Data Shape ein Feld hinzufügen oder ein hinzugefügtes Feld löschen oder den Basistyp eines Felds ändern. Eine Änderung des Basistyps kann sich auf die Daten in der Konfigurationstabelle auswirken. Beispielsweise kann die Änderung des Basistyps von string auf integer zum Verlust von Konfigurationstabellendaten führen.
Die folgende Abbildung zeigt eine Konfigurationstabellendefinition mit Diensten für ein Ding in ThingWorx Composer:
Die oben erstellte Konfigurationstabelle wird folgendermaßen auf der Seite Konfiguration für das Ding in ThingWorx Composer angezeigt:
Um der Konfigurationstabelle Daten hinzuzufügen, öffnen Sie die Entität im Bearbeitungsmodus, und wählen Sie Hinzufügen neben dem Namen der Konfigurationstabelle aus.
Konfigurationstabellen für Dingvorlagen und Dingformen unter Verwendung der REST-API definieren
Um Konfigurationstabellen Dingvorlagen und Dingformen hinzuzufügen, können Sie einen Dienst für ein Ding schreiben, der die AddConfigurationTableDefinition-REST-API auf der Dingvorlage aufruft. Unten sehen Sie ein Beispiel eines benutzerdefinierten Dienstes (AddConfigTableToTemplate), der einer Dingvorlage (MyThingTemplate) eine Konfigurationstabelle hinzufügt. Gleichermaßen können Sie einen Dienst schreiben, um eine Konfigurationstabelle einer Dingform hinzuzufügen.
Sie können einer Konfigurationstabelle aus ThingWorx Composer oder mit einem Dienst ähnlich dem folgenden Daten hinzufügen:
Vererbung bei Konfigurationstabellen und Konfigurationsdaten
Konfigurationstabellen und ihre Daten, die für Dingvorlagen- und Dingform-Entitäten erstellt werden, werden durch Implementierung einer Ding-Entität vererbt. Definitionsänderungen an den Konfigurationstabellen auf Ebene der Dingvorlage oder -form werden für Dinge übernommen, die die Tabellen aus ihrer Dingvorlage oder -form geerbt haben.
Eine neue Dingentität erbt Konfigurationsdaten von ihren Data Shapes oder ihrer Dingvorlage. Nachdem das Ding erstellt wurde, kann es jedoch keine Datenänderungen an den Tabellen akzeptieren, die von seiner Dingvorlage oder seinen Data Shapes geerbt wurden.
Beispiel:
ThingTemplateA hat configTable1
ThingShapeA hat configTable2
ThingA wird basierend auf ThingTemplateA erstellt und implementiert ThingShapeA.
ThingA erbt configTable1 und configTable2 mit Daten aus der Dingvorlage bzw. Data Shape.
Wenn ThingTemplateA den Wert von configTable1 von singleRow in multiRow ändert, dann gibt ThingA diese Änderung wider.
Wenn ThingTemplateA jedoch die Daten in configTable1 ändert, dann erbt ThingA die Datenänderung nicht. ThingA behält die Daten bei, die es für configTable1 besitzt. ThingA kann auch die Daten für configTable1 und configTable2 ändern, und die Datenänderung wird nicht an die Dingvorlage oder den Data Shape oder an andere Dinge weitergegeben, die diese Konfigurationstabelle geerbt haben.
War dies hilfreich?