Für mehrere Webservices-Methoden, wie z. B. für "doSelect()" und "doQuery()", sind Where-Klauseln bei Suchvorgängen erforderlich. Eine Where-Klausel ist die Zeichenfolge nach dem Schlüsselwort „WHERE“ in einer SQL-Anweisung. Das folgende Beispiel zeigt eine Where-Klausel zum Suchen von Kontakten (das „cnt“-Objekt) nach Nachnamen:
last_name = 'Jones'
oder
last_name LIKE 'Jone%'
Im zweiten Beispiel werden alle Kontakte gefunden, deren Namen mit „Jone“ beginnen, während im ersten nur „Jones“ gefunden wird.
CA SDM unterstützt nur eine Teilmenge der standardmäßigen SQL-Parameter für Where-Klauseln. Dabei handelt es sich um Folgendes:
Klammern sind für Gruppierungen zulässig. Explizite Joins, EXISTS- und GROUP BY-Elemente werden nicht unterstützt.
Bei den Spaltennamen handelt es sich einfach um die Attributnamen des Objekts. Sie müssen die Namen verwenden, die für die Attribute auf Objektebene definiert sind – verwenden Sie nicht die Namen der eigentlichen DBMS-Spalten. Zeichenfolgenwerte müssen wie im obigen Beispiel angegeben in Anführungszeichen stehen. CA SDM-Datentypen, z. B. Datum und Dauer, werden wie im folgenden Beispiel gezeigt als Ganzzahlen behandelt:
creation_date > 38473489389
Die Punktnotation ist in Where-Klauseln zum Durchsuchen von SREL (Fremdschlüssel)-Typen zulässig. Die Abfrage auf das Anfrageobjekt ("cr") im folgenden Beispiel gibt alle Anfragen zurück, die Kontakten mit bestimmten Namen zugeordnet sind:
assignee.last_name like 'Martin%'
Die Punktnotation vereinfacht die Formulierung von Where-Klauseln, allerdings muss darauf geachtet werden, dass die Abfrage effizient ist. Die Abfrage im Beispiel könnte sich als ineffizient erweisen, wenn das Attribut „last_name“ des Kontakts nicht im DBMS indiziert wurde (in diesem Beispiel ist sie es jedoch). Um eine optimale Nutzung von Indizes beim Durchsuchen von SRELs zu gewährleisten, verwenden Sie die ID-Attribute der CA SDM-Objekte. Alle Tabellen in CA SDM weisen einen Index für das ID-Attribut auf.
Das ID-Attribut eines Objekts lässt sich einfach aus dessen Kennung abrufen. Wie zuvor beschrieben, ist eine Objektkennung eine Zeichenfolge im Format "<objektName>:<id>", wobei "id" der Wert des ID-Attributs ist, der in jedem CA SDM enthalten ist. Extrahieren Sie einfach den ID-Teil und verwenden Sie „<attributeName>.id“ in der Where-Klausel.
Die ID eines Objekts ist entweder eine Ganzzahl oder eine UUID. Wenn es sich um eine Ganzzahl handelt, verwenden Sie sie einfach als solche. Um beispielsweise nach Anfragen zu suchen, deren Ursache auf die Kennung "rc:1234" eines Ursache-Objekts verweist, lautet die Where-Klausel:
rootcause.id = 1234
Wenn die ID eines Objekts vom UUID-Typ ist, müssen Sie es folgendermaßen formatieren:
U’<uuid>’
Die Zeichenfolgendarstellung einer UUID ist in einfache Anführungszeichen gesetzt und hat als Präfix den Großbuchstaben U. Die Zeichenfolgendarstellung eines UUID-Werts entspricht dem <id>-Teil einer Objektkennung.
Betrachten Sie das vorherige Beispiel: Wenn Sie wissen, dass die Kennung für einen bestimmten Kontakt "cnt: 913B485771E1B347968E530276916387" lautet, können Sie die Abfrage wie vom folgenden Beispiel gezeigt bilden:
assignee.id = U’913B485771E1B347968E530276916387’
Formulieren Sie keine Where-Klauseln, die das Attribut „persistent_id“ abfragen, wie im folgenden Beispiel:
rootcause.persistent_id = 'rc:1234'
Weitere Informationen über Kennungen finden Sie unter "Standardmäßige Kennungen".
|
Copyright © 2013 CA.
Alle Rechte vorbehalten.
|
|