1. Aktualizace sloupce Ano/Ne podle přítomnosti záznamu v importovaném souboru

    Článek: AN0002440Aktualizováno:: 18.06.2020

    V tomto článku si ukážeme, jak zajistit označení záznamů třídy, podle toho zda se nacházejí v externím souboru.

    V našem příkladu budeme mít CSV soubor vytvářený externím systémem, který obsahuje názvy serverů, na nichž je instalována klientská komponenta tohoto systému. Musíme se vypořádat s tím, že soubor není dobře strukturovaný. V každém řádku souboru je název jednoho serveru. Vedle názvu serveru mohou být ale i mezery a soubor také obsahuje prázdné řádky.

    V naší třídě Machine máme sloupec FQDN (Fully Qualified Domain Name), podle kterého budeme mapovat záznamy ze třídy na záznamy v souboru. Pokud daný záznam třídy bude v souboru, označíme záznam ve třídě ve sloupci SCOM agent jako Ano. Záznamy, které nejsou v souboru, budou ve sloupci SCOM agent označeny jako Ne.

    Kromě výše zmíněných sloupců FQDN a SCOM agent ve třídě Machine budeme potřebovat vytvořit import, který daný soubor načte a provede aktualizaci dat ve sloupci SCOM agent.

    V importu provedeme nastavení dle následujícího snímku obrazovky.

    Soubor nemá hlavičku. Proto import takto označíme a u sloupců uvedeme jejich pořadí. Záznamy mapujeme podle sloupce FQDN. Aktualizujeme hodnoty ve sloupci SCOM agent a nastavujeme je na hodnotu Ano (Yes), pokud dojde k namapování. Dochází pouze aktualizaci existujících záznamů, ne vkládání nebo mazání.

    V importu musíme uvést následující Skript v události Po načtení dat do databáze.

    var cl = OG.ClassDef.GetById( OGActualImport.ClassDefId);
    var colScom = cl.Columns['scom_agent'];

    // vsem zaznamum vymazat priznak
    var sql = OG.TextUtils.Format( 'update DataRow{0} set {1} = 0', cl.Id, colScom.DBColumnName);
    OG.Sql.RunSql(sql);

    //smazat prazdne radky
    var colFqdn = cl.Columns['fqdn'];
    var sql = OG.TextUtils.Format( 'update {0} set iserror = 1 where col_{1}_s is null', OGActualImportDbTable, colFqdn.Id);
    OG.Sql.RunSql(sql);

    Skript provede následující. Po načtení obsahu souboru do dočasné importní tabulky (a před vlastní aktualizací dat ve třídě) vymaže všem záznamům ve třídě hodnotu ve sloupci SCOM agent. Dále v dočasné importní tabulce promaže prázdné řádky. Po doběhnutí skriptu import pokračuje a výsledkem je správné nastavení příznaku SCOM agent pro záznamy, které byly v importním souboru.

×