Web API Odpovede v ABRA Gen
Tu sú uvedené možnosti dopytovania v ABRA API, ktoré nie sú úplne typické a môžu vyžadovať podrobnejšie vysvetlenie.
Výstup položiek do API, do ktorých je možné len zapisovať. Ide o rôzne heslá a ďalšie citlivé údaje, ktoré sa v databáze neukladajú vo forme zadanej používateľom. Miesto vyvolania výnimky sa vráti pre takúto položku hodnota null a sprievodná informácia ”<fieldname>@masked”: true., aby bolo zrejmé, že položka nie je nulová, ale dáta v databáze slúžia iba pre zápis.
Príklad vrátenej odpovede pre dotaz na Používateľa.
[
{
"id": "3300000101",
"secpassword": null,
"secpassword@masked": true,
"displayname": "PEBL Petr Blok"
},
{
"id": "4300000101",
"secpassword": null,
"secpassword@masked": true,
"displayname": "DARA Daniel Rasák"
},
.......
Pokiaľ sa pýtame cez jeden BO na iný, teda cez rozvinutú bodkovú notáciu a na tento odkazovaný objekt nemá daný API používateľ právo, vráti sa hodnota ako null ale s pomocnou informáciou <fieldname>@unauthorized: true, aby bolo zrejmé, že položka nie je nulová, ale používateľ nemá k položke prístup.
Příklad vrácené odpovědi, kdy se uživatel z Faktury vydané dotazuje přes tečkovou notaci na informace k objednávce přijaté, ale nemá na některé položky BO objektu oprávnění.Uživatel tak vidí z objednávek pouze její ID.
{
"description": "test",
"id": "2540000101",
"ordnumber": 1,
"ReceivedOrder_ID": "2540000101",
"ReceivedOrder_ID.OrdNumber": null,
"ReceivedOrder_ID.OrdNumber@unauthorized": true,
"ReceivedOrder_ID.DocQueue_ID.Code": null,
"ReceivedOrder_ID.DocQueue_ID.Code@unauthorized": true,
Ak potrebujeme zapísať a súčasne získať položky Kľúče z nejakej konkrétnej firmy môžeme použiť serverstate a cez neho poslať dotaz, ktorý vykoná súčasne uloženie nejakých údajov a vypísanie údajov existujúcich. Používa sa na to pole AdrKeysDefinitionsBlobStructure, ktoré sa nachádza v BO Globdata. Pole sprístupňuje názvy kľúčov a ich hodnôt. Objekt naviazaný na pole AdrKeysDefinitionsBlobStructure obsahuje 16 polí Key00..Key15, ktoré odkazujú na ďalší objekt s poľami Name, ValueName000..ValueName255.
V tomto príklade si ukážeme prípad, keď do kľúča key00 zapisujeme hodnoty do položiek Valuename005 a do položky key15 zapisujeme do položiek Name, valuename000, Valuename001. Na zvyšok hodnôt sa spýtame.
Dopyt:
POST http://localhost:81/demodata/serverstate
{
"cacheid": "",
"type": "load",
"data": {
"class": "globdatas",
"object_id": "1000000000",
"object_data": {
"adrkeysdefinitionsblobstructure": {
"key00": {
"valuename005": "ahoj"
},
"key15": {
"name": "Obchodní vztah",
"valuename000": "Dodavatel",
"valuename001": "Odběratel"
}
}
},
"query": {
"select": [
"adrkeysdefinitionsblob",
"adrkeysdefinitionsblobstructure.key00.name",
"adrkeysdefinitionsblobstructure.key00.valuename000",
"adrkeysdefinitionsblobstructure.key00.valuename001",
"adrkeysdefinitionsblobstructure.key00.valuename002",
"adrkeysdefinitionsblobstructure.key00.valuename003",
"adrkeysdefinitionsblobstructure.key00.valuename004",
"adrkeysdefinitionsblobstructure.key00.valuename005",
"adrkeysdefinitionsblobstructure.key00.valuename006",
"adrkeysdefinitionsblobstructure.key00.valuename007",
"adrkeysdefinitionsblobstructure.key01.name",
"adrkeysdefinitionsblobstructure.key01.valuename000",
"adrkeysdefinitionsblobstructure.key01.valuename001",
"adrkeysdefinitionsblobstructure.key15.name",
"adrkeysdefinitionsblobstructure.key15.valuename000"
]
}
}
}
Odpoveď:
{
"data": {
"adrkeysdefinitionsblob":"AgESAAAAAAACAwIBBgEwAAIHAgIGB0tleU5hbWUAAgAUDwAAAE9iY2hvZG7DrSB2enRhaAICBgEwAAIABglEb2RhdmF0ZWwCAgYBMQACABQTAAAAT2RixJtyYXRlbCBrb25jb3bDvQICBgEyAAIABhFQcm9kZWpjZSAvIGRlYWxlcgICBgEzAAIAFBwAAABTdMOhdG7DrSBpbnN0aXR1Y2UgYSDDusWZYWR5AgIGATQAAgAGClZJUCBrbGllbnQCAgYBNQACAAYEYWhvagIBBgExAAIGAgIGB0tleU5hbWUAAgAUEAAAAFpwxa9zb2Iga29udGFrdHUCAgYBMAACAAYJeiBpbnplcmNlAgIGATEAAgAUDgAAAHogV1dXIHN0csOhbmVrAgIGATIAAgAUDAAAAG9kIHpuw6Ftw6lobwICBgEzAAIAFAoAAAB6IHbDvXN0YXZ5AgIGATQAAgAGDnogZGlyZWN0IG1haWx1AgEGAjE1AAIDAgIGB0tleU5hbWUAAgAUDwAAAE9iY2hvZG7DrSB2enRhaAICBgEwAAIABglEb2RhdmF0ZWwCAgYBMQACABQKAAAAT2RixJtyYXRlbA==",
"adrkeysdefinitionsblobstructure.key00.name": "Obchodní vztah",
"adrkeysdefinitionsblobstructure.key00.valuename000": "Dodavatel",
"adrkeysdefinitionsblobstructure.key00.valuename001": "Odběratel koncový",
"adrkeysdefinitionsblobstructure.key00.valuename002": "Prodejce / dealer",
"adrkeysdefinitionsblobstructure.key00.valuename003": "Státní instituce a úřady",
"adrkeysdefinitionsblobstructure.key00.valuename004": "VIP klient",
"adrkeysdefinitionsblobstructure.key00.valuename005": "ahoj",
"adrkeysdefinitionsblobstructure.key00.valuename006": "",
"adrkeysdefinitionsblobstructure.key00.valuename007": "",
"adrkeysdefinitionsblobstructure.key01.name": "Způsob kontaktu",
"adrkeysdefinitionsblobstructure.key01.valuename000": "z inzerce",
"adrkeysdefinitionsblobstructure.key01.valuename001": "z WWW stránek",
"adrkeysdefinitionsblobstructure.key15.name": "Obchodní vztah",
"adrkeysdefinitionsblobstructure.key15.valuename000": "Dodavatel",
"@meta": {
"version": 1
}
}
}