Définition du modèle ThingWorx dans Composer > Modélisation > Objets > Services d'objet > Paramètre de requête pour les services de requête
Paramètre de requête pour les services de requête
Plusieurs services ThingWorx prennent en charge un paramètre facultatif de requête. Le paramètre de requête est un objet de valeurs dont la configuration varie en fonction du type de requête.
Les types possibles sont les suivants :
Matches, NotMatches TaggedWith,
NotTaggedWith
GT, LT, GE, LE, NE, EQ, LIKE, NOTLIKE, IN, NOTIN
Between, NotBetween MissingValue,
NotMissingValue Near, NotNear
Les requêtes peuvent utiliser les opérateurs AND/OR et inclure un tri.
Le paramètre de requête est pris en charge par tous les services dont le nom commence par Query :
Tous les objets
QueryThingStreamEntries
Tous les flux
QueryStreamData
QueryStreamEntries
QueryStreamEntriesWithData
Toutes les tables de données
QueryDataTableEntries
Ressource InfoTableFunctions
Query
Tous les modèles d'objet
QueryImplementingThings
QueryImplementingThingsWithData
Toutes les formes d'objet
QueryImplementingThings
QueryImplementingThingsWithData
Sous-système d'audit
Configuration
Le paramètre de requête accepte deux options configurables : l'une de filtrage ("filters") et l'autre de tri ("sorts"). Une fois le paramètre de requête défini, il peut être transmis à un service de requête. Des exemples d'utilisation des options de filtrage et de tri pour le paramètre de requête sont fournis ci-après. Il est recommandé d'utiliser les outils et les extraits de script du configurateur de script pour démarrer, puis de créer manuellement l'objet du paramètre de requête en fonction des besoins.
Option de filtrage simple
Filtre Matches ou NotMatches
var query =
{
"filters": {
"type": "Matches|NotMatches",
"fieldName": "Source",
"expression": "(Kettle)|(Filler)"
}
};
Filtre TAGGED ou NOTTAGGED
var query = {
"fieldName": "tags",
"type": "NOTTAGGED",
"tags": [
{
"vocabulary": "Applications",
"vocabularyTerm": "Testing"
},
{
"vocabulary": "Plants",
"vocabularyTerm": "Sedona"
}
]
};
Comparateur simple
* 
Lorsque vous utilisez LIKE/NOTLIKE, vous devez ajouter vos propres caractères génériques (% ou * ou ? pour un seul caractère). Par exemple, pour trouver ThingWorx, utilisez LIKE Th%.
var query = {
"filters":{
"type": "GT, LT, GE, LE, NE, EQ, LIKE, NOTLIKE",
"fieldName": "<field_name>",
"value": "Th\\+*"
}
};
Filtre IN ou NOTIN
var jsonArray = [12,14];
var query = {
"filters": {
"type": "IN, NOTIN",
"fieldName": "Duration",
"values": jsonArray
}
};
Filtre Between ou NotBetween
var query =
{
"filters": {
"type": "Between, NotBetween",
"fieldName": "Duration",
"from": "2",
"to": "12"
}
};
Filtre MissingValue ou NotMissingValue
var query =
{
"filters": {
"type": "MissingValue, NotMissingValue",
"fieldName": "OrderQuantity"
}
};
Filtre Near ou NotNear
var query =
{
"filters": {
"type": "Near, NotNear",
"fieldName": "fieldName",
"distance": "50",
"units": "M(iles), K(ilometers), N(autical miles)",
"location": {
"latitude": "40.12",
"longitude": "51.24",
"elevation": "300",
"units": "WGS84"
}
}
};
Option de filtrage combiné
Il est possible de combiner plusieurs filtres à l'aide du type de filtre And ou Or. L'exemple ci-dessous filtre les lignes affichant une durée supérieure à 12 et pour lesquelles un problème de panne de courant est signalé dans le champ des tags.
var query =
{
"filters": {
"type": "And",
"filters": [
{
"type": "GT",
"fieldName": "Duration",
"value": "12"
},
{
"type": "TaggedWith",
"fieldName": "tags",
"tags": "MaintenanceIssues:PowerOutage"
}
]
}
};
Imbrication de filtres avec différents types And/Or
Pour imbriquer des filtres avec différents types And/Or, il convient d'utiliser des mots-clés "type" et "filters" pour chaque niveau de l'objet JSON. La syntaxe JSON suivante pour la requête renvoie les résultats souhaités (autre que la chaîne vide, qui est remplacée par empty dans l'exemple ci-dessous).
var query3 = {
"filters": {
"type": "AND",
"filters": [
{
"type": "OR",
"filters": [
{ "fieldName": "Status", "type": "LIKE", "value": "*-none-*" }
,
{ "fieldName": "Status", "type": "LIKE", "value": "empty" }
]
},
{ "fieldName": "IsDeleted", "type": "EQ", "value": false }
]
}
};
Options de tri
L'option de tri est un tableau d'objets. Il y a trois paramètres possibles pour chacun des objets de tri du tableau de tri : fieldName, isAscending, isCaseSensitive. Seul le nom du champ est obligatoire. isAscending et isCaseSensitive prennent la valeur "vrai" par défaut.
Option de tri simple
var query =
{
"sorts": [
{
"fieldName": "Material"
}
]
}
Option de tri complexe
var query =
{
"sorts": [
{
"fieldName": "Material"
},
{
"fieldName": "OrderDate",
"isAscending": false
}
]
}
Tri et filtrage
Vous pouvez appliquer un tri et un filtre au même service de requête, comme dans l'exemple suivant :
var query =
{
"sorts": [
{
"fieldName": "LotID",
"isAscending": false,
"isCaseSensitive": false
},
{
"fieldName": "Plant"
}
],
"filters": {
"type": "And",
"filters": [
{
"type": "GT",
"fieldName": "Duration",
"value": "12"
},
{
"type": "TaggedWith",
"fieldName": "tags",
"tags": "MaintenanceIssues:PowerOutage"
}
]
}
};
Types possibles
Les types possibles sont les suivants :
EQ = égal à
NE = différent de
GT = supérieur à
GE = supérieur ou égal à
LT = inférieur à
LE = inférieur ou égal à
LIKE = correspond à la chaîne
BETWEEN
NOTBETWEEN
Est-ce que cela a été utile ?