FCLT#76850 Automatisch opruimen backupfiles van imports

svn path=/Website/trunk/; revision=71064
This commit is contained in:
Erik Groener
2025-11-26 15:42:40 +00:00
parent e7f0a9a897
commit 43bfa187fc

View File

@@ -402,10 +402,11 @@ function impProcessStream(import_key, params)
oRs.Close();
var sql = "SELECT ia.fac_import_app_key"
+ ", fac_import_app_code"
+ ", fac_import_app_prefix"
+ ", fac_import_app_folder"
+ ", fac_import_filenaam"
+ ", ia.fac_import_app_code"
+ ", ia.fac_import_app_prefix"
+ ", ia.fac_import_app_folder"
+ ", i.fac_import_filenaam"
+ ", i.fac_import_backupdir"
+ " FROM fac_import_app ia"
+ ", fac_import i"
+ " WHERE ia.fac_import_app_key = i.fac_import_app_key"
@@ -416,6 +417,7 @@ function impProcessStream(import_key, params)
var prefix = oRs("fac_import_app_prefix").Value||"FAC";
var filenaam = oRs("fac_import_filenaam").Value;
var folder = oRs("fac_import_app_folder").Value;
var backupDir = oRs("fac_import_backupdir").Value;
oRs.Close();
// Start de UPDATE procedure om de database aan te passen
@@ -465,7 +467,7 @@ function impProcessStream(import_key, params)
flexcode = oRs("fac_result_waarde").Value;
}
oRs.Close();
//flexcode = "MLD:995837:544:M";
//flexcode = "MLD:995837:544:M";
if (flexcode) // FIN:12345:18:F (12345=factuurkey, 18=kenmerkkey, F=factuur (versus R=regels)
{
if (!folder)
@@ -476,43 +478,93 @@ function impProcessStream(import_key, params)
var backDir = backupfolder(impcode, folder, import_key);
var res = extractAttachments(backDir + safe.filename(filenaam) + ".zip", safe.filename(filenaam), flexcode);
if (!res.success)
return res;
result.success = res.success;
}
else
{
result.success = true;
}
sql = "UPDATE fac_import"
+ " SET fac_import_datum_verwerkt = SYSDATE"
+ (params.user_key > 0 ? ", prs_perslid_key = " + params.user_key : "")
+ " WHERE fac_import_key = " + import_key
+ " AND fac_import_datum_verwerkt IS NULL";
Oracle.Execute(sql);
if (result.success)
{
sql = "UPDATE fac_import"
+ " SET fac_import_datum_verwerkt = SYSDATE"
+ (params.user_key > 0 ? ", prs_perslid_key = " + params.user_key : "")
+ " WHERE fac_import_key = " + import_key
+ " AND fac_import_datum_verwerkt IS NULL";
Oracle.Execute(sql);
// Verder opruimen van oude data doen we in fac.fac_cleanup die elke dag uitgevoerd wordt dmv fac.fac_daily
// Verder opruimen van oude data doen we in fac.fac_cleanup die elke dag uitgevoerd wordt dmv fac.fac_daily
result.message = (typeof L != "undefined"?L("lcl_imp_inf_processed"):"Ingelezen gegevens zijn verwerkt"); // Geen L vanuit gen_import.wsf!
result.success = true;
result.message = (typeof L != "undefined"?L("lcl_imp_inf_processed"):"Ingelezen gegevens zijn verwerkt"); // Geen L vanuit gen_import.wsf!
var sql = "SELECT COUNT(*)"
+ " FROM imp_log"
+ " WHERE imp_log_status = 'W'"
+ " AND imp_log_key > " + last_imp_log_key
+ " AND fac_import_key = " + import_key;
var oRs = Oracle.Execute(sql);
var cntW = oRs(0).Value;
oRs.Close();
if (cntW > 0) {
result.message += "\n" + (typeof L != "undefined" ? L("lcl_imp_rap_w") : "Waarschuwingen") + ": " + cntW;
var sql = "SELECT COUNT(*)"
+ " FROM imp_log"
+ " WHERE imp_log_status = 'W'"
+ " AND imp_log_key > " + last_imp_log_key
+ " AND fac_import_key = " + import_key;
var oRs = Oracle.Execute(sql);
var cntW = oRs(0).Value;
oRs.Close();
if (cntW > 0) {
result.message += "\n" + (typeof L != "undefined" ? L("lcl_imp_rap_w") : "Waarschuwingen") + ": " + cntW;
}
var sql = "SELECT COUNT(*)"
+ " FROM imp_log"
+ " WHERE imp_log_status = 'E'"
+ " AND imp_log_key > " + last_imp_log_key
+ " AND fac_import_key = " + import_key;
var oRs = Oracle.Execute(sql);
var cntE = oRs(0).Value;
oRs.Close();
if (cntE > 0) {
result.message += "\n" + (typeof L != "undefined" ? L("lcl_imp_rap_e") : "Fouten") + ": " + cntE;
}
}
var sql = "SELECT COUNT(*)"
+ " FROM imp_log"
+ " WHERE imp_log_status = 'E'"
+ " AND imp_log_key > " + last_imp_log_key
+ " AND fac_import_key = " + import_key;
var oRs = Oracle.Execute(sql);
var cntE = oRs(0).Value;
oRs.Close();
if (cntE > 0) {
result.message += "\n" + (typeof L != "undefined" ? L("lcl_imp_rap_e") : "Fouten") + ": " + cntE;
// Opruimen backupdir:
// - params.clear_backup: Gezet vanuit api_gen_import.inc. Met handmatig inlezen wordt dit niet meegegeven dus bestanden blijven staan.
// - __Logging > 0: Als logging aan staat worden de bestanden nooit verwijderd.
if (backupDir && params.clear_backup && (__Logging == 0))
{
var fso = Server.CreateObject("Scripting.FileSystemObject");
backupDir = backupDir.replace(/[\\\/]$/, ""); // Verwijder een eventuele (back)slash aan het einde.
if (fso.FolderExists(backupDir))
{
__Log("Scanning {0} for files".format(backupDir));
var fm = fso.GetFolder(backupDir);
var fc = new Enumerator(fm.files);
var filesDeleted = true;
var cnt = 0;
for (; !fc.atEnd(); fc.moveNext())
{
var ff = fc.item();
try
{
fso.DeleteFile(backupDir +"/"+ ff.Name, true);
cnt++;
}
catch (e)
{
filesDeleted = false;
__DoLog("Failed to remove {0}: {1}".format(ff.Name, e.description), "#FFFF00");
}
}
__Log("{0} files deleted".format(cnt));
if (filesDeleted)
{
try
{
fso.DeleteFolder(backupDir);
}
catch(e)
{
__DoLog("Failed to remove {0}: {1}".format(backupDir, e.description), "#FFFF00");
}
}
}
}
return result;