Friday, 14 April 2017

CA CMDB - pdm_deref

Pro spárování existujcích dat se používá funkce pdm_deref.

Příkladem je situace kdy nahráváte nové pobočky, která mají návaznost relací na již nahrané adresy. V provázání pomocí SREL je určena klíčová hodnota ID (location_UUID).
Místo složitého dohledávání UUID pro každou lokailtu je možno použít přívětivější název location_name, který za pomocí pdm_deref nahradíme platným location_UUID. Díky tomu budeme moct dále pomocí nahrávání číselníkových (pdm_load) data nahrát a vytvořit tak návaznost v systému.

Použití


pdm_deref -s vstupni_data < vstupni_parametry > vystupni_parametry


operátory:

-s - určení vstupního souboru


Příklad:

pdm_load -s ca_location_in.txt < ca_location_def.txt > ca_location_out.txt


Formát dat

Formát dat musí být uložený ve formátování UTF-8.
Struktura dat v souboru je následující:


Soubor vstupní data

Stejná jako když připravujeme data pro pdm_load:

TABLE jmeno_tabulky
parametr1 parametr2
{ "hodnota_1", "hodnota_2" }


Příklad

TABLE ca_organization
comment org_name location_name
{ "Organizace v Praze 1", "ORG_P1", "Praha_1" }
{ "Organizace v Praze 5", "ORG_P5", "Praha_5" }


Soubor s definicí (vstupními parametry)

Defef
{
input = vstupni_tabulkovy_zaznam
output = vystupni_tabulkovy_zaznam
rule = "SELECT id FROM tabulka_ze_ktere_se_ctou_data WHERE cteny_zaznam=?"
}

Kdy:

input = vstupni_tabulkovy_zaznam - název atributu, který bude ze vstupního souboru porovnáván s hodnotou pole v databázi
output = vystupni_tabulkovy_zaznam - název atributu ve výstupním souboru, do kterého budou doplněny dereferencované hodnoty z databáze
rule = "SELECT id FROM tabulka_ze_ktere_se_ctou_data WHERE cteny_zaznam=?" - databázový dotaz, který říká: vyber všechny atributy id z tabulky ca_location, kde je location_name shodné s hodnotou parametru v input a ulož je do výstupního souboru jako output


Příklad

Deref
{
input = location_name
output = location_uuid
rule = "SELECT id FROM ca_location WHERE location_name=?"
}

Výstupní data po použití dpm_deref

Jak si můžeme všimnout, atribut a hodnoty location_name byly nahrazeny adekvátními hodnotami atributu locaton_uuid.

TABLE ca_organization
comment org_name location_uuid
{ "Organizace v Praze 1", "ORG_P1", "CAF08BA06EB6864CBA9102437EE2AADF" }
{ "Organizace v Praze 5", "ORG_P5", "C2FFABB6B3F39F4AAE056801D0E322E5" }

CA CMDB - pdm_load

Pro nahrávní číselníkových dat v CA CMDB se používá příkaz pdm_load.

Varování - používání pdm_load může být desktruktivní a vždy před použitím je vhodné mít připravenou zálohu (zejména při nevhodném použití parametru -i). 

Použití

pdm_load [-a] [-c] [-h] [-i] [-r] [-v] -f jmeno_souboru


operátory:

-f - určení vstupního souboru
-a - update exitujících dat
-c - pouze kontrola vstupních dat
-h - nápověda
-i - vložení dat
-r - odstranění dat
-v - verbose režim


Příklad:

pdm_load -i -f ca_state_province.txt

Formát dat

Formát dat musí být uložený ve formátování UTF-8.
Struktura dat v souboru je následující:

TABLE jmeno_tabulky
parametr1 parametr2
{ "hodnota_1", "hodnota_2" }

Kdy:
jmeno_tabulky - odpovídá hodnotě Schema Name ve Schema Designeru
parametr1 -  odpovídá hodnotě Schema Name ve Schema Designeru
hodnota1 - zapisovaná hodnota (dle určení Field typu v DB)

Příklad:

TABLE ca_state_province
symbol description
{"SCK", "Středočeský kraj"}
{"PLK", "Plzeňský kraj"}
{"KVK", "Karlovarský Kraj"}
{"ULK", "Ústecký kraj"}
{"LIK", "Liberecký kraj"}
{"KHK", "Královéhradecký kraj"}
{"PAK", "Pardubický kraj"}
{"JMK", "Jihomoravský kraj"}
{"VYK", "Kraj Vysočina"}
{"MSK", "Moravskoslezský kraj"}
{"OLK", "Olomoucký kraj"}
{"ZLK", "Zlínský kraj"}
{"PHA", "Hlavní město Praha"}