Skip to main content
Skip table of contents

Setup Schnittstelle

JSON WebAPI

Das COGLAS Web WMS bietet eine json WebAPI-Datenschnittstelle, über die zwischen Host und COGLAS bidirektional kommuniziert werden kann.

Mit den nachfolgenden Statements lässt sich die COGLAS WebAPI ansprechen. Zur Ausführung kann bspw. Windows Powershell verwendet werden.  Im Anschluss an die Eingabe der Statements erfolgt die Abfrage der notwendigen Parameter.


Authentifizierung

Request „login“ vom Typ POST mit Parametern:

  • grant_type* (string): immer „password“

  • username* (string): Warehouse-Alias und Benutzername in der Form „Warehouse/Benutzername“

  • password* (string): Passwort des Benutzers

liefert als Antwort ein bearer access_token, welches für alle folgenden Anfragen in den Kopfdaten enthalten sein muss.

CODE
$url = Read-Host -Prompt 'Input url (https://test.coglas.com)'
if ($url -eq '') { $url= "https://test.coglas.com/server" }
​
$client = Read-Host -Prompt 'Input client-id (010)'
if ($client -eq '') { $client= "010" }
​
$user = Read-Host -Prompt 'Input warehouse/user (coglas/service)'
if ($user -eq '') { $user= "coglas/service" }

$pass = Read-Host -Prompt 'Input password' -AsSecureString

$body = @{grant_type='password';username=$user;password=[Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($pass))}

$token = Invoke-RestMethod -Uri ("{0}/api/login" -f $url) -Body $body -Method Post

if ($token -eq $null)
{
Write-Host "Access denied!"
}
else
{
$token = $token."access_token"
Write-Host "Got token!"
}

Abfrage Listenstatus

Request „datainterface/getliststatus“ vom Typ GET mit Parametern:

  • client* (string): Mandantenkennung

  • listtype (string): Listentyp, die abgefragt wird – GoodsInOrder | DeliveryNote | ProductionOrder | CustomerOrder

  • listnumber (string): Listennummer, die abgefragt wird

  • listline (integer): Listenposition, zu der der Status abgefragt wird

  • token (string): Token

Listennummer, Listentyp sowie Listenposition sind optional und dienen nur zur weiteren Einschränkung der Ergebnismenge. Werden diese Parameter leer gelassen, werden als Ergebnis die, nach Zeitstempel ältesten, Statusänderungen geliefert. Die Anzahl zurückgemeldeter Datensätze ist aktuell auf 500 Einträge je Anfrage limitiert.

Die Kombination Listentyp + Listennummer + Listenposition + Status ist hierbei eindeutig.

Der Token wird bei initialer Abfrage leer gelassen und im Ergebnis zurück geliefert. Weitere Abfragen können diese Zeichenkette verwenden, um nur nachfolgende Statusänderungen abzufragen. Bei durchgehender Verwendung des Tokens ergibt sich als Ergebnis eine vollständige Statushistorie.


ListStatus (nur Listenköpfe)

In die Zwischenablage kopieren

CODE
# calloff list status
$listtype = Read-Host "Input list type to get (1 = GoodsInOrder, 2 = DeliveryNote, 3 = ProductionOrder, 4 = CustomerOrder, default = all)"
switch($listtype)
{
  1 { $listtype = "GoodsInOrder" }
  2 { $listtype = "DeliveryNote" }
  3 { $listtype = "ProductionOrder" }
  4 { $listtype = "CustomerOrder" }
}  
$listnumber = Read-Host "Input listnumber to get (empty)"
$journaltoken = Read-Host "Input token from last calloff (empty)"
$request = "{0}/api/datainterface/getliststatus?client={1}&listtype={2}&listnumber={3}&token={4}" -f ($url,$client,$listtype,$listnumber,$journaltoken)
Write-Host "Request: " $request
$json = $null
$json = Invoke-RestMethod $request -Headers @{Authorization=("Bearer {0}" -f $token)} | ConvertTo-Json -Depth 10
if($json)
{
  Write-Host "Result:"
  Write-Host $json
  Write-Host
  Read-Host "Press enter to save result or ctrl + c to cancel"
  $filename = ((get-date -Format yyMMddTHHmmss) + "_" + $client + "_ListStatus.json")
  $json | out-file $filename
  Write-Host "Saved result to"$filename
}

ListStatus (inkl. Positionen)

CODE
# calloff list status
$listtype = Read-Host "Input list type to get (1 = GoodsInOrder, 2 = DeliveryNote, 3 = ProductionOrder, 4 = CustomerOrder, default = all)"
switch($listtype)
{
1 { $listtype = "GoodsInOrder" }
2 { $listtype = "DeliveryNote" }
3 { $listtype = "ProductionOrder" }
4 { $listtype = "CustomerOrder" }
}
$listnumber = Read-Host "Input listnumber to get (empty)"
$listline = Read-Host "Input listposition to get (empty)"
$journaltoken = Read-Host "Input token from last calloff (empty)"
$request = "{0}/api/datainterface/getlistpositionstatus?client={1}&listtype={2}&listnumber={3}&position={4}&token={5}" -f ($url,$client,$listtype,$listnumber,$listline,$journaltoken)
Write-Host "Request: " $request
$json = $null
$json = Invoke-RestMethod $request -Headers @{Authorization=("Bearer {0}" -f $token)} | ConvertTo-Json -Depth 10
if($json)
{
Write-Host "Result:"
Write-Host $json
Write-Host
Read-Host "Press enter to save result or ctrl + c to cancel"

$utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
$filename = $(get-location).Path + '' + ((get-date -Format yyMMddTHHmmss) + "_" + $client + "_ListStatus.json")
[System.IO.File]::WriteAllLines($filename, $json, $utf8NoBomEncoding)

Write-Host "Saved result to"$filename
}

Abfrage Bestandstransformationen

Request „datainterface/getstocktransformations“ vom Typ GET mit Parametern:

  • client* (string): Mandantenkennung

  • token (string): Token

Der Token wird bei initialer Abfrage leer gelassen und im Ergebnis zurück geliefert. Weitere Abfragen können diese Zeichenkette verwenden, um nur nachfolgende Statusänderungen abzufragen. Bei durchgehender Verwendung des Tokens ergibt sich als Ergebnis eine vollständige Statushistorie.

CODE
$journaltoken = Read-Host "Input token from last calloff (empty)"
$request = "{0}/api/datainterface/getstocktransformations?client={1}&token={2}" -f ($url,$client,$journaltoken)
Write-Host "Request: " $request
$json = $null
$json = Invoke-RestMethod $request -Headers @{Authorization=("Bearer {0}" -f $token)} | ConvertTo-Json -Depth 10
if($json)
{
  Write-Host "Result:"
  Write-Host $json
  Write-Host
  Read-Host "Press enter to save result or ctrl + c to cancel"
  $utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
  $filename = $(get-location).Path + '\' + ((get-date -Format yyMMddTHHmmss) + "_" + $client + "_InventoryAdjustments.json")
  [System.IO.File]::WriteAllLines($filename, $json, $utf8NoBomEncoding)
  Write-Host "Saved result to"$filename
}

Abfrage Bestandskorrekturen

Request „datainterface/getinventoryadjustments“ vom Typ GET mit Parametern:

  • client* (string): Mandantenkennung

  • token (string): Token

Der Token wird bei initialer Abfrage leer gelassen und im Ergebnis zurück geliefert. Weitere Abfragen können diese Zeichenkette verwenden, um nur nachfolgende Statusänderungen abzufragen. Bei durchgehender Verwendung des Tokens ergibt sich als Ergebnis eine vollständige Statushistorie.

CODE
$journaltoken = Read-Host "Input token from last calloff (empty)"
$request = "{0}/api/datainterface/getinventoryadjustments?client={1}&token={2}" -f ($url,$client,$journaltoken)
Write-Host "Request: " $request
$json = $null
$json = Invoke-RestMethod $request -Headers @{Authorization=("Bearer {0}" -f $token)} | ConvertTo-Json -Depth 10
if($json)
{
  Write-Host "Result:"
  Write-Host $json
  Write-Host
  Read-Host "Press enter to save result or ctrl + c to cancel"
  $filename = ((get-date -Format yyMMddTHHmmss) + "_" + $client + "_ListStatus.json")
  $json | out-file $filename
  Write-Host "Saved result to"$filename
}

Abfrage Liste

Request „datainterface/getlist“ vom Typ GET mit Parametern:

  • client* (string): Mandantenkennung

  • listnumber* (string): Listennummer, die abgefragt wird

  • listtype* (string): Listentyp, die abgefragt wird – GoodsInOrder | DeliveryNote | ProductionOrder | CustomerOrder

Je nach Status der Liste kann als Ergebnis ein anderer Nachrichtentyp geliefert werden.

CODE
$listtype = Read-Host "Input list type to get (1 = GoodsInOrder, 2 = DeliveryNote, 3 = ProductionOrder, 4 = CustomerOrder)"
switch($listtype)
{
  1 { $listtype = "GoodsInOrder" }
  2 { $listtype = "DeliveryNote" }
  3 { $listtype = "ProductionOrder" }
  4 { $listtype = "CustomerOrder" }
}  
$listnumber = Read-Host "Input listnumber to get"
Write-Host "Result:"
$request = "{0}/api/datainterface/getlist?client={1}&listnumber={2}&listtype={3}" -f ($url,$client,$listnumber,$listtype)
$json = $null
$json = (curl -H @{'Authorization' = 'Bearer {0}' -f $token} $request  | select-object -expand Content | convertfrom-json)."Data" | convertto-json -Depth 10
if($json)
{
  Write-Host $json
  Write-Host
  Read-Host "Press enter to save result or ctrl + c"
  $filename = ((get-date -Format yyMMddTHHmmss) + "_" + $client + "_" + $listtype + "_" + $listnumber + ".json")
  $json | out-file $filename
  Write-Host "Saved result to"$filename
}

Abfrage Artikelsummenbestand

Request „datainterface/getarticlestocksum“ vom Typ GET mit Parametern:

  • client* (string): Mandantenkennung

CODE
$request = "{0}/api/datainterface/getarticlestocksum?client={1}" -f ($url,$client)
$json = Invoke-RestMethod $request -Headers @{Authorization=("Bearer {0}" -f $token)} | ConvertTo-Json -Depth 10
if($json)
{
  Write-Host $json
  Write-Host
  Read-Host "Press enter to save result or ctrl + c"
  $filename = ((get-date -Format yyMMddTHHmmss) + "_" + $client + "_ArticleStockSum.json")
  $json | out-file $filename
  Write-Host "Saved result to"$filename
}

Anlage von Listen/Stammdaten sowie Ausführung von Aktionen

Für die Anlage von Listen und Stammdaten sowie das Triggern von Listenaktionen via ProcessList steht eine einheitliche Methode zur Verfügung. Diese erwartet Daten im JSON-Format, wobei innerhalb dieser Daten der Typ der Nachricht angegeben wird.

Request „datainterface/processmessagetype“ vom Typ PUT mit Parametern:

  • jsonObject* (JSON): zu verarbeitende Daten

CODE
$filename = Read-Host "Input filename to send"
$content = get-content -raw -path $filename -encoding UTF8
curl -Method PUT "$url/api/datainterface/processmessagetype" -H @{'Content-Type' = 'application/json'; 'Authorization' = 'Bearer {0}' -f $token} -Body ([System.Text.Encoding]::UTF8.GetBytes($content))

Verfügbare Nachrichtentypen

https://coglas.sharepoint.com/:x:/s/Public/EZAZMe_SJx1LmbnMeIJaroABtLZk74M6tPY8482sx4wuvQ?e=vNZdbD


XML Schnittstelle

Die einzelnen Elemente der XML Schnittstelle sind innerhalb der xsd Definitionen enthalten. Beispiele zu den Nachrichtentypen sind im jeweiligen Kapitel zu finden.

Der Austausch von XML-Dateien zwischen Hostsystem und COGLAS Web findet über Transferordner statt.

  • Im Ordner „Outbound“ werden Dateien abgelegt, die ausgehend vom Host in Richtung COGLAS zielen.

  • Im Ordner „Inbound“ befinden sich Rückmeldungen von COGLAS an den Host. Weitere Informationen hierzu im Kapitel Schnittstellen › Rückmeldungen aus COGLAS.

Download


FileTransfer für Bilder über Schnittstelle

Der FileTransfer für Bilder ermöglicht es, Objekten über die Schnittstelle Grafikdateien zuzuordnen. Dies ist eine effektive Alternative zur manuellen Zuordnung in der GUI des Coglas WMS. Die eindeutige Zuordnung wird durch die nachfolgend genannten Namenskonventionen erreicht:

  1. Artikel: Mandantennummer, Artikelnummer

  2. Verpackungseinheit: Mandantennummer, Artikelnummer, Verpackungseinheitsbezeichnung

  3. Geschäftspartner: Geschäftspartnernummer

  4. Kundenauftrag: Mandantennummer, Kundenauftragsnummer

  5. Lieferschein: Mandantennummer, Lieferscheinnummer

  6. Ladehilfsmittel: Ladehilfsmittelbezeichnung

  7. Inventurauftrag: Mandantennummer, Inventurauftragsnummer

  8. Wareneingangsschein: Mandantennummer, Wareneingangsscheinnummer

  9. Warenausgangsschein: Warenausgangsscheinnummer

Mit Hilfe dieser Informationen können wir den Dateinamen wie folgt umbenennen:

Typ

Bezeichnung

Beispiel

Artikel

A_Mandantennummer_Artikelnummer_Dateiname

A_010_123123123_Motor

Verpackungseinheit

APU_MandantenNr_ArtikelNr_Verpackungseinheitsbez._Dateiname

APU_010_32116817_Tüte_Bild

Geschäftspartner

BP_Geschäftspartnernummer_Dateiname

BP_12345_Logo

Kundenauftrag

CO_MandantenNr_Kundenauftragsnummer_Dateiname

CO_010_123_Schuhe

Lieferschein

DN_MandantenNr_Lieferscheinnummer_Dateiname

DN_010_GI1907110001-01_Test

Ladehilfsmittel

E_Ladehilfsmittelbezeichnung_Dateiname

E_Tüte_Tüte

Inventurauftrag

IO_MandantenNr_Inventurauftragsnummer_Dateiname

IO_010_IN2005190134_Inv

Wareneingangsschein

GIR_MandantenNr_Wareneingangsscheinnummer_Dateiname

GIR_010_GI1907110001-01-01_Eingang

Warenausgangsschein

GOR_Warenausgangsscheinnummer_Dateiname

GOR_10002_Ausgang


→ zurück zu COGLAS Prozessen
→ zurück zu COGLAS Menü

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.