Názov | Poznámka | Prevzaté z |
Identifikátor ABRA Flexi | Identifikátor pridelený aplikáciou. Prideľuje ho systém ABRA Flexi a nie je možné ho zmeniť. |
|
Kód/skratka | Identifikácia používateľa. Prideľuje používateľ a možno ho zmeniť v aplikácii. |
|
Kľúč | Jedinečný náhodný identifikátor, ktorý ABRA Flexi prideľuje dokumentom (atribút UUID). Nemožno ho zmeniť. |
|
PLU je identifikačný kód, ktorý sa používa pri predaji. Zvyčajne ide o 4- alebo 5-miestny číselný kód. |
| |
Záznam je identifikovaný čiarovým kódom (EAN). Ceníkovú položku možno sledovať podľa jej EAN aj podľa EAN jej obalu. Počet importovaných položiek cenníka sa v tomto prípade nemení. |
| |
Externý identifikátor | Identifikátor z externej aplikácie. V aplikácii sa nedá zmeniť. Môže sa meniť z externých systémov. Pozostáva z identifikátora externého systému a identifikátora riadku v tomto systéme. Externý identifikátor musí byť jedinečný pre celý záznam (napr. |
|
IČ DPH | Identifikátor podľa daňového čísla. V Českej republike zodpovedá IČ DPH, na Slovensku zodpovedá IČ DPH. |
|
IČ DPH | Identifikátor podľa čísla DPH. |
|
IBAN | Identifikátor podľa kódu IBAN. |
|
Vďaka prírastkovej aktualizácii je možné k existujúcim záznamom ľubovoľne pridávať ďalšie externé identifikátory:
<?xml version="1.0"?> <winstrom version="1.0"> <cenik id="123"> <id>ext:SHOP:abc</id> <id>ext:SYSTEM3:xyz</id> </cenik> </winstrom>
Táto položka je ekvivalentná nasledujúcej položke:
<?xml version="1.0"?> <winstrom version="1.0"> <cenik> <id>123</id> <id>ext:SHOP:abc</id> <id>ext:SYSTEM3:xyz</id> </cenik> </winstrom>
Interné identifikátory
Interné identifikátory (samostatné číslo) sú identifikátory pridelené systémom ABRA Flexi. Ak sa naň odkazujete a záznam neexistuje, operácia zlyhá (na rozdiel od iných identifikátorov).
Na prideľovanie identifikátorov sa používa databázová sekvencia
. Tým sa zabezpečí, že ten istý identifikátor nebude nikdy priradený dvakrát (aj keď záznam vymažete). Zároveň nezaručuje číselnú kontinuitu (napr. číslo sa pri spätnom prepise zahodí).
Vytvorenie/aktualizácia záznamu
Ak na identifikáciu záznamu použijete iný typ identifikátora ako interný identifikátor (napr. kód) a odkazovaný záznam neexistuje, vytvorí sa nový záznam. V opačnom prípade sa aktualizuje existujúci záznam.
Nasledujúca vzorka XML/JSON aktualizuje alebo vytvorí záznam cenníka so skratkou T100 (hodnota identifikátora tu nahrádza položku atribútu kód
):
<?xml version="1.0"?> <winstrom version="1.0"> <cenik> <id>code:T100</id> <name>T100 mm</name> </cenik> </winstrom>
{
"winstrom": {
"@version": "1.0",
"cenik": [
{
"id": "code:T100",
"name": "Téčko 100 mm"
}
]
}
}
Viacnásobné identifikátory
Záznam možno identifikovať aj pomocou viacerých identifikátorov súčasne:
<?xml version="1.0"?> <winstrom version="1.0"> <cenik> <id>123</id> <id>code:KRABICE</id> </cenik> </winstrom>
V tomto prípade musia všetky identifikátory odkazovať na ten istý záznam, inak ide o chybu. Identifikátory, ktoré v ABRA Flexi neexistujú, sa budú ignorovať, takže z externého systému možno do ABRA Flexi poslať všetky známe identifikátory a záznam sa nájde podľa existujúcich.
Viacnásobné prvky id
môžete použiť len v importnom XML. Na iných miestach (URL v REST API, iné identifikátory záznamov v importnom XML, ale aj pre prvky id
môžete) musíte použiť špecializovanú syntax: [123][kód:CZK][ext:SHOP:abc]
.
Ak identifikátor obsahuje znaky [
, ]
alebo , je potrebné ich escapovať: [
, ]
, \
. Pri použití v URL je tiež dôležité pamätať na správne kódovanie samotnej URL.
Odstránenie externých identifikátorov
Toto sa vykonáva pomocou atribútu"removeExternalIds
" záznamu, ktorého hodnota predstavuje prefix externých identifikátorov, ktoré sa majú odstrániť.
Uvažujme napríklad objekt cenníka s ID=123
a externými identifikátormi"SHOP:abc
","SYSTEM-1
" a"SYSTEM-2"
. Potom nasledujúci príklad odstráni oba identifikátory začínajúce reťazcom"SYSTEM
" a pridá nový identifikátor"SHOP:123
":
<?xml version="1.0"?> <winstrom version="1.0"> <cenik removeExternalIds="ext:SYSTEM"> <id>123</id> <id>ext:SHOP:123</id> </cenik> </winstrom>
Ekvivalentný záznam vo formáte JSON:
{
"winstrom":{
"@version":"1.0",
"cenik":[
{
"id":[
"123",
"ext:SHOP:123"
],
"@removeExternalIds":"ext:SYSTEM"
}
]
}
}
Prefix externého identifikátora"ext:
" nemusí byť v hodnote atribútu uvedený. Prázdny reťazec znamená, že chceme odstrániť všetky externé identifikátory.
Odstránenie externých identifikátorov z položiek
Postupuje sa podobne ako pri hlavnom zázname s tým rozdielom, že atribút"removeExternalIds
" môže byť zadaný spoločne pre všetky prítomné položky alebo priamo pre konkrétnu položku (má prednosť):
<?xml version="1.0"?>
<winstrom version="1.0">
<faktura-vydana>
<id>123</id>
<polozkyFaktury removeExternalIds="ext:P">
<faktura-vydana-polozka>
<id>10</id>
</faktura-vydana-polozka>
<faktura-vydana-polozka removeExternalIds="ext:X">
<id>20</id>
</faktura-vydana-polozka>
</polozkyFaktury>
</faktura-vydana>
</winstrom>
Uvedený príklad odstráni z položky 10
externé identifikátory začínajúce na "P", zatiaľ čo položka 20
odstráni externé identifikátory začínajúce na "X". Externé identifikátory všetkých ostatných položiek na faktúre zostanú nezmenené.
Zápis JSON
predchádzajúceho príkladu by vyzeral takto:
{
"winstrom":{
"@version":"1.0",
"faktura-vydana":[
{
"id":"123",
"polozkyFaktury":[
{
"id":"10"
},
{
"id":"20",
"@removeExternalIds":"ext:X"
}
],
"polozkyFaktury@removeExternalIds":"ext:P"
}
]
}
}