Trouble Ticket Open API Developer Guide
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.
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
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.
// 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
„true“ zurückgeben. Diese Funktionen werden in TMFTroubleTicketAPIUtil aufgerufen. VerifyGetRequestForCase(): Wird vonprocessGetRequestForCase()aufgerufen.VerifyPatchRequestForCase(): Wird vonprocessPatchRequestForCase()aufgerufen.VerifyPostRequestForCase(): Wird vonprocessPostRequestForCase()aufgerufen.VerifyGetRequestForIncident(): Wird vonprocessGetRequestForIncident()aufgerufen.VerifyPatchRequestForIncident(): Wird vonprocessPatchRequestForIncident()aufgerufen.VerifyPostRequestForIncident(): Wird vonprocessPostRequestForIncident()aufgerufen.
„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.// 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.
ZuordnenPatchRequestToCase ()zuordnenPostAnforderungZuFall ()ZuordnenPatchRequestToIncident ()zuordnenPostAnforderungZuIncident ()
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.
// 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.
transformCaseSeverity()transformCaseChannel ()transformCaseStatus()transformIncidentSeverityToDringlichkeit ()transformIncidentSeverityToImpact ()transformIncidentChannel ()transformIncidentStatus()
// 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'
});