123 lines
4.8 KiB
Plaintext
123 lines
4.8 KiB
Plaintext
<%@ language = "JavaScript" %>
|
|
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: api_gen_import.asp
|
|
Description: API voor het importeren van data uit xmlbestanden.
|
|
Werking werkt naar analogie van gen_import.
|
|
Parameters: Upload van een xml
|
|
Status:
|
|
Context:
|
|
Notes: Technisch is xml niet per se noodzakelijk, CSV kunnen we ook aan
|
|
*/
|
|
DOCTYPE_Disable = 1;
|
|
THIS_FILE = "appl/api/api_gen_import.asp";
|
|
%>
|
|
<!-- #include file="../../appl/Shared/common.inc" -->
|
|
<!-- #include file="../../appl/api/api.inc" -->
|
|
<!-- #include file="../../appl/shared/FlexFiles.inc" -->
|
|
<script language="javascript" src="../imp/imp_shared.js" runat="server"></script>
|
|
<%
|
|
// We sturen het antwoord in UTF-8.
|
|
Session.Codepage = 65001;
|
|
Response.Charset = 'utf-8';
|
|
|
|
var API = new API_func();
|
|
|
|
var import_app_key = API.apidata.options['import_app_key'];
|
|
var bytes = Request.TotalBytes;
|
|
if (bytes == 0)
|
|
{
|
|
__DoLog("api_gen_import empty body posted", "#ffff00");
|
|
Response.Write("Error: no data posted for API import");
|
|
Response.End; // Grof maar anders AiAi, dat is nog erger
|
|
}
|
|
|
|
fileStream = Server.CreateObject("ADODB.Stream");
|
|
fileStream.Type = 1; // adTypeBinary eerst nog
|
|
fileStream.Open();
|
|
fileStream.Write(Request.BinaryRead(bytes));
|
|
|
|
if (API.apidata.loglevel & 1)
|
|
fileStream.SaveToFile(Server.MapPath(rooturl + "/temp/") + "/" + customerId + "_" + API.APIname + ".tmp", 2); // 2=create
|
|
|
|
var res = impReadStream(fileStream, import_app_key,
|
|
{ fac_home: Server.MapPath(rooturl + "/") + "/",
|
|
filepathname: "API " + API.APIname,
|
|
customerId: customerId,
|
|
keep_old: 300, // Parallelle import 300 seconden ondersteunen
|
|
user_key: user_key,
|
|
keep_backup: true // mits fac_import_app_folder gezet
|
|
});
|
|
var import_key = res.import_key;
|
|
|
|
if (res.success)
|
|
{
|
|
var warn = L("lcl_imp_read_lines") + res.read_lines;
|
|
var res = impProcessStream(res.import_key, { customerId: customerId,
|
|
user_key: user_key });
|
|
}
|
|
else
|
|
{
|
|
var warn = res.warning;
|
|
__DoLog("Import (app_key={0}) mislukt: {1}".format(import_app_key, warn), "#ffff00");
|
|
API.error(warn); // Abort met 500-status
|
|
}
|
|
|
|
var xmlResp = new ActiveXObject("MSXML2.DOMDocument.6.0");
|
|
xmlResp.appendChild(xmlResp.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"utf-8\""));
|
|
|
|
// The response
|
|
var FCLTElement = xmlResp.createElement("facilitor");
|
|
|
|
var elementResult = xmlResp.createElement("result");
|
|
var elementResultText = xmlResp.createTextNode(warn);
|
|
elementResult.appendChild(elementResultText);
|
|
FCLTElement.appendChild(elementResult);
|
|
|
|
if (import_key > 0)
|
|
{
|
|
var elementDetails = xmlResp.createElement("details");
|
|
var sql = "SELECT imp_log_status,"
|
|
+ " imp_log_omschrijving,"
|
|
+ " imp_log_hint"
|
|
+ " FROM imp_log"
|
|
+ " WHERE fac_import_key = " + import_key
|
|
+ " AND imp_log_status <> 'I'";
|
|
var oRs = Oracle.Execute(sql);
|
|
while (!oRs.Eof)
|
|
{
|
|
var elementDetail = xmlResp.createElement("detail");
|
|
var elementStatus = xmlResp.createElement("status");
|
|
var elementStatusText = xmlResp.createTextNode(oRs("imp_log_status").Value);
|
|
elementStatus.appendChild(elementStatusText);
|
|
elementDetail.appendChild(elementStatus);
|
|
if (oRs("imp_log_omschrijving").Value != null )
|
|
{
|
|
var elementOms = xmlResp.createElement("omschrijving");
|
|
var elementOmsText = xmlResp.createTextNode(oRs("imp_log_omschrijving").Value);
|
|
elementOms.appendChild(elementOmsText);
|
|
elementDetail.appendChild(elementOms);
|
|
}
|
|
if (oRs("imp_log_hint").Value != null )
|
|
{
|
|
var elementHint = xmlResp.createElement("hint");
|
|
var elementHintText = xmlResp.createTextNode(oRs("imp_log_hint").Value);
|
|
elementHint.appendChild(elementHintText);
|
|
elementDetail.appendChild(elementHint);
|
|
}
|
|
elementDetails.appendChild(elementDetail);
|
|
oRs.moveNext();
|
|
}
|
|
oRs.Close();
|
|
|
|
FCLTElement.appendChild(elementDetails);
|
|
}
|
|
|
|
xmlResp.appendChild(FCLTElement);
|
|
|
|
Response.ContentType = "text/xml";
|
|
Response.Write(xmlResp.xml);
|
|
%>
|