Identifikátory záznamov

Ako identifikovať záznamy v systéme ABRA Flexi

Lenka Haringerová avatar
Written by Lenka Haringerová
Updated over a week ago

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ť.

123

Kód/skratka

Identifikácia používateľa. Prideľuje používateľ a možno ho zmeniť v aplikácii.

kód:CZK

Kľúč

Jedinečný náhodný identifikátor, ktorý ABRA Flexi prideľuje dokumentom (atribút UUID). Nemožno ho zmeniť.

key:550e8400e29b41d4a716

PLU je identifikačný kód, ktorý sa používa pri predaji. Zvyčajne ide o 4- alebo 5-miestny číselný kód.

plu:4020

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í.

ean:4710937332698

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. vystavená faktúra)!

ext:SHOP:123

IČ DPH

Identifikátor podľa daňového čísla. V Českej republike zodpovedá IČ DPH, na Slovensku zodpovedá IČ DPH.

vatid:CZ28019920

IČ DPH

Identifikátor podľa čísla DPH.

in:28019920

IBAN

Identifikátor podľa kódu IBAN.

iban:CZ1201000002801992

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"
}
]
}
}
Did this answer your question?