Vorheriges Thema: UUIDNächstes Thema: Where-Klauseln


Listen

Einige Webservices-Methoden geben Listen zurück, die durch eine eindeutige Ganzzahlkennung dargestellt werden. Eine Liste ist nichts anderes als eine Sammlung gleichartiger Objekte. Listen sind besonders nützlich, wenn eine große Sammlung von Objekten vorliegt (wie z. B. von allen Kontakten im System), da Sie Informationen über Elemente in einem bestimmten Bereich der Liste abrufen können. Der Nachteil ist, dass mehrere Methodenaufrufe erforderlich sind, um eine Listenkennung zu erhalten, Informationen abzurufen und schließlich die Listenkennung freizugeben. Wird nur eine geringe Anzahl an Listenzeilen erwartet, verwenden Sie Methoden, in denen keine Listenkennungen vorkommen, wie z. B. „doSelect()“.

Im Folgenden werden weitere Details zu Listen gegeben:

Listen sind homogen

Listen können nur Objekte eines einzigen Typs enthalten, z. B. nur Kontakte, nur Organisationen usw.

Listen sind statisch

Wird beispielsweise ein Listenobjekt für alle Kontakte erhalten, und es wird ein weiterer Kontakt zum System hinzugefügt, dann wird diese Aktualisierung in der Liste nicht berücksichtigt. Es ist eine weitere Listenkennung erforderlich, um die aktuellen Daten widerzuspiegeln.

Listenkennungen

Eine Anfrage für eine Liste gibt eine Ganzzahlkennung zurück, die für die Liste gleichartiger Objekte steht. Es werden keine weiteren Informationen an den Client übertragen. Der Client kann die Liste zu konkreten Informationen in deren Zeilen abfragen. Ist dies erfolgt, muss die Kennung mit „freeListHandles()“ freigegeben werden. Der CA SDM-Server verwaltet die Liste und belegt dazu Systemressourcen. Daher ist es wichtig, Listen freizugeben. Im Gegensatz zu Objektkennungen werden Listenkennungen nicht über verschiedene Sitzungen hinweg beibehalten.

Ganzzahlindex

Für mehrere Methoden ist ein Ganzzahlindex in einer Liste erforderlich. Listen sind nullbasiert, d. h., das erste Element weist den Index = 0 auf.

Wie bereits erwähnt, ist die Verwendung von Listenkennungen insbesondere bei größeren Datenmengen nützlich, in denen wiederholt Abfragen durchgeführt werden können. Für einige Vorgänge sind Listen jedoch zu umfangreich. Es stehen mehrere Methoden zur Verfügung, wobei „doSelect()“ besonders erwähnenswert ist, da mit ihr angeforderte Informationen über einen Satz von Daten ohne aufwändige Listenkennungen zurückgegeben werden.

Die Entscheidung für Listenkennungen oder Methoden wie „doSelect()“ hängt von der gewünschten Leistung und Praktikabilität ab. Nehmen Sie beispielsweise an, Ihre Anwendung verarbeitet sämtliche 15.000 Kontakte in Ihrem System. Mit der Methode „doSelect()“ können alle Kontaktdaten mit einem einzigen Aufruf abgerufen werden, die Rückgabe führt allerdings zu Verzögerungen und kann sich negativ auf die Gesamtleistung des Systems auswirken, während eine umfangreiche Datenmenge zusammengefasst und zurückgegeben wird. Die Methode "doQuery()" gibt in diesem Fall hingegen sehr schnell eine Listenreferenz zurück. Es können Abfragen auf Datenbereiche in der Liste durchgeführt werden, um die Reaktionszeiten des Servers zu verbessern. Es ist eine bewährte Faustregel, Listenreferenzen bei Datenmengen zu verwenden, die mehr als 250 Elemente umfassen.

Es ist nicht immer sinnvoll, Listenkennungen zu verwenden. Ein Issue beispielsweise hat eine Liste mit Aktivitätsprotokollen. Je nach vorliegender Installation kann die Anzahl der Protokolle zwischen sehr wenigen und mehreren Dutzend liegen. Es ist wahrscheinlich effizienter, alle Daten gleichzeitig anzufordern, anstatt eine Listenreferenz anzufordern, eine Datenabfrage durchzuführen und die Liste anschließend freizugeben.

Im Folgenden werden einige Methoden aufgeführt, die Datenmengen anstelle von Listenreferenzen zurückgeben:

Wie bereits erwähnt, können sich Abfragen, die eine hohe Anzahl an Zeilen zurückgeben, sehr negativ auf die Serverleistung auswirken. Um dies zu verhindern, begrenzt CA SDM die Anzahl der zurückgegebenen Zeilen auf 250. Dies hat Auswirkungen auf alle CA SDM-Webservice-Methoden, die Listen von Objekten zurückgeben, wie beispielsweise:

Diese Begrenzung gilt auch dann, wenn Sie versuchen, mit einer dieser Methoden über 250 Zeilen abzurufen.

Um eine hohe Anzahl an Zeilen abzurufen, sollten Sie eine Kennung für die Ergebnisliste erhalten und mit „getListValues()“ Pakete von jeweils 250 oder weniger Zeilen abrufen. Diese Vorgehensweise trägt dazu bei, dass die Leistung des Servers während der Verarbeitung großer Datenmengen nicht abnimmt.