infra:NET User
 
×
Workist
Workist ist eine KI-basierte Eingangsbeleg-Erkennung, mit der im vorliegenden Anwendungsfall Bestellungen unterschiedlicher Herkunft analysiert, strukturiert und per WebApi von infra:NET abgerufen und als Auftrag angelegt werden. Basis ist die infra:NET EDI-Schnittstelle (AUF448), die um den entsprechenden WebApi-Zugriff erweitert wurde. Der Zugriff erfolgt über das infra:NET-Plugin infraHTTP.
Erforderliche Felder als Basis zur Auftragsanlage sind hierbei:
  • infra-Kundennummer
  • infra-Teilenummer
  • infra-Adressnummer Versandadresse
  • Bestellnummer des Kunden
  • Bestellmenge
  • Mengeneinheit
  • Versandart, D38,F112 (KKOPF,VersArt) versorgen aus D41,F129 (KUNDE,VersArt)
Die übermittelte Bestellnummer muss eindeutig sein. Eine bereits vorhandene Bestellnummer wird abgewiesen und eine (konfigurierbare) E-Mail wird an ein hierfür definiertes Postfach verschickt.
Die Preisfindung erfolgt grundsätzliche über die vorhandenen Infra-Konditionen.
Die Übergabe der Stammdaten erfolgt per SQL-Agent im CSV-Format an einen SFTP-Server:
  • Kundendaten
  • Teiledaten
  • Externe Teilenummern des Kunden 
  • Adressdaten
  • Mengeneinheiten
  • Mengenumrechnungen
Einrichtung des Imports
Für den Abruf der zu importierenden Bestellungen über das Workist-Web-Interfice ist das infraHTTP-Plugin notwendig. Dazu muss folgende INI-Einstellung aktiviert werden:
[PLUGIN]
infraHttp=infraHttp
Der Import wird für das Schnittstellenprogramm AUF448 wir folgt in der infra INI-Datei definiert:
[AUF448]
TypWorkist=Workist
[AUF448-Workist]
UseWebService=Yes
WebServiceGetOrder=Workist,https://api.workist.com/v1,Orders_list,,,d:\infra\workist\WorkistGetOrder.xml,,1,0
WebServiceOrderSuccess=Workist,https://api.workist.com/v1,Orders_mark_imported,,,d:\infra\workist\WorkistOrderMarkImported.xml,,1,0
WebServiceOrderFailed=Workist,https://api.workist.com/v1,Orders_mark_imported,,,d:\infra\workist\WorkistOrderMarkFailed.xml,,1,0
UebDaten = d:\infra\workist\import\WorkistOrder-*.xml
ErkDaten = d:\infra\workist\XMLerkenn.inf
SteDaten = d:\infra\workist\XMLmove.inf
XSLDatei = d:\infra\workist\WorkistEdi.xsl
MailError=SendMailEx(,Mail-Adresse,,Fehler bei Workist-Bestellung Trim(LBUF(255,314,20))!,LBUF(255,1501,131))
MailInfo=SendMailEx(,Mail-Adresse,,Info zu Workist-Bestellung Trim(LBUF(255,314,20))!,LBUF(255,1501,131))
SBInland=SB1
SBAusland=SB2
 Im Ordner D:\infra\workist (bei Verwendung eines abweichenden Ordners müssen die o.g. INI-Einstellungen entsprechend angepasst werden) werden folgende Dateien erwartet:
XMLErkenn.inf, XMLMove.inf
Steuerdateien zur Übdernahme der XML-Daten, nach der Umwandlung durch workistedi.xsl
workistedi.xsl
XSLT-Vorschrift zur Umwandlung der über das Workist-Web-Interface abgerufenen XML-Dateien in das Importformat für XMLErenn/XMLMove
WorkistGetOrder.xml
Sammlung von Parametern, die für den Abruf der Bestellungen an die "orders_list"-Schnittstelle der Workist-WebApi übergeben werden. In der Datei dürfen infra-Makros enthalten sein.
Hinweis: Die Datei enthält Informationen, die für den Zugriff auf den Workist-Dienst notwendig sind und muss angepasst werden.
WorkistOrderMarkImported.xml
Sammlung von Parametern, die bei erfolgreichem Import einer Bestellung an die "orders_mark_imported"-Schnittstelle der Workist-WebApi übergeben werden. 
In der Datei dürfen infra-Makros enthalten sein.
Hinweis: Die Datei enthält Informationen, die für den Zugriff auf den Workist-Dienst notwendig sind und muss angepasst werden.
WorkistOrderMarkFailed.xml
Sammlung von Parametern, die bei fehlerhaftem Import einer Bestellung an die "orders_mark_imported"-Schnittstelle der Workist-WebApi übergeben werden. 
In der Datei dürfen infra-Makros enthalten sein.
Hinweis: Die Datei enthält Informationen, die für den Zugriff auf den Workist-Dienst notwendig sind und muss angepasst werden.
Folgende Informationen müssen bei der Einrichtung in den o.g. XML-Dateien hinterlegt werden:
<AccessToken>Zugriffstoken</AccessToken>
Über diesen Zugriffstoken identifiziert sich infra beim Workist-Web-Interface. Der Zugriffstoken wird von Workist für die jeweiligen Kundeninstallation zur Verfügung gestellt.
<channel>Kanal-ID</channel>
Nur in "WorkistGetOrder.xml": Workist-Dokumente werden in unterschiedlichen Kanälen zum Abruf bereitgestellt. Hier ist die Kanal-ID des anzusprechenden Workist-Kanals anzugeben. Die Information wird von Workist zur Verfügung gestellt.
<page_size>Anzahl</page_size>
Nur in "WorkistGetOrder.xml": Anzahl der Bestellungen, die maximal bei einem Aufruf der "orders_list"-Schnittstelle abgerufen werden sollen. Zu Testzwecken sollte mit "1" begonnen werden. Je höher die Anzahl um so länger dauert der Abruf der Bestellungen, was zu einer Blockade der Anwendung führen kann.
 
Bitte neuen Eintrag in [Plugin] aufnehmen:
infraHttp=infraHttp
Die infraHttp-Erweiterung stellt interne Schnittstellen zur Kommunikation mit Internet-Diensten (Web-Services) und SFTP-Servern zur Verfügung und muss z.B. für den EDI-Datenaustausch über Web-Dienste oder Datenschnittstellen, die Zugriff auf einen SFTP-Server benötigen (z.B. Netfira) aktiviert werden.
Bitte folgende Makro-Beschreibungen aufnehmen:
CallWebService(INI-Sektion,API,INI-SQLKey,XslFile,ShowError,ShowResult)
CallWebServiceEx(Provider, URL, API, User, Password, XmlFile, XslFile, ShowError, ShowResult)
Diese Makros erlauben den Zugriff auf spezialisierte Internet-Dienste (Web-Services). Voraussetzung ist Aktivierung des infraHttp-Plugins [PLUGIN].
Grundsätzlich gilt, dass zur Verwendung eines WebServices, der Zugriff auf die entsprechende WebAPI im infraHttp-Plugin vom Softwarehersteller vorbereitet werden muss. Derzeit ist der Zugriff auf folgende WebServices (Provider) implementiert:
Bei "CallWebService" werden die notwendigen Zugriffsparameter aus der angegebenen "INI-Sektion" der infra INI-Datei gelesen:
[INI-Sektion]
Provider=Provider
URL=URL
User=User
Password=Password
Bei "CallWebServiceEx" werden die an den WebService zu übergebenden Daten aus einer XML-Datei geladen - "CallWebService" lädt die zu übergebenden Daten aus der SQL-Datenbank. Dazu ist bei "CallWebService" die Angabe eines INI-Schlüssels "INI-SQLKey" notwendig, bei dem in der Sektion "INI-Sektion" der infra INI-Datei das SQL-Kommando zum Abruf der Daten aus der infra SQL-Datenbank zu hinterlegen ist. Für den Zugriff ist die Aktivierung des infraADO-Plugins (Link! zu [Plugin]) notwendig. Analog zum SQLSelect-Makro kann in der INI-Sektion ein vom Standard abweichender "ConnectionString" angegeben werden.
Bevor die aus der SQL-Datenbank oder der XML-Datei eingelesenen Daten an die jeweilige WepApi (API) des Providers übergeben werden, können diese durch eine entsprechend vorbereitete XSL-Transformation (XslFile) so umgewandelt werden, dass die Parameter und Daten der von der API geforderten Syntax und Struktur entsprechen.
Bei "ShowError=1" wird im Falle eines Fehlers beim Zugriff auf den WebService eine Meldung am Bildschirm ausgegeben - ansonsten erfolgt ausschließlich eine Protokollierung in der sitzungsabhängigen infra-LOG-Datei.
Bei "ShowResult=1" wird das Ergebnis des WebService-Aufrufs per Meldung am Bildschirm angezeigt, um z.B. die Funktion zu testen. 
SFTPDownloadFiles(TargetFolder, URL, Folder, FileSpec, User, Password, Delete, ShowError, ShowResult)
Mit diesem Makro können Dateien von einem SFTP-Server übertragen werden.
Dabei ist das Ziel-Verzeichnis (TargetFolder), die URL des SFTP-Servers, der Quell-Ordern (Folder) auf dem SFTP-Server, der Name bzw. das Namensmuster der zu ladenden Dateien (FileSpec - z.B. "*.xml"), sowie die für den Zugriff notwendigen Zugangsdaten (User und Password) anzugeben.
Bei "Delete=1" werden die Dateien auf dem SFTP-Server nach erfolgreicher Übertragung gelöscht.
Mit "ShowError=1" wird bei einem Übertragungs- oder Zugriffsfehler eine Meldung am Bildschirm angezeigt - ansonsten erfolgt nur eine Protokollierung in der infra-LOG-Datei.
Soll die Anzahl der übertragenen Dateien als Meldung angezeigt werden (oder eine ggf. vom SFTP-Server gelieferte Meldung), muss "ShowResult=1" als Paremeter mitgegeben werden. Ansonsten wird ebenfalls nur in der infra-LOG-Datei protokolliert.

Bitte folgende infra-Prozeduren aufnehmen:
 
CBgHTTPCallWebService
CBgHTTPCallWebServiceEx
Beschreibung:
Zugriff auf einen WebService (WebApi), um z.B. Daten zu übergeben oder abzurufen. Eine Beschreibung der Möglichkeiten und Parameter befindet sich beim ensprechenden Makro-Pendant "CallWebService" unter "infra-Makros" 15.01 infra-Makros
 
CBgSFTPDownloadFiles
Beschreibung:
Dateien von einem SFTP-Server laden. Eine Beschreibung der Möglichkeiten und Parameter befindet sich beim ensprechenden Makro-Pendant "SFTPDownloadFiles" unter "infra-Makros" 15.01 infra-Makros

Gutschriften übernehmen
Analog zu Bestellungen können auch Gutschriften z.B. aus Rücklieferungen von Workist nach infra übernommen werden. Es gelten die gleichen Voraussetzungen wir bei der Übernahme von Bestellungen.
Für den Import der Gutschriften wird für das Schnittstellenprogramm AUF448 ein eigener Übernahmetyp und ein eigenes Übergabeverzeichnis (hier "d:\infra\workistG") definiert:
[AUF448]
TypWorkistG=WorkistG
[AUF448-Workist]
UseWebService=Yes
WebServiceGetOrder=Workist,https://api.workist.com/v1,Orders_list,,,d:\infra\workistG\WorkistGGetOrder.xml,,1,0
WebServiceOrderSuccess=Workist,https://api.workist.com/v1,Orders_mark_imported,,,d:\infra\workistG\WorkistGOrderMarkImported.xml,,1,0
WebServiceOrderFailed=Workist,https://api.workist.com/v1,Orders_mark_imported,,,d:\infra\workistG\WorkistGOrderMarkFailed.xml,,1,0
UebDaten = d:\infra\workistG\import\WorkistOrder-*.xml
ErkDaten = d:\infra\workistG\XMLerkenn.inf
SteDaten = d:\infra\workistG\XMLmoveG.inf
XSLDatei = d:\infra\workistG\WorkistEdi.xsl
MailError=SendMailEx(,Mail-Adresse,,Fehler bei Workist-Gutschrift Trim(LBUF(255,314,20))!,LBUF(255,1501,131))
MailInfo=SendMailEx(,Mail-Adresse,,Info zu Workist-Gutschrift Trim(LBUF(255,314,20))!,LBUF(255,1501,131))
SBInland=SB1
SBAusland=SB2
 Im Ordner D:\infra\workistG (bei Verwendung eines abweichenden Ordners müssen die o.g. INI-Einstellungen entsprechend angepasst werden) werden folgende Dateien erwartet:
XMLErkenn.inf, XMLMoveG.inf
Steuerdateien zur Übdernahme der XML-Daten, nach der Umwandlung durch workistedi.xsl
workistedi.xsl
XSLT-Vorschrift zur Umwandlung der über das Workist-Web-Interface abgerufenen XML-Dateien in das Importformat für XMLErenn/XMLMoveG
WorkistGGetOrder.xml
Sammlung von Parametern, die für den Abruf der Gutschriften an die "orders_list"-Schnittstelle der Workist-WebApi übergeben werden. In der Datei dürfen infra-Makros enthalten sein.
Hinweis: Die Datei enthält Informationen, die für den Zugriff auf den Workist-Dienst notwendig sind und muss angepasst werden.
WorkistGOrderMarkImported.xml
Sammlung von Parametern, die bei erfolgreichem Import einer Gutschrift an die "orders_mark_imported"-Schnittstelle der Workist-WebApi übergeben werden. 
In der Datei dürfen infra-Makros enthalten sein.
Hinweis: Die Datei enthält Informationen, die für den Zugriff auf den Workist-Dienst notwendig sind und muss angepasst werden.
WorkistGOrderMarkFailed.xml
Sammlung von Parametern, die bei fehlerhaftem Import einer Gutschrift an die "orders_mark_imported"-Schnittstelle der Workist-WebApi übergeben werden. 
In der Datei dürfen infra-Makros enthalten sein.
Hinweis: Die Datei enthält Informationen, die für den Zugriff auf den Workist-Dienst notwendig sind und muss angepasst werden.
 Folgende Informationen müssen bei der Einrichtung in den o.g. XML-Dateien hinterlegt werden:
<AccessToken>Zugriffstoken</AccessToken>
Über diesen Zugriffstoken identifiziert sich infra beim Workist-Web-Interface. Der Zugriffstoken wird von Workist für die jeweiligen Kundeninstallation zur Verfügung gestellt.
<channel>Kanal-ID</channel>
Nur in "WorkistGGetOrder.xml": Workist-Dokumente werden in unterschiedlichen Kanälen zum Abruf bereitgestellt. Hier ist die Kanal-ID des anzusprechenden Workist-Kanals für Gutschriften anzugeben. Die Information wird von Workist zur Verfügung gestellt.
<page_size>Anzahl</page_size>
Nur in "WorkistGGetOrder.xml": Anzahl der Gutschriften, die maximal bei einem Aufruf der "orders_list"-Schnittstelle abgerufen werden sollen. Zu Testzwecken sollte mit "1" begonnen werden. Je höher die Anzahl um so länger dauert der Abruf der Gutschriften, was zu einer Blockade der Anwendung führen kann.