From 6e806d84bdf65690686c0acf41c02b1f8c99a0a5 Mon Sep 17 00:00:00 2001 From: Marcel Bourseau Date: Tue, 2 May 2023 11:28:49 +0000 Subject: [PATCH] MARX#76891 VM387219: Registratie in AX2012 of inkooporder aanwezig is in Mareon svn path=/Mareon/trunk/; revision=60261 --- ax/SRC/A2012_GetOpdrachten.js | 66 +++++++++++++++++++++++++++++++++-- ax/SRC/AxFacilitor.js | 6 ++-- ax/SRC/Common.js | 2 +- ax/SRC/F_GetMareonInfo.js | 7 ++++ 4 files changed, 76 insertions(+), 5 deletions(-) diff --git a/ax/SRC/A2012_GetOpdrachten.js b/ax/SRC/A2012_GetOpdrachten.js index fd8a227..072c57c 100644 --- a/ax/SRC/A2012_GetOpdrachten.js +++ b/ax/SRC/A2012_GetOpdrachten.js @@ -89,7 +89,11 @@ function A2012_GetOpdrachten() // Er zijn opdrachten, zodat aanroep van Facilitor api oke is... // Wegschrijven van de opdrachten (voor aannemer 'v_supplier_id') naar Facilitor.... __Log("A2012_GetOpdrachten: aantal opdrachten = " + l_aantal_opdrachten ,2); - api_F_PutXML(v_xml_opdrachten, "AX_OPDRACHTEN"); + var l_marx_response_xml = api_F_PutXML(v_xml_opdrachten, "AX_OPDRACHTEN"); + if (l_marx_response_xml) + { + A2012_PurchOrderS_Delivered(l_marx_response_xml); + } } else{ __Log("A2012_GetOpdrachten: Geen opdrachten.",2); @@ -160,4 +164,62 @@ function A2012_GetBijlage_via_ReferenceId(v_docu_ref_id) var v_resp = apiAX(v_API, v_req, v_type, v_soapAction, 0); return v_resp; -} \ No newline at end of file +} + +// MARX#76891: Registratie in AX2012 of inkooporder aanwezig is in Mareon +function A2012_PurchOrderS_Delivered(v_marx_response_xml) +{ + // Voorbeeld v_marx_response_xml (response uit Mareon): + // + //
+ // .. + // + // ION100236531-mb6 + // 2561187 + // ION100236531-mb5 + // 2561186 + // true + // + //
+ //
+ + // Voor elke node moet 'SupplierPortalPurchOrderDeliveredRequest' worden aangeroepen + + var l_result_str = "facilitor/details/result"; + var l_mld_opdr_externnr_str = "mld_opdr_externnr"; + + var l_node_result = v_marx_response_xml.selectNodes(l_result_str); + for (var i=0; i < l_node_result.length; i++) + { + var l_nodes_mld_opdr_externnr = l_node_result[i].selectNodes(l_mld_opdr_externnr_str); + + for (var j=0; j < l_nodes_mld_opdr_externnr.length; j++) + { + var l_mld_opdr_externnr_node = l_nodes_mld_opdr_externnr[j]; + if (l_mld_opdr_externnr_node) + { + var l_mld_opdr_externnr = l_mld_opdr_externnr_node.text; + if (l_mld_opdr_externnr){ + A2012_PurchOrder_Delivered(l_mld_opdr_externnr); + } + } + } + } +} + +function A2012_PurchOrder_Delivered(v_purch_Id) +{ + var v_API = "SupplierPortalPurchOrderDeliveredRequest"; + var v_req = ' '+ + '' + + '' + + ''+ v_purch_Id +'' + + ''+ G_company_Id +'' + + '' + + '' + + ''; + var v_type = 0; + var v_soapAction = "SupplierPortal/PurchOrderDelivered"; + var v_resp = apiAX(v_API, v_req, v_type, v_soapAction, 0); + return v_resp; +} diff --git a/ax/SRC/AxFacilitor.js b/ax/SRC/AxFacilitor.js index 877c124..f7234a7 100644 --- a/ax/SRC/AxFacilitor.js +++ b/ax/SRC/AxFacilitor.js @@ -734,7 +734,7 @@ function FACILITOR_2_Xtractor() // 1.70 -- MARX#76415: Mareon koppeling met 3rd Party Viewpoint + MARX#74444: Het '&' teken in de naam van een bijlage wordt niet ondersteund in de sync. // 1.71 -- MARX#76342: Mareon Bijlagen aanpassing AX2012 via nieuwe webservices die base64 stuk voor stuk ophaalt tbv performance // 1.72 -- MARX#77225: Bugje statusbericht naar 3RD party Viewpoint/Itris + MARX#76900 Mareon Universele Opdracht API -// 1.73 -- MARX#76390: Kan oude logging van de SYNC adapter automatisch opgeruimd worden +// 1.73 -- MARX#76390: Kan oude logging van de SYNC adapter automatisch opgeruimd worden + MARX#76891: Registratie in AX2012 of inkooporder aanwezig is in Mareon __Log("************************************************** START Mareon Adapter ***********************************************", 0); @@ -886,7 +886,6 @@ var G_mar_timeout = 0; //initieel 1e keer. // MARX#62647: Koppeling AX365 - Mareon (Push) var G_push_notifyqueue = parseInt(l_array[26]); // 0 (no push koppeling) or 1 (push koppeling) - v_woco = l_array[2]; // Naam van de woco-bedrijf __Log("*** Company: " + v_woco, 2); v_min_adapter_version = l_array[0]; // Versienummer, iets als "1", of "1.1", of "1.23" etc @@ -951,6 +950,9 @@ var G_mar_timeout = 0; //initieel 1e keer. __Log("***XML- G_ID_saxton_scope is overruled by Mareon", 3); } + // MARX#76891 VM387219: Registratie in AX2012 of inkooporder aanwezig is in Mareon + var G_company_Id = l_array[27]; // AX-id van interne bedrijf, o.a. nodig in de webservice SupplierPortalPurchOrderDeliveredRequest + if (AX_or_Tobias() == "A") { diff --git a/ax/SRC/Common.js b/ax/SRC/Common.js index 61b213b..71778b5 100644 --- a/ax/SRC/Common.js +++ b/ax/SRC/Common.js @@ -43,7 +43,7 @@ function api_F_PutXML(v_xml, v_API) var l_result_data = apiFCLT(G_marx_url, v_API, v_APIKEY, v_req, v_type, v_soap_envelop, 0); //l_result_data is XML object, use method .xml to return xml-text. - return l_result_data.xml; + return l_result_data; } diff --git a/ax/SRC/F_GetMareonInfo.js b/ax/SRC/F_GetMareonInfo.js index 9d2de1a..9ca216d 100644 --- a/ax/SRC/F_GetMareonInfo.js +++ b/ax/SRC/F_GetMareonInfo.js @@ -182,6 +182,13 @@ function F_GetMareonInfo() l_result.push(l_mar_push_notifyqueue.text); // (array 26) // Einde MARX#62647 + //MARX#76891 VM387219: Registratie in AX2012 of inkooporder aanwezig is in Mareon + var l_node = strQuery + "/prs_overeenkomst_nr"; + var l_mar_company_Id = v_resp.selectSingleNode(l_node); + __Log("l_mar_company_Id: " + l_mar_company_Id.text,2); + l_result.push(l_mar_company_Id.text); // (array 27) + // Einde MARX#76891 + return l_result; }