MARX#39150: Mareon mailadres beschikbaar voor ontvangst SidB factuur berichten
svn path=/Website/branches/v2016.3/; revision=33243
This commit is contained in:
6
CUST/MARX/import/ScanMail2Api-PROD.bat
Normal file
6
CUST/MARX/import/ScanMail2Api-PROD.bat
Normal file
@@ -0,0 +1,6 @@
|
||||
cls
|
||||
|
||||
cscript /E:javascript ScanMail2Api.js ./Mail2Api "https://marx.mareon.nl/" 1 >>genimport.log 2>>&1
|
||||
rem cscript /E:javascript ../../../Utils/gen_import/ScanMail2Api.js ./Mail2Api "https://marx.mareon.nl/" 1 >>genimport.log 2>>&1
|
||||
|
||||
|
||||
6
CUST/MARX/import/ScanMail2Api-TEST.bat
Normal file
6
CUST/MARX/import/ScanMail2Api-TEST.bat
Normal file
@@ -0,0 +1,6 @@
|
||||
cls
|
||||
|
||||
cscript /E:javascript ScanMail2Api.js ./Mail2Api "https://marx-a.mareon.nl/" 1 >>genimport.log 2>>&1
|
||||
rem cscript /E:javascript ../../../Utils/gen_import/ScanMail2Api.js ./Mail2Api "https://marx-a.mareon.nl/" 1 >>genimport.log 2>>&1
|
||||
|
||||
|
||||
202
CUST/MARX/import/ScanMail2Api.js
Normal file
202
CUST/MARX/import/ScanMail2Api.js
Normal file
@@ -0,0 +1,202 @@
|
||||
// ScanMail2p_api.js
|
||||
// Folderstructuur is als volgt:
|
||||
|
||||
// Hoofdfolder
|
||||
// Subfolder (moet geldige apinaam zijn)
|
||||
// SubSubfolder (moet geldige apikey zijn)
|
||||
// B.v. van een zo'n folder structuur: ./Mail2Api/FIN_FACTUUR_SIDB/abc123456789xyz
|
||||
|
||||
// Scan van alle subsubfolders van de subfolders onder hoofdfolder [p_hoofdfolder] alle xml's en roept voor elke xml de api conform de meegeven rooturl [p_url].
|
||||
// De apinaam is dus de naam van de subfolder.
|
||||
// De apikey is de naam van de subsubfoldernaam.
|
||||
//
|
||||
// $Revision$
|
||||
// $Id$
|
||||
//
|
||||
|
||||
var p_hoofdfolder = WScript.Arguments(0); // hoofdfolder, alle subfolders hieronder worden gescaned op xml's
|
||||
var p_url = WScript.Arguments(1); // root-url, iets als 'https://marx.mareon.nl/'
|
||||
var G_log_level = WScript.Arguments(2); // Loglevel, 0-3.
|
||||
|
||||
var G_logfolder = "./LOG/" ;
|
||||
// De aanroep voor elke gescande XML zal dan iets worden als: p_url + '?' + 'api=' + [subfoldernaam] + '&' + 'apikey=' + [subsubfoldernaam waar XML staat]
|
||||
|
||||
function __Log(s, level)
|
||||
{ if (level == undefined) level=0;
|
||||
if (G_log_level > 0 || level==0){
|
||||
if (level <= G_log_level){
|
||||
WScript.Echo(s);
|
||||
var dt = new Date;
|
||||
// De LOG-folder aanmaken als die niet bestaat...
|
||||
if (!fso.FolderExists(G_logfolder)) fso.CreateFolder(G_logfolder);
|
||||
var logname = G_logfolder + "/ScanMail_" + padout(dt.getFullYear()) + "_" + padout(dt.getMonth() + 1) + "_" + padout(dt.getDate()) + ".log";
|
||||
var flog = fso.OpenTextFile(logname, 8 /* ForAppending */, true /* create */);
|
||||
var tms = toDateString(new Date) + " " + toTimeString(new Date);
|
||||
flog.WriteLine(tms + " " +s);
|
||||
flog.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function padout(number) { return (number < 10) ? "0" + number : number; }
|
||||
function toDateString(jsDate)
|
||||
{
|
||||
return padout(jsDate.getFullYear()) + "-" + padout(jsDate.getMonth() + 1) + "-" + padout(jsDate.getDate());
|
||||
}
|
||||
|
||||
function toTimeString(jsDate)
|
||||
{
|
||||
return padout(jsDate.getHours()) + ":" + padout(jsDate.getMinutes()) + ":" + padout(jsDate.getSeconds());
|
||||
}
|
||||
|
||||
try {
|
||||
var fh, lenght;
|
||||
|
||||
|
||||
fso = new ActiveXObject("Scripting.FileSystemObject");
|
||||
objRS = new ActiveXObject("ADODB.Recordset");
|
||||
objRS.CursorLocation = 3 // useClient
|
||||
objRS.Fields.Append ("Name", 200, 100) // adVarChar
|
||||
objRS.Fields.Append ("created", 7 ) // adDate
|
||||
objRS.Fields.Append ("api", 200, 100) // adVarChar
|
||||
objRS.Fields.Append ("apikey", 200, 100) // adVarChar
|
||||
objRS.Fields.Append ("SubSubfolder", 200, 100) // adVarChar
|
||||
|
||||
objRS.Open();
|
||||
|
||||
__Log("-------------------------------------------------------- START SCAN MAIL2API --------------------------------------------------------", 1);
|
||||
|
||||
// plaats de bestandsnamen en creatiedata in een resultset om deze vervolgens te kunnen filteren.
|
||||
p_hoofdfolder = p_hoofdfolder.replace(/\//g,"\\");
|
||||
__Log("Folder: " + p_hoofdfolder, 1);
|
||||
|
||||
var hf = fso.GetFolder(p_hoofdfolder);
|
||||
var filecount = 0;
|
||||
var subfc = new Enumerator(hf.SubFolders);
|
||||
var subfoldercount = 0;
|
||||
for (; !subfc.atEnd(); subfc.moveNext())
|
||||
{
|
||||
subfoldercount++;
|
||||
l_api = subfc.item().name;
|
||||
__Log("Api: " + l_api, 1);
|
||||
l_subfolder = p_hoofdfolder + '/' + l_api;
|
||||
__Log("Subfolder: " + l_subfolder, 1);
|
||||
|
||||
|
||||
var f2 = fso.GetFolder(l_subfolder);
|
||||
|
||||
var subsubfc = new Enumerator(f2.SubFolders);
|
||||
var subsubfoldercount = 0;
|
||||
for (; !subsubfc.atEnd(); subsubfc.moveNext())
|
||||
{
|
||||
subfoldercount++;
|
||||
l_apikey = subsubfc.item().name;
|
||||
__Log("Apikey " + l_apikey, 1);
|
||||
l_subsubfolder = l_subfolder + '/' + l_apikey;
|
||||
__Log("SubSubfolder: " + l_subsubfolder, 1);
|
||||
|
||||
var f = fso.GetFolder(l_subsubfolder);
|
||||
var fc = new Enumerator(f.files);
|
||||
|
||||
for (; !fc.atEnd(); fc.moveNext())
|
||||
{
|
||||
filename = fc.item().name;
|
||||
__Log("File: " + filename, 1);
|
||||
var file = fso.GetFile(l_subsubfolder + '/' + filename);
|
||||
var dt = new Date(file.DateCreated);
|
||||
|
||||
if (fc.item().name.indexOf(".xml") != -1) {
|
||||
filecount++;
|
||||
objRS.AddNew();
|
||||
objRS("Name") = filename;
|
||||
objRS("SubSubfolder") = l_subsubfolder;
|
||||
objRS("created") = file.DateCreated;
|
||||
objRS("api") = l_api;
|
||||
objRS("apikey") = l_apikey;
|
||||
}
|
||||
}
|
||||
__Log("Filecount " + filecount, 1);
|
||||
}
|
||||
}
|
||||
|
||||
__Log("Filecount TOTAAL " + filecount, 1);
|
||||
|
||||
if (filecount > 0) {
|
||||
objRS.Sort = "SubSubfolder, Name ASC";
|
||||
objRS.MoveFirst();
|
||||
while (!objRS.EOF)
|
||||
{
|
||||
l_xml_filename = objRS("Name").Value;
|
||||
l_subsubfolder = objRS("SubSubfolder").Value;
|
||||
|
||||
l_xml_file = l_subsubfolder + "/" + l_xml_filename;
|
||||
|
||||
__Log("File (sorted): " + l_xml_file, 1);
|
||||
|
||||
var fileStream = new ActiveXObject("ADODB.Stream");
|
||||
fileStream.open();
|
||||
fileStream.CharSet = "Windows-1252"; // het doel
|
||||
fileStream.LoadFromFile(l_xml_file);
|
||||
__Log("Filesize " + fileStream.Size, 1);
|
||||
|
||||
fileStream.Position = 0;
|
||||
|
||||
XMLReq = fileStream.ReadText;
|
||||
__Log("Request: " + XMLReq, 3);
|
||||
l_api = objRS("api").Value;
|
||||
__Log("l_api: " + l_api, 3);
|
||||
l_apikey = objRS("apikey").Value;
|
||||
__Log("l_apikey: " + l_apikey, 3);
|
||||
l_url = p_url + "?API=" + l_api + "&APIKEY=" + l_apikey
|
||||
__Log("URL: " + l_url, 1);
|
||||
|
||||
try
|
||||
{
|
||||
var backdir_api = l_subsubfolder + "./BACKUP"+(new Date).getFullYear()+"/";
|
||||
if (!fso.FolderExists(backdir_api))
|
||||
fso.CreateFolder(backdir_api);
|
||||
//backdir_api += api + "\\";
|
||||
//if (!fso.FolderExists(backdir_api))
|
||||
// fso.CreateFolder(backdir_api);
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
__Log("Cannot create backup folder " + backdir_api + "\n" + e.description);
|
||||
WScript.Quit();
|
||||
}
|
||||
|
||||
var objXMLHTTP = new ActiveXObject("MSXML2.ServerXMLHTTP.6.0");
|
||||
|
||||
objXMLHTTP.open("POST",
|
||||
l_url
|
||||
);
|
||||
|
||||
objXMLHTTP.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
|
||||
objXMLHTTP.send(XMLReq);
|
||||
|
||||
__Log("Status: " + objXMLHTTP.status, 1);
|
||||
__Log("StatusText: " + objXMLHTTP.statusText);
|
||||
__Log("Result: " + objXMLHTTP.responseText, 1);
|
||||
|
||||
if (objXMLHTTP.status == 200) {
|
||||
|
||||
jsDate = new Date;
|
||||
dateString = padout(jsDate.getFullYear()) + "-" + padout(jsDate.getMonth() + 1) + "-" + padout(jsDate.getDate());
|
||||
timeString = padout(jsDate.getHours()) + "-" + padout(jsDate.getMinutes() + 1) + "-" + padout(jsDate.getSeconds());
|
||||
backDir = backdir_api + dateString + "_" + "bck" + "\\";
|
||||
if (!fso.FolderExists(backDir))
|
||||
fso.CreateFolder(backDir);
|
||||
|
||||
fso.MoveFile(l_xml_file, backDir + timeString + "_" + l_xml_filename);
|
||||
}
|
||||
|
||||
objRS.MoveNext();
|
||||
}
|
||||
}
|
||||
__Log("-------------------------------------------------------- END SCAN MAIL2API --------------------------------------------------------", 1);
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
WScript.Echo("Serieuze fout in MaasStatusResponse.js: " + e.description)
|
||||
WScript.Quit(1);
|
||||
}
|
||||
Reference in New Issue
Block a user