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
This commit is contained in:
Marcel Bourseau
2020-12-28 16:13:46 +00:00
parent 7f594ac162
commit 414ff06dae
2 changed files with 78 additions and 21 deletions

View File

@@ -214,7 +214,7 @@ function MARX_2_REMS_Facturen(){
// ----------------------------- Xtractor functies -----------------------------------------
function FCLT_2_AX_Facturen(){
F_GetFacturen();
F_GetFacturen_AX();
}
// ----------------------------- -----------------------------------------

View File

@@ -7,18 +7,25 @@
// --------------------------------------------------------------------------------------
function F_GetFacturen()
function F_GetFacturen_AX()
{
var v_API = "FACT4AX_XTRACTOR";
var v_APIKEY = G_marx_apikey;
if (G_push_notifyqueue == "0"){
var v_req = "<GetFACT4AX_XTRACTOR><adapterversion>" + G_Mareon_Adapter + "</adapterversion><APIkey>" + v_APIKEY + "</APIkey></GetFACT4AX_XTRACTOR>"
}
else{
//start else-tak "push/notifyqueue"
var v_req = "<GetFACT4AX_XTRACTOR_NQ><adapterversion>" + G_Mareon_Adapter + "</adapterversion></GetFACT4AX_XTRACTOR_NQ>"
}
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,9 +38,13 @@ 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 = "<?xml version=\"1.0\"?>"
+"<batch>"
+ l_deelxml.xml
@@ -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 + "]";
@@ -64,16 +75,22 @@ function F_GetFacturen()
function F_GetFacturen_FCLT()
{
var v_API = "FACT4_FACILITOR";
var v_APIKEY = G_marx_apikey;
if (G_push_notifyqueue == "0"){
var v_req = "<GetFACT4_FACILITOR><adapterversion>" + G_Mareon_Adapter + "</adapterversion><APIkey>" + v_APIKEY + "</APIkey></GetFACT4_FACILITOR>"
}
else{
//start else-tak "push/notifyqueue"
var v_req = "<GetFACT4_FACILITOR_NQ><adapterversion>" + G_Mareon_Adapter + "</adapterversion></GetFACT4_FACILITOR_NQ>"
}
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
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);
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;
if (G_push_notifyqueue == "0"){
var v_req = "<GetFACT4_REMS_UBL21><adapterversion>" + G_Mareon_Adapter + "</adapterversion><APIkey>" + v_APIKEY + "</APIkey></GetFACT4_REMS_UBL21>"
}
else{
//start else-tak "push/notifyqueue"
var v_req = "<GetFACT4_REMS_UBL21_NQ><adapterversion>" + G_Mareon_Adapter + "</adapterversion></GetFACT4_REMS_UBL21_NQ>"
}
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...
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("<result>true</result>") != -1) {
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 {
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);
}
}