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 ----------------------------------------- // ----------------------------- Xtractor functies -----------------------------------------
function FCLT_2_AX_Facturen(){ 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_API = "FACT4AX_XTRACTOR";
var v_APIKEY = G_marx_apikey; var v_APIKEY = G_marx_apikey;
var v_req = "<GetFACT4AX_XTRACTOR><adapterversion>" + G_Mareon_Adapter + "</adapterversion><APIkey>" + v_APIKEY + "</APIkey></GetFACT4AX_XTRACTOR>"
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_type = 1; // xml
var v_soap_envelop = 1; //soap-envelop eromheen 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); 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 == ""){ if (G_ax_xtractorfolder != "" && G_pdf_xtractorfolder == ""){
__Log("G_pdf_xtractorfolder niet gevuld", 1); __Log("G_pdf_xtractorfolder niet gevuld", 1);
@@ -31,8 +38,12 @@ function F_GetFacturen()
while (l_deelxml) while (l_deelxml)
{ {
var l_strQuery_fin_factuur_key = "//batch/fin_factuur_key[" + i + "]"; 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); __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\"?>" var XMLResult = "<?xml version=\"1.0\"?>"
+"<batch>" +"<batch>"
@@ -54,7 +65,7 @@ function F_GetFacturen()
} }
// Direct sending Xtractor format to AX365 via webservice // Direct sending Xtractor format to AX365 via webservice
if (AX_or_Tobias() == "A365") { 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; i = i + 1;
var strQuery = "//batch/document[" + i + "]"; var strQuery = "//batch/document[" + i + "]";
@@ -63,17 +74,23 @@ function F_GetFacturen()
} }
function F_GetFacturen_FCLT() function F_GetFacturen_FCLT()
{ {
var v_API = "FACT4_FACILITOR"; var v_API = "FACT4_FACILITOR";
var v_APIKEY = G_marx_apikey; var v_APIKEY = G_marx_apikey;
var v_req = "<GetFACT4_FACILITOR><adapterversion>" + G_Mareon_Adapter + "</adapterversion><APIkey>" + v_APIKEY + "</APIkey></GetFACT4_FACILITOR>" 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_type = 1; // xml
var v_soap_envelop = 1; //soap-envelop eromheen 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); 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 == ""){ if (G_fclt_factuur_pdffolder == ""){
__Log("G_fclt_factuur_pdffolder niet gevuld", 1); __Log("G_fclt_factuur_pdffolder niet gevuld", 1);
} }
@@ -87,9 +104,13 @@ function F_GetFacturen_FCLT()
__Log("PDF_2_FACILITOR", 3); __Log("PDF_2_FACILITOR", 3);
var l_strQuery_fin_factuur_key = "//batch/fin_factuur_key[" + i + "]"; 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); __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); l_pdf_base64 = F_Get_Base64_FactuurFile(l_fin_factuur_key);
if (l_pdf_base64 != ""){ if (l_pdf_base64 != ""){
// De node Attachment in de XML. // De node Attachment in de XML.
@@ -143,13 +164,25 @@ function F_GetFacturen_FCLT()
if (l_statuscode == 1){ if (l_statuscode == 1){
// Factuur is goed verwerkt door Facilitor // 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); __Log("Facilitor factuurverwerking succesvol",3);
} }
else{ else{
var l_extra_omschr = l_statustekst + " - " + l_reponsetekst; var l_extra_omschr = l_statustekst + " - " + l_reponsetekst;
l_extra_omschr = l_extra_omschr.substr(0, 4000); 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); __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); 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... // SPlitsen van XML's...
var i = 1; var i = 1;
@@ -205,7 +238,13 @@ function F_GetFacturen_REMS()
var v_API = "FACT4_REMS_UBL21"; var v_API = "FACT4_REMS_UBL21";
var v_APIKEY = G_marx_apikey; var v_APIKEY = G_marx_apikey;
var v_req = "<GetFACT4_REMS_UBL21><adapterversion>" + G_Mareon_Adapter + "</adapterversion><APIkey>" + v_APIKEY + "</APIkey></GetFACT4_REMS_UBL21>" 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_type = 1; // xml
var v_soap_envelop = 1; //soap-envelop eromheen 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); var l_pdf_base64 = F_Get_Base64_FactuurFile(v_factuur_key);
if (l_pdf_base64 != ""){ if (l_pdf_base64 != ""){
@@ -462,17 +501,35 @@ function A365_Xtractor2AX(v_resp, i, v_deelxml, v_factuur_key)
if (l_statuscode == 0){ if (l_statuscode == 0){
// Fout (HTTP500 oid) in de communicatie, dit is sowieso fout... // 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); __Log("AX365 factuurverwerking NIET succesvol",1);
} }
else { else {
// Wel goed (HTTP200 oid), maar nu nog checken op basis van interne bericht, staat daar true of false.... // 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 (l_reponsetekst.search("<result>true</result>") != -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); __Log("AX365 factuurverwerking succesvol",3);
} }
else { else {
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); __Log("AX365 factuurverwerking NIET succesvol",1);
} }
} }