Verwenden einer Berechnung zur Erstellung eines einzelnen Felds aus Suchergebnissen

Mithilfe des Berechnungseditors können Sie Ihre Service Desk- oder Asset Manager-Daten manipulieren.In diesem Abschnitt wird beschrieben, wie eine Berechnung erstellt wird, die die Sammlung Suchergebnisse durchläuft, um ein einzelnes Feld zu erzeugen, das angezeigt oder per E-Mail an den entsprechenden Benutzer gesendet werden kann.

Weitere Informationen zur Verwendung von Berechnungen finden Sie unter Berechnungen.

Die Sammlung Suchergebnisse, die vom Verhalten Automatische Suche erzeugt wird, beinhaltet in der Regel verschiedene Arten von Objekten, wie z. B. Incidents und Artikel. Diese Objekte haben unterschiedliche Attribute. Somit ist es schwierig, eine Berechnung zu schreiben, die Datensätze aus dieser Sammlung zurückgibt, weil Sie nicht sicher sein können, welche Attribute zu erwarten sind. Zum Beispiel: Incident enthält ein Attribut Aufnahme am, doch Artikel enthält dieses Attribut nicht. Artikel enthält jedoch ein Attribut Effektivität, das bei Incident nicht vorhanden ist. Mit der Funktion GetReferencedObject ("") im Berechnungseditor können Sie die Sammlung Suchergebnisse durchlaufen und identifizieren, auf welches Objekt sich der jeweilige Datensatz bezieht. Dann können Sie anschließend im nächsten Teil der Berechnung die entsprechenden Attribute für diesen Datensatz anfordern.

Die folgende Beispielberechnung durchläuft die Zeilen in der Sammlung Suchergebnisse und identifiziert, ob die Zeile einem Artikel oder Incident entspricht. Ist die Zeile ein Artikel, dann wird die Zeichenfolge Artikeltitel =Titel generiert, wobei Titel der Titel des Artikels ist. Ist die Zeile ein Incident, dann wird die Zeichenfolge Incident-ID=ID erzeugt, wobei ID die Referenznummer des Incident ist.

Kopieren
import System
static def GetAttributeValue(Incident):
    Value = ""
    for item in Incident.SearchMatches:
        Value += item.SerialNumber + "="
        obj = item.GetReferencedObject("MatchingObject")

        if obj.ClassType.FullName == "Knowledge.Article":
            Value += "Article Title=" + obj.Title
        if obj.ClassType.FullName == "IncidentManagement.Incident":
            Value += "Incident Id=" + obj.Id
    Value += " / "
return Value

Zunächst wird die Variable Wert auf leer gesetzt. Dann weist die mit for beginnende Zeile die Berechnung an, jedes Element in der Sammlung Suchergebnisse auf dem Objekt Incident zu durchlaufen.

Jedes Mal, wenn die Berechnung Wert += durchläuft, wird der vom Rest dieser Zeile generierte Text an das Ende der aktuell in der Variablen Wert gespeicherten Zeichenfolge angehängt. Wenn also die Berechnung zum ersten Mal die Zeile Wert += Element.Seriennummer"=" durchläuft, liest sie die Seriennummer des ersten Elements (das wird 1 sein) und fügt = ein, um die Zeichenfolge 1= zu erzeugen.

Die Zeile obj = Element.GetReferencedObject ("ÜbereinstmmendesObjekt") nutzt die Funktion GetReferencedObject (""), um die Variable mit dem Namen obj so zu setzen, dass sie gleich dem Objekt für das Element in der aktuellen Zeile der Sammlung ist. Das wird dann später in der Berechnung in den IF-Anweisungen genutzt.

if obj.ClassType.FullName == "Knowledge.Artikel": prüft, ob das in der vorhergehenden Zeile zurückgegebene Objekt Knowledge.Artikel ist. Wenn das zurückgegebene Objekt NICHT Knowledge.Artikel ist, fährt die Berechnung mit der Zeile if obj.ClassType.FullName == "IncidentManagement.Incident": fort, um zu prüfen, ob das zurückgegebene Objekt IncidentManagement.Incident ist.

Wenn das zurückgegebene Objekt Knowledge.Artikel ist, wird die Zeile Wert += "Artikeltitel =" obj.Titel ausgeführt, und der Text Artikel.Titel =<Artikeltitel> wird an die Variable Wert angehängt (wobei <Artikeltitel> der Titel des entsprechenden Artikels ist. Wenn das zurückgegebene Objekt IncidentManagement.Incident ist, wird die Zeile Wert += "Incident-ID =" obj.Id ausgeführt, und der Text Incident-ID =<Incident-ID> wird an die Variable Wert angehängt (wobei <Incident-ID> die Referenznummer des entsprechenden Incident ist.

Die Zeile Wert += "/" fügt dann an das Ende der Variable Wert ein / an, und die Berechnung fährt in der Schleife mit dem nächsten Element in der Sammlung fort, um den nächsten Datensatz hinzuzufügen. Diese Schleife wird bis zum Ende der Sammlung abgearbeitet.

Nach Abschluss der Berechnung wurde eine Zeichenfolge folgender Art generiert:

1 = Artikeltitel = Titel des ersten Elements in der Sammlung / 2 = Incident-ID = 12.033 / ...

Bei diesem Beispiel ist das erste Element in der Sammlung Suchergebnisse ein Artikel mit dem Titel Titel des ersten Elements in der Sammlung, und das zweite Element ist Incident 12.033.

Falls die Sammlung Suchergebnisse bei dieser Beispielberechnung andere Elemente als Artikel oder Incidents enthält, findet die IF-Anweisung keine Übereinstimmung, und die entsprechende Zeile bleibt - bis auf die Seriennummer des Elements am Anfang der Zeile - leer. Durch Hinzufügen einer weiteren IF-Anweisung für das neue Objekt lässt sich dies beheben.