<%@ language = "JavaScript" %> <% /* $Revision$ $Id$ File: API_mareon_postaction.asp Description: API om (bekend formaat) opdracht (T365, SALES005, REMS, FCLT) te verwerken en realtime / direct te versturen Parameters: Een xml Status: Context: Initiele opdracht (1) OF geupdate (meerwerk)opdracht (2) OF statusupdate ANN (3) van opdrachtgever naar opdrachtnemer. Notes: */ DOCTYPE_Disable = 1; THIS_FILE = "appl/marx/API_mareon_postaction.asp"; %>
<% Session.Codepage = 65001; Response.Charset = 'utf-8'; function marx_get_ref_key (p_xml) { var l_ref_key; var l_xml_query = "//ref_key"; var l_ref_key = xmlNodeVal(p_xml, l_xml_query); return (l_ref_key); } function marx_get_action_code (p_xml) { var l_action_code; var l_xml_query = "//action_code"; var l_action_code = xmlNodeVal(p_xml, l_xml_query); return (l_action_code); } function marx_get_success (p_xml) { var l_success; var l_xml_query = "//success"; var l_success = xmlNodeVal(p_xml, l_xml_query); return (l_success); } // ***************************** START START START **************************************** var API = new API_func(); // ACTION_REF_KEY var xmlReq = styledRequestXML(API); // originele XML die we binnenkrijgen // //<xml> //<action> // <action_code>OPDR_POST_BIJLAGE</action_code> // <ref_key>3554243</ref_key> //</action> //</xml> // Fetch uit XML eerst de action_code die wordt aangeroepen var l_action_code = marx_get_action_code (xmlReq); __Log("l_action_code:" + l_action_code); // Fetch eerst indien alles gelukt is (dwz opdracht aangemaakt of gewijzigd), de mld_opdr_key, die hebben we eerst nodig.... var l_ref_key = marx_get_ref_key (xmlReq); __Log("l_ref_key:" + l_ref_key); var v_API_org = API.APIname; var v_API = "ACTION_REF_KEY_IMPORT"; var API_imp = new API_func(v_API); // utf-8 moet als parameter mee, b.v. een €-teken in een omschrijving van de XML zorgt ervoor dat de XML ongeldig wordt... var resultdata = api_gen_import(API_imp, xmlReq.xml, "utf-8"); var result = resultdata.xmldom; if (API.apidata.errorhandling == 1 && user.errorhandling() == 1) { if (resultdata.anyError) // een 'E' in imp_log { Response.Status = '400 Bad Request'; } } __Log("result:" + result.xml); if (result) { // Is de api_import gelukt, we bepalen dat adhv success uit de response-XML // //<mareon> // <result> // <success>true</success> // </result> //</mareon> var l_success = marx_get_success (result); __Log("l_success:" + l_success); var xmldoc = new ActiveXObject("Msxml2.DOMDocument.6.0"); xmldoc.async = false; xmldoc.loadXML(result.xml); if (xmldoc.parseError.errorCode != 0) { var myErr = xmldoc.parseError; __Log("XML2STR3 Error in xmlfile: " + myErr.reason); Response.Write ("
Error in xmlfile:
" + safe.html(myErr.reason) + "
"); Response.End; } __Log("xmldoc.xml:" + xmldoc.xml); Response.ContentType = "application/soap+xml"; if (API.apidata.stylesheet_out) { // Niet super efficient dat we eerst naar tekstuele xml gaan maar ach... STR2Stream(xmldoc.xml, API.apidata.stylesheet_out, Response, {}); } else { Response.Write(xmldoc.xml); } if (l_action_code == "OPDR_POST_BIJLAGE" && l_ref_key && l_success == "true") { // In geval van OPDR_POST_BIJLAGE kunnen we de opdracht direct PUSHen via putorders var l_puo_immediate = marx_get_puo_immediate (); if (l_puo_immediate){ __Log("marx_force_putorders: START"); marx_force_putorders (l_ref_key); } } } else { API.error("Could not send " + v_API); } ASPPAGE_END(); %>