Passive Actions werden von moveIT CONBOX als WebService bereitgestellt. Es gibt keine Benutzeroberfläche seitens moveIT CONBOX für den Endnutzer. Die Kommunikation zwischen den Systemen erfolgt vollständig im Hintergrund und ist für den Benutzer nicht sichtbar.
Die erforderlichen Parameter werden als JSON im Payload Body der HTTP-Anfrage übermittelt. Die Antworten werden ebenfalls im JSON-Format im HTTP-Response zurückgegeben. Der Content-Type der Nachrichten muss dabei stets application/json
sein.
In diesem Szenario werden die im Fremdsystem benötigten Informationen synchron direkt im Response des WebService-Calls zurückgegeben.
Authentifizierung:
Im 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.
SilentCopy
Kopiervorgang der im Hintergrund, ohne User Interaktion, durchgeführt werden kann.
Typ: HTTP POST
ContentType: application/json
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.
Verwenden des DocTyp für bessere Performance
Wenn der DocTyp bekannt ist, sollte dieser im Call angegeben werden, um die Performance der Action signifikant zu verbessern.
Request per GUID - Payload Body
{
"Service": "CONBOX",
"Language": "DE",
"UserCode": "<Usercode>",
"UserAPIKey": "7546b3a7-73e8-40a7-a7b6-699b4d648ac1", // künftig ein Pflichtfeld
"ServiceData": {
"Action": "SilentCopy",
"PositionGuid": "a4e656fc-c462-ef99-d814-52faad2fc8db",
"Amount": 1, // Optional - sonst gleich wie Ursprung Position
"DocTyp": 2 // Optional
}
}
Response
{
"Success": true,
"ErrorMessage": "",
"ServiceReturnData": {
"Action": "SilentCopy",
"PositionGuid": "550e8400-e29b-41d4-a716-446655440000",
"DocTyp": 2,
"DocNbr": "Test01",
"PosNbr": "Pos01",
"SrcDocTyp": 2,
"SrcDocNbr": "Test01",
"SrcPosNbr": "Pos02",
"Amount": 1,
"PosImgWidth": 300,
"PosImgHeight": 300,
"WarNbr": "TestArticle",
"ProductText": "",
"ProductTextRTF": "",
"PrdGrp": "ET",
"PrGrpDSC": "Ersatzteil",
"ListPrice": 1234.56,
"WarDsc": "TestArticle Beschreibung",
"WarDscEx1": "TestArticle Beschreibung Ex1",
"WarDscEx2": "TestArticle Beschreibung Ex1",
"FCoPrc": 123.45,
"PosImgURL": "http://...",
"PosImg": "[Base64]"
}
}
Request über Beleg- und Positionsnummern - Payload Body
{
"Service": "CONBOX",
"Language": "DE",
"UserCode": "<UserCode>",
"UserAPIKey": "7546b3a7-73e8-40a7-a7b6-699b4d648ac1", // künftig ein Pflichtfeld
"ServiceData": {
"Action": "SilentCopy",
"DocTyp": 2, // Zielbelegart
"DocNbr": "10000-17", // Zielbelegsnummer
"PosNbr": "Pos01", // Zielpositionsnummer
"SrcDocTyp": 2, // Quellbelgsart
"SrcDocNbr": "10000-15", // Quellbelgesnummer
"SrcPosNbr": "Pos01", // Quellpositionsnummer
"Amount": 1, // Optional - sonst gleich wie Ursprung Position
"PosImgWidth": 300, // Optional initial 300
"PosImgHeight": 300 // Optional initial 300
}
}
Response
{
"Success": true,
"ErrorMessage": "",
"ServiceReturnData": {
"Action": "SilentCopy",
"PositionGuid": "550e8400-e29b-41d4-a716-446655440000",
"DocTyp": 2,
"DocNbr": "Test01",
"PosNbr": "Pos01",
"SrcDocTyp": 2,
"SrcDocNbr": "Test01",
"SrcPosNbr": "Pos02",
"Amount": 1,
"PosImgWidth": 300,
"PosImgHeight": 300,
"WarNbr": "TestArticle",
"ProductText": "",
"ProductTextRTF": "",
"PrdGrp": "ET",
"PrGrpDSC": "Ersatzteil",
"ListPrice": 1234.56,
"WarDsc": "TestArticle Beschreibung",
"WarDscEx1": "TestArticle Beschreibung Ex1",
"WarDscEx2": "TestArticle Beschreibung Ex1",
"FCoPrc": 123.45,
"PosImgURL": "http://...",
"PosImg": "[Base64]"
}
}
Delete
Löschen einer Position
Typ: HTTP POST
ContentType: application/json
Delete per PositionGUID
Die Delete Action kann rein mit der GUID einer Position ausgelöst werden. Es werden keine anderen Beleg-Infos benötigt. Wird die Position gelöscht und ist die einzige Position in einem Beleg, so ist der Beleg leer. Es wird empfohlen, die Reorganisation von leeren Belegen einzurichten.
Verwenden des DocTyp für bessere Performance
Wenn der DocTyp bekannt ist, sollte dieser im Call angegeben werden, um die Performance der Action signifikant zu verbessern.
Request per GUID - Payload Body
{
"Service": "CONBOX",
"Language": "DE",
"UserCode": "<Usercode>",
"UserAPIKey": "7546b3a7-73e8-40a7-a7b6-645b4d648ac1", // künftig ein Pflichtfeld
"ServiceData": {
"Action": "Delete",
"PositionGuid": "550e8400-e29b-41d4-a716-446655440000" // Optional
}
}
Response
{
"Success": true,
"ErrorMessage": "",
"ServiceReturnData": {
"Action": "Delete",
"PositionGuid": "550e8400-e29b-41d4-a716-446655440000",
}
}
Request über Beleg- und Positionsnummern - Payload Body
{
"Service": "CONBOX",
"Language": "DE",
"UserCode": "<Usercode>",
"UserAPIKey": "7546b3a7-73e8-40a7-a7b6-645b4d648ac1", // künftig ein Pflichtfeld
"ServiceData": {
"Action": "Delete",
"DocTyp": 2,
"DocNbr": "Test01",
"PosNbr": "Pos01"
}
}
Response
{
"Success": true,
"ErrorMessage": "",
"ServiceReturnData": {
"Action": "Delete",
"DocTyp": 2,
"DocNbr": "Test01",
"PosNbr": "Pos01"
}
}
Purchase
Bestellauslösung – parallel zum Fremdsystem. Die Industrie fordert im Normalfall auch eine technische moveIT Bestellung.
Typ: HTTP POST
ContentType: application/json
Request über Beleg- und Positionsnummern - Payload Body
{
"Service": "Conbox",
"Language": "DE",
"UserCode": "<UserCode>",
"UserAPIKey": "7546b3a7-73e8-40a7-a7b6-645b4d648ac1", // künftig ein Pflichtfeld
"ServiceData": {
"Action": "Purchase",
"DocTyp": 2,
"DocNbr": "101224-01", // Auftragsquellbelegsnummer
"FinalCustomerLndCde": "D",
"PosNbr":"Pos01,Pos02", // Optional - Quellpositionsnummern
"ExtPchNbr": "101224-01", // Optional - Externe Bestellnummer
"Subject": "BVH Wels", // Optional - Betreff
"PurchaseTxt": "Bestell-Notiz" // Optional
"DlvAdr": { // Optional
"AdrTit": "",
"AdrNam01": "Mustermann",
"AdrNam02": "Max",
"OrdNam": "",
"AdrStr": "Vierundzwanzig 3",
"AdrLnd": "D",
"AdrPcd": "10001",
"AdrReg": "Berlin"
},
"PosData": [{ // Optional
"PosNbr": "Pos01",
"LVNbr": "031.01.01",
"NotTxt": "Fertigungshinweis",
"Amount": 1 // Optional - sonst gleich wie Ursprung Position
},
{
"PosNbr": "Pos02",
"LVNbr": "032.02.02",
"NotTxt": "Fertigungshinweis"
"Amount": 1
}
]
}
}
Response
{
"Success": true,
"ErrorMessage": "",
"ServiceReturnData": {
"Action": "Purchase",
"DocTyp": 2,
"DocNbr": "101224-01",
"FinalCustomerLndCde": "D",
"PosNbr": "Pos01,Pos02",
"ExtPchNbr": "101224-01",
"Subject": "BVH Wels",
"PurchaseTxt": "Bestell-Notiz"
"DlvAdr": {
"AdrTit": "",
"AdrNam01": "Mustermann",
"AdrNam02": "Max",
"OrdNam": "",
"AdrStr": "Vierundzwanzig 3",
"AdrLnd": "D",
"AdrPcd": "10001",
"AdrReg": "Berlin"
},
"PosData": [{
"PosNbr": "Pos01",
"LVNbr": "031.01.01",
"NotTxt": "Fertigungshinweis"
"Amount": 1
}, {
"PosNbr": "Pos02",
"LVNbr": "032.02.02",
"NotTxt": "Fertigungshinweis"
"Amount": 1
}]
}
}
Request per GUID - Payload Body
Purchase per PositionGUID
Bestellungen können rein über GUIDs von Konfigurations-Positionen zusammengestellt werden. In diesem Step kann auch die Menge geändert werden.
Verwenden des DocTyp für bessere Performance
Wenn der DocTyp bekannt ist, sollte dieser im Call angegeben werden, um die Performance der Action signifikant zu verbessern.
{
"Service": "CONBOX",
"Language": "DE",
"UserCode": "<Usercode>",
"UserAPIKey": "7546b3a7-73e8-40a7-a7b6-645b4d648ac1", // künftig ein Pflichtfeld
"ServiceData": {
"Action": "Purchase",
"FinalCustomerLndCde": "D",
"DlvAdr": { // Optional
"AdrTit": "Titel",
"AdrNam01": "Name",
"AdrNam02": "Name2",
"OrdNam": "Ansprecher",
"AdrStr": "Strasse",
"AdrLnd": "D",
"AdrPcd": "PLZ",
"AdrReg": "Ort"
},
"PosData": [{
"PositionGuid": "a4d77538-66ed-3d99-d714-b0222516131d",
"LVNbr": "Schlafzimmer", // Optional
"NotTxt": "Fertigungshinweis", // Optional
"Amount": 1 // Optional - sonst gleich wie Ursprung Position
}, {
"PositionGuid": "a4d77538-66ed-3d99-d714-b0222516131e",
"LVNbr": "Küche", // Optional
"NotTxt": "Fertigungshinweis", // Optional
"Amount": 1 // Optional - sonst gleich wie Ursprung Position
}]
}
}
Response
{
"Success": true,
"ErrorMessage": "",
"ServiceReturnData": {
"Action": "Purchase",
"DlvAdr": {
"AdrTit": "Titel",
"AdrNam01": "Name",
"AdrNam02": "Name2",
"OrdNam": "Ansprecher",
"AdrStr": "Strasse",
"AdrLnd": "D",
"AdrPcd": "PLZ",
"AdrReg": "Ort"
},
"PosData": [{
"PositionGuid": "a4d77538-66ed-3d99-d714-b0222516131d",
"LVNbr": "Schlafzimmer",
"NotTxt": "Fertigungshinweis"
}, {
"PositionGuid": "a4d77538-66ed-3d99-d714-b0222516131e",
"LVNbr": "Küche",
"NotTxt": "Fertigungshinweis"
}]
}
}
SaveDocumentAs
Hiermit kann ein Angebot als Angebot, Angebot als Auftrag oder ein Auftrag als Auftrag gespeichert werden.
Typ: HTTP POST
ContentType: application/json
Request - Payload Body
{
"Service": "CONBOX",
"Language": "DE",
"UserCode": "<Usercode>",
"ServiceData": {
"Action": "SaveDocumentAs",
"DocNbr": "Test01",
"DocTyp": 2,
"SrcDocNbr": "Test02",
"SrcDocTyp": 2
}
}
Response
{
"Success": true,
"ErrorMessage": "",
"ServiceReturnData": {
"Action": "SaveDocumentAs",
"DocTyp": 2,
"DocNbr": "Test01",
"SrcDocTyp": 2,
"SrcDocNbr": "Test01"
}
}
SetReadyStatus
Mit der Action SetReadyStatus kann man ein Angebot oder einen Auftrag auf fertig setzen. Dies kann relevant sein, wenn dadurch weitere Schnittstellenfunktionen ausgelöst werden.
Typ: HTTP POST
ContentType: application/json
Request - Payload Body
{
"Service": "CONBOX",
"Language": "DE",
"UserCode": "<USerCode>",
"ServiceData": {
"Action": "SetReadyStatus",
"DocTyp": 2,
"DocNbr": "000007", // Externe Nummer
"ReadyStatus": true //true oder false
}
}
Response
{
"Success": true,
"ErrorMessage": "",
"ServiceReturnData": {
"Action": "SetReadyStatus",
"DocTyp": 2,
"DocNbr": "Test02",
"ReadyStatus": true
}
}
GetPositionData
🎯 ab moveIT Version 54.30.14
Mit der Action GetPositionData kann man sämtliche Informationen zu einer Position abrufen. Es werden dabei nur Informationen zurück gegeben - es werden keine Änderungen durchgeführt.
Typ: HTTP POST
ContentType: application/json
Request über Beleg- und Positionsnummern - Payload Body
{
"Service": "CONBOX",
"Language": "DE",
"UserCode": "<UserCode>",
"ServiceData": {
"Action": "GetPostionData",
"DocTyp": 2,
"DocNbr": "000007",
"PosNbr": "Pos01"
}
}
Response
{
"Success": true,
"ErrorMessage": "",
"ServiceReturnData": {
"Action": "GetPositionData",
"PositionGuid": "ed3b6a84-695f-afac-d814-9ddd90754ed0",
"WarNbr": "TestArticle",
"ProductText": "",
"ProductTextRTF": "",
"ListPrice": 345.0,
"WarDsc": "Ausführliche Bezeichnung des Produktes",
"WarDscEx1": "könnte noch weitere Bezeichnung sein",
"WarDscEx2": "könnte noch weitere Bezeichnung sein",
"FCoPrc": 155.25,
"PosImgURL": "htts://...",
"PosImg": "data:image/jpg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAYEBQYFBAYGBQYHBwYI...",
"PrdGrp": "Produktgruppen-Code",
"PrdGrpDsc": "Produktgruppe ausgeschrieben"
}
}
Request per GUID - Payload Body
Verwenden des DocTyp für bessere Performance
Wenn der DocTyp bekannt ist, sollte dieser im Call angegeben werden, um die Performance der Action signifikant zu verbessern.
{
"Service": "CONBOX",
"Language": "DE",
"UserCode": "<UserCode>",
"ServiceData": {
"Action": "GetPostionData",
"GetPostionData": "b061a882-3cfa-21a2-d814-380d500dbbc9",
"DocTyp": 2
}
}
Response
{
"Success": true,
"ErrorMessage": "",
"ServiceReturnData": {
"Action": "GetPositionData",
"PositionGuid": "ed3b6a84-695f-afac-d814-9ddd90754ed0",
"WarNbr": "TestArticle",
"ProductText": "",
"ProductTextRTF": "",
"ListPrice": 345.0,
"WarDsc": "Ausführliche Bezeichnung des Produktes",
"WarDscEx1": "könnte noch weitere Bezeichnung sein",
"WarDscEx2": "könnte noch weitere Bezeichnung sein",
"FCoPrc": 155.25,
"PosImgURL": "htts://...",
"PosImg": "data:image/jpg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAYEBQYFBAYGBQYHBwYI...",
"PrdGrp": "Produktgruppen-Code",
"PrdGrpDsc": "Produktgruppe ausgeschrieben"
}
}