1. Modul JDisc

    Článek: AN0002475Aktualizováno:: 17.05.2022

    Modul umožňuje načítat data z discovery systému JDisc.

    JDisc discovery software

    Níže uvedený skript můžeme použít např. na tlačítku na webu ObjectGears i ve skriptu spouštěném winservice ObjectGears. Ve skriptu definujeme, co chceme z JDisc číst a kam tato data uložit. Funkce merge zajistí nahrání nových dat, aktualizaci existujících a smazání dat, která už v JDisc nejsou.

    var jd = OG.Module['og_jdisc'].CreateJDisc('https://localhost/graphql');
    var j = 'jdisc_account';
    var h = 'password_to_jdisc';
    jd.Login(j, h);

    var query = '{"query":"{ devices{ findAll{ name id} } }","variables":null}';
    var devices = jd.GetData(query, 'data.devices.findAll');

    //odhlaseni
    jd.LogOut();

    if (devices != null)
    {
    var cl = OGModel.ClassDefs['devices'];
    var colId = cl.Columns['order']; //id zaznamu
    var colName = cl.Columns['name']; //nazev
    var colDate = cl.Columns['datetime']; //datum aktualizace
    //smazat priznak aktualizace
    var sql = OG.TextUtils.Format('update {0} set {1} = null', cl.DBTableName, colDate.DBColumnName);
    OG.Sql.RunSql(sql);

    //merge dat
    sql = OG.TextUtils.Format(
    'MERGE {0} AS target ' +
    'USING (SELECT @id, @name) AS source (id, name) ' +
    'ON target.{2} = source.id ' +
    'WHEN MATCHED THEN ' +
    ' UPDATE SET target.{3} = source.name, {1} = getdate() ' +
    'WHEN NOT MATCHED THEN ' +
    ' INSERT({2}, {3}, {1}, created, creator, CreatedDataSourceId) VALUES(source.id, source.name, getdate(), getdate(), @user, 8);',
    cl.DBTableName, colDate.DBColumnName, colId.DBColumnName, colName.DBColumnName);

    var d2 = devices.ToList();
    for( var i = 0; i < d2.Count; ++i)
    {
    var d = d2[i];

    var pars = OG.Sql.CreateParameterList();
    pars.AddInt('id', d['id']);
    pars.AddNvarchar('name', d['name']);
    pars.AddNvarchar('user', OG.Person.GetLoginPerson().Account);

    OG.Sql.RunSql(null, sql, pars);
    }
    }
    else
    {
    OGForm.SetInfo('Data nenalezena.');
    }

     

×