From 414ff06dae2ddb9788ba1b0090d3611cac9715d4 Mon Sep 17 00:00:00 2001 From: Marcel Bourseau Date: Mon, 28 Dec 2020 16:13:46 +0000 Subject: [PATCH] MARX#62647: Koppeling AX365 - Mareon (Push) - Facturen kunnen nu vanuit Sync ook via de NQ (Notifyqueue) route worden opgehaald. svn path=/Mareon/trunk/; revision=49298 --- ax/SRC/AxFacilitor.js | 2 +- ax/SRC/F_GetFacturen.js | 97 ++++++++++++++++++++++++++++++++--------- 2 files changed, 78 insertions(+), 21 deletions(-) diff --git a/ax/SRC/AxFacilitor.js b/ax/SRC/AxFacilitor.js index 3bc8b79..6d06865 100644 --- a/ax/SRC/AxFacilitor.js +++ b/ax/SRC/AxFacilitor.js @@ -214,7 +214,7 @@ function MARX_2_REMS_Facturen(){ // ----------------------------- Xtractor functies ----------------------------------------- function FCLT_2_AX_Facturen(){ - F_GetFacturen(); + F_GetFacturen_AX(); } // ----------------------------- ----------------------------------------- diff --git a/ax/SRC/F_GetFacturen.js b/ax/SRC/F_GetFacturen.js index a81f7a4..4448552 100644 --- a/ax/SRC/F_GetFacturen.js +++ b/ax/SRC/F_GetFacturen.js @@ -7,18 +7,25 @@ // -------------------------------------------------------------------------------------- -function F_GetFacturen() +function F_GetFacturen_AX() { - var v_API = "FACT4AX_XTRACTOR"; var v_APIKEY = G_marx_apikey; - var v_req = "" + G_Mareon_Adapter + "" + v_APIKEY + "" + + if (G_push_notifyqueue == "0"){ + var v_req = "" + G_Mareon_Adapter + "" + v_APIKEY + "" + } + else{ + //start else-tak "push/notifyqueue" + var v_req = "" + G_Mareon_Adapter + "" + } + var v_type = 1; // xml var v_soap_envelop = 1; //soap-envelop eromheen var v_resp = apiFCLT(G_marx_url, v_API, v_APIKEY, v_req, v_type, v_soap_envelop, 0); - __Log("F_GetFacturen: " + v_resp.text, 3); + __Log("F_GetFacturen_AX: " + v_resp.text, 4); if (G_ax_xtractorfolder != "" && G_pdf_xtractorfolder == ""){ __Log("G_pdf_xtractorfolder niet gevuld", 1); @@ -31,8 +38,12 @@ function F_GetFacturen() while (l_deelxml) { var l_strQuery_fin_factuur_key = "//batch/fin_factuur_key[" + i + "]"; - l_fin_factuur_key = v_resp.selectSingleNode(l_strQuery_fin_factuur_key).text; + var l_fin_factuur_key = v_resp.selectSingleNode(l_strQuery_fin_factuur_key).text; __Log("l_fin_factuur_key: " + l_fin_factuur_key, 3); + + var l_strQuery_fac_notificatie_key = "//batch/fac_notificatie_key[" + i + "]"; + var l_fac_notificatie_key = v_resp.selectSingleNode(l_strQuery_fac_notificatie_key).text; + __Log("l_fac_notificatie_key: " + l_fac_notificatie_key, 3); var XMLResult = "" +"" @@ -54,7 +65,7 @@ function F_GetFacturen() } // Direct sending Xtractor format to AX365 via webservice if (AX_or_Tobias() == "A365") { - A365_Xtractor2AX(v_resp, i, l_deelxml, l_fin_factuur_key); + A365_Xtractor2AX(v_resp, i, l_deelxml, l_fin_factuur_key, l_fac_notificatie_key); } i = i + 1; var strQuery = "//batch/document[" + i + "]"; @@ -63,17 +74,23 @@ function F_GetFacturen() } function F_GetFacturen_FCLT() -{ - +{ var v_API = "FACT4_FACILITOR"; var v_APIKEY = G_marx_apikey; - var v_req = "" + G_Mareon_Adapter + "" + v_APIKEY + "" + if (G_push_notifyqueue == "0"){ + var v_req = "" + G_Mareon_Adapter + "" + v_APIKEY + "" + } + else{ + //start else-tak "push/notifyqueue" + var v_req = "" + G_Mareon_Adapter + "" + } + var v_type = 1; // xml var v_soap_envelop = 1; //soap-envelop eromheen var v_resp = apiFCLT(G_marx_url, v_API, v_APIKEY, v_req, v_type, v_soap_envelop, 0); - __Log("F_GetFacturen: " + v_resp.text, 3); + __Log("F_GetFacturen_FCLT: " + v_resp.text, 4); if (G_fclt_factuur_pdffolder == ""){ __Log("G_fclt_factuur_pdffolder niet gevuld", 1); } @@ -87,9 +104,13 @@ function F_GetFacturen_FCLT() __Log("PDF_2_FACILITOR", 3); var l_strQuery_fin_factuur_key = "//batch/fin_factuur_key[" + i + "]"; - l_fin_factuur_key = v_resp.selectSingleNode(l_strQuery_fin_factuur_key).text; + var l_fin_factuur_key = v_resp.selectSingleNode(l_strQuery_fin_factuur_key).text; __Log("l_fin_factuur_key: " + l_fin_factuur_key, 3); + var l_strQuery_fac_notificatie_key = "//batch/fac_notificatie_key[" + i + "]"; + var l_fac_notificatie_key = v_resp.selectSingleNode(l_strQuery_fac_notificatie_key).text; + __Log("l_fac_notificatie_key: " + l_fac_notificatie_key, 3); + l_pdf_base64 = F_Get_Base64_FactuurFile(l_fin_factuur_key); if (l_pdf_base64 != ""){ // De node Attachment in de XML. @@ -143,13 +164,25 @@ function F_GetFacturen_FCLT() if (l_statuscode == 1){ // Factuur is goed verwerkt door Facilitor - MARX_Send_Succes_Or_Failure(l_fin_factuur_key, "FIN_FACTUUR_POST_SUCCESS", "") + if (G_push_notifyqueue == "0"){ + MARX_Send_Succes_Or_Failure(l_fin_factuur_key, "FIN_FACTUUR_POST_SUCCESS", "") + } + else{ + //start else-tak "push/notifyqueue" + post_do_exec_notification(v_notification_key, v_result); + } __Log("Facilitor factuurverwerking succesvol",3); } else{ var l_extra_omschr = l_statustekst + " - " + l_reponsetekst; l_extra_omschr = l_extra_omschr.substr(0, 4000); - MARX_Send_Succes_Or_Failure(l_fin_factuur_key, "FIN_FACTUUR_POST_FAIL", l_extra_omschr) + if (G_push_notifyqueue == "0"){ + MARX_Send_Succes_Or_Failure(l_fin_factuur_key, "FIN_FACTUUR_POST_FAIL", l_extra_omschr) + } + else{ + //start else-tak "push/notifyqueue" + post_do_exec_notification(v_notification_key, v_result); + } __Log("Facilitor factuurverwerking NIET succesvol",1); } @@ -170,7 +203,7 @@ function F_GetFacturen_Tobias() var v_resp = apiFCLT(G_marx_url, v_API, v_APIKEY, v_req, v_type, v_soap_envelop, 0); - __Log("F_GetFacturen_Tobias: " + v_resp.text,3); + __Log("F_GetFacturen_Tobias: " + v_resp.text,4); // SPlitsen van XML's... var i = 1; @@ -205,7 +238,13 @@ function F_GetFacturen_REMS() var v_API = "FACT4_REMS_UBL21"; var v_APIKEY = G_marx_apikey; - var v_req = "" + G_Mareon_Adapter + "" + v_APIKEY + "" + if (G_push_notifyqueue == "0"){ + var v_req = "" + G_Mareon_Adapter + "" + v_APIKEY + "" + } + else{ + //start else-tak "push/notifyqueue" + var v_req = "" + G_Mareon_Adapter + "" + } var v_type = 1; // xml var v_soap_envelop = 1; //soap-envelop eromheen @@ -400,7 +439,7 @@ function A2012_Xtractor2AX(v_xml, xtractFile) { } -function A365_Xtractor2AX(v_resp, i, v_deelxml, v_factuur_key) +function A365_Xtractor2AX(v_resp, i, v_deelxml, v_factuur_key, v_notification_key) { var l_pdf_base64 = F_Get_Base64_FactuurFile(v_factuur_key); if (l_pdf_base64 != ""){ @@ -462,17 +501,35 @@ function A365_Xtractor2AX(v_resp, i, v_deelxml, v_factuur_key) if (l_statuscode == 0){ // Fout (HTTP500 oid) in de communicatie, dit is sowieso fout... - MARX_Send_Succes_Or_Failure(v_factuur_key, "FIN_FACTUUR_POST_FAIL", l_extra_omschr) + if (G_push_notifyqueue == "0"){ + MARX_Send_Succes_Or_Failure(v_factuur_key, "FIN_FACTUUR_POST_FAIL", l_extra_omschr) + } + else{ + //start else-tak "push/notifyqueue" + post_do_exec_notification(v_notification_key, v_result); + } __Log("AX365 factuurverwerking NIET succesvol",1); } else { // Wel goed (HTTP200 oid), maar nu nog checken op basis van interne bericht, staat daar true of false.... if (l_reponsetekst.search("true") != -1) { - MARX_Send_Succes_Or_Failure(v_factuur_key, "FIN_FACTUUR_POST_SUCCESS", "") + if (G_push_notifyqueue == "0"){ + MARX_Send_Succes_Or_Failure(v_factuur_key, "FIN_FACTUUR_POST_SUCCESS", "") + } + else{ + //start else-tak "push/notifyqueue" + post_do_exec_notification(v_notification_key, v_result); + } __Log("AX365 factuurverwerking succesvol",3); } - else { - MARX_Send_Succes_Or_Failure(v_factuur_key, "FIN_FACTUUR_POST_FAIL", l_extra_omschr) + else { + if (G_push_notifyqueue == "0"){ + MARX_Send_Succes_Or_Failure(v_factuur_key, "FIN_FACTUUR_POST_FAIL", l_extra_omschr) + } + else{ + //start else-tak "push/notifyqueue" + post_do_exec_notification(v_notification_key, v_result); + } __Log("AX365 factuurverwerking NIET succesvol",1); } }