Serviceauftrag Open API-Entwicklerleitfaden

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 3 Minuten Lesedauer
  • Verwenden Sie die API „Service Order Open“, um Informationen zu Serviceaufträgen zu erstellen, zu aktualisieren und abzurufen.

    Dieser Entwicklerleitfaden enthält Informationen zum Erweitern von API „Serviceauftrag öffnen“., um verschiedene Anpassungen vorzunehmen.

    Erweitern der API „Service Order Open“.

    Die Service Order Open API kann durch Bearbeiten von Skripteinbindungen erweitert werden.

    Diese Skripteinbindungen sollten nur bearbeitet werden, wenn die Konsequenzen der Änderungen bekannt sind.
    • TMFServiceOrderAPIUtil: Enthält Funktionen zur Verarbeitung von POST-Anforderungen.
    • TMFServiceOrderGetAPIUtil: Enthält Funktionen zur Verarbeitung von GET-Anforderungen.
    • ServiceOrderExtensionOOB: Enthält Hilfsfunktionen, die Funktionen in TMFServiceOrderAPIUtil und TMFServiceOrderGetAPIUtil unterstützen.
    • ServiceOrderProcessor: Eine leere Skripteinbindungsdatei. Verwenden Sie diese Datei, um alle Funktionen zu definieren, die Sie von ServiceOrderExtensionOOBüberschreiben möchten.

    Erweitern Sie die API „Service Order Open“, um die folgenden Anpassungen vorzunehmen.

    Erforderliche Parameter

    Um zu ändern, welche Anforderungstextparameter zum Erstellen eines Serviceauftrags erforderlich sind oder nicht, überschreiben Sie die Funktion getServiceOrderSchema(), die in der Skripteinbindung ServiceOrderExtensionOOB enthalten ist.

    Die Funktion getServiceOrderSchema() liest das Schema aus der Skripteinbindung TMFOrderAPIConstants. TMFOrderAPIConstants ist geschützt und kann nicht bearbeitet werden, daher können Sie nicht nur das Schema aktualisieren. Stattdessen muss ein neues Schema aus einer anderen Datei gelesen werden. Sie können getServiceOrderSchema() überschreiben, um ein neues Schema zu lesen. Um getServiceOrderSchema()zu überschreiben, schreiben Sie eine Funktion mit demselben Namen in die ServiceOrderProcessor -Skripteinbindung. Die neue Funktion in ServiceOrderProcessor wird von TMFServiceOrderAPIUtil aufgerufen, um die Standardfunktion getServiceOrderSchema() in ServiceOrderExtensionOOBzu ersetzen.

    In diesem Beispiel gibt getServiceOrderSchema() ein benutzerdefiniertes Schema zurück, das in einer neuen Konstantendatei definiert ist.
    // ServiceOrderProcessor
    
    var ServiceOrderProcessor = Class.create();
    ServiceOrderProcessor.prototype = Object.extendsObject(ServiceOrderExtensionOOB, {
       // Define overriding functions here
       // Function name and parameters must be identical to the function it overrides
    
       getServiceOrderSchema: function() {
          //Define your own custom schema in a new constant file
          return JSON.parse(Constants.SCHEMA.CREATE_SERVICE_ORDER);
       },
    
       type: 'ServiceOrderProcessor'
    });

    Validierung des Anforderungstexts

    Um eine zusätzliche Validierung für den Anforderungstext durchzuführen, überschreiben Sie die ServiceOrderExtensionOOB- Funktionen. ServiceOrderExtensionOOB enthält die folgenden vier Hilfsfunktionen, die standardmäßig „ true “ zurückgeben.
    • validePostRequest() – Wird von processPostOrder() in TMFServiceOrderAPIUtil aufgerufen.
    • valideServiceObj() – Wird von processPostOrder() in TMFServiceOrderAPIUtil aufgerufen.
    • valideRelatedParteiObj() – Wird von processPostOrder() in TMFServiceOrderAPIUtil aufgerufen.
    • valideGetRequest() – Wird von processGetOrder() in TMFServiceOrderGetAPIUtil aufgerufen.
    Wenn eine Hilfsfunktion falsezurückgibt, wird der API-Vorgang angehalten. Um eine benutzerdefinierte Validierung anzuwenden, überschreiben Sie die Hilfsfunktionen ServiceOrderExtensionOOB, indem Sie Funktionen mit identischen Namen und Parametern in ServiceOrderProcessorerstellen. Diese neuen ServiceOrderProcessor -Funktionen werden von TMFServiceOrderAPIUtil und TMFServiceOrderGetAPIUtil aufgerufen, um die standardmäßigen ServiceOrderExtensionOOB -Hilfsfunktionen zu ersetzen.
    In diesem Beispiel überschreibt eine Funktion in ServiceOrderProcessor eine Standardfunktion in ServiceOrderExtensionOOB, um eine Validierung für das Attribut serviceOrderItem durchzuführen.
    // ServiceOrderProcessor
    
    var ServiceOrderProcessor = Class.create();
    ServiceOrderProcessor.prototype = Object.extendsObject(ServiceOrderExtensionOOB, {
        // Define overriding functions here
        // Function name and parameters must be identical to the function it overrides
    
        validatePostRequest: function(orderObject, details) {
            // Returning false terminates the POST request
            // Make sure to push error message in details array in case of error
            if (gs.nil(orderObject.serviceOrderItem)) {
                details.push(new TMFCommonOrderAPIUtil().getErrorDetailsObj(TMFOrderAPIConstants.MESSAGES.MISSING_ORDER_ITEM, '/'));
                return false;
            }
            return true;
        },
    
        type: 'ServiceOrderProcessor'
    });

    Zusätzliche REST-Vorgänge

    Um zusätzliche Vorgänge zu erstellen, die über die vorhandenen GET- und POST-Vorgänge hinausgehen, erstellen Sie zusätzliche geskriptete REST-Ressourcen für die Service Order 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 einer neuen Skripteinbindung.

    Feldzuordnung

    Beim Erstellen von Datensätzen ordnet die API Anforderungstextparameter Datensatzfeldern zu. Beim Abrufen von Datensätzen ordnet die API Datensatzfelder Antwortobjektattributen zu.

    ServiceOrderExtensionOOB enthält die folgenden Funktionen, um einen POST-Anforderungstext einem GlideRecord zuzuordnen.
    • transformOrderGr()
    • transformOrdLineItemGr()
    • transformCustLineItmContact()
    • transformOrderItemChar()
    ServiceOrderExtensionOOB enthält die folgenden Funktionen, um einen GlideRecord einem Antwortobjekt für GET- oder POST-Anforderungen zuzuordnen.
    • transformPostOrderResponse()
    • transformGetOrderResponse()
    • transformServiceObj()
    • transformRelatedParteiCustomerLineItem()
    • transformOrderItemRelationship()
    • transformGetOrdLineItmResponse()
    • transformServiceCharacteristics()
    • transformServiceSpecification()

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

    In diesem Beispiel überschreiben zwei Funktionen in ServiceOrderProcessor die Standardfunktionen in ServiceOrderExtensionOOB, um Zuordnungen für die Felder external_id und sys_id zu erstellen.
    // ServiceOrderProcessor
    
    var ServiceOrderProcessor = Class.create();
    ServiceOrderProcessor.prototype = Object.extendsObject(ServiceOrderExtensionOOB, {
        // Define overriding functions here
        // Function name and parameters must be identical to the function it overrides
    
        transformOrderGr: function(requestObject, orderGr) {
            orderGr.external_id = requestObject.externalId;
            return orderGr;
        },
    
        transformPostOrderResponse: function(orderObject, orderGr) {
            orderObject.id = orderGr.getValue('sys_id');
            return orderObject;
        },
    
        type: 'ServiceOrderProcessor'
    });