- 26 Sep 2024
- 7 Minutes to read
- Print
- DarkLight
- PDF
Aktive Actions
- Updated on 26 Sep 2024
- 7 Minutes to read
- Print
- DarkLight
- PDF
Aktive (Interaktive) Actions: Initialisiert wird eine aktive Action immer zuerst über den passiven Weg. Schlussendlich gibt es für aktive Actions aber immer eine Benutzerinteraktion in einem Browser oder iFrame.
Actions mit Browser-Interaktion werden aus einem Web-Browser-Control (z.B. WebView2 oder CEF unter Windows) aufgerufen.
Initialisieren einer Aktiven Action
Um eine aktive Action zu initialisieren, ist zuerst ein passiver Call notwendig:
Das JSON, das die Action definiert wird zuerst an den WebService gesendet.
Als Response wird ein Action Token zurückgegeben.
Dieser Token wird dann für den URL-Aufruf im Browser Control der Fremdsoftware verwendet und an die Basis URL mit dem neuen URL-Parameter
&ActionToken=<TokenNummer>
angehängt.
Authentifizierung:
Im initialen WebService-Call erfolgt die Authentifizierung am WebServer (z.B. per Digest- oder Basic-Auth - je nachdem was der Betreiber der moveIT CONBOX Installation definiert).
Zusätzlich erfolgt die Identifizierung des Users per User-Code und UserAPIKey (🆕) im JSON-Body.
Für den interaktiven Frontend-Aufruf ist keine weitere Authentifizierung erforderlich.
Rückübergabe der Daten an Fremdsystem
Je nach ausgeführten Actions wird eine Rückübergabe von Informationen nach Abschluss der Action an das Fremdsystem benötigt, damit diese dort gespeichert werden können.
Dazu stehen zwei JavaScript Funktionen zur Verfügung (JS-Funktionen können testweise in der Browser Konsole ausgeführt werden):
CONBOX.IsShownFinishMessage();
Diese Abfrage kann zyklisch vom Browser Control des Fremdsystems ausgeführt werden. Damit kann abgefragt werden, ob die Konfiguration abgeschlossen ist. Gibt TRUE oder FALSE zurück.
CONBOX.GetCONBOXData();
Diese Abfrage kann dann ausgeführt werden, wenn die Konfiguration abgeschlossen wurde. Es kommt, je nach Action-Type ein definiertes JSON zurück, das sämtliche benötigte Infos für das Fremdsystem beinhaltet. Die Daten, die je Action zurück übergeben werden, sind bei der jeweiligen Action angeführt.
Mehrsprachigkeit
Actions mit Browser Interaktion können mit dem URL-Parameter &Lng=[Sprache] (ISO 639-1 Sprachcode) aufgerufen werden. Dabei wird das System in der angegeben Sprache aufgerufen – insofern dieses vom Betreiber der moveIT CONBOX Umgebung unterstützt wird.
Damit auch die Stammdaten übersetzt angezeigt werden, muss dies auch vom Stammdatenhersteller in den Stammdaten übersetzt werden.
Add
Fügt dem Beleg eine Position hinzu bzw. erzeugt den Beleg, falls dieser noch nicht bestehen sollte.
Dabei gibt es mehrere Varianten, abhängig von dem Feld <WarNbr >, also der Modellnummer in moveIT.
WarNbr = leer
eKatalog öffnet sich
WarNbr = eindeutig
der Konfigurator öffnet sich für das Modell
WarNbr = mehrdeutig / WarNbr = unbekannt
eKatalog öffnet sich, gefiltert nach dem Wert
WarNbr = Lieferant
eKatalog öffnet sich, gefiltert auf den Lieferant
Typ: HTTP POST
ContentType: application/json
Request - Payload Body
{
"Service": "CONBOX",
"Language": "DE",
"UserCode": "<Usercode>",
"UserAPIKey": "7546b3a7-73e8-40a7-a7b6-645b4d648ac1",
"ServiceData": {
"Action": "Add",
"Amount": 1, // Optional
"DocNbr": "Test01", // Optional
"DocTyp": 2, // Optional
"PosNbr": "Pos01", // Optional
"WarNbr": "TestArticle",
"PosImgWidth": 300, // Optional
"PosImgHeight": 300, // Optional
"ConfiguratorParams": [{ // Optional
"ParamName": "Hoehe",
"ParamValue": 999
}, {
"ParamName": "Breite",
"ParamValue": 999
}]
}
}
Response beim initialisieren
{
"Success": true,
"ErrorMessage": "",
"ServiceReturnData": {
"ActionToken": "891a3a7-69e8-1cc7-a5c1-648b4d648df2",
}
}
Response nach Abschluss der Konfiguration durch JS Funktion
CONBOX.GetCONBOXData();
{
"Success": true,
"InfoMessage": "",
"ErrorMessage": "";
"Action": "Add",
"PositionGUID": "550e8400-e29b-41d4-a716-446655440000";
"DocTyp": 2,
"WarNbr": "TestArticle",
"WarDsc": "TestArticle Beschreibung",
"WarDscEx1": "TestArticle Beschreibung Ex1",
"WarDscEx2": "TestArticle Beschreibung Ex1",
"FCoPrc": 123.45,
"Amount": 1,
"DocNbr": "Test01",
"PosNbr": "Pos01",
"ListPrice": 1234.56,
"ProductText": "",
"ProductTextRTF": "",
"PrdGrp": "ET",
"PrGrpDSC": "Ersatzteil",
"PosImg": [Base64],
"PosImgURL": "http://...",
"ConfiguratorParams": [{
"ParamName": "Hoehe",
"ParamValue": 999
}, {
"ParamName": "Breite",
"ParamValue": 999
}]
}
Copy
Kopiert eine bestehende Position und öffnet das CONBOX-Konfigurator-Frontend für das Editieren der neuen Position (sofern es sich um ein konfigurierbares Modell handelt).
<PosNbr> muss eindeutig sein. Die dort angegebene Positionsnummer des Fremdsystems darf im Beleg noch nicht verwendet worden sein, da sie sonst für die Bestellung nicht eindeutig wäre. An das Fremdsystem wird eine neue Position zurückgegeben.
Copy per PositionGUID
Wird die Copy Action oder SilentCopy Action ausgelöst, so kann dies ohne Beleg-Infos und nur mit der GUID einer Position geschehen. Werden keine Beleg-Infos mitgegeben, wird einfach ein neuer Beleg im Hintergrund erstellt und darin die Position kreiert.
Typ: HTTP POST
ContentType: application/json
Request - Payload Body
{
"Service": "CONBOX",
"Language": "DE",
"UserCode": "<Usercode>",
"UserAPIKey": "7546b3a7-73e8-40a7-a7b6-645b4d648ac1",
"ServiceData": {
"Action": "Copy",
"Amount": 1, // Optional
"SrcDocTyp": 2, // Optional
"SrcDocNbr": "Test01", // Optional
"DocNbr": "Test01", // Optional
"DocTyp": 2, // Optional
"PosNbr": "Pos01", // Optional
"SrcPosNbr": "Pos02", // Optional
"PositionGUID": "550e8400-e29b-41d4-a716-446655440000", // Optional
"WarNbr": "TestArticle", // Optional
"PosImgWidth": 300, // Optional
"PosImgHeight": 300, // Optional
"ConfiguratorParams": [{ // Optional
"ParamName": "Hoehe",
"ParamValue": 999
}, {
"ParamName": "Breite",
"ParamValue": 999
}]
}
Response beim initialisieren
{
"Success": true,
"ErrorMessage": "",
"ServiceReturnData": {
"ActionToken": "891a3a7-69e8-1cc7-a5c1-648b4d648df2",
}
}
Response nach Abschluss der Konfiguration durch JS Funktion
CONBOX.GetCONBOXData();
{
"Success": true,
"InfoMessage": "",
"ErrorMessage": "";
"Action": "Copy",
"PositionGUID": "550e8400-e29b-41d4-a716-446655440000";
"DocTyp": 2,
"WarNbr": "TestArticle",
"WarDsc": "TestArticle Beschreibung",
"WarDscEx1": "TestArticle Beschreibung Ex1",
"WarDscEx2": "TestArticle Beschreibung Ex1",
"FCoPrc": 123.45,
"Amount": 1,
"DocNbr": "Test01",
"PosNbr": "Pos01",
"SrcPosNbr": "Pos02",
"ListPrice": 1234.56,
"ProductText": "",
"ProductTextRTF": "",
"PrdGrp": "ET",
"PrGrpDSC": "Ersatzteil",
"PosImg": [Base64],
"PosImgURL": "http://..."
"ConfiguratorParams": [{
"ParamName": "Hoehe",
"ParamValue": 999
}, {
"ParamName": "Breite",
"ParamValue": 999
}]
}
Update
Öffnet das CONBOX-Konfigurator-Frontend für das Editieren einer bestehenden Position (sofern es sich um ein konfigurierbares Modell handelt).
Update per PositionGUID
Wird die Update Action ausgelöst, so kann dies ohne Beleg-Infos und nur mit der GUID einer Position geschehen. Die angegebene Position wird dann in einen neuen, generischen Beleg kopiert und für die Position wird dann das Bearbeiten angestoßen.
Typ: HTTP POST
ContentType: application/json
Request - Payload Body
{
"Action": "Update",
"PositionGUID": "550e8400-e29b-41d4-a716-446655440000"; // Optional
"Amount": 1, // Optional
"DocNbr": "Test01", // Optional
"DocTyp": 2, // Optional
"PosNbr": "Pos01", // Optional
"WarNbr": "TestArticle", // Optional
"PosImgWidth": 300, // Optional
"PosImgHeight": 300, // Optional
"ConfiguratorParams": [{ // Optional
"ParamName": "Hoehe",
"ParamValue": 999
}, {
"ParamName": "Breite",
"ParamValue": 999
}],
"LVNbr": "Bad 1. OG" // Optional
}
Response beim initialisieren
{
"Success": true,
"ErrorMessage": "",
"ServiceReturnData": {
"ActionToken": "891a3a7-69e8-1cc7-a5c1-648b4d648df2",
}
}
Response nach Abschluss der Konfiguration durch JS Funktion
CONBOX.GetCONBOXData();
{
"Success": true,
"InfoMessage": "",
"ErrorMessage": "";
"Action": "Update",
"PositionGUID": "550e8400-e29b-41d4-a716-446655440000";
"DocTyp": 2,
"WarNbr": "TestArticle",
"WarDsc": "TestArticle Beschreibung",
"WarDscEx1": "TestArticle Beschreibung Ex1",
"WarDscEx2": "TestArticle Beschreibung Ex1",
"FCoPrc": 123.45,
"Amount": 1,
"DocNbr": "Test01",
"PosNbr": "Pos01",
"ListPrice": 1234.56,
"ProductText": "",
"ProductTextRTF": "",
"PrdGrp": "ET",
"PrGrpDSC": "Ersatzteil",
"PosImg": [Base64],
"PosImgURL": "http://...",
"ConfiguratorParams": [{
"ParamName": "Hoehe",
"ParamValue": 999
}, {
"ParamName": "Breite",
"ParamValue": 999
}],
"LVNbr": "Bad 1. OG"
}