//  rap_tabelizer
//
//  Sommige rapportages (usrraps) zijn zeer intensief. Een oplossingsrichting zou een
//  automatiek kunnen zijn die de rapportage-views platslaan naar tabellen, en dat het
//  oproepen ervan dan automatisch op die tabel queriet ipv de ingewikkelde view
//
//  Er is veel van te vinden, en er zijn idd zaken om rekening mee te houden,
//  en waar aan de verbetering ervan gewerkt kan worden
//  - de gegevens lopen achter (een dag)
//  - er is veel meer storage nodig; deze tabellen (t_cust_v_*) hoeven niet in backup
//  - je zou efficientie willen door bv een onderliggende basisview te tabelliseren
//    ipv de uiteindelijke view
//
//  Maar dit hoeft ons er niet van te weerhouden een mechanisme op te tuigen waarmee
//  iig de kans dat een rapport wel resultaat oplevert wordt vergroot.
//  Eis is IMO dat dit mechanisme helemaal transparant is: geef met een vinkje aan
//  welke rapportage er getabelliseerd moet worden en that's it!
//
// $Revision$
// $Id$
//
// Een parameter: UDL voor database connectie

var str = WScript.Arguments(0);

var fso = new ActiveXObject("Scripting.FileSystemObject");
function __Log(s)
{
    var flog = fso.OpenTextFile("raptabelizer.log", 8 /* ForAppending */, true /* create */);
    flog.WriteLine(s);
    flog.Close();
}

__Log("Starting at " + new Date());

var udlstr = 'File Name='+str;
var Oracle = new ActiveXObject("ADODB.Connection");
Oracle.Open(udlstr);

try
{
    sql = "BEGIN fac.initsession(NULL); fac.tabelize_usrraps; END;";
    Oracle.Execute(sql)
}
catch(e)
{
    __Log("ERROR: " + e.description)
    throw e;
}

__Log("Done at " + new Date());
