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" }

No comments:

Post a Comment