API Odpovědi v ABRA Gen
Zde jsou uvedeny možnosti dotazování v ABRA API, které nejsou zcela typické a mohou vyžadovat podrobnější vysvětlení.

Výstup položek do API, do kterých lze jen zapisovat. Jedná se o různá hesla a další citlivé údaje, které se v databázi neukládají ve formě zadané uživatelem. Místo vyvolání výjimky se vrátí pro takovou položku hodnota null a doprovodná informace ”<fieldname>@masked”: true., aby bylo zřejmé, že položka není nulová, ale data v databázi slouží pouze pro zápis..
Příklad vrácené odpovědi pro dotaz na Uživatele.
[ { "id": "3300000101", "secpassword": null, "secpassword@masked": true, "displayname": "PEBL Petr Blok" }, { "id": "4300000101", "secpassword": null, "secpassword@masked": true, "displayname": "DARA Daniel Rasák" }, .......

Pokud se dotazujeme skrze jeden BO na jiný, tedy přes rozvinutou tečkovou notaci a na tento odkazovaný objekt nemá daný API uživatel právo, vrátí se hodnota jako null ale s pomocnou informací <fieldname>@unauthorized: true, aby bylo zřejmé, že položka není nulová, ale uživatel nemá k položce pří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,

Pokud potřebujeme zapsat i současně získat položky Klíče z nějaké konkrétní firmy můžeme použít serverstate a přes něj poslat dotaz, který provede současně uložení nějakých údajů a vypsání údajů existujících. Používá se k tomu pole AdrKeysDefinitionsBlobStructure, které se nachází v BO Globdata. Pole zpřístupňuje názvy klíčů a jejich hodnot. Objekt navázaný na pole AdrKeysDefinitionsBlobStructure obsahuje 16 polí Key00..Key15, která odkazují na další objekt s poli Name, ValueName000..ValueName255.
V tomto příkladu si ukážeme případ, kdy do klíče key00 zapisujeme hodnoty do položek Valuename005 a do položky key15 zapisujeme do položek Name, valuename000, Valuename001. Na zbytek hodnot se doptáváme.
Dotaz:
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" ] } } }
Odpověď:
{ "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 } } }