Trouble Ticket Open API-Entwicklerleitfaden
Verwenden Sie die Trouble Ticket Open-API, um Ticketinformationen zwischen externen Ticketerstellungssystemen 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 Trouble Ticket Open-API, um verschiedene Anpassungen vorzunehmen.
Erweitern der Trouble Ticket Open-API
Die Open Trouble Ticket API kann durch Bearbeiten von Skripteinbindungen erweitert werden.
TMFTroubleTicketAPIConstants: Enthält Konstanten und erforderliche Parameterinformationen.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 von 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 fest, um ein Ticket zu erstellen.TMFTroubleTicketAPIConstants.TROUBLE_TICKET_UPDATE_SCHEMA: Legt die erforderlichen Anforderungstextparameter 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. überprüfenGetRequestForCase()– Wird vonprocessGetRequestForCase()aufgerufen.überprüfenPatchRequestForCase() – Wird von processPatchRequestForCase()aufgerufen.überprüfenPostRequestForCase() – Wird von processPostRequestForCase()aufgerufen.überprüfenGetRequestForIncident()– Wird vonprocessGetRequestForIncident()aufgerufen.überprüfenPatchRequestForIncident() – Wird von processPatchRequestForIncident()aufgerufen.überprüfenPostRequestForIncident() – Wird von processPostRequestForIncident()aufgerufen.
falsezurückgibt, wird der API-Vorgang angehalten. Um eine benutzerdefinierte Validierung anzuwenden, überschreiben Sie TroubleTicketProcessorOOB-Hilfsfunktionen, 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 Anforderungstextparameter den Fall- und Incident-Datensatzfeldern zu. Beim Abrufen von Datensätzen ordnet die API Datensatzfelder Antwortobjektattributen zu.
mapPatchRequestToCase()mapPostRequestToCase()mapPatchRequestToIncident()mapPostRequestToIncident()
createGetResponseForCase()erstellenPatchResponseForCase()createPostResponseForCase()erstellenGetResponseForIncident()erstellenPatchResponseForIncident()createPostResponseForIncident()
Passen Sie die 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 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, Priorityund contact_type sind Auswahlfelder, in 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 ist 1. Die Zuordnung zwischen Auswahlbezeichnungen und Werten kann durch Überschreiben der Auswahlfeldzuordnungsfunktionen geändert werden.
transformCaseSeverity()transformCaseChannel ()transformCaseStatus()transformIncidentSeverityToUrgency()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'
});