Produktbestellung – Open API-Entwicklerhandbuch

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 3 Minuten Lesedauer
  • Verwenden Sie die Product Order Open API, um Produktbestellinformationen zu erstellen, zu aktualisieren und abzurufen.

    Dieser Entwicklerleitfaden enthält Informationen zum Erweitern von Product Order Open API, um verschiedene Anpassungen vorzunehmen.

    Erweiterung der Product Order Open API

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

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

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

    Erforderliche Parameter

    Um zu ändern, welche Anforderungstextparameter zum Erstellen einer Produktbestellung erforderlich oder nicht erforderlich sind, überschreiben Sie die Funktion getProductOrderSchema(), die in der Skripteinbindung ProductOrderExtensionOOB enthalten ist.

    Die Funktion getProductOrderSchema() 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 getProductOrderSchema() überschreiben, um ein neues Schema zu lesen. Um getProductOrderSchema()zu überschreiben, schreiben Sie eine Funktion mit demselben Namen in die Skripteinbindung ProductOrderProcessor. Die neue Funktion in ProductOrderProcessor wird von TMFProductOrderAPIUtil aufgerufen, um die Standardfunktion getProductOrderSchema() in ProductOrderExtensionOOBzu ersetzen.

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

    Validierung des Anforderungstexts

    Um eine zusätzliche Validierung des Anforderungstexts durchzuführen, überschreiben Sie die ProductOrderExtensionOOB- Funktionen. ProductOrderExtensionOOB enthält die folgenden vier Hilfsfunktionen, die standardmäßig „ true “ zurückgeben.
    • validPostRequest (): Wird von processCreateOrder() in TMFProductOrderAPIUtil aufgerufen.
    • validProductObj (): Wird von processCreateOrder() in TMFProductOrderAPIUtil aufgerufen.
    • validRelatedPartyObj (): Wird von processCreateOrder() in TMFProductOrderAPIUtil aufgerufen.
    • validGetRequest (): Wird von processGetOrder() in TMFProductOrderGetAPIUtil aufgerufen.
    Wenn eine Hilfsfunktion „ false“ zurückgibt, wird der API-Vorgang beendet. Um eine anwenderdefinierte Validierung anzuwenden, überschreiben Sie die Hilfsfunktionen ProductOrderExtensionOOB, indem Sie Funktionen mit identischen Namen und Parametern in ProductOrderProcessor erstellen. Diese neuen ProductOrderProcessor- Funktionen werden von TMFProductOrderAPIUtil und TMFProductOrderGetAPIUtil aufgerufen, um die standardmäßigen ProductOrderExtensionOOB -Hilfsfunktionen zu ersetzen.
    In diesem Beispiel überschreibt eine Funktion in ProductOrderProcessor eine Standardfunktion in ProductOrderExtensionOOB, um eine Validierung für das Attribut productOrderItem durchzuführen.
    // ProductOrderProcessor
    
    var ProductOrderProcessor = Class.create();
    ProductOrderProcessor.prototype = Object.extendsObject(ProductOrderExtensionOOB, {
        // 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.productOrderItem)) {
                details.push(new TMFCommonOrderAPIUtil().getErrorDetailsObj(TMFOrderAPIConstants.MESSAGES.MISSING_ORDER_ITEM, '/'));
                return false;
            }
            return true;
        },
    
        type: 'ProductOrderProcessor'
    });

    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 Product 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.

    ProductOrderExtensionOOB enthält die folgenden Funktionen zum Zuordnen eines POST-Anforderungstexts zu einem GlideRecord.
    • transformOrderGr ()
    • transformOrdLineItemGr ()
    • abrufenLineItemPrice()
    • transformPriceOrderTypeAndState()
    • transformCustLineItmContact ()
    • transformOrderItemChar ()
    ProductOrderExtensionOOB enthält die folgenden Funktionen zum Zuordnen eines GlideRecord zu einem Antwortobjekt für GET- oder POST-Anforderungen.
    • transformPostOrderResponse()
    • transformGetOrderResponse ()
    • transformProductObj ()
    • transformZugehörigeparteiKundenpositionElement ()
    • transformOrderItemBeziehung ()
    • transformGetOrdLineItmResponse()
    • transformProductMerkmale ()
    • transformProductSpecification()
    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 ProductOrderExtensionOOB -Zuordnungsfunktionen, indem Sie Funktionen mit identischen Namen und Parametern in ProductOrderProcessor erstellen. Diese neuen ProductOrderProcessor- Funktionen werden von TMFProductOrderAPIUtil und TMFProductOrderGetAPIUtil verwendet, um die standardmäßigen ProductOrderExtensionOOB -Zuordnungsfunktionen zu ersetzen.
    In diesem Beispiel überschreiben zwei Funktionen in ProductOrderProcessor die Standardfunktionen in ProductOrderExtensionOOB, um Zuordnungen für die Felder external_id und sys_id zu erstellen.
    // ProductOrderProcessor
    
    var ProductOrderProcessor = Class.create();
    ProductOrderProcessor.prototype = Object.extendsObject(ProductOrderExtensionOOB, {
        // 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: 'ProductOrderProcessor'
    });