---
sourceDocument: Xanadu-API-Referenz
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/de-DE/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - de-DE

ft:publication_title :

    - Xanadu-API-Referenz

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Serviceauftrags-Open-API-Entwicklerhandbuch

# Serviceauftrags-Open-API-Entwicklerhandbuch {#ariaid-title1}

* Freigeben Version: Xanadu
* 
* Aktualisiert 1. August 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 Minuten Lesedauer

Verwenden Sie die Service Order Open API, um Serviceauftragsinformationen zu erstellen, zu aktualisieren und abzurufen.

Dieser Entwicklerleitfaden enthält Informationen zum Erweitern von [Serviceauftrags-OpenAPI](https://servicenow-prod.fluidtopics.net/t3S0bQo8_DOapAcWOSWaLA#service-order-open-api "Die Service Order Open API stellt Endpunkte bereit, die einen standardisierten Mechanismus für die Erteilung von Serviceaufträgen ermöglichen."), um verschiedene Anpassungen vorzunehmen.

## Erweiterung der Service Order Open API {#ariaid-title2}

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 in ServiceOrderExtensionOOBüberschreiben möchten.
{#extend-service-order-api__ul_d5h_lhr_wpb}

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

### Erforderliche Parameter {#extend-service-order-api__section_nmk_lbt_prb}

Um zu ändern, welche Anforderungstextparameter zum Erstellen eines Serviceauftrags erforderlich oder nicht erforderlich sind, ü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. Sie können also nicht einfach 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 der Skripteinbindung ServiceOrderProcessor. Die neue Funktion in ServiceOrderProcessor wird von TMFServiceOrderAPIUtil aufgerufen, um die Standardfunktion `getServiceOrderSchema()` in ServiceOrderExtensionOOBzu ersetzen.  
In diesem Beispiel gibt `getServiceOrderSchema()` ein anwenderdefiniertes 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 {#extend-service-order-api__section_m3r_1hs_nrb}

Um eine zusätzliche Validierung des Anforderungstexts durchzuführen, überschreiben Sie die ServiceOrderExtensionOOB- Funktionen. ServiceOrderExtensionOOB enthält die folgenden vier Hilfsfunktionen, die standardmäßig „ `true` " zurückgeben.

* `validPostRequest` (): Wird von `processPostOrder()` in TMFServiceOrderAPIUtil aufgerufen.
* `validServiceObj` (): Wird von `processPostOrder()` in TMFServiceOrderAPIUtil aufgerufen.
* `validRelatedPartyObj` (): Wird von `processPostOrder()` in TMFServiceOrderAPIUtil aufgerufen.
* `validGetRequest` (): Wird von `processGetOrder()` in TMFServiceOrderGetAPIUtil aufgerufen.

{#extend-service-order-api__ul_khg_llx_wpb}Wenn eine Hilfsfunktion „ `false`" zurückgibt, wird der API-Vorgang beendet. Um eine anwenderdefinierte Validierung anzuwenden, überschreiben Sie die ServiceOrderExtensionOOB -Hilfsfunktionen, 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 {#extend-service-order-api__section_sy1_2hs_nrb}

Um zusätzliche Vorgänge zu erstellen, die über die vorhandenen GET- und POST-Vorgänge hinausgehen, [erstellen Sie zusätzliche geskriptete REST-Ressourcen](https://servicenow-prod.fluidtopics.net/h9n7A2nJm0xtjbtdJ_PwqQ "Erstellen Sie eine geskriptete REST-API-Ressource, um die HTTP-Methode und das Verarbeitungsskript zu definieren, und um Einstellungen des übergeordneten Service zu überschreiben.") 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 {#extend-service-order-api__section_ywk_rhs_nrb}

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 zum Zuordnen eines POST-Anforderungstexts zu einem GlideRecord.

* `transformOrderGr ()`
* `transformOrdLineItemGr ()`
* `transformCustLineItmContact ()`
* `transformOrderItemChar ()`
{#extend-service-order-api__ul_krb_r4x_wpb}  
ServiceOrderExtensionOOB enthält die folgenden Funktionen zum Zuordnen eines GlideRecord zu einem Antwortobjekt für GET- oder POST-Anforderungen.

* `transformPostOrderResponse()`
* `transformGetOrderResponse ()`
* `transformServiceObj ()`
* `transformZugehörigeparteiKundenpositionElement ()`
* `transformOrderItemBeziehung ()`
* `transformGetOrdLineItmResponse()`
* `umwandelnServicemerkmale()`
* `transformServiceSpecification()`
{#extend-service-order-api__ul_qqk_zfz_wpb}

Passen Sie 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 für 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'
    });


