eSolution 3rd Party API Code

Microsoft .NET C# - WebService / SOAP

Die referenzierenden Datentypen DataSet + DataTable sind Microsoft-spezifische Datentypen, die in Standard-XML Streams dargestellt werden.

Prinzip des Datenzugriffs...

Die eSolutions Schnittstelle läuft intern unter dem Namen HSWebBL und ist daher als HSWebBL.asmx erreichbar.

Auf dem Testrechner (virtuelle Maschine) ist der Dienst lokal unter folgender URL verfügbar "http: //localhost/HSWebBL/HSWebBL.asmx"

Je nachdem, welche lokale IP der Testrechner in seinem Netzwerk erhalten hat, kann der Dienst unter "http://xxx.xxx.xxx.xxx/HSWebBL/HSWebBL.asmx" erreicht werden (xxx.xxx.xxx.xxx = lokale IP-Adresse der Testkasse im LAN. (z. B. 192.168.1.200).

Im Standard erstellen Sie ein Kommunikationsprogramm, dass im jeweiligen Standort läuft und die Verbindung zu Ihrem Produkt herstellt. Andernfalls könnten Sie den lokalen IIS über einen Portfreigabe von Aussen ansprechen (dies ist keine Leistung von Hypersoft).

Grundsätzliches zum Abruf von Artikelstammdaten

Vorwort zur Sicherheit: 

Es gibt mehrere Funktionen, die den Parameter Company und SerialNumber benötigen bzw. verlangen. Hier sind für jeden Partner Vorgaben festgelegt und mit dem LOI von Hypersoft bekanntgegeben worden. Jeder Partner, der die eSolutions Anbindung nutzen möchten ist an diesen Vorgaben gebunden und muss diese in seiner Schnittstelle sicherstellen. Ohne gültige Übermittlung dieser beiden Parameter können Anfragen negativ beantwortet werden müssen.

Globale Funktionen

Webservice Initialisieren

string WebServiceInitialize()

Diese Funktion dient der Initialisierung des WebService und sollte nach einem Neustart der Partneranwendung einmalig ausgeführt werden.

Diese Funktion wird sicherheitshalber bei einem Datenabruf oder Buchungsvorgang auch im Hintergrund selbstständig ausgeführt, sollte nach einem Neustart des IIS diese nicht schon durch den Partner ausgeführt worden sein.

Hierbei wird die sendende IP geprüft und ggfls. eine Station im Hypersoftsystem angelegt bzw. vorbereitet. Wenn, dann wird hinter der höchsten Stationsnummer des Systems mit dem Namen „SOT“ eine weitere Station angelegt. Diese neue Station orientiert sich in Bezug auf die Verkaufsstellenzuordnung anhand der höchsten Stationsnummer und verwendet somit deren Vorgaben.

Rückmeldung string:

WebService 'HSWebBL' is running. Your IP: xxx:xxx:xxx:xxx Main TerminalNumber: 1 RetStatus: Branch: 1 Your TerminalNumber: 101 Your StockID: 9 StockName: Ihre Verkaufsstelle

 

DataSet Beispiel

Dient als Beispiel um den Aufbau des DataSets für Buchungen anschaulich zu machen. DataSet wird als XML geliefert.

DataSet GetExample()

Rückmeldung DataSet: (Beschreibung siehe auch BookTransaction)

"Amount" type=int (Anzahl)
"ProductID" type=int (PID eindeutige ProductID / DB ID)
"Price" type=double (VK Preis)
"Linked" type=int (Preisebene)
"PE" type=int (RezID aus Beilage)
"FT" type=string (Freie Texinfo)
"IHAH" type=string (IH=InHaus AH=außer Haus)
"FreeBontext" type=string (optional für Tickets)
"Discount" type=double (Buchungsinfo (intern))

string CallService(string Company, string SerialNumber, string fpMessage, string MediaID)

Nur in Verbindung mit einem Buchungsvorgang inklusive Pagerzuordnung einsetztbar.

(Bei Bedarf wenden Sie sich bitte an den Hypersoft Support)

 

Optionale Funktionen

Werbservice prüfen

string WebServicePing()

Rückmeldung string:

OK Your IP: xxx:xxx:xxx:xxx

 

Version prüfen

string GetECommerceVersion()

Rückmeldung string:

2017.1.39.0 (Stand:März 2021)

 

Freie ID für Protokoll

string ProtokollTransactionStart()

Rückmeldung string:

ID:0 (Eine freie ID zum Logbuch, beginnend mit 0)

(Die ID wird für ProtokollTransactionStop benötigt)

 

Protokoll abrufen

void ProtokollTransactionLog(string LogInfo)

Alle Log-Informationen werden unter der zuletzt erzeugten ID zwischengespeichert bis „ProtokollTransactionStop“ ausgeführt wird.

string ProtokollTransactionStop(string ID, string MailAdress)

Alle zwischengespeicherte Log-Einträge an die übergebene Mailadresse senden und die ID schließen.

Rückmeldung string:

OK oder im Fehlerfall Error:xxxx

Ermittlung der Hypersoft Kundennummer des Standorts

public string GetHypersoftCustomerNumber(string Company, string SerialNumber)

Es wird eine Zeichenkette mit folgendem Inhalt zurückgemeldet:

OK:12345 oder im Fehlerfall error:...

eSolutions API Artikeldaten / Stammdaten GetItemData

Bitte beachten Sie: Das Hypersoft POS System arbeitet grundsätzlich nicht direkt in den Artikeldaten sondern erstellt sich hierfür eine Arbeitskopie der Artikeldaten. Diese Arbeitskopie wird auch für die eSolutions Schnittstelle verwendet. Sehen Sie für die Hintergründe die Beschreibung des Artikelstamms im Kapitel Bearbeitung im laufenden Betrieb .

Folgende Funktionen liefern den aktuellen Artikelstamm der Kasse...

Die Funktionen GetItemData bis GetItemData10 liefern den Artikelstamm in unterschiedlicher Form. Dabei können abweichende Parameter den Inhalt der Daten bestimmen und je nach gewählter Funktion den Artikelstamm in unterschiedlicher Datenstruktur zurückgeben.

Verwandte Themen: Preisebenen mit 3rd Parties, Artikel und Vorgänge mit 3rd Parties

Z.B. DataSet, JSON oder auch als reinen String (der Rückgabetyp steht jeweils vor der Funktion). DataSet wird als XML geliefert.

 

 

DataSet Rückgaben...

Die Rückgabe als DataSet ist je nach Methode im Inhalt (Felder) unterschiedlich. Siehe DataSet Typen (DataSet Typ1, Typ2 und Typ3). DataSet wird als XML geliefert. Die Rückgabe des Artikels im Falle als string ist dabei die kleinste und einfachste Methode und bietet nur wenig Felder. Daher sind die betroffenen Methoden für neue Integrationen nicht mehr zu empfehlen und werden nur aus Kompatibilitätsgründen weiter mitgeführt.

Folgende Felder werden bei Typ string zurückgeliefert:

ProductID;Bontext1;Artikel_Name;Preis;HGR_Nr;HGR_Name;WGR_Nr;WGR_Name;UGR_Nr;UGR_Name;TicketTyp;TicketFaktor

Die Felder sind dabei durch ein Semikolon getrennt und jeder Artikel ist durch ein CR\LF vom nächsten Artikel getrennt.

 

 

 

 

 

 

 

 

 

 

 

 

eSolutions API Buchungsmethoden

DataSet BookTransaction(string Company, string SerialNumber, string MediaID, DataSet dsBooking)

string MediaID Gültige Feldinhalte:

Jedes Feld besteht aus einem Namen gefolgt von einem Doppelpunkt „:“ und dem übergebenen Wert x, hierbei ist darauf zu achten, dass die Zeichen | (Pipe) und (Doppelpunkt) nicht in den übergebenen Werten enthalten sind. Jeder Parameter innerhalb der MediaID muss mit dem Zeichen | (pipe) als Trennzeichen abgeschlossen sein.

Besonderheit: Der erste Parameter in der Übergabe entscheidet den Vorgangstyp.

 

 

 

eSolutions API Vorgänge abrufen

 

 

eSolutions API Rechnungen splitten Code

Wenn Sie mit Splitting arbeiten erfordert und ermöglicht das POS System ergänzende Einstellungen, sehen Sie hierfürErgänzende Splitting Einstellungen für die eSolutions API...

Die zu verwendenden Funktionen aus der e-Commerce Schnittstelle sind folgende...

public DataSet SplittTransaction(string Company, string SerialNumber, string MediaID, DataSet dsSplittings)

oder

public DataSet SplittTransactionStr(string Company, string SerialNumber, string MediaID, string strSplittings)

Die Vorgaben für Company und SerialNumber sind die gleichen wie auch schon für andere Funktionen.

Die MediaID ist wie folgt zu verwenden:

TNR:ttt.pp|ZA:x=y.yy

ttt.pp = Tisch und optional Platznummer

x = WährungsID (CurrencyID)

y.yy = Betrag. (Überzahlung wird in Trinkgeld gewandelt)

Optional können auch hier in der MediaID die Kundeninforationen wie Mail, Telefon und Name, Vorname und Adresse übergeben werden. Der gesplittete Teil wird dann auf den übergebenen Kunden abgerechnet. (Siehe Inhalt MediaID bei BookingTransaction und BookingTransactionStr)

Der Dateninhalt von dsSplitting ist wie folgt:    
„Amount“ type=int die zu splittende Menge des Artikels *
„RecordPosition“ type=int eindeutige Datensatznummer *

* Daten aus dem Abruf über Funktion „GetOpenTableBySelection

Alternativ können die Daten auch in Form einer Zeichenkette mit der Funktion „SplittTransactionStr“ übergeben werden.

Hier gelten folgende Regeln:

Amount|RecordPosition;

z.B. 2|112; -> 2 mal Artikel an Position 112 splitten.

eSolutions API Abrufen und Prüfen von Stammdaten

 

Unterschiedliche Stammdatenabrufe und -Prüfungen.

 

 

 

 

 

 

 

 

 

Abruf der Rundungsparameter für Rabatt

Sie können die Vorgaben der eingestellten Rabattrundung abrufen. Diese Einstellungen werden häufig von Kunden individuell genutzt. Rückgabe ist ein DataTable "RoundingInfo"

DataTable GetRoundingInfo(string Company, string SerialNumber)

"RoundingMode" NONE, NORMAL, UP, DOWN  
"RoundingPosition" 1=nur eine Nachkommastelle

2=bis zweite Nachkommastelle

"RoundingDigit0" ZIFFER 0 0=NEIN, 1=JA
"RoundingDigit1" ZIFFER 1 0=NEIN, 1=JA (je Nachkommastelle 1 Cent oder 10 Cent)
"RoundingDigit2" ZIFFER 2 0=NEIN, 1=JA (je Nachkommastelle 1 Cent oder 10 Cent)
"RoundingDigit3" ZIFFER 3 0=NEIN, 1=JA (je Nachkommastelle 1 Cent oder 10 Cent)
"RoundingDigit4" ZIFFER 4 0=NEIN, 1=JA (je Nachkommastelle 1 Cent oder 10 Cent)
"RoundingDigit5" ZIFFER 5 0=NEIN, 1=JA (je Nachkommastelle 1 Cent oder 10 Cent)
"RoundingDigit6" ZIFFER 6 0=NEIN, 1=JA (je Nachkommastelle 1 Cent oder 10 Cent)
"RoundingDigit7" ZIFFER 7 0=NEIN, 1=JA (je Nachkommastelle 1 Cent oder 10 Cent)
"RoundingDigit8" ZIFFER 8 0=NEIN, 1=JA (je Nachkommastelle 1 Cent oder 10 Cent)
"RoundingDigit9" ZIFFER 9 0=NEIN, 1=JA (je Nachkommastelle 1 Cent oder 10 Cent)

Lagerbestand und Warenwirtschaft

Funktion zum Abruf alles Verkaufsstellen/Lager

DataTable GetStockInfo(string Company, string SerialNumber)

Rückmeldung DataTable:

"StockID" type=int (Verkaufsstellen ID bzw. Hauptlager ID)

"StockName" type=string (Verkaufsstellenname bzw. Lagername)

 

Funktion zum Abruf alles Verkaufsstellen/Lager wie GetStockInfo jedoch als json string

string GetStockInfoJson(string Company, string SerialNumber)

Rückmeldung json string:

 

Funktion zum Abruf des Bestands

Bestand des Lager bzw. VK Stellen Bestand eines oder mehrere Artikel durch | (Pipe) getrennt. Z.B. 1|2|100 = Abruf von drei Artikeln.

DataTable GetProdStock(string Company, string SerialNumber, string ProductIDs, int StockID)

Rückmeldung DataTable:

"ProductID" type=int (Artikel PID)

"ItemNumber" type=int (Artikelnummer)

"ProductName" type=string (Artikelname)

"CurrentQuant" type=double (aktueller Bestand)

 

Funktion zum Abruf des Bestands als JSON String

Bestand des Lager bzw. VK Stellen Bestand eines oder mehrere Artikel genau wie GetProdStock jedoch als json string.

string GetProdStockJson(string Company, string SerialNumber, string ProductIDs, int StockID)

Rückmeldung json string:

 

Funktion zum Abruf aller Verfügbarkeitsartikel.

DataSet GetBaseItems(string Company, string SerialNumber)

Rückmeldung DataTable:

"ProductID" type=int (Artikel ID PID)

"Quant" type=int (aktuelle Verfügung)

 

Funktion zum Abruf der verfügbaren Menge

Verfügbare Menge eines oder mehrere Artikel durch | (Pipe) getrennt. Z.B. 1|2|100 = Abruf von drei Artikeln.

string GetBaseStock(string Company, string SerialNumber, string ProductIDs)

Rückmeldung string:

10|9999|12

Wenn ein Artikel keine Verfügbarkeit besitzt wird vorsorglich eine Menge von 9999 zurückgemeldet.

 

SetProdStock Vorerst ist diese Funktion aus Sicherheitsgründen deaktiviert.

string SetProdStock(string Company, string SerialNumber, string StockItems)

DeliveryID Funktionen

Die folgenden Funktionen geben die DeliveryID in den Daten zurück, wenn der Vorgang über den OnlineOrder Connector ( e-Commerce Schnittstelle ) gebucht wurden.

GetTransactionDS

"DeliveryID" type=int (ID der OnlineOrder)

GetTransactionStr

"DeliveryID" type=int (ID der OnlineOrder in allen Tabellen)

GetTransactionsFromTTADate

"DeliveryID" type=int (ID der OnlineOrder in allen Tabellen)

GetTransactionsFromTTADate2

"DeliveryID" type=int (ID der OnlineOrder in allen Tabellen)

GetTransactionsFromOpenDate

"DeliveryID" type=int (ID der OnlineOrder in allen Tabellen)

GetTransactionsFromOpenDate2

"DeliveryID" type=int (ID der OnlineOrder in allen Tabellen)

Superheldenfunktion Funktionen

Die folgenden Funktionen geben die Superheldennummer / Superheldennamen in den Daten zurück.

Ab sofort auch wenn die Vorgänge bereits durch das POS System abgeschlossen wurden. (also nicht mehr nur in offenen Vorgängen)

GetDeliveryInfo

"ConsecutiveNumber" type=int (lfd Bonnummmer Superheldenfunktion)

"ConsecutiveInfo" type=string (lfd Bonnummerntext Superheldenfunktion)

GetTransactionDS

"ConsecutiveNumber" type=int (lfd Bonnummmer Superheldenfunktion)

"ConsecutiveInfo" type=string (lfd Bonnummerntext Superheldenfunktion)

GetTransactionStr

"ConsecutiveNumber" type=int (lfd Bonnummmer Superheldenfunktion)

"ConsecutiveInfo" type=string (lfd Bonnummerntext Superheldenfunktion)

GetTransactionsFromTTADate

"ConsecutiveNumber" type=int (lfd Bonnummmer Superheldenfunktion)

"ConsecutiveInfo" type=string (lfd Bonnummerntext Superheldenfunktion)

GetTransactionsFromTTADate2

"ConsecutiveNumber" type=int (lfd Bonnummmer Superheldenfunktion)

"ConsecutiveInfo" type=string (lfd Bonnummerntext Superheldenfunktion)

GetTransactionsFromOpenDate

"ConsecutiveNumber" type=int (lfd Bonnummmer Superheldenfunktion)

"ConsecutiveInfo" type=string (lfd Bonnummerntext Superheldenfunktion)

GetTransactionsFromOpenDate2

"ConsecutiveNumber" type=int (lfd Bonnummmer Superheldenfunktion)

"ConsecutiveInfo" type=string (lfd Bonnummerntext Superheldenfunktion)

Interne Hypersoft Funktionen

Veraltet für PayPal Picture Payment.

string GetBillViaHSCode(string HSCode)

string PayPalBillViaHSCode(string HSCode, string tabID, string customerID, string locationID, double PaySum)

string SetRating(string Company, string SerialNumber, string MediaID, string strRating)

 

Aktuell nur intern für Deliverect Integration

string CheckItemPicturePath(int CountPicturePath)

string GetItemPicturePath()

static string GetOrSetPictureStatus(int SetDate, int SetTime, int Mode)


Zurück zur übergeordneten Seite: 3rd Party eSolution Entwicklung