YKPN#48088 -- Koppeling met Nedap kentekenherkenning.

svn path=/Website/branches/v2017.2/; revision=36573
This commit is contained in:
Arthur Egberink
2018-01-12 14:17:47 +00:00
parent 1a59a67df1
commit 8d94bb9e47
3 changed files with 139 additions and 368 deletions

View File

@@ -1,355 +0,0 @@
// Deze functie stuurt informatie van videoconferentie boekingen naar Talk & Vision
// Videoconferentie boekingen zijn reserveringen met als activiteit Videoconferentie
// Bij nieuwe boekingen wordt de soap action BookMeeting aangeroepen als resultaat
// krijgen we dan een boekingsnummer terug. Dit nummer wordt opgeslagen in kenmerk vc_id
// en wordt getracked bij de reservering.
// Bij wijzigingen hebben we al een vc_id en roepen we de soap actie ModifyMeeting aan.
function timestamp () {
var date = new Date();
var hours = date.getHours();
var days = date.getDay();
var minutes = date.getMinutes();
var ampm = hours >= 12 ? 'pm' : 'am';
hours = hours % 12;
hours = hours ? hours : 12; // the hour '0' should be '12'
minutes = minutes < 10 ? '0'+minutes : minutes;
var strTime = date + ' ' + hours + ':' + minutes + ' ' + ampm;
return strTime;
}
try {
var v_timestamp = timestamp();
WScript.Echo("Start bookVC.js om " + v_timestamp);
var udlstr = 'File Name=../oracle.udl';
var Oracle = new ActiveXObject("ADODB.Connection");
Oracle.Open(udlstr);
var sql = "BEGIN fac.initsession('NL'); END;";
Oracle.Execute(sql);
var objXMLHTTP = new ActiveXObject("MSXML2.ServerXMLHTTP.6.0")
var SXH_OPTION_SELECT_CLIENT_SSL_CERT = 3;
var SXH_PROXY_SET_PROXY = 2;
var v_type = '';
debugFiddler = 0;
if (debugFiddler)
{
var SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS = 13056
objXMLHTTP.setProxy(SXH_PROXY_SET_PROXY, "127.0.0.1:8888")
objXMLHTTP.setOption(2) = SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS
}
// first do the login part
var XMLReq = '<?xml version="1.0" encoding="utf-8"?>'
+'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'
+' <soap:Body>'
+' <Login xmlns="http://tempuri.org/">'
// +' <username>kpntest</username>'
// +' <password>waL3aejujz</password>'
+' <username>Getronics</username>'
+' <password>kpn456rt</password>'
+' </Login>'
+' </soap:Body>'
+'</soap:Envelope>';
objXMLHTTP.open("POST",
"http://talkandvision.com//webservice/portal.asmx"
);
//WScript.Echo("Set header");
objXMLHTTP.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
WScript.Echo("Send XML");
objXMLHTTP.send(XMLReq);
WScript.Echo("XML received");
if (objXMLHTTP.status==200)
{
v_cookie = objXMLHTTP.getResponseHeader("Set-Cookie");
var xmlResp = new ActiveXObject("MSXML2.DOMDocument.6.0");
xmlResp.setProperty("SelectionNamespaces", 'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tv="http://tempuri.org/"');
xmlResp.resolveExternals = false; // van mij hoef je geen DTD's te controleren
xmlResp.validateOnParse = false; // van mij hoef je geen DTD's te controleren
xmlResp.loadXML(objXMLHTTP.responseText); // for parsing
var responseText = objXMLHTTP.responseText; // for debugging
v_status = xmlResp.selectSingleNode("/soap:Envelope/soap:Body/tv:LoginResponse/tv:LoginResult");
WScript.Echo("Gelukt, status = " + v_status.text);
if (v_status.text == 'true')
{
sql = "SELECT res_reservering_key, SUM (vertrouwelijk) vertrouwelijk "
+ " FROM ykpn_v_vc_gegevens "
+ " WHERE last_upd > last_sync "
+ " AND last_upd < SYSDATE - 1/96 " // we wachten een kwartier na de laatste update
+ " AND aantal > 1 "
+ " GROUP BY res_reservering_key "
+ " ORDER BY res_reservering_key";
WScript.Echo("SQL reservering = " + sql);
var oRs_res = Oracle.Execute(sql);
while (!oRs_res.eof)
{
v_reservering_key = oRs_res("res_reservering_key").Value;
// het kan zo zijn dat er een nieuwe deelreservering toegevoegd wordt die nog geen vc_id heeft.
sql = "SELECT SUM (vertrouwelijk) vertrouwelijk, MAX(vc_id) vc_id "
+ " FROM ykpn_v_vc_gegevens "
+ " WHERE res_reservering_key = " + v_reservering_key
var oRs_id = Oracle.Execute(sql);
v_vertrouwelijk = oRs_id("vertrouwelijk").Value;
v_vc_id = oRs_id("vc_id").Value;
sql = "SELECT t_van, "
+ " t_tot, "
+ " omschrijving, "
+ " ruimte, "
+ " contact_naam, "
+ " contact_telefoon, "
+ " contact_email, "
+ " res_reservering_key, "
+ " res_rsv_ruimte_key, "
+ " IdNummerTnF, "
+ " SIP_IP, "
+ " ipadres, "
+ " vc_id "
+ " FROM ykpn_v_vc_gegevens "
+ " WHERE res_reservering_key = " + v_reservering_key
+ " ORDER BY res_rsv_ruimte_volgnr";
WScript.Echo("SQL rsv ruimte = " + sql);
var oRs_rsv = Oracle.Execute(sql);
//var v_count = 0;
var v_xml_header = "";
var v_xml_footer = "";
var v_xml_loc = "";
while (!oRs_rsv.eof)
{
v_van = oRs_rsv("t_van").Value;
v_tot = oRs_rsv("t_tot").Value;
v_omschrijving = oRs_rsv("omschrijving").Value;
v_ruimte = oRs_rsv("ruimte").Value;
v_contact_naam = oRs_rsv("contact_naam").Value;
v_contact_telefoon = oRs_rsv("contact_telefoon").Value;
v_contact_email = oRs_rsv("contact_email").Value;
v_rsv_ruimte_key = oRs_rsv("res_rsv_ruimte_key").Value;
v_idNummerTnF = oRs_rsv("idNummerTnF").Value;
v_sip_ip = oRs_rsv("sip_ip").Value;
v_ipadres = oRs_rsv("ipadres").Value;
WScript.Echo("v_rsv_ruimte_key = " + v_rsv_ruimte_key);
// We kennen nieuwe boekingen of wijzigingen op bestaande boekingen.
// Bij wijzigigen is er al een VC-id aanwezig.
if (v_vc_id)
{
v_type = 'ModifyMeeting';
}
else
{
v_type = 'BookMeeting';
}
if (!v_xml_header)
{
v_xml_header = '<?xml version="1.0" encoding="utf-8"?> '
+ ' <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'
+ ' <soap:Body>'
+ ' <' + v_type + ' xmlns="http://tempuri.org/">'
+ ' <booking>'
+ ' <id>' + v_vc_id + '</id>'
+ ' <mcid>' + v_reservering_key + '</mcid>'
+ ' <start>' + v_van + '</start>'
+ ' <end>' + v_tot + '</end>'
+ ' <company>KPN</company>'
+ ' <title>' + v_omschrijving + '</title>'
+ ' <contactname>' + v_contact_naam + '</contactname>'
+ ' <contactphone>' + v_contact_telefoon + '</contactphone>'
+ ' <contactemail>' + v_contact_email + '</contactemail>'
+ ' <confidential>' + (v_vertrouwelijk==0?'false':'true') + '</confidential>'
+ ' <locations>';
v_xml_footer = ' </locations>'
+ ' </booking>'
+ ' </' + v_type + '>'
+ ' </soap:Body>'
+ ' </soap:Envelope>';
}
v_xml_loc = v_xml_loc
+ ' <Location>'
+ (!v_sip_ip?' <id>' + v_idNummerTnF + '</id>':'')
+ ' <contactphone></contactphone>'
+ ' <external>' + (v_sip_ip?'true':'false') + '</external>'
+ (v_sip_ip == 'IP'?'<extip>' + v_ipadres + '</extip>':'')
+ (v_sip_ip == 'SIP'?'<sip>' + v_ipadres + '</sip>':'')
+ ' </Location>';
oRs_rsv.MoveNext();
}
var objXMLHTTP = new ActiveXObject("MSXML2.ServerXMLHTTP.6.0")
var SXH_OPTION_SELECT_CLIENT_SSL_CERT = 3;
var SXH_PROXY_SET_PROXY = 2;
if (debugFiddler)
{
var SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS = 13056
objXMLHTTP.setProxy(SXH_PROXY_SET_PROXY, "127.0.0.1:8888")
objXMLHTTP.setOption(2) = SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS
}
objXMLHTTP.open("POST",
"http://talkandvision.com//webservice/portal.asmx"
);
objXMLHTTP.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
v_action = "http://tempuri.org/" + v_type;
WScript.Echo("Action = " + v_action);
objXMLHTTP.setRequestHeader ("SOAPAction", v_action);
objXMLHTTP.setRequestHeader ("Cookie", v_cookie);
WScript.Echo("Cookie = " + v_cookie);
XMLReq = v_xml_header + v_xml_loc + v_xml_footer;
WScript.Echo("Send XML: " + XMLReq);
objXMLHTTP.send(XMLReq);
WScript.Echo("XML received");
if (objXMLHTTP.status==200)
{
var responseText = objXMLHTTP.responseText;
WScript.Echo("Response.text:" + responseText);
var xmlResp = new ActiveXObject("MSXML2.DOMDocument.6.0");
xmlResp.setProperty("SelectionNamespaces", 'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tv="http://tempuri.org/"');
xmlResp.resolveExternals = false; // van mij hoef je geen DTD's te controleren
xmlResp.validateOnParse = false; // van mij hoef je geen DTD's te controleren
xmlResp.loadXML(objXMLHTTP.responseText); // for parsing
var responseText = objXMLHTTP.responseText; // for debugging
v_result = xmlResp.selectSingleNode("/soap:Envelope/soap:Body/tv:" + v_type + "Response/tv:" + v_type + "Result");
if (v_result)
{
if (v_type == 'BookMeeting')
{
WScript.Echo("v_vc_id:" + v_result.text);
sql = "BEGIN ykpn.set_vc_status(" + v_reservering_key + ",'" + v_result.text +"'); END;";
WScript.Echo("sql:" + sql);
Oracle.Execute(sql);
}
else
{
WScript.Echo("resultaat van update:" + v_result.text);
sql = "BEGIN ykpn.set_vc_status(" + v_reservering_key + ",'" + v_vc_id +"'); END;";
WScript.Echo("sql:" + sql);
Oracle.Execute(sql);
}
}
}
else
{
WScript.Echo("Request = " + XMLReq);
var responseText = objXMLHTTP.responseText;
WScript.Echo("Response.text:" + responseText);
WScript.Echo("Mislukt, status = " + objXMLHTTP.status);
WScript.Echo(objXMLHTTP.statusText);
}
oRs_res.MoveNext();
}
// stuur cancel berichten als de afspraak in facilitor verwijderd is.
sql = "SELECT res_reservering_key, vc_id "
+ " FROM ykpn_v_cancel_vc ";
WScript.Echo("SQL reservering = " + sql);
var oRs_res = Oracle.Execute(sql);
while (!oRs_res.eof)
{
v_reservering_key = oRs_res("res_reservering_key").Value;
v_vc_id = oRs_res("vc_id").Value;
XMLReq = '<?xml version="1.0" encoding="utf-8"?> '
+ ' <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'
+ ' <soap:Body>'
+ ' <CancelMeeting xmlns="http://tempuri.org/">'
+ ' <bookingid>' + v_vc_id + '</bookingid>'
+ ' </CancelMeeting>'
+ ' </soap:Body>'
+ ' </soap:Envelope>';
var objXMLHTTP = new ActiveXObject("MSXML2.ServerXMLHTTP.6.0")
var SXH_OPTION_SELECT_CLIENT_SSL_CERT = 3;
var SXH_PROXY_SET_PROXY = 2;
if (debugFiddler)
{
var SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS = 13056
objXMLHTTP.setProxy(SXH_PROXY_SET_PROXY, "127.0.0.1:8888")
objXMLHTTP.setOption(2) = SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS
}
objXMLHTTP.open("POST",
"http://talkandvision.com//webservice/portal.asmx"
);
objXMLHTTP.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
objXMLHTTP.setRequestHeader ("SOAPAction", "http://tempuri.org/CancelMeeting");
objXMLHTTP.setRequestHeader ("Cookie", v_cookie);
WScript.Echo("Cookie = " + v_cookie);
WScript.Echo("Send XML: " + XMLReq);
objXMLHTTP.send(XMLReq);
WScript.Echo("XML received");
if (objXMLHTTP.status==200)
{
var responseText = objXMLHTTP.responseText;
WScript.Echo("Response.text:" + responseText);
var xmlResp = new ActiveXObject("MSXML2.DOMDocument.6.0");
xmlResp.setProperty("SelectionNamespaces", 'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tv="http://tempuri.org/"');
xmlResp.resolveExternals = false; // van mij hoef je geen DTD's te controleren
xmlResp.validateOnParse = false; // van mij hoef je geen DTD's te controleren
xmlResp.loadXML(objXMLHTTP.responseText); // for parsing
var responseText = objXMLHTTP.responseText; // for debugging
v_result = xmlResp.selectSingleNode("/soap:Envelope/soap:Body/tv:CancelMeetingResponse/tv:CancelMeetingResult");
if (v_result)
{
WScript.Echo("Cancel result " + v_vc_id + ":" + v_result.text);
if (v_result.text == 'true')
{
sql = "BEGIN ykpn.set_vc_status(" + v_reservering_key + ",''); END;";
WScript.Echo("sql:" + sql);
Oracle.Execute(sql);
}
}
}
else
{
WScript.Echo("Request = " + XMLReq);
var responseText = objXMLHTTP.responseText;
WScript.Echo("Response.text:" + responseText);
WScript.Echo("Mislukt, status = " + objXMLHTTP.status);
WScript.Echo(objXMLHTTP.statusText);
}
oRs_res.MoveNext();
}
}
}
}
catch (e)
{
// WScript.Echo("Response.text" + responseText);
WScript.Echo("Serieuze fout in bookVC.js: " + e.description)
WScript.Quit(1);
}

View File

@@ -13,15 +13,13 @@ REM
REM Zorgt voor de notificatie richting de bezoeker op moment van aanmaken
REM en bij wijzigingen.
REM Zorgt voor SMS bericht met pin code 3 uur van tevoren
REM Zorgt voor SMS bericht met pin code 3 uur van tevoren
CALL ..\..\..\utils\gen_export\gen_export.bat BEZOEKERS_COM
REM Meldt de bezoeker aan bij het Nedap systeem indien de bezoeker een parkeerplaats
REM geboekt heeft die onder het Nedap toegangssysteem valt.
cscript pincode2nedap.js >> pincode2nedap.log
REM en dan doen we de communicatie naar Talk & Vision er ook maar direct bij
cscript bookVC.js >> bookVC.log

View File

@@ -1,8 +1,20 @@
safe = { // extracted from shared.inc
quoted_sql: function (tekst, maxlen) // maxlen is optioneel
{
if (tekst == null)
return "NULL";
if (!maxlen)
maxlen = 4000;
tekst = tekst.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F]+/g, "?");
tekst = tekst.substr(0, maxlen);
return "'" + tekst.replace(/\'/g,"''") + "'"; // " syntax highlight correctie
}
}
function timestamp () {
var date = new Date();
var hours = date.getHours();
var days = date.getDay();
var days = date.getDay();
var minutes = date.getMinutes();
var ampm = hours >= 12 ? 'pm' : 'am';
hours = hours % 12;
@@ -23,7 +35,7 @@ try {
WScript.Echo("Initsession");
var sql = "BEGIN fac.initsession('NL'); END;";
Oracle.Execute(sql);
sql = "SELECT naam, "
+ " pincode, "
+ " v_van, "
@@ -34,7 +46,7 @@ try {
+ " FROM ykpn_v_parkeerplaats_nedap "
WScript.Echo("sql:" + sql);
var oRs = Oracle.Execute(sql);
while (!oRs.eof)
{
v_naam = oRs("naam").Value;
@@ -133,7 +145,7 @@ try {
if (objXMLHTTP.status==200)
{
//WScript.Echo("Gelukt, status = " + objXMLHTTP.status);
var xmlResp = new ActiveXObject("MSXML2.DOMDocument.6.0");
xmlResp.setProperty("SelectionNamespaces", 'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:nedap="https://www.nedapstadstoegang.net/AeosImportService/"');
xmlResp.resolveExternals = false; // van mij hoef je geen DTD's te controleren
@@ -143,17 +155,17 @@ try {
v_nedap_id = xmlResp.selectSingleNode("/soap:Envelope/soap:Body/nedap:importResponse/nedap:importResult");
if (v_nedap_id)
{
WScript.Echo("v_nedap_id:" + v_nedap_id.text);
WScript.Echo("PINCODE v_nedap_id:" + v_nedap_id.text);
if (v_nedap_id.text >= 0)
{
sql = "BEGIN ykpn.set_nedap_status("+v_bez_bezoekers_key+",'" + v_nedap_id.text +"'); END;";
sql = "BEGIN ykpn.set_nedap_status("+v_bez_bezoekers_key+", 'PINCODE', " + safe.quoted_sql(v_nedap_id.text) +"); END;";
Oracle.Execute(sql);
}
else
{
WScript.Echo("Request = " + XMLReq);
WScript.Echo("Request = " + XMLReq);
}
}
}
else
{
WScript.Echo("Request = " + XMLReq);
@@ -169,10 +181,126 @@ try {
WScript.Echo("Mislukt, status = " + objXMLHTTP.status);
WScript.Echo(objXMLHTTP.statusText);
}
oRs.MoveNext();
}
// Nu gaan we kentekengegevens toevoegen aan de pincode
sql = "SELECT pincode, "
+ " kenteken, "
+ " bez_bezoekers_key "
+ " FROM ykpn_v_kenteken_nedap "
WScript.Echo("sql:" + sql);
var oRs = Oracle.Execute(sql);
while (!oRs.eof)
{
v_pincode = oRs("pincode").Value;
v_kenteken = oRs("kenteken").Value;
v_bez_bezoekers_key = oRs("bez_bezoekers_key").Value;
var XMLReq= '<?xml version="1.0" encoding="utf-8"?>'
+'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'
+' <soap:Body>'
+' <import xmlns="https://www.nedapstadstoegang.net/AeosImportService/">'
+' <usr>adminfacilitor</usr>'
+' <pwd>fac8463#t@ned</pwd>'
+' <dbname>aeosdb21</dbname>'
+' <items>'
+' <importItem>'
+' <key>import_function</key>'
+' <value>18</value>'
+' </importItem>'
+' <importItem>'
+' <key>carriertype</key>'
+' <value>2</value>'
+' </importItem>'
+' <importItem>'
+' <key>personnelnr</key>'
+' <value>xy'+v_pincode+'</value>'
+' </importItem>'
+' <importItem>'
+' <key>badgetype</key>'
+' <value>KENTEKEN</value>'
+' </importItem>'
+' <importItem>'
+' <key>badgenumber</key>'
+' <value>'+v_kenteken+'</value>'
+' </importItem>'
+' </items>'
+' </import>'
+' </soap:Body>'
+'</soap:Envelope>';
//WScript.Echo("Bericht = " + XMLReq);
var objXMLHTTP = new ActiveXObject("MSXML2.ServerXMLHTTP.6.0")
var SXH_OPTION_SELECT_CLIENT_SSL_CERT = 3;
var SXH_PROXY_SET_PROXY = 2;
debugFiddler = 0;
if (debugFiddler)
{
var SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS = 13056
objXMLHTTP.setProxy(SXH_PROXY_SET_PROXY, "127.0.0.1:8888")
objXMLHTTP.setOption(2) = SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS
}
//WScript.Echo("Open connection");
objXMLHTTP.open("POST",
"https://www.nedapstadstoegang.net/AeosImportService/service.asmx"
);
//WScript.Echo("Set header");
objXMLHTTP.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
objXMLHTTP.setRequestHeader ("SOAPAction", "https://www.nedapstadstoegang.net/AeosImportService/import");
//WScript.Echo("Send XML");
objXMLHTTP.send(XMLReq);
//WScript.Echo("XML received");
if (objXMLHTTP.status==200)
{
//WScript.Echo("Gelukt, status = " + objXMLHTTP.status);
var xmlResp = new ActiveXObject("MSXML2.DOMDocument.6.0");
xmlResp.setProperty("SelectionNamespaces", 'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:nedap="https://www.nedapstadstoegang.net/AeosImportService/"');
xmlResp.resolveExternals = false; // van mij hoef je geen DTD's te controleren
xmlResp.validateOnParse = false; // van mij hoef je geen DTD's te controleren
xmlResp.loadXML(objXMLHTTP.responseText); // for parsing
var responseText = objXMLHTTP.responseText; // for debugging
v_nedap_id = xmlResp.selectSingleNode("/soap:Envelope/soap:Body/nedap:importResponse/nedap:importResult");
if (v_nedap_id)
{
WScript.Echo("KENTEKEN v_nedap_id:" + v_nedap_id.text);
if (v_nedap_id.text >= 0)
{
sql = "BEGIN ykpn.set_nedap_status("+v_bez_bezoekers_key+", 'KENTEKEN', " + safe.quoted_sql(v_nedap_id.text) + "; END;";
Oracle.Execute(sql);
}
else
{
WScript.Echo("Request = " + XMLReq);
}
}
else
{
WScript.Echo("Request = " + XMLReq);
WScript.Echo("Response = " + responseText);
WScript.Echo("v_nedap_id: NULL");
}
}
else
{
WScript.Echo("Request = " + XMLReq);
WScript.Echo("Mislukt, status = " + objXMLHTTP.status);
WScript.Echo(objXMLHTTP.statusText);
}
oRs.MoveNext();
}
}
catch (e)
{