Utilisation du service QueryImplementingThingsOptimized
Pour appeler le service QueryImplementingThingsOptimized pour les formes et les modèles d'objet, vous disposez des services JavaScript suivants :
• QueryImplementingThingsOptimized
• QueryImplementingThingsOptimizedWithTotalCount
Vous pouvez les appeler de la même manière que pour le service
QueryImplementingThings. Pour en savoir plus, consultez la rubrique
Utilisation du service QueryImplementingThings. Par exemple,
ThingShapes["shape1"].QueryImplementingThingsOptimized.
WithTotalCount renvoie une table d'informations contenant le résultat et le nombre total de lignes, en ignorant une limite d'éléments ou un décalage maximum appliqué à la requête. Par exemple, si vous effectuez une requête avec maxItems défini sur 5, cinq lignes sont renvoyées. Toutefois, le nombre total de lignes peut être égal à 100, qui correspond au nombre total de lignes trouvées avant l'application de la limite.
Paramètres
Les paramètres suivants s'appliquent à QueryImplementingThingsOptimized :
• Paramètres pour QueryImplementingThings :
◦ EntityReference parentEntity,
◦ int nMaxItems
◦ TagCollection tagsToCompare,
◦ String nameMask,
◦ Query query,
◦ boolean withData,
◦ boolean withPermissions,
◦ Collection<String> basicPropertyNames,
◦ Collection<String> propertyNames,
• Paramètres supplémentaires pour QueryImplementingThingsOptimized :
◦ networkName
Nom du réseau sur lequel filtrer. La requête renverra uniquement les résultats obtenus à partir des objets présents sur ce réseau.
◦ networkParentNode
Nom du noeud supérieur dans le réseau spécifié dans networkName. La requête renverra tous les enfants du noeud parent spécifié dans le réseau.
◦ networkMaxDepth
Niveau auquel rechercher les enfants du noeud parent. 1 renvoie les enfants directs et 2 renvoie les enfants des enfants. S'il est défini sur 0 ou sur défaut/nul, il renvoie la hiérarchie complète des enfants.
◦ offset
Décalage du résultat par rapport à la valeur spécifiée. Par exemple, s'il existe 200 résultats dans la base de données, avec un décalage de 5, les résultats 5 à 200 (pour un total de 195) sont renvoyés.
Vous pouvez combiner les paramètres offset et maxItems pour simuler la pagination. Plus la requête porte sur un nombre important de résultats, plus le temps d'interrogation peut être long.
Par exemple, si vous disposez de 1 000 objets et que maxItems est défini sur 5, chaque page affichera 5 résultats.
▪ Page 1 : offset est défini sur 0. Les 5 premiers résultats sont renvoyés puisque maxItems est égal à 5.
▪ Page 2 : offset est défini sur 5. Les résultats 6 à 10 sont renvoyés.
▪ Page 3 : offset est défini sur 10. Les résultats 11 à 15 sont renvoyés.
▪ Et ainsi de suite.
Dans cet exemple, le nombre de résultats renvoyés est faible, de sorte que le temps d'interrogation est court.
Restrictions
Le service QueryImplementingThingsOptimized recherche dans le cache au lieu de la base de données, et les restrictions suivantes s'appliquent :
• Seules les propriétés de la forme ou du modèle d'objet spécifié peuvent être entrées. Les propriétés peuvent être spécifiées à l'aide du paramètre propertyNames. Si une propriété est présente sur l'objet, mais pas sur la forme d'objet spécifiée, le service lèvera une exception.
• Le filtrage ou le tri sur le type de mot de passe n'est pas autorisé.
• Les objets disposant d'une propriété ne pouvant pas être filtrée en raison des autorisations sont ignorés. Si une propriété non filtrée et non visible est demandée, elle est renvoyée en tant que valeur nulle pour cet objet.
Par exemple, vous filtrez sur la propriété prop1 d'une forme d'objet donnée, où se trouvent Thing1, Thing2 et Thing3. Pour Thing1, vous ne pouvez pas voir prop1 ; par conséquent, Thing1 sera ignoré même si sa valeur correspond au filtre. Seuls Thing2 et Thing3 seront renvoyés.
• Le filtrage ou le tri n'est pas autorisé sur les propriétés de base suivantes : homeMashup, Avatar, projectName et isSystemObject.