Postupy při tvorbě a hlášení metrik

Níže je popsaná datová struktura jednoho záznamu/transakce pro pilotní sběr metriky využívání vybraných digitálních systémů.

Záznamy z různých agendových systémů či pro různé agendy a služby VS můžete kombinovat do jednoho JSON/XML/CSV souboru.

Nikdy prosím nevytvářejte pro každou transakci samostatný soubor, naopak sdružujte více transakcí do jednoho souboru.

Vlastnosti/atributy:

  • Identifikátor/označení transakce
    • technický název: id
    • povinnost vyplnění: povinně
    • datový typ: řetězec
    • význam: číslo jednací či jiný v agendovém systému použitý identifikátor řízení s občanem/firmou
  • Výsledek transakce
    • technický název: vysledek
    • povinnost vyplnění: povinně
    • datový typ: celé číslo
    • omezení přípustných hodnot (a jejich význam) – pro pilot jen základní hodnoty (zvolte nejbližší možnou):
      • 1 - dokončeno úspěšně
        • dokončeno úspěšně, např. poskytnutím služby / splněním povinnosti / schválením/zaevidováním …)
      • 2 - dokončeno neúspěšně
        • Žádost/řízení neschválena, odmítnuta, nevyhověno apod.
  • Výsledný stav
    • technický název: stav
    • povinnost vyplnění: nepovinně
    • datový typ: řetězec
    • význam: konkrétní agendově specifický výsledný stav (např. „zamítnuto“ / „stornováno klientem“) anebo stav z agendového systému jednoznačně určující status
  • Uživatelská spokojenost
    • technický název: spokojenost
    • povinnost vyplnění: nepovinně (pokud se spokojenost zjišťuje)
    • datový typ: celé číslo
    • omezení přípustných hodnot (a jejich význam): známka 1-5 jako ve škole
    • technický název: ovm
    • povinnost vyplnění: povinně
    • datový typ: viz definice **identifikátor OVM**
    • význam: identifikátor OVM, které data pro měření poskytuje (konstantní v rámci všech datových souborů poskytovaných daným OVM)
  • Vazba na **agendu**
    • technický název: agenda
    • povinnost vyplnění: povinně
    • datový typ: viz definice **kód agendy\\ **
    • technický název: sluzba
    • povinnost vyplnění: nepovinně
    • datový typ: řetězec – u služby z RPP/Katalogu služeb podle definice **identifikátor služby**, jinak lze použít pro odlišení např. typu/varianty transakce
  • Vazba na vstupní **obslužný kanál**
  • Vazba na výstupní **obslužný kanál**
  • Čas zahájenítechnický název: cas_zahajeni
    • povinnost vyplnění: povinně
    • datový typ a formát: viz definice Datum a čas
  • Čas ukončenítechnický název: cas_ukonceni
    • povinnost vyplnění: povinně
    • datový typ a formát: viz definice Datum a čas
  • Vazba na etapy v rámci transakce
    • technický název: etapy
    • povinnost vyplnění: nepovinné
    • datový typ: seznam (pole) prvků dle datového typu Etapa (viz dále)

Vlastnosti/atributy:

  • Identifikátor/označení etapy
    • technický název: id
    • povinnost vyplnění: povinně
    • datový typ: řetězec
  • Název etapy
    • technický název: nazev
    • povinnost vyplnění: povinně
    • datový typ: řetězec
    • význam: Lidsky čitelné/srozumitelné pojmenování etapy
  • Čas zahájení
    • technický název: cas
    • povinnost vyplnění: povinně
    • datový typ a formát: viz definice Datum a čas
    • technický název: ukon
    • povinnost vyplnění: nepovinně (jen pokud je k dispozici a dává smysl)
    • datový typ: viz definice: **identifikátor úkonu**

Jméno XML souboru musí mít vždy příponu .xml.

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <transakce>
    <id>234/2022</id>
    <vysledek>1</vysledek>
    <stav>schvaleno_3</stav>
    <spokojenost>2</spokojenost>
    <ovm>00007064</ovm>
    <agenda>A1046</agenda>
    <sluzba>S980</sluzba>
    <kanal_vstup>DATOVA_SCHRANKA</kanal_vstup>
    <kanal_vystup>DATOVA_SCHRANKA</kanal_vystup>
    <cas_zahajeni>2022-05-13T09:00:00</cas_zahajeni>
    <cas_ukonceni>2022-05-30T12:03:00</cas_ukonceni>
    <etapy>
      <etapa>
        <id>AB43D-32243</id>
        <nazev>přijmutí DS, zavedení do spisovky</nazev>
        <cas>2022-05-13T09:00:00</cas>
        <ukon>
        </ukon>
      </etapa>
      <etapa>
        <id>AB43D-32244</id>
        <nazev>posouzeni zadosti</nazev>
        <cas>2022-05-15T08:22:00</cas>
        <ukon>
        </ukon>
      </etapa>
    </etapy>
  </transakce>
  <transakce>
    <id>235/2022</id>
    <vysledek>1</vysledek>
    <stav>schvaleno_3</stav>
    <spokojenost>2</spokojenost>
    <ovm>00007064</ovm>
    <agenda>A1046</agenda>
    <sluzba>S980</sluzba>
    <kanal_vstup>DATOVA_SCHRANKA</kanal_vstup>
    <kanal_vystup>DATOVA_SCHRANKA</kanal_vystup>
    <cas_zahajeni>2022-05-13T09:00:00</cas_zahajeni>
    <cas_ukonceni>2022-05-30T12:03:00</cas_ukonceni>
    <etapy>
      <etapa>
        <id>AB43D-32243</id>
        <nazev>přijmutí DS, zavedení do spisovky</nazev>
        <cas>2022-05-13T09:00:00</cas>
        <ukon>
        </ukon>
      </etapa>
      <etapa>
        <id>AB43D-32244</id>
        <nazev>posouzeni zadosti</nazev>
        <cas>2022-05-15T08:22:00</cas>
        <ukon>
        </ukon>
      </etapa>
    </etapy>
  </transakce>
</root>

XML schéma

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="root">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="transakce">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" type="xs:string" />
              <xs:element name="vysledek" type="xs:unsignedByte" />
              <xs:element name="stav" type="xs:string" />
              <xs:element name="spokojenost" type="xs:unsignedByte" minOccurs="0" />
              <xs:element name="ovm" type="xs:integer" />
              <xs:element name="agenda" type="xs:string" />
              <xs:element name="sluzba" type="xs:string" />
              <xs:element name="kanal_vstup" type="xs:string" />
              <xs:element name="kanal_vystup" type="xs:string" />
              <xs:element name="cas_zahajeni" type="xs:dateTime" />
              <xs:element name="cas_ukonceni" type="xs:dateTime" />
              <xs:element name="etapy" minOccurs="0" >
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="etapa">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="id" type="xs:string" />
                          <xs:element name="nazev" type="xs:string" />
                          <xs:element name="cas" type="xs:dateTime" />
                          <xs:element name="ukon" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Jméno JSON souboru musí mít vždy příponu .json.

{
  "transakce": [ 
    {
    "id": "234/2022",
    "vysledek": "1",
    "stav" : "schvaleno_3",
    "spokojenost": "2",
    "ovm": "00007064",
    "agenda": "A1046",
    "sluzba": "S980",
    "kanal_vstup": "DATOVA_SCHRANKA",
    "kanal_vystup": "DATOVA_SCHRANKA",
    "cas_zahajeni": "2022-05-13T09:00:00",
    "cas_ukonceni": "2022-05-30T12:03:00",
    "etapy": {
      "etapa": [
        {
          "id": "AB43D-32243",
          "nazev": "přijmutí DS, zavedení do spisovky",
          "cas": "2022-05-13T09:00:00",
          "ukon": "U2343"
        },
        {
          "id": "AB43D-32244",
          "nazev": "posouzeni zadosti",
          "cas": "2022-05-15T08:22:00",
          "ukon": ""
        }
      ]
    }
  },
{
    "id": "235/2022",
    "vysledek": "1",
    "stav" : "schvaleno_3",
    "spokojenost": "2",
    "ovm": "00007064",
    "agenda": "A1046",
    "sluzba": "S980",
    "kanal_vstup": "DATOVA_SCHRANKA",
    "kanal_vystup": "DATOVA_SCHRANKA",
    "cas_zahajeni": "2022-05-13T09:00:00",
    "cas_ukonceni": "2022-05-30T12:03:00",
    "etapy": {
      "etapa": [
        {
          "id": "AB43D-32243",
          "nazev": "přijmutí DS, zavedení do spisovky",
          "cas": "2022-05-13T09:00:00",
          "ukon": "U2343"
        },
        {
          "id": "AB43D-32244",
          "nazev": "posouzeni zadosti",
          "cas": "2022-05-15T08:22:00",
          "ukon": ""
        }
      ]
    }
  }

 ]
}

Jméno CSV souboru musí mít vždy příponu .csv.

transakce/id,transakce/vysledek,transakce/stav,transakce/spokojenost,transakce/ovm,transakce/agenda,transakce/sluzba,transakce/kanal_vstup,transakce/kanal_vystup,transakce/cas_zahajeni,transakce/cas_ukonceni,transakce/etapy/etapa/0/id,transakce/etapy/etapa/0/nazev,transakce/etapy/etapa/0/cas,transakce/etapy/etapa/1/id,transakce/etapy/etapa/1/nazev,transakce/etapy/etapa/1/cas

234/2022,1,"schvaleno_3",2, 00007064,A1046,S980,DATOVA_SCHRANKA,DATOVA_SCHRANKA,2022-05-13T09:00:00,2022-05-30T12:03:00,AB43D-32243,"přijmutí DS, zavedení do spisovky",2022-05-13T09:00:00,AB43D-32244,posouzeni zadosti,2022-05-15T08:22:00

235/2022,1,"schvaleno_3",2, 00007064,A1046,S980,DATOVA_SCHRANKA,DATOVA_SCHRANKA,2022-05-13T09:00:00,2022-05-30T12:03:00,AB43D-32243,"přijmutí DS, zavedení do spisovky",2022-05-13T09:00:00,AB43D-32244,posouzeni zadosti,2022-05-15T08:22:00

Snažili jsme se zvolit nejjednodušší způsob nahrávání, a to pro situaci, kdy budete soubory nahrávat ručně, tak pokud budete mít připraven automatický proces.

K nahrávání se použije oficiální utilita od Microsoftu azcopy.

Utilita je k dispozici pro všechny obvyklé platformy (Win32, Win64, Linux, MacOS)

Jeden z parametrů utility je BLOB SAS URL + token - neboli URL a auth token, kterym server pozná kam nahrát vaše data a že jsou to data od vás.

BLOB SAS URL + token v příkladu: "https:%%//%%ddgdata.blob.core.windows.net/test1?sp=rac&st=2022-05-10T12:55:50Z&se=2022-06-10T20:55:50Z&spr=https&sv=2020-08-04&sr=c&sig=XXX

V příkladu uvedeném níže je neplatný BLOB SAS URL + token, pouze jako příklad. Váš BLOB SAS token vám zašleme datovou schránkou na jméno. Poté ve scriptu pouze nahradíte tento příklad za váš BLOB SAS URL + token.

Stáhnout utilitu azcopy

https:%%//%%docs.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-v10(stáhne se zip soubor azcopy_windows_amd64_10.14.1)

Utilita azcopy.exe je uložena v adresáři c:\test

Pomocí dodaného klíče (každý resort bude mít svůj, odpovídající příslušnému containeru v rámci storage account) zkusím uploadovat textový soubor:

C:\test>azcopy copy "c:\test\hello.txt" "https:%%//%%ddgdata.blob.core.windows.net/test1?sp=rac&st=2022-05-10T12:55:50Z&se=2022-06-10T20:55:50Z&spr=https&sv=2020-08-04&sr=c&sig=XXX" –recursive=true

INFO: Proxy detected: https:%%//%%azcopyvnextrelease.blob.core.windows.net → //10.29.98.90:3128

INFO: Scanning…

INFO: Any empty folders will not be processed, because source and/or destination doesn't have full folder support

Job 017888f3-0deb-674e-47f4-719ac8f654c6 has started

Log file is located at: C:\Users\mcervenka\.azcopy\017888f3-0deb-674e-47f4-719ac8f654c6.log

INFO: Proxy detected: https:%%//%%ddgdata.blob.core.windows.net → //10.29.98.90:3128

0.0 %, 0 Done, 0 Failed, 1 Pending, 0 Skipped, 1 Total,

Job 017888f3-0deb-674e-47f4-719ac8f654c6 summary

Elapsed Time (Minutes): 0.0336

Number of File Transfers: 1

Number of Folder Property Transfers: 0

Total Number of Transfers: 1

Number of Transfers Completed: 1

Number of Transfers Failed: 0

Number of Transfers Skipped: 0

TotalBytesTransferred: 19

Final Job Status: Completed

Pomocí azcopy mohu zkontrolovat, zda je soubor uložen (pozn. při uploadu souboru stejného názvu dojde k přepsání původního souboru)

C:\test>azcopy list https:%%//%%ddgdata.blob.core.windows.net/test1?sp=rac&st=2022-05-10T12:55:50Z&se=2022-06-10T20:55:50Z&spr=https&sv=2020-08-04&sr=c&sig=XXX

INFO: Proxy detected: https:%%//%%azcopyvnextrelease.blob.core.windows.net → //10.29.98.90:3128

INFO: Proxy detected: https:%%//%%ddgdata.blob.core.windows.net → //10.29.98.90:3128

INFO: hello.txt; Content Length: 19.00 B

Vložte svůj komentář: