Rubrique précédente: UUIDRubrique suivante: Clauses WHERE


Listes

Certaines méthodes de services Web renvoient des listes représentées par un descripteur de nombre entier unique. Une liste est un simple ensemble d’objets de même type. Les listes sont particulièrement utiles lorsque vous devez traiter de vastes ensembles d’objets (par exemple, tous les contacts du système). En effet, les listes vous permettent alors d’extraire des informations relatives aux éléments dans une plage de la liste. Toutefois, vous devez effectuer un plus grand nombre d’appels de méthode pour obtenir le descripteur d’une liste, extraire des informations et enfin libérer le descripteur de liste. Si le nombre attendu de lignes de la liste est réduit, utilisez les méthodes qui n’impliquent pas de descripteurs de liste, par exemple la méthode doSelect().

Voici des détails supplémentaires concernant les listes :

Les listes sont homogènes.

Une liste peut comporter uniquement des objets d’un seul type : listes de contacts, liste d’organisations, etc.

Les listes sont statiques.

Par exemple, si un objet de liste est obtenu pour tous les contacts et qu’un autre contact est ajouté au système, cette mise à jour n’est pas reflétée dans la liste. Un autre descripteur de liste est nécessaire pour extraire les données les plus récentes.

Descripteurs de liste

La requête d'une liste renvoie un descripteur sous forme de nombre entier représentant la liste des objets de même type. Aucune autre information n’est envoyée au client. Le client peut interroger la liste pour obtenir des informations spécifiques sur ses lignes. Lorsqu’un client n’utilise plus une liste, le descripteur doit être libéré via la méthode freeListHandles(). Le serveur CA SDM gère la liste, ce qui consomme des ressources système. C’est pourquoi il est important de libérer les listes. Contrairement aux descripteurs d’objets, les descripteurs de listes ne subsistent pas d’une session à l’autre.

Index des nombres entiers

Plusieurs méthodes nécessitent la présence d’un index de nombres entiers au sein d’une liste. Les listes sont basées sur zéro : le premier élément se situe donc au niveau index = 0.

Comme indiqué précédemment, l’utilisation de descripteurs de listes est souvent plus utile pour les vastes ensembles de données nécessitant des interrogations multiples. Pour certaines opérations, l’utilisation de listes est toutefois superflue. Plusieurs méthodes sont fournies, mais la méthode la plus courante est doSelect(), qui renvoie les informations relatives à un ensemble de données sans entraîner de surcharge des descripteurs de listes.

La décision d’utiliser des descripteurs de listes plutôt que des méthodes (de type doSelect()) dépend des performances et de la commodité. Par exemple, votre application est chargée du traitement de l’ensemble des 15 000 contacts de votre système. La méthode doSelect() peut extraire toutes les données de contact en un seul appel, mais la réponse sera retardée et aura un impact négatif sur l’ensemble des performances du système lors de l’assemblage et du renvoi d’un très grand ensemble de données. Dans le cas présent, la méthode doQuery() renverra une référence de la liste très rapidement. Les plages de données peuvent être interrogées à partir de la liste afin d’améliorer les temps de réponse du serveur. Ainsi, il est préférable d’utiliser les références de la liste si l’ensemble des données excède 250 éléments.

Il est parfois inutile d’utiliser les descripteurs de listes. C’est le cas, par exemple, si une demande client dispose d’une liste des journaux d’activité. Selon l’installation, le nombre de journaux peut varier de quelques-uns à plusieurs dizaines. Il est sans doute plus rapide d’interroger toutes les données simultanément que d’appeler les références de la liste, de les interroger pour obtenir des données, puis de libérer la liste.

Voici des exemples de méthodes renvoyant des ensembles de données au lieu de références de la liste :

Comme indiqué précédemment, les requêtes renvoyant un grand nombre de lignes peuvent avoir un impact négatif sur les performances du serveur. Pour éviter cela, CA SDM limite le nombre de lignes renvoyées à 250. Cela affecte toutes les méthodes Services Web de CA SDM qui renvoient des listes d'objets, y compris les méthodes suivantes.

Elle s’applique même si vous interrogez l’une de ces méthodes afin d’extraire plus de 250 lignes.

Pour extraire un grand nombre de lignes, vous devez obtenir un descripteur pour la liste de résultats et utiliser la méthode getListValues() pour extraire des blocs de 250 lignes ou moins. Cette stratégie évite le ralentissement du serveur lors du traitement de grandes quantités de données.