52 lines
1.6 KiB
JavaScript
52 lines
1.6 KiB
JavaScript
// 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());
|