GetZanikleSubjektyCompressed - CZ

Tato webová metoda Webové služby CreditCheckAktualizace je poskytována zdarma.

Tato webová metoda vrací seznam zaniklých subjektů k definovanému datumu. Tímto datem bylo původně 1.1.2008, 1.6.2012 došlo k prvnímu posunutí data na 1.1.2011. Od té doby se datum posouvá každý rok 1.6. o jeden rok.


Počet takových subjektů se blíží k 1 milionu a všechny mají přidělen negativní status 3. Vzhledem k tomu, že jde o dlouhodobě „mrtvé subjekty“, nezařazujeme je z důvodu úspory velikosti souboru do běžných dávkových metod (např. GetCreditChecks) určených pro denní aktualizaci. Vhodnou implementací této metody můžete pomoci zákazníkům vyčistit databáze o již neaktivní subjekty. Naše doporučení je následující: 1) 1-2x za rok stáhnout data metodou GetZanikleSubjektyCompressed a následně označit v databázi všechny obsažené subjekty nejenom přiděleným statusem (3), ale i novým příznakem „zaniklý subjekt“. 2) zajistit, aby při následných aktualizacích některou z dávkových metod ( např. GetCreditChecks) nedošlo u takto označených firem ke zpětnému přepsání statusu 3 na nižší.


Pozor: u v historii zaniklého subjektu může v budoucnosti dojít k jeho "oživení", tj. navrácení statusu 1.


Seznam subjektů je v zazipované formě a zazipovaná data jsou převedena do Base64 formátu. Webová metoda vrací datový string, který je obsahuje zazipovanou reprezentací jednoduchého Xml formátu. Webová metoda vyžaduje použít SOAP header, který obsahuje parametry přihlášení k webové metodě

SOAP header 

<soap:Header>
   <CreditCheckHeader xmlns="http://creditcheck.cz/">
      <Login>string</Login>
      <Password>string</Password>
   </CreditCheckHeader>
</soap:Header>


Popis elementů 

NázevPopis
Loginuživatelské jméno
Passworduživatelské heslo


Tyto údaje jsou stejné pro všechny uživatele jednoho partnerského systému a standardně budou neměnné. Proto doporučujeme je nastavit pro všechny napevno.

Vstupní parametry

Nejsou

Výstupní data

<creditCheck>
  <webMethod>GetZanikleSubjektyCompressed</webMethod>
  <version>0.0.0.6</version>
  <time>15.2.2010 8:12:35</time>
  <count>14</count>
  <data>
    <![CDATA[Xbdg52354tr2cvdserHtzVZUtzujk]]>
  </data>
</creditCheck>


Popis elementů 

NázevPopis
webMethodnázev webové metody, která vrátila data
versionverze webové služby
timeserverový čas vygenerování souboru
countpočet záznamů subjektů, které obsahuje sekce data
datazazipovaná a do Base64 konvertovaná data subjektů zabalená do CDATA


Popis rozzipovaného formátu dat v elementu 

Element obsahuje blok dat oddělených oddělovači, která jsou obalena do CDATA. Jeden záznam reprezentuje jeden řádek. Záznamy jsou odděleny znakem newLine – nová řádka. Jeden záznam obsahuje data.

  • první pozice: identifikátor subjektu, zde ičo subjektu




Příklad: 63493551 kde 63493551 = ičo subjektu

Poznámka 1 Formát a oddělovače dat můžou být na základě klientského požadavku změněné. Záznamy jsou unikátní podle identifikátoru subjektu a jeden subjekt nemůže mít více záznamů s různým hodnocením.

Poznámka 2 Metoda není určena pro denní aktualizaci. Pokud plánujete implementaci této metody a požadujete častější stahování dat než několikrát do roka, kontaktujte nás.



Ukázkový kód pro rozbalení dat

string source = service.GetZanikleSubjektyCompressed(soapHeader);
document.LoadXml(source);
string zippedData = document.SelectSingleNode("creditCheck").SelectSingleNode("data").InnerText;
byte[] k = Decompress(Convert.FromBase64String(zippedData));
source = new System.Text.UTF8Encoding().GetString(k);



public static byte[] Decompress(byte[] buffer)
        {
            MemoryStream ms = new MemoryStream();
            byte[] data = new byte[4096];
            Stream stream = new InflaterInputStream(new MemoryStream(buffer));
            try
            {
                while (true)
                {
                    int bytes = stream.Read(data, 0, data.Length);
                    if (bytes < 1)
                    {
                        break;
                    }

                    ms.Write(data, 0, bytes);
                }
            }
            finally
            {
                stream.Close(); stream.Dispose();
            }
            return ms.ToArray();
        }