Trouble Ticket Open API Developer Guide

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 4 Minuten Lesedauer
  • Verwenden Sie die Trouble Ticket Open API, um Ticketinformationen zwischen externen Ticketsystemen und der Now Platform zu verwalten. Diese API erstellt, aktualisiert und ruft Daten aus den Tabellen „Fall“ [sn_customerservice_case] und „Incident“ [incident] ab.

    Dieser Entwicklerleitfaden enthält Informationen zum Erweitern von Offene Trouble Ticket-API, um verschiedene Anpassungen vorzunehmen.

    Die Trouble Ticket Open API erweitern

    Die Trouble Ticket Open API kann durch Bearbeiten von Skripteinbindungen erweitert werden.

    Diese Skripteinbindungen sollten nur bearbeitet werden, wenn die Konsequenzen der Änderungen bekannt sind.
    • TMFTroubleTicketAPIConstants: Enthält Konstanten und Informationen zu erforderlichen Parametern.
    • TMFTroubleTicketAPIUtil: Enthält Funktionen zur Verarbeitung von POST-, GET- und PATCH-Anforderungen.
    • TroubleTicketProcessorOOB: Enthält Hilfsfunktionen, die Funktionen in TMFTroubleTicketAPIUtil unterstützen.
    • TroubleTicketProcessor: Eine leere Skripteinbindungsdatei. Verwenden Sie diese Datei, um alle Funktionen zu definieren, die Sie in TroubleTicketProcessorOOB überschreiben möchten.

    Erweitern Sie die API „Trouble Ticket Open“, um die folgenden Anpassungen vorzunehmen.

    Erforderliche Parameter

    Um zu ändern, welche Parameter des Anforderungstexts erforderlich oder nicht erforderlich sind, aktualisieren Sie die Skripteinbindung TMFTroubleTicketAPIConstants. Standardmäßig erfordert der Anforderungstext zum Erstellen eines Tickets (POST) die Parameter description, severityund ticketType. Standardmäßig enthält der Anforderungstext zum Aktualisieren eines Tickets (PATCH) keine erforderlichen Parameter.
    • TMFTroubleTicketAPIConstants.TROUBLE_TICKET_CREATION_SCHEMA: Legt die erforderlichen Anforderungstextparameter zum Erstellen eines Tickets fest.
    • TMFTroubleTicketAPIConstants.TROUBLE_TICKET_UPDATE_SCHEMA: Legt die erforderlichen Parameter für den Anforderungstext fest, um ein Ticket zu aktualisieren.
    In diesem Beispiel sind die Parameter description, severity, statusund ticketType erforderlich, um ein Ticket zu erstellen.
    // TMFTroubleTicketAPIConstants
    TMFTroubleTicketAPIConstants.TROUBLE_TICKET_CREATION_SCHEMA = {
        "title": "CreateTroubleTicket",
        "type": "object",
        "properties": {
            "description": {
                "type": "string"
            },
            "severity": {
                "type": "string"
            },
            "status": {
                "type": "string"
            },
            "ticketType": {
                "type": "string"
            }
        },
        "required": [
            "description",
            "severity",
            "status",
            "ticketType"
        ]
    };

    Validierung des Anforderungstexts

    Um eine zusätzliche Validierung des Anforderungstexts durchzuführen, überschreiben Sie die TroubleTicketProcessorOOB-Funktionen. TroubleTicketProcessorOOB enthält die folgenden sechs Hilfsfunktionen, die standardmäßig „ true “ zurückgeben. Diese Funktionen werden in TMFTroubleTicketAPIUtil aufgerufen.
    • VerifyGetRequestForCase() : Wird von processGetRequestForCase()aufgerufen.
    • VerifyPatchRequestForCase() : Wird von processPatchRequestForCase() aufgerufen.
    • VerifyPostRequestForCase() : Wird von processPostRequestForCase() aufgerufen.
    • VerifyGetRequestForIncident() : Wird von processGetRequestForIncident()aufgerufen.
    • VerifyPatchRequestForIncident() : Wird von processPatchRequestForIncident() aufgerufen.
    • VerifyPostRequestForIncident() : Wird von processPostRequestForIncident() aufgerufen.
    Wenn eine Hilfsfunktion „ false“ zurückgibt, wird der API-Vorgang beendet. Um eine anwenderdefinierte Validierung anzuwenden, überschreiben Sie die Hilfsfunktionen TroubleTicketProcessorOOB, indem Sie Funktionen mit identischen Namen und Parametern in TroubleTicketProcessor erstellen. Diese neuen TroubleTicketProcessor-Funktionen werden von TMFTroubleTicketAPIUtil aufgerufen, um die standardmäßigen TroubleTicketProcessorOOB-Hilfsfunktionen zu ersetzen.
    In diesem Beispiel überschreibt eine Funktion in TroubleTicketProcessor eine Standardfunktion in TroubleTicketProcessorOOB, um das Namensattribut zu validieren.
    // TroubleTicketProcessor
    var TroubleTicketProcessor = Class.create();
    TroubleTicketProcessor.prototype = Object.extendsObject(TroubleTicketProcessorOOB, {
        // Define overriding functions here
        // Function name and parameters must be identical to the function it overrides
    
        verifyPostRequestForCase: function(caseObject, apiResponseProcessor){
            // Returning false terminates the POST request
            // Make sure to assign error message and reason
            if (caseObject.name != "Hello world") {
                apiResponseProcessor.setMessage(TMFTroubleTicketAPIConstants.MESSAGES.CASE_CREATION_FAILURE);
                apiResponseProcessor.setReason("No reason needed");
                return false;
            }
        },
    
        type: 'TroubleTicketProcessor'
    });
    

    Zusätzliche REST-Vorgänge

    Um zusätzliche Vorgänge zu erstellen, die über die vorhandenen GET-, PATCH- und POST-Vorgänge hinausgehen, erstellen Sie zusätzliche geskriptete REST-Ressourcen für die Trouble Ticket Open API. Die Logik der neuen geskripteten REST-Ressourcen sollte mit den vorhandenen Vorgängen übereinstimmen. Definieren Sie Funktionen für die neuen Vorgänge in TMFTroubleTicketAPIUtil.

    Feldzuordnung

    Beim Erstellen oder Aktualisieren von Datensätzen ordnet die API die Anforderungstextparameter den Datensatzfeldern für Fälle und Incidents zu. Beim Abrufen von Datensätzen ordnet die API Datensatzfelder Antwortobjektattributen zu.

    TroubleTicketProcessorOOB enthält die folgenden Funktionen, um einen PATCH- oder POST-Anforderungstext einem GlideRecord für einen Fall oder einen Incident zuzuordnen.
    • ZuordnenPatchRequestToCase ()
    • zuordnenPostAnforderungZuFall ()
    • ZuordnenPatchRequestToIncident ()
    • zuordnenPostAnforderungZuIncident ()
    TroubleTicketProcessorOOB enthält die folgenden Funktionen zum Zuordnen eines Fall- oder Incident-GlideRecord zu einem JSON-Antwortobjekt für GET-, PATCH- oder POST-Anforderungen.
    • erstellenGetAntwortFürFall ()
    • erstellenPatchAntwortFürFall ()
    • erstellenPostAntwortFürFall ()
    • erstellenGetAntwortFürIncident()
    • erstellenPatchAntwortFürIncident()
    • erstellenPostAntwortFürIncident()

    Passen Sie Feldzuordnungen an, um Daten für zusätzliche Fall- und Incident-Felder hinzuzufügen und abzurufen oder um die Standardzuordnungen für Felder zu ändern. Um die Feldzuordnungen anzupassen, überschreiben Sie die TroubleTicketProcessorOOB-Zuordnungsfunktionen, indem Sie Funktionen mit identischen Namen und Parametern in TroubleTicketProcessor erstellen. Diese neuen TroubleTicketProcessor-Funktionen werden von TMFTroubleTicketAPIUtil verwendet, um die standardmäßigen TroubleTicketProcessorOOB-Zuordnungsfunktionen zu ersetzen.

    In diesem Beispiel überschreiben zwei Funktionen in TroubleTicketProcessor die Standardfunktionen in TroubleTicketProcessorOOB, um die Zuordnung des Beschreibungsfelds zu ändern und eine Zuordnung für das Feld Vertrag hinzuzufügen.
    // TroubleTicketProcessor
    var TroubleTicketProcessor = Class.create();
    TroubleTicketProcessor.prototype = Object.extendsObject(TroubleTicketProcessorOOB, {
        // Define overriding functions here
        // Function name and parameters must be identical to the function it overrides
    
        mapPostRequestToCase: function(caseGr, caseObject){
            // Override default mapping for the Description field
            caseGr.description = "All cases will be created with this description";
            // Add new mapping to the Contract field
            caseGr.contract = caseObject.contract;
         },
    
        createPostResponseForCase: function(caseGr, caseObject){
            // Override default mapping for the description attribute
            caseObject.description = "This will always be the retrieved description";
            // Add new contract attribute to the response object
            caseObject.contract = caseGr.contract;    
        },
    
        type: 'TroubleTicketProcessor'
    });
    

    Zuordnungslogik für Auswahlfelder

    Die Felder „ State“, „ Priority“ und „contact_type“ sind Auswahlfelder, bei denen jede Auswahl aus einer Bezeichnung und einem entsprechenden Wert besteht. Beispiel: Wenn das Feld Status auf Neufestgelegt ist, lautet die Bezeichnung Neu, und der Wert lautet 1. Die Zuordnung zwischen Auswahlbezeichnungen und Werten kann geändert werden, indem die Zuordnungsfunktionen des Auswahlfelds überschrieben werden.

    TroubleTicketProcessorOOB enthält die folgenden Auswahlfeldzuordnungsfunktionen.
    • transformCaseSeverity()
    • transformCaseChannel ()
    • transformCaseStatus()
    • transformIncidentSeverityToDringlichkeit ()
    • transformIncidentSeverityToImpact ()
    • transformIncidentChannel ()
    • transformIncidentStatus()
    Überschreiben Sie die Zuordnungsfunktionen für TroubleTicketProcessorOOB-Auswahlfelder, indem Sie Funktionen mit identischen Namen und Parametern in TroubleTicketProcessor erstellen. Diese neuen TroubleTicketProcessor-Funktionen werden von TMFTroubleTicketAPIUtil verwendet, um die standardmäßigen TroubleTicketProcessorOOB-Auswahlfeldzuordnungsfunktionen zu ersetzen.
    In diesem Beispiel überschreibt eine Funktion in TroubleTicketProcessor eine Standardfunktion in TroubleTicketProcessorOOB, um die Auswahlzuordnung für das Feld Status zu ändern.
    // TroubleTicketProcessor
    var TroubleTicketProcessor = Class.create();
    TroubleTicketProcessor.prototype = Object.extendsObject(TroubleTicketProcessorOOB, {
        // Define overriding functions here
        // Function name and parameters must be identical to the function it overrides
    
        transformCaseStatus: function(status){
            if (status == "Draft")
                return 1;
            else return 10;
        },
    
        type: 'TroubleTicketProcessor'
    });