Produktbestellung – API-Entwicklerleitfaden öffnen
Verwenden Sie Offene API für Produktbestellung Dient zum Erstellen, Aktualisieren und Abrufen von Produktauftragsinformationen.
Dieser Entwicklerleitfaden enthält Informationen zum erweitern von Offene API für Produktbestellung Um verschiedene Anpassungen vorzunehmen.
Erweitert die API „Produktbestellung öffnen“
Die Offene API für Produktbestellung Kann durch Bearbeitung von Skripteinbindungen erweitert werden.
- TMFProductOrderAPIUtil : Enthält Funktionen zur Verarbeitung von POST-Anforderungen.
- TMFProductOrderGetAPIUtil : Enthält Funktionen zur Verarbeitung von GET-Anforderungen.
- ProduktbestellerErweiterungOOB : Enthält Hilfsfunktionen, die Funktionen in unterstützen TMFProductOrderAPIUtil Und TMFProductOrderGetAPIUtil .
- ProductOrderProcessor : Eine leere Skripteinbindungsdatei. Verwenden Sie diese Datei, um alle Funktionen zu definieren, aus denen Sie überschreiben möchten ProduktbestellerErweiterungOOB .
Erweitern Sie Offene API für Produktbestellung Um die folgenden Anpassungen vorzunehmen.
Erforderliche Parameter
Um zu ändern, welche Anforderungstext-Parameter zum Erstellen einer Produktbestellung erforderlich sind oder nicht, überschreiben Sie die Funktion GetProductOrderSchema() Enthalten in ProduktbestellerErweiterungOOB Skripteinbindung.
Die Funktion GetProductOrderSchema() Liest das Schema aus TMFOrderAPIKonstanten Skripteinbindung. TMFOrderAPIKonstanten Ist geschützt und kann nicht bearbeitet werden, daher können Sie das Schema nicht einfach aktualisieren. Stattdessen muss ein neues Schema aus einer anderen Datei gelesen werden. Sie können überschreiben GetProductOrderSchema() Zum Lesen eines neuen Schemas. Zum Überschreiben GetProductOrderSchema() , Schreiben Sie eine Funktion mit demselben Namen in ProductOrderProcessor Skripteinbindung. Die neue Funktion in ProductOrderProcessor Wird von aufgerufen TMFProductOrderAPIUtil Um den Standard zu ersetzen GetProductOrderSchema() Funktion in ProduktbestellerErweiterungOOB .
GetProductOrderSchema() Gibt 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
Wahr Standardmäßig.ValidatePostRequest()– Angerufen vonProcessCreateOrder()In TMFProductOrderAPIUtil .ValidateProductObj()– Angerufen vonProcessCreateOrder()In TMFProductOrderAPIUtil .ValidateRelatedPartyObj()– Angerufen vonProcessCreateOrder()In TMFProductOrderAPIUtil .ValidateGetRequest()– Angerufen vonProcessGetOrder()In TMFProductOrderGetAPIUtil .
Falsch , Stoppt den API-Vorgang. Überschreiben Sie, um eine anwenderdefinierte Validierung anzuwenden ProduktbestellerErweiterungOOB Hilfsfunktionen durch Erstellen von Funktionen mit identischen Namen und Parametern in ProductOrderProcessor . Diese neuen ProductOrderProcessor Funktionen werden von aufgerufen TMFProductOrderAPIUtil Und TMFProductOrderGetAPIUtil Um den Standard zu ersetzen ProduktbestellerErweiterungOOB Hilfsfunktionen.// 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 Offene API für Produktbestellung . Die Logik der neuen geskripteten REST-Ressourcen muss 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 Anforderungstext-Parameter Datensatzfeldern zu. Beim Abrufen von Datensätzen ordnet die API Datensatzfelder Antwortobjektattributen zu.
TransformOrderGr()TransformOrdnerLineItemGr()GetLineItemPrice()TransformPriceOrderTypeAndState()TransformCustLineItmContact()TransformOrderItemChar()
TransformPostOrderResponse()TransformGetOrderResponse()TransformProductObj()TransformRelatedPartyCustomerLineItem()TransformOrderItemRelationship()TransformGetOrdLineItmResponse()TransformProductCharacteristics()TransformProductSpecification()
// 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'
});