Automatické sťahovanie zmlúv

Automatické sťahovanie zmlúv slúži na zautomatizovanie a synchronizáciu zmlúv danej organizácie pomocou XML feedu.

Robot pravidelne navštevuje adresu XML feed-u obsahujúci zoznam liniek na zmluvy vo formáte XML, ktoré sa následne synchronizujú so zmluvami v CRZ. Na základe výsledkov spracovania sa vytvárajú záznamy/reporty o návštevách feedu a príslušnych liniek zmlúv.
 

Pridanie nového automatického sťahovania

Automatické sťahovanie je možné nastaviť/pridať v module Import zmlúv v časti Automatické sťahovanie. Pre pridanie nového automatického sťahovania kliknite na tlačidlo Pridať automatické sťahovanie.

Vo formulári vyplňte príslušné polia:

  • organizácia - vyberte jednu z organizácií, pre ktorú budú zmluvy synchronizované
  • link na koncový bod - adresa XML feed-u obsahujúci zoznam liniek na zmluvy vo formáte XML (viď časť technická špecifikácia).
  • technický email - emailová adresa, na ktorú budu odosielané notifikácie alebo potvrdenia
  • zasielat notifikácie - zaškrtnite ak chcete dostávať notifikácie/potvrdenia
  • aktívny - stav, či sa má automatické sťahovanie vykonávať (v prípade vypnutia len nechať odškrtnuté pole)
 

Záznamy spracovania automatického sťahovania robotom

Po pridaní automatického sťahovania sa zobrazí položka daného sťahovania v zozname automatických sťahovaní. Po kliknutí na položku máte k dispozícii 3 záložky: nastavenia, návštevy a linky. V nastaveniach vidíte prehľad nastavení automatického sťahovania a zároveň tu máte možnosť zmeniť jeho parametre. Návštevy a linky slúžia ako report spracovania robotom.

Návštevy

V časti návštevy je tabuľka so záznamami jednotlivých spracovaní/návštev robota. Zakaždým, ako robot spracuje XML feed, tak vytvorí príslušný záznam s údajmi o danej návšteve. V zázname môžete vidieť nasledujúce údaje:

  • ID - identifikátor záznamu - odkaz na detail
  • Dátum - kedy spracovanie prebehlo
  • Trvanie - ako dlho spracovanie trvalo
  • Timestamp - čas vo formáte timestamp
  • Posl. súbor - posledný spracovaný súbor
  • Nové - koľko nových zmlúv/liniek spracovalo
  • Preskočené - koľko liniek bolo preskočených
  • Stav - stav spracovania

Pre zobrazenie podrobnejších údajov kliknite na detail návštevy.

Linky

Každa linka predstavuje spracovanie položky XML feed-u - zmluvy vo formáte XML.

Každý záznam obsahuje:

  • ID - identifikátor záznamu - odkaz na detail
  • Dátum - kedy bola linka/XML súbor zmluvy spracovaný
  • URL - URL adresa súboru
  • Hash - hash dát XML súboru
  • Hash content - hash dát zmluvy

V prípade, že sa hashe nezhodujú, identifikátor je sfarbený načerveno.

Pre zobrazenie podrobnejších údajov kliknite na detail návštevy.
 

Technická špecifikácia

Robot pre sťahovanie zmlúv v pravidelných intervaloch (3×denne) najskôr sťahuje obsah z lokality definovanej v nastaveniach automatického sťahovania. Robot očakáva, že na danej lokalite bude umiestnený zoznam súborov vo formáte XML.

Definícia schémy pre formát XML je uvedená na adrese: http://www.crz.gov.sk/schema/robot.xsd

Každá položka so súborom obsahuje nasledujúce parametre:

path - Názov súboru resp. cesta k súboru vždy udávaná relatívne k zadanému zdroju v aplikácii CRZ. Napr. zmluva1.xml

time - Čas publikovania súboru vo formáte timestamp. Robot vždy berie do úvahy len zmluvy novšie ako je posledná stiahnutá zmluva. Odporúčame ako dátum dávať čas umiestnenia súboru na server.

hash - MD5 hash súboru. XML robot ho používa na kontrolu duplicitného sťahovania súborov a tiež kontrolu prenosu súboru (MD5 hash musí byť rovnaký aj po stiahnutí súboru).

Odosielané parametre:

Pri pokuse stiahnuť súbor z definovanej lokality XML robot odosiela aj nasledujúce porametre:

datum - timestamp poslednej stiahnutej zmluvy. Požaduje sa generovanie zoznamov zmlúv iba s dátumom nie starším ako poslaný timestamp (teda dátum zmlúv by mal byť >= zaslaný timestamp).
 

Príklad generovania zoznamu súborov

Uvedený príklad (PHP) generuje zoznam súborov na základe aktuálnych súborov v adresári.

<?
$path='.';
$d = dir($path);
header("Content-type: text/xml");
print ''."\n";
print "\n";
$datum=isset($_REQUEST['datum'])?((integer) $_REQUEST['datum']):0;
while (false !== ($entry = $d->read())):
 if (is_file($path.'/'.$entry) and (pathinfo($path.'/'.$entry,PATHINFO_EXTENSION)=='xml') and
(filemtime($path.'/'.$entry)>=$datum)):
 print " \n";
 print " ".htmlspecialchars($entry)."\n";
 print " \n";
 print " ".md5_file($path.'/'.$entry)."\n";
 print " \n";
 endif;
endwhile;
$d->close();
print "\n";
?>