QueryImplementingThingsWithNamedData
Descrizione
È possibile utilizzare questo servizio per interrogare gli oggetti che implementano il modello di oggetto o la thing shape per cui viene eseguito il servizio. I nomi delle proprietà vengono passati come parametri di input (basicPropertyNames e propertyNames). Il risultato è un'infotable contenente gli oggetti che implementano il modello di oggetto o la thing shape e i valori delle proprietà del modello di oggetto o della thing shape per cui viene eseguita l'interrogazione.
Input
Nome parametro
Descrizione
Tipo di base
maxItems
Numero massimo di elementi da restituire nell'insieme di risultati. Il valore di default è 500. Questo parametro viene applicato dopo l'applicazione di tutti gli altri filtri.
NUMBER
tags
Tag modello associati all'origine di questa voce.
TAGS
nameMask
Schema del nome per le entità che implementano il modello di oggetto o la thing shape.
STRING
query
Criteri dell'interrogazione utilizzati per filtrare i dati.
È possibile scrivere i filtri solo per le proprietà effettive del modello di oggetto o della thing shape per cui viene eseguito il servizio.
QUERY
basicPropertyNames
Infotable contenente un elenco di proprietà di base, ad esempio isSystemObject, nome, descrizione, homeMashup, avatar e tag.
La data shape prevista per l'infotable è EntityList.
INFOTABLE
propertyNames
Infotable contenente un elenco di proprietà specifiche del modello di oggetto o della thing shape.
La data shape prevista per l'infotable è EntityList.
INFOTABLE
Output
Nome parametro
Descrizione
Tipo di base
result
Restituisce un'infotable contenente l'elenco di oggetti che implementano il modello di oggetto o la thing shape e le proprietà richieste del modello di oggetto o della thing shape con i relativi valori.
INFOTABLE
Esempio
Nell'esempio riportato di seguito, TestStream presenta una data shape con i campi Property1, Property2 e Property3.
Entità
ShapeProp1
ShapeProp2
ShapeProp3
ThingShape1
Definito
ND
ND
ThingShape2
ND
ND
ND
ThingShape2
ND
ND
Definito
Entità
Modello padre
Prop1
Prop2
Prop3
Prop4
Shape implementata
Proprietà effettive
Template1
Definito
ND
ND
ND
ThingShape1
Prop1, ShapeProp1
Template2
Template1
Ereditato da Template1
Definito
ND
ND
ThingShape2
Prop1,
Prop2,
ShapeProp1,
ShapeProp2
Template3
Template2
Ereditato da Template2
Ereditato da Template2
Definito
ND
Prop1,
Prop2,
Prop3,
ShapePropy1,
ShapeProp2
Template4
Template2
Ereditato da Template2
Ereditato da Template2
ND
Definito
ThingShape4
Prop1,
Prop2,
Prop4,
ShapeProp1,
ShapeProp2,
ShapeProp4
Entità
Implementa
Tag modello
Prop1
Prop2
Prop3
Prop4
ShapeProp1
ShapeProp2
ShapeProp4
Thing1
Template1
{vocabulary: "MT1", vocabularyTerm: "MT1-MTerm1"}
Val1-1
SVal1-1
Thing2
Template2
{vocabulary: "MT1", vocabularyTerm: "MT1-MTerm1"}
Val2-1
Val2-2
SVal2-1
SVal2-2
Thing3
Template3
{vocabulary: "MT1", vocabularyTerm: "MT1-MTerm1"}
Val3-1
Val3-2
Val3-3
SVal3-1
SVa3l-2
Thing4
Template4
{vocabulary: "MT1", vocabularyTerm: "MT1-MTerm2"}
Val4-1
Val4-2
Val4-4
SVal4-1
SVal3-2
SVal4-4
Nell'esempio riportato di seguito viene illustrata un'interrogazione che consente di implementare oggetti con i dati utilizzando i relativi parametri supportati. Questa chiamata API restituisce un'infotable contenente le proprietà di base richieste e altre proprietà del modello di oggetto o della thing shape che corrispondono ai parametri di input.
Dopo avere eseguito l'interrogazione seguente, l'infotable risultante include nome, descrizione, tag, Prop1 e ShapeProp4.
var params = {
infoTableName : "InfoTable",
dataShapeName : "EntityList"
};
// CreateInfoTableFromDataShape
var basicpropInfoTable = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
// EntityList entry object
var basicProp1 = new Object();
basicProp1.name = "name"; // STRING [Primary Key]
basicProp1.description = undefined; // STRING
var basicProp2 = new Object();
basicProp2.name = "description"; // STRING
basicProp2.description = undefined; // STRING
var basicProp3 = new Object();
basicProp3.name = "tags"; // STRING
basicProp3.description = undefined; // STRING
basicpropInfoTable.AddRow(basicProp1);
basicpropInfoTable.AddRow(basicProp2);
basicpropInfoTable.AddRow(basicProp3);
var propertyNamesInfoTable = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
// EntityList entry object
var prop1 = new Object();
prop1.name = "Prop1"; // STRING [Primary Key]
prop1.description = undefined; // STRING
var prop2 = new Object();
prop2.name = "ShapeProp4"; // STRING [Primary Key]
prop2.description = undefined; // STRING
propertyNamesInfoTable.AddRow(prop1);
propertyNamesInfoTable.AddRow(prop2);
result = ThingTemplates["Template4"].QueryImplementingThingsWithNamedData({
maxItems: 50 /* NUMBER {"defaultValue":500} */,
nameMask: "T*" /* STRING */,
tags: "MT1:MT1-MTerm1",
query: "{\"filters\":{\"type\": \"LIKE\", \"fieldName\": \"Prop1\", \"value\": \"Val*\" }}",
basicPropertyNames: basicpropInfoTable,
propertyNames: propertyNamesInfoTable
});
Dopo avere eseguito l'interrogazione seguente, l'infotable risultante include nome, descrizione, tag e ShapeProp1.
var params = {
infoTableName : "InfoTable",
dataShapeName : "EntityList"
};
// CreateInfoTableFromDataShape
var basicpropInfoTable = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
// EntityList entry object
var basicProp1 = new Object();
basicProp1.name = "name"; // STRING [Primary Key]
basicProp1.description = undefined; // STRING
var basicProp2 = new Object();
basicProp2.name = "description"; // STRING
basicProp2.description = undefined; // STRING
var basicProp3 = new Object();
basicProp3.name = "tags"; // STRING
basicProp3.description = undefined; // STRING
basicpropInfoTable.AddRow(basicProp1);
basicpropInfoTable.AddRow(basicProp2);
basicpropInfoTable.AddRow(basicProp3);
var propertyNamesInfoTable = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
// EntityList entry object
var prop1 = new Object();
prop1.name = "ShapeProp1"; // STRING [Primary Key]
prop1.description = undefined; // STRING
propertyNamesInfoTable.AddRow(prop1);
result = ThingShapes["ThingShape1"].QueryImplementingThingsWithNamedData({
maxItems: 50 /* NUMBER {"defaultValue":500} */,
nameMask: "T*" /* STRING */,
tags: "MT1:MT1-MTerm1",
query: "{\"filters\":{\"type\": \"LIKE\", \"fieldName\": \"ShapeProp1\", \"value\": \"S*al*\" }}",
basicPropertyNames: basicpropInfoTable,
propertyNames: propertyNamesInfoTable
});
È stato utile?