Standardmethode für den Zugriff auf andere serverseitige Business Objekte
Voraussetzungen
Um auf andere serverseitige Business Objekte zuzugreifen, müssen Sie diese in den Business-Objekt-Einstellungen hinzufügen. Andernfalls wird das angeforderte serverseitige Business-Objekt bei der Ausführung nicht gefunden und die Abhängigkeit kann beim Transport nicht behandelt werden.
Zugriff auf andere Business Objekte
Sie können jedes andere Business Objekt in Ihrem aktuellen auf ähnliche Weise wie beim Aufrufen eines Konnektors aufrufen, indem Sie die folgende Syntax verwenden:
Simplifier.BusinessObject.<BOName>.<MethodName>(payload?: string|object, parametrized?: boolean = true): object Simplifier.CurrentBusinessObject.<MethodName>(payload?: string|object, parametrized?: boolean = true): object
Beispiele:
var otherMethodResult = Simplifier.BusinessObject.OtherBO.someMethod({"foo": "bar"});
var unparamtetrizedResult = Simplifier.BusinessObject.OtherBO.someMethod("{\"foo\": \"baz\"}", false);
var sameBoResult = Simplifier.CurrentBusinessObject.someMethodOnSameBO({"baz": "baz"});
var noArgsResult = Simplifier.CurrentBusinessObject.methodWithoutArgs();
Dynamisches Aufrufen von serverseitigen Business Objekten
Was bedeutet dynamischer Aufruf?
Stellen Sie sich vor, Simplifier-Integrationen fungieren als Middleware zwischen vielen verschiedenen Front-End-Anwendungen wie Online-Shops, und jeder einzelne Shop benötigt ein anderes Backend-System (über Konnektoren) oder eine andere Geschäftslogik.
Visualisieren wir dies:
Arten von dynamischen Aufrufen
Wenn Sie ein Business Objekt dynamisch erstellen möchten, haben Sie drei Möglichkeiten
- Verwenden Sie Variablen für Business Objekte-Namen und -Aufrufe anstelle von festen Namen
- Verwenden Sie unsere dynamische Aufruffunktion
- Verwenden Sie einen Simplifier REST Connector, um Business Objekte über unsere Client API auszuführen
Dieser Artikel behandelt die ersten beiden Optionen, die dritte Option wird aus Performancegründen nicht empfohlen und daher in dieser Dokumentation nicht behandelt.
Option 1: Aufrufen von Business Objekten mithilfe von Variablen
In diesem Szenario rufen wir die Business Objekte mithilfe von Variablen für den Namen und den Aufruf auf
Vorbereitung
Alle auf diese Weise aufgerufenen Business Objekte müssen zuvor im aufrufenden Business Objekt referenziert werden. Bearbeiten Sie also das Quell-Business-Objekt, von dem aus Sie die anderen Business Objekte aufrufen, und fügen Sie sie den Referenzen hinzu:
Integration
Der dynamische Aufruf des Business Objekts hat die folgende Syntax
Simplifier.BusinessObject[sNameOfObject][sNameOfFunction](oPayload).return;
Beispiel
Erstellen wir einen kleinen Code für das im Einführungskapitel erläuterte Shop-Szenario. Wir decken 2 Shops ab, einen mit der ID 232 und einen mit der ID 453 – anstatt ein Business Objekt wie
output.stock = Simplifier.BusinessObject.SAPERP.readStockStatusfromWM(oPayload).stock;
verwenden wir diesen dynamischen Aufruf:
output.stock = Simplifier.BusinessObject[sBoName][sBoFunction](oPayload).stock;
Hier das vollständige Beispiel:
/**
* Diese Funktion fungiert als generische API, die in der Lage ist, Lagerinformationen von verschiedenen Backends abhängig von der ShopID zu lesen
**/
try {
let sBoName, sBoFunction;
let oPayload = input;
// check which shop are the requester
switch (input.ShopID) {
case 232:
sBoName = "SAPERP";
sBoFunction = "readStockStatusfromWM";
break;
case 453:
sBoName = "Infor";
sBoFunction = "readStockfromIMHub";
break;
default:
// in case of no shop id , raise an error
throw "Shop ID is not valid";
}
// run Business Object dynamically
output.stock = Simplifier.BusinessObject[sBoName][sBoFunction](oPayload).stock;
} catch (e) {
throw e.message;
}
Option 2: Aufrufen von Business Objekten mithilfe von dynamicBusinessObjectCall
In diesem Szenario rufen wir die Business Objekte mithilfe der Methode dynamicBusinessObjectCall auf.
Vorbereitung
Um die neue Methode dynamicBusinessObjectCall verwenden zu können, müssen Sie die Einstellung “Dynamisches Aufrufen von serverseitigen Business Objekten zulassen” in den Servereinstellungen aktivieren.
Integration
Der dynamische Aufruf des Business Objekts hat die folgende Syntax
Simplifier.dynamicBusinessObjectCall("NameofConnector", "MethodName", $payload).return;
Beispiel
Erstellen wir einen kleinen Code für das im Einführungskapitel erläuterte Shop-Szenario. Wir decken 2 Shops ab, einen mit der ID 232 und einen mit der ID 453 – anstatt ein Business Objekt wie
output.stock = Simplifier.BusinessObject.SAPERP.readStockStatusfromWM($payload).stock;
verwenden wir diesen dynamischen Aufruf:
output.stock = Simplifier.dynamicBusinessObjectCall("SAPERP", "readStockStatusfromWM", $payload).stock;
Hier das vollständige Beispiel:
/**
* Diese Funktion fungiert als generische API, die in der Lage ist, Lagerinformationen von verschiedenen Backends abhängig von der ShopID zu lesen
**/
try {
let sBoName, sBoFunction;
let oPayload = input;
// check which shop are the requester
switch (input.ShopID) {
case 232:
sBoName= "SAPERP";
sBoFunction = "readStockStatusfromWM";
break;
case 453:
sBoName = "Infor";
sBoFunction = "readStockfromIMHub";
break;
default:
// in case of no shop id , raise an error
throw "Shop ID is not valid";
}
// run Business Object dynamically
output.stock = Simplifier.dynamicBusinessObjectCall(sBoName,sBoFunction,oPayload).stock;
} catch (e) {
throw e.message;
}














