Přeskočit na hlavní obsah

Aktualizace firem z ARES přes API

Jak provést službu "Aktualizovat vše" a "Aktualizovat z internetu" přes API?

Autor: Petr Pech

V desktopové aplikaci i ve webovém rozhraní existuje služba, která u firmy v adresáři aktualizuje údaje z ARESu. Funkce v REST API má stejné chování jako v desktopu — aktualizuje DIČ a bankovní spojení, adresu firmy ani nové firmy nezakládá.


Sestavení URL

Služba je dostupná na adrese /adresar/aktualizovat-vse a volá se metodou GET:

GET https://demo.flexibee.eu/c/demo/adresar/aktualizovat-vse.json

Volání lze zúžit filtrem v kulatých závorkách:

GET https://demo.flexibee.eu/c/demo/adresar/(id eq 720)/aktualizovat-vse.json
GET https://demo.flexibee.eu/c/demo/adresar/(kod = 'ABRA')/aktualizovat-vse.json

⚠️ Jiná HTTP metoda než GET vrací 405 Method Not Allowed.


Příklady použití

Aktualizovat vše

Volání bez filtru je obdobou uživatelské služby Aktualizovat vše a provede aktualizaci nad kompletním adresářem, jak je v ABRA Flexi evidován.

GET https://demo.flexibee.eu/c/demo/adresar/aktualizovat-vse.json

🚨 Bez filtru služba prochází celý adresář, takže u větších databází běží dlouho a mění mnoho firem naráz. V produkci ji proto pouštějte s filtrem, nebo mimo pracovní dobu.

Aktualizovat konkrétní firmu

Volání s filtrem je obdobou uživatelské služby Aktualizovat z internetu — aktualizuje jen vyfiltrované adresářové záznamy, opět jejich DIČ a bankovní spojení. Adresa firmy se nemění.

GET https://demo.flexibee.eu/c/demo/adresar/(kod = 'ABRA')/aktualizovat-vse.json


Výstup

Výstup obsahuje standardní návratové hodnoty s počtem změněných záznamů a jejich ID:

{
"winstrom": {
"@version": "1.0",
"success": "true",
"stats": {
"created": "0",
"updated": "2",
"deleted": "0",
"skipped": "0",
"failed": "0"
},
"results": [
{ "id": "813" },
{ "id": "807" }
]
}
}

Filtr, který žádnou firmu nenajde, vrací také 200 a success true, ale s updated rovným nule a prázdným results. Skutečný počet aktualizací proto vždy čtěte z updated.


Související

Dostali jste odpověď na svou otázku?