Trouble Ticket Open API Developer Guide
Verwenden Sie Problemticket – API öffnen Dient zum Verwalten von Ticketinformationen zwischen externen Ticketsystemen und ServiceNow AI Platform. 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 Problemticket – API öffnen Um verschiedene Anpassungen vorzunehmen.
Erweitern der Trouble Ticket Open API
Die Problemticket – API öffnen Kann durch Bearbeitung von Skripteinbindungen erweitert werden.
TMFTroubleTicketAPIKonstanten: Enthält Konstanten und erforderliche Parameterinformationen.TMFTroubleTicketAPIUtil: Enthält Funktionen zur Verarbeitung von POST-, GET- und PATCH-Anforderungen.ProblemticketProcessorOOB: Enthält Hilfsfunktionen, die Funktionen in TMFTroubleTicketAPIUtil unterstützen.TroubleTicketProcessor: Eine leere Skripteinbindungsdatei. Verwenden Sie diese Datei, um alle Funktionen zu definieren, die Sie aus TroubleTicketProcessorOOB überschreiben möchten.
Erweitern Sie Problemticket – API öffnen Um die folgenden Anpassungen vorzunehmen.
Erforderliche Parameter
TMFTROUBLETICKETAPICONSTANTS.TROUBLE_TICKET_CREATION_SCHEMA: Legt die erforderlichen Anforderungstext-Parameter fest, um ein Ticket zu erstellen.TMFTROUBLETICKETAPICONSTANTS.TROUBLE_TICKET_UPDATE_SCHEMA: Legt die erforderlichen Anforderungstext-Parameter 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
Wahr Standardmäßig. Diese Funktionen werden in TMFTroubleTicketAPIUtil aufgerufen. VerifyGetRequestForCase()– Angerufen vonProcessGetRequestForCase().VerifyPatchRequestForCase()– Angerufen vonProcessPatchRequestForCase().VerifyPostRequestForCase()– Angerufen vonProcessPostRequestForCase().VerifyGetRequestForIncident()– Angerufen vonProcessGetRequestForIncident().VerifyPatchRequestForIncident()– Angerufen vonProcessPatchRequestForIncident().VerifyPostRequestForIncident()– Angerufen vonProcessPostRequestForIncident().
Falsch , Stoppt den API-Vorgang. Um eine anwenderdefinierte Validierung anzuwenden, überschreiben Sie die 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
So erstellen Sie zusätzliche Vorgänge über die vorhandenen GET-, PATCH- und POST-Vorgänge hinaus: Erstellen Sie zusätzliche geskriptete REST-Ressourcen Für die Trouble Ticket Open API. Die Logik der neuen geskripteten REST-Ressourcen muss 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 Anforderungstext-Parameter zu Fall- und Incident-Datensatzfeldern zu. Beim Abrufen von Datensätzen ordnet die API Datensatzfelder Antwortobjektattributen zu.
MapPatchRequestToCase()MapPostRequestToCase()MapPatchRequestToIncident()MapPostRequestToIncident()
CreateGetResponseForCase()CreatePatchResponseForCase()CreatePostResponseForCase()CreateGetResponseForIncident()CreatePatchResponseForIncident()CreatePostResponseForIncident()
Passen Sie Feldzuordnungen an, um Daten für zusätzliche Fall- und Incident-Felder hinzuzufügen und abzurufen oder 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 Status , Priorität , Und Contact_type Felder sind Auswahlfelder, bei denen jede Auswahl aus einer Bezeichnung und einem entsprechenden Wert besteht. Beispiel: Wenn Status Feld ist auf festgelegt Neu , Die Bezeichnung ist Neu Und der Wert ist 1 . Die Zuordnung zwischen Auswahlbezeichnungen und -Werten kann geändert werden, indem die Auswahlfeldzuordnungsfunktionen überschrieben werden.
TransformCaseSeverity()TransformCaseChannel()TransformCaseStatus()TransformIncidentSeverityToUrgency()TransformIncidentSchweregrad ToImpact()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'
});