====== THORR Kommunikációs API ======
===== Paraméterek =====
^ Paraméter ^ Leírás ^
| ido |//(opcionális)// \\ idő típusú adat megadásának dátum formátuma **ISO 8601** \\ ''YYYY-MM-DD HH:mm:ss.ppp'' (Postgresql-ben használt timestamp formátum) |
| b64_xml | Base64 kódolásban egy XML adatstruktúra. \\ Az XML-ben a ''...'' kulcsok között kell lennie az átadott adatnak. |
| bizszam | //(opcionális)// \\ Tágabb értelemben vett bizonylatszám. Használata a legtöbb esetben opcionális. Ha megadásra kerül lekérdezés esetén, abban az esetben csak a bizonylatszámmal rendelkező rekord (rendelés, stb.) kerül visszaadásra. |
| művelet | eVIR-ben ezeket ''dok'' kulcsoknak nevezzük. Ezzel adható meg a kívánt funkcionalitás. |
| token | A feéhasználó, illetve jelen esetben a kommunikáló eszköz azonosítására szolgál. \\ A token létrehozásával és használatával kapcsolatban lásd [[evir:rendszer:api:api_altalanos]] |
A paramétereket POST és GET metódussal is át lehet adni. Egyszerűbb esetekben célszerű lehet magában sz URL-ben megadni, pl: https://........./cgi-bin/index.cgi?token=A1B2C3D4&dok=thorr_api_get_material_change&ido=2020-03-01%2012:34
===== Implementált funkciók =====
==== Változott cikkek ====
* **dok:** thorr_api_get_material
* **Paraméter:** ido
* **Leírás:** A paraméterként megadott idő óta változott vagy létrejött cikkek adatai
* **Thorr dokumentum:**
* **Adatok:**
MATERIAL_CODE => Cikkszám,
MATERIAL_NAME => Cikk megnevezése,
MATERIAL_TYPE => 'T',
M_ACTIVE => Termék aktív-e, '1' vagy '0',
----
==== Új cikkek ====
* **dok:** thorr_api_get_material_new
* **paraméter:** ido
* **Leírás:** A paraméterként megadott idő óta létrehozott új cikkek adatai.\\ Már nincs használatban.
* **Thorr dokumentum:**
* **Adatok:**
ld: 'Változott cikkek'
----
==== Változott partnerek ====
* **dok:** thorr_api_get_shipto
* **Paraméter:** ido
* **Leírás:** A paraméterként megadott idő óta változott vagy létrejött partnerek adatai
* **Thorr dokumentum:**
* **Adatok:**
SHIPTO_CODE => Partner id,
SHIPTO_NAME => Partner név,
Partner cím:
SHIPTO_COUNTRY => Országkód,
SHIPTO_CITY => Város,
SHIPTO_STREET => Közterület,
SHIPTO_POST_CODE => Irányítószám,
Jelenleg a CUST adatok megegyeznek a SHIPTO adatokkal:
CUST_CODE => Partner id,
CUST_NAME => Partner név,
Partner cím:
CUST_COUNTRY => Országkód,
CUST_CITY => Város,
CUST_STREET => Közterület,
CUST_POST_CODE => Irányítószám,
----
==== Új partnerek ====
* **dok:** thorr_api_get_shipto_new
* **Paraméter:** ido
* **Leírás:** A paraméterként megadott idő óta létrejött új partnerek adatai \\ Nincs használatban
* **Thorr dokumentum:**
* **Adatok:** lsd. Változott partnerek
----
==== Szállítói megrendelések ====
* **dok:** thorr_api_get_inbound
* **Paraméter:** ido
* **Leírás:** A paraméterként megadott időpont után létrejött [[evir:rendeles:szallitoi:szallitoi_rendeles|Szállítói megrendelések]] adatai, melyeknek az állapota:"szállítandó". \\ **Fontos**: Egy szállítói megrendelésen egy cikkszám csak egyszer szerepeljen.
* **Thorr dokumentum:**
* **Adatok:**
PO_HEAD =>
PO_NUMBER => Berendelésszám,
SUPPLIER_CODE => Rendelésen szereplő Partner id,
PO_ITEM =>
MATERIAL_CODE => Cikkszám,
EXPECTED_QUANTITY => Mennyiség,
PO_ITEM_ID => Tétel id: eviren belüli unique azonosító a berendelés tételéhez,
----
==== Betárolás szállítói megrendelés alapján ====
* **dok:** thorr_api_po_itemupdate
* **Paraméter:** b64_xml
* **Leírás:** A kapott XML alapján az eVIR készít egy [[evir:raktar:raktar_bevetelezes|Raktári bevételezést]], pontosabban egy "Bevételezés szállítólevélről" műveletet hajt végre, ahol a tételek a visszakapott szállítói rendelés tételei lesznek. \\ Egy betárolás visszaigazolás API hívás csak egyetlen szállítói megrendelésre hivatkozhat. \\ A kapott XML-ben szereplő termékek mennyisége nem haladhatja meg a szállítói rendelésben szeplő mennyiséget. Kevesebb lehet, ekkor az eVIR-ben a rendelés állapota részteljesített lesz. A részteljesített megrendeléshez további betárolásokat lehet indítani egészen addig, ameddig szerepel rajta nem teljesített termék. A részteljesített megrendelést az eVIR felületen lehet lezárni, ha további beszállítások nem várhatóak hozzá.
* **Thorr dokumentum:**
* **Adatok:** ...
----
==== Betárolás szállítói rendelés nélkül ====
* **dok:** thorr_api_inbound_itemupdate
* **Paraméter:** b64_xml
* **Leírás:** A kapott XML alapján az eVIR készít egy [[evir:raktar:raktar_bevetelezes|Raktári bevételezést]], pontosabban egy "Bevételezés szállítólevélről" műveletet hajt végre, ahol a tételek az xml-ben felsorolt tételek lesznek. \\ A beszállítónak szerepelnie kell az evirben, mint partner, a cikkszámoknak szerepelnie kell a cikktörzsben, ezen kívül más megkötés nincs a bevételezendőkre vonatkozóan.
* **Thorr dokumentum:**
* **Adatok:**
Mint az eddigi
20210611113852821
THORR
INBOUND
ITEMUPDATE
Bevételezés egyedi azonosító
111111
EVR1
1
XXXXXXX
20
2
YYYYYYY
30
----
==== Teljesíthető vevői rendelés ====
* **dok:** thorr_api_get_order
* **Paraméterek:** bizszam
* **Leírás:** A "teljesíthető" állapotban levő [[evir:rendeles:vevoi:vevoi_rendeles|Vevői rendelés]] adatainak lekérése. \\ Ha a ''bizszam'' paraméter megadásra kerül, akkor kizárólag a paraméterként megadott bizonylatszámú rendelés adatai kerülnek átadásra. \\ Szűrés nélkül valamennyi olyan megrendelés adatai szerepelnek a válasz XML-ben, amelyeknek az átvétele még nem került visszaigazolásra. A megrendelés tételei közül kizárólag a termékek kerülnek átadásra, minden más (pl. szolgáltatások) kiszűrésre kerülnek belőlük.
* **Thorr dokumentum:**
* **Adatok:**
ORDER_HEAD=>
ORDER_NUMBER => Rendelésszám,
DELIVERY_DATE => Szállítási határidő,
SHIPTO_CODE => Rendelésen szereplő Partner Id,
CUST_CODE => Rendelésen szereplő Partner Id, megegyezik a SHIPTO_CODE-al,
CUSTOMER_PICKUP => 'N',
ORDER_NOTE => Megjegyzés,
ORDER_ITEM =>
MATERIAL_CODE => Cikkszám,
QUANTITY => Mennyiség,
ITEM_ID => Tétel id, Eviren belüli unique azonosító a rendelés tételéhez
ST_LOC_CODE => Az Eviren beállított Főraktárának az azonosítója,
----
==== Letöltött vevői rendelések visszaigazolása ====
* **dok:** thorr_api_order_confirmed
* **Paraméter:** b64_xml
* **Leírás:** Az eVIR-ből sikeresen letöltött és Thorr által feldolgozott vevői rendelések visszaigazolása. A funkció célja, hogy a ''thorr_api_get_order'' API hívással csak olyan megrendelés adatai kerüljenek átadásra, amelyekkel még Thorr még nem rendelkezik.
* **Thorr dokumentum:**
* **Adatok:**
Rendelés száma
...
----
==== Összekészített rendelés visszaigazolás ====
* **dok:** thorr_api_order_picked
* **Paraméter:** b64_xml
* **Leírás:** Az eVIR-ből sikeresen letöltött és Thorr által feldolgozott vevői rendelés raktári összekészítettségének visszaigazolása. Az API hívásakor az eVIR-ben szereplő rendelés alapján egy [[evir:szallitolevel:szallitolevel|szállítólevelet]] készítünk. A szállítólevél számát a *bizszam* mezőben adjuk vissza. A rendelés folyamat állapotát "Szállítónak átadva"-ra állítjuk.
* **Thorr dokumentum:** 4.1, PICKED
* **Adatok:**
Rendelésszám
Megjegyzés
Teljesítési dátum
Darabszám
Tétel id
...
----
==== Kiszállított rendelés visszaigazolás ====
* **dok:** thorr_api_order_delivered
* **Paraméter:** b64_xml
* **Leírás:** Az eVIR-ből sikeresen letöltött és Thorr által feldolgozott vevői rendelés kiszállításának visszaigazolása. A rendelés folyamat állapotát "Teljesítve"-re állítjuk. Ha a paraméterként kapott XML-ben az összes mennyiség 0, akkor úgy értelmezzük, hogy a rendelés nem lett kiszállítva, így sztornózzuk a kiállított szállítólevelet, a rajta szereplő tételek visszakerülnek készletre.
* **Thorr dokumentum:** 4.1, DELIVERED
* **Adatok:** ...
==== Aktuális készlet, leltárív ====
* **dok:** thorr_api_actual_stock
* **Paraméter:** b64_xml
* **Leírás:** Az XML-ből kapott adatokból készítünk egy [[evir:raktar:leltar:leltar|vak leltárt]] a főraktárra nézve.
* **Thorr dokumentum:** 8.0, ACTUAL STOCK
* **Adatok:**
cikkszám
mennyiség
evir raktárkód
...
----
===== Általános információk =====
* Azoknál az API hívásoknál, amelyeknél lehetőség van paraméterként ''ido''-t megadni, csak a megadott időpontnál újabb adatok kerülnek visszaadásra. Idő megadása nélkül a szűrés nélküli, azaz az összes adat kérdezhető le egyszerre.
* Sikeres lekérdezés esetén XML fájl kerül visszaadásra
* Az XML file névében, valamint a HEADER TIMESTAMP mezőben visszaadásra kerül a lekérdezéskori eVIR oldali timestamp, ami a következő lekérdezések ''ido'' paramétereként folytatólagos lekérdezéshez használható. Ilyen módon nem kritikus a küldő és fogadó rendszer órájának szinkronban tartása.
* A visszaadott adatok szerkezete és tartalma a jövőben változhat az specifikáció és az üzleti igényeknek megfelelően.
===== Limitációk, problémák, defektek =====
* A SHIPTO és CUST adatok a partner elsődleges címadataiból jönnek, függetlenül attól, hogy esetleg van a partnernek külön szállítási, számlázási, vagy bármilyen más címe
===== Fejlesztési segédlet, jogosultság =====
Az API használathoz a felhasználónak a ''Rendszer->API->Thorr->API Form'' menüponthoz kell jogosultságot adni, ami jelenleg a **th01** és **th02** jogokat takarja.
Fejlesztési segédletként ezen a menüponton elérhető egy form, ahol megadható az idő és a megfelelő gomb megnyomásával lekérdezhetők az adatok. Ez a használat a fejlesztést segítendően létezik. A paraméterezése kicsit eltér az itt dokumentálttól, de a visszaadott eredmény megegyezik.
----
A dokumentáció alapján használható eVIR verzió: 18179
----
A fejlesztéshez használt Thorr specifikáció: {{ :spec:thorr_xpertrade_interface.pdf |}}