From b150688e51602bfaf97ea1f67368818deff2921d Mon Sep 17 00:00:00 2001 From: Marcel Bourseau Date: Fri, 14 Aug 2020 15:31:25 +0000 Subject: [PATCH] MARX#62647: Koppeling AX365 - Mareon (Push) svn path=/Mareon/trunk/; revision=47788 --- ax/SRC/A2012_AcceptServiceTask.js | 4 +- ax/SRC/A2012_CompleteServiceTask.js | 4 +- ax/SRC/A2012_PlanServiceTask.js | 4 +- ax/SRC/A2012_RefuseServiceTask.js | 4 +- ax/SRC/A2012_SetSupplierText.js | 4 +- ax/SRC/A2012_UpdatePurchStatus.js | 4 +- ax/SRC/A_AcceptServiceTask.js | 3 +- ax/SRC/A_CompleteServiceTask.js | 3 +- ax/SRC/A_GetReturnCodes.js | 1 - ax/SRC/A_PlanServiceTask.js | 3 +- ax/SRC/A_RefuseServiceTask.js | 3 +- ax/SRC/A_SetSupplierText.js | 3 +- ax/SRC/A_UpdatePurchStatus.js | 3 +- ax/SRC/AxFacilitor.js | 411 ++++++++++++++--------- ax/SRC/Common.js | 20 ++ ax/SRC/FCLT_CompleteServiceTask.js | 3 +- ax/SRC/FCLT_FinancAfrondenServiceTask.js | 3 +- ax/SRC/FCLT_PlanServiceTask.js | 3 +- ax/SRC/FCLT_SetOpdrachtStatus.js | 3 +- ax/SRC/FCLT_SetSupplierText.js | 3 +- ax/SRC/F_GetMareonInfo.js | 7 + ax/SRC/F_GetOpdrachtenAcceptedRefused.js | 114 ++++--- ax/SRC/F_GetOpdrachtenAfgemeld.js | 40 ++- ax/SRC/F_GetOpdrachtenBijlagen.js | 22 +- ax/SRC/F_GetOpdrachtenFinancAfgerond.js | 27 +- ax/SRC/F_GetOpdrachtenGepland.js | 38 ++- ax/SRC/F_GetOpdrachtenOnderbroken.js | 38 ++- ax/SRC/F_GetOpdrachtenOpmerking.js | 39 ++- ax/SRC/F_GetOpdrachtenStatussen.js | 309 +++++++++++++++++ ax/SRC/F_GetOpdrachtenUitvoer.js | 41 ++- ax/SRC/F_GetOpdrachtenVerlengd.js | 39 ++- ax/SRC/F_PutOpdrachten.js | 44 ++- ax/SRC/R_GetOpdrachten.js | 1 + ax/SRC/R_SetOpdrachtStatus.js | 52 +-- ax/SRC/T_AcceptServiceTask.js | 3 +- ax/SRC/T_CompleteServiceTask.js | 3 +- ax/SRC/T_GetOpdrachten.js | 6 +- ax/SRC/T_PlanServiceTask.js | 3 +- ax/SRC/T_SetSupplierText.js | 3 +- 39 files changed, 963 insertions(+), 355 deletions(-) create mode 100644 ax/SRC/F_GetOpdrachtenStatussen.js diff --git a/ax/SRC/A2012_AcceptServiceTask.js b/ax/SRC/A2012_AcceptServiceTask.js index 96929dd..13530b3 100644 --- a/ax/SRC/A2012_AcceptServiceTask.js +++ b/ax/SRC/A2012_AcceptServiceTask.js @@ -12,7 +12,9 @@ var v_API = "SupplierPortalAcceptServiceTaskRequest"; var v_req = ' <_companyID>' + v_company_id + " <_taskId>" + v_taskId + " <_extraInfo>" + v_extraInfo + ""; var v_type = 0; var v_soapAction = "SupplierPortal/acceptServiceTask"; -var v_resp = apiAX(v_API, v_req, v_type, v_soapAction, 0); +var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) + +var v_resp = apiAX_GENERAL(v_API, v_req, v_type, v_soapAction, 0, v_soort_api); return v_resp; } \ No newline at end of file diff --git a/ax/SRC/A2012_CompleteServiceTask.js b/ax/SRC/A2012_CompleteServiceTask.js index 628d535..e8c3a0c 100644 --- a/ax/SRC/A2012_CompleteServiceTask.js +++ b/ax/SRC/A2012_CompleteServiceTask.js @@ -12,7 +12,9 @@ var v_API = "SupplierPortalCompleteServiceTaskRequest"; var v_req = '<_companyID>' + v_company_id + " <_taskId>" + v_taskId + " <_dateComplete>" + v_dateComplete + "Z <_extraInfo>" + v_extraInfo + ""; var v_type = 0; var v_soapAction = "SupplierPortal/completeServiceTask"; -var v_resp = apiAX(v_API, v_req, v_type, v_soapAction, 0); +var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) + +var v_resp = apiAX_GENERAL(v_API, v_req, v_type, v_soapAction, 0, v_soort_api); return v_resp; } \ No newline at end of file diff --git a/ax/SRC/A2012_PlanServiceTask.js b/ax/SRC/A2012_PlanServiceTask.js index 4b0aa11..d876cae 100644 --- a/ax/SRC/A2012_PlanServiceTask.js +++ b/ax/SRC/A2012_PlanServiceTask.js @@ -17,7 +17,9 @@ else v_req = '<_companyID>' + v_company_id + " <_taskId>" + v_taskId + " <_planDate>" + v_plandate + " <_extraInfo>" + v_extraInfo + ""; v_type = 0; var v_soapAction = "SupplierPortal/setPlanDate"; -v_resp = apiAX(v_API, v_req, v_type,v_soapAction, 0); +var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) + +v_resp = apiAX_GENERAL(v_API, v_req, v_type,v_soapAction, 0, v_soort_api); return v_resp; } \ No newline at end of file diff --git a/ax/SRC/A2012_RefuseServiceTask.js b/ax/SRC/A2012_RefuseServiceTask.js index d4169b1..c399c63 100644 --- a/ax/SRC/A2012_RefuseServiceTask.js +++ b/ax/SRC/A2012_RefuseServiceTask.js @@ -12,7 +12,9 @@ var v_API = "SupplierPortalRefuseServiceTaskRequest"; var v_req = '<_companyID>' + v_company_id + "<_taskId>" + v_taskId + " <_returnCode>" + v_resultCodeId + " <_extraInfo>" + v_extraInfo + ""; var v_type = 0; var v_soapAction = "SupplierPortal/refuseServiceTask"; -var v_resp = apiAX(v_API, v_req, v_type, v_soapAction, 0); +var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) + +var v_resp = apiAX_GENERAL(v_API, v_req, v_type, v_soapAction, 0, v_soort_api); return v_resp; } \ No newline at end of file diff --git a/ax/SRC/A2012_SetSupplierText.js b/ax/SRC/A2012_SetSupplierText.js index 72b43c2..add96a7 100644 --- a/ax/SRC/A2012_SetSupplierText.js +++ b/ax/SRC/A2012_SetSupplierText.js @@ -11,6 +11,8 @@ var v_API = "SupplierPortalAddSupplierTextRequest"; var v_req = '<_companyID>' + v_company_id + " <_taskId>" + v_taskId + "<_text>" + v_extraInfo + ""; var v_type = 0; var v_soapAction = "SupplierPortal/addSupplierText"; -var v_resp = apiAX(v_API, v_req, v_type, v_soapAction, 0); +var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) + +var v_resp = apiAX_GENERAL(v_API, v_req, v_type, v_soapAction, 0, v_soort_api); return v_resp; } \ No newline at end of file diff --git a/ax/SRC/A2012_UpdatePurchStatus.js b/ax/SRC/A2012_UpdatePurchStatus.js index 1efa7c0..dd89db7 100644 --- a/ax/SRC/A2012_UpdatePurchStatus.js +++ b/ax/SRC/A2012_UpdatePurchStatus.js @@ -32,7 +32,9 @@ function A2012_UpdatePurchStatus(v_company_id, v_statuscode, v_purchId, v_extraI v_req = '<_companyID>' + v_company_id + "<_statusCode>" + v_statuscode + "<_purchId>" + v_purchId + "<_extraInfo>" + v_extraInfo + "" + v_datum_xml + ""; v_type = 0; var v_soapAction = "SupplierPortal/updatePurchStatus"; - v_resp = apiAX(v_API, v_req, v_type,v_soapAction, 0); + var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) + + v_resp = apiAX_GENERAL(v_API, v_req, v_type,v_soapAction, 0, v_soort_api); } else { __Log("GEEN Communicatielogboek",2); diff --git a/ax/SRC/A_AcceptServiceTask.js b/ax/SRC/A_AcceptServiceTask.js index ba9ea1d..7f3f7ea 100644 --- a/ax/SRC/A_AcceptServiceTask.js +++ b/ax/SRC/A_AcceptServiceTask.js @@ -16,7 +16,8 @@ var v_req = "" var v_type = 0; var v_soapAction = ""; -var v_resp = apiAX(v_API, v_req, v_type, v_soapAction, 0); +var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) +var v_resp = apiAX_GENERAL(v_API, v_req, v_type, v_soapAction, 0, v_soort_api); return v_resp; } \ No newline at end of file diff --git a/ax/SRC/A_CompleteServiceTask.js b/ax/SRC/A_CompleteServiceTask.js index 3f4050a..a9f448d 100644 --- a/ax/SRC/A_CompleteServiceTask.js +++ b/ax/SRC/A_CompleteServiceTask.js @@ -18,7 +18,8 @@ var v_req = "" var v_type = 0; var v_soapAction = ""; -var v_resp = apiAX(v_API, v_req, v_type, v_soapAction, 0); +var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) +var v_resp = apiAX_GENERAL(v_API, v_req, v_type, v_soapAction, 0, v_soort_api); return v_resp; } \ No newline at end of file diff --git a/ax/SRC/A_GetReturnCodes.js b/ax/SRC/A_GetReturnCodes.js index 7bad43d..955188e 100644 --- a/ax/SRC/A_GetReturnCodes.js +++ b/ax/SRC/A_GetReturnCodes.js @@ -9,7 +9,6 @@ function A_GetReturnCodes() var v_arr_company_id = [1]; var v_company_id; - var v_xml_weiger_codes; // Haal de returncodes van de weigerteksten uit AX voor elke companyid. diff --git a/ax/SRC/A_PlanServiceTask.js b/ax/SRC/A_PlanServiceTask.js index 7087478..76e2f74 100644 --- a/ax/SRC/A_PlanServiceTask.js +++ b/ax/SRC/A_PlanServiceTask.js @@ -23,7 +23,8 @@ function A_PlanServiceTask(v_company_id, v_taskId, v_plandate, v_extraInfo) var v_type = 0; var v_soapAction = ""; - var v_resp = apiAX(v_API, v_req, v_type, v_soapAction, 0); + var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) + var v_resp = apiAX_GENERAL(v_API, v_req, v_type, v_soapAction, 0, v_soort_api); return v_resp; } \ No newline at end of file diff --git a/ax/SRC/A_RefuseServiceTask.js b/ax/SRC/A_RefuseServiceTask.js index 08c802f..d1931e3 100644 --- a/ax/SRC/A_RefuseServiceTask.js +++ b/ax/SRC/A_RefuseServiceTask.js @@ -28,7 +28,8 @@ var v_req = "" var v_type = 0; var v_soapAction = ""; -var v_resp = apiAX(v_API, v_req, v_type, v_soapAction, 0); +var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) +var v_resp = apiAX_GENERAL(v_API, v_req, v_type, v_soapAction, 0, v_soort_api); return v_resp; } \ No newline at end of file diff --git a/ax/SRC/A_SetSupplierText.js b/ax/SRC/A_SetSupplierText.js index 76c1cef..fdc52ca 100644 --- a/ax/SRC/A_SetSupplierText.js +++ b/ax/SRC/A_SetSupplierText.js @@ -18,6 +18,7 @@ var v_req = "" var v_type = 0; var v_soapAction = ""; -var v_resp = apiAX(v_API, v_req, v_type, v_soapAction, 0); +var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) +var v_resp = apiAX_GENERAL(v_API, v_req, v_type, v_soapAction, 0, v_soort_api); return v_resp; } \ No newline at end of file diff --git a/ax/SRC/A_UpdatePurchStatus.js b/ax/SRC/A_UpdatePurchStatus.js index d5ba1bc..958b244 100644 --- a/ax/SRC/A_UpdatePurchStatus.js +++ b/ax/SRC/A_UpdatePurchStatus.js @@ -29,7 +29,8 @@ function A_UpdatePurchStatus(v_company_id, v_statuscode, v_purchId, v_extraInfo, v_req = '' + v_company_id + "" + v_statuscode + "" + v_purchId + "" + v_extraInfo + "" + v_datum_xml + ""; v_type = 0; var v_soapAction = ""; - v_resp = apiAX(v_API, v_req, v_type,v_soapAction, 0); + var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) + v_resp = apiAX_GENERAL(v_API, v_req, v_type,v_soapAction, 0, v_soort_api); } else { diff --git a/ax/SRC/AxFacilitor.js b/ax/SRC/AxFacilitor.js index 8caea33..3bc8b79 100644 --- a/ax/SRC/AxFacilitor.js +++ b/ax/SRC/AxFacilitor.js @@ -44,6 +44,10 @@ function FCLT_2_AX_Bijlagen(){ F_GetOpdrachten_Bijlagen(); } +function FCLT_2_AX_OpdrachtStatus(){ + F_GetOpdrachten_Statussen(); +} + function FCLT_2_AX_OpmerkingOpdrachten(){ F_GetOpdrachten_Opmerking(); } @@ -82,6 +86,11 @@ function AX2012_2_FCLT_Opdrachten(){ function FCLT_2_AX2012_Bijlagen(){ F_GetOpdrachten_Bijlagen(); } + +function FCLT_2_AX2012_OpdrachtStatus(){ + F_GetOpdrachten_Statussen(); +} + function FCLT_2_AX2012_OpmerkingOpdrachten(){ F_GetOpdrachten_Opmerking(); } @@ -146,6 +155,10 @@ function MARX_2_FCLT_Bijlagen(){ F_GetOpdrachten_Bijlagen(); } +function MARX_2_FCLT_OpdrachtStatus(){ + F_GetOpdrachten_Statussen(); +} + function MARX_2_FCLT_OpmerkingOpdrachten(){ F_GetOpdrachten_Opmerking(); } @@ -180,6 +193,9 @@ function MARX_2_REMS_OpmerkingOpdrachten(){ F_GetOpdrachten_Opmerking(); } +function MARX_2_REMS_OpdrachtStatus(){ + F_GetOpdrachten_Statussen(); +} function MARX_2_REMS_AcceptRefuseOpdracht(){ F_GetOpdrachten_AcceptRefuse(); } @@ -206,116 +222,162 @@ function FCLT_2_AX_Facturen(){ function Ax_2_FACILITOR() { - - __Log("*** START AX --> FCLT : Opdrachten uit AX en naar Facilitor ***", 2); - AX_2_FCLT_Opdrachten(); - __Log("*** END", 2); - - __Log("*** START FCLT --> AX : Opmerking opdrachten uit Facilitor naar AX ***", 2); - FCLT_2_AX_OpmerkingOpdrachten(); - __Log("*** END", 2); - - __Log("*** START FCLT --> AX : Geaccepteerde/geweigerde opdrachten uit Facilitor naar AX ***", 2); - FCLT_2_AX_AcceptRefuseOpdracht(); - __Log("*** END", 2); - - __Log("*** START FCLT --> AX : Geplande opdrachten uit Facilitor naar AX ***", 2); - FCLT_2_AX_GeplandeOpdrachten(); - __Log("*** END", 2); - - if (G_mar_communicatielogboek == 1){ - __Log("*** Communicatie logboek AAN", 2); + if (G_push_notifyqueue == "0"){ + //start then-tak pull + // Als de koppeling niet via PUSH verloopt, dan zelf de opdrachten uit AX halen (PULL), en de statusupdates via diverse views obv laatste tracking-key + + __Log("*** START AX --> FCLT : Opdrachten uit AX en naar Facilitor ***", 2); + AX_2_FCLT_Opdrachten(); + __Log("*** END", 2); + + __Log("*** START FCLT --> AX : Opmerking opdrachten uit Facilitor naar AX ***", 2); + FCLT_2_AX_OpmerkingOpdrachten(); + __Log("*** END", 2); + + __Log("*** START FCLT --> AX : Geaccepteerde/geweigerde opdrachten uit Facilitor naar AX ***", 2); + FCLT_2_AX_AcceptRefuseOpdracht(); + __Log("*** END", 2); + + __Log("*** START FCLT --> AX : Geplande opdrachten uit Facilitor naar AX ***", 2); + FCLT_2_AX_GeplandeOpdrachten(); + __Log("*** END", 2); + + if (G_mar_communicatielogboek == 1){ + __Log("*** Communicatie logboek AAN", 2); + + __Log("*** START FCLT --> AX : Verlengde opdrachten uit Facilitor naar AX ***", 2); + FCLT_2_AX_VerlengdeOpdrachten(); + __Log("*** END", 2); + + __Log("*** START FCLT --> AX : Opdrachten in uitvoering uit Facilitor naar AX ***", 2); + FCLT_2_AX_UitvoeringOpdrachten(); + __Log("*** END", 2); + + __Log("*** START FCLT --> AX : Onderbroken opdrachten uit Facilitor naar AX ***", 2); + FCLT_2_AX_OnderbrokenOpdrachten(); + __Log("*** END", 2); + } + else{ + __Log("*** Communicatie logboek UIT", 2); + } + + if (G_mar_sync_bijlages_naar_opdrgvr != '0'){ + __Log("*** START FCLT --> AX : Bijlagen bij opdrachten uit Mareon naar AX ***", 2); + FCLT_2_AX_Bijlagen(); + __Log("*** END", 2); + } + + __Log("*** START FCLT --> AX : Afgemelde opdrachten uit Facilitor naar AX ***", 2); + FCLT_2_AX_AfgemeldeOpdrachten(); + __Log("*** END", 2); + } // einde then-tak "pull" + else { + + //start else-tak "push/notifyqueue" - __Log("*** START FCLT --> AX : Verlengde opdrachten uit Facilitor naar AX ***", 2); - FCLT_2_AX_VerlengdeOpdrachten(); - __Log("*** END", 2); + //Totdat AX nog geen push-mechanisme heeft, gaan we de opdrachtverstrekking nog PULLEN! + //Zodra AX2012 wel push-mechanisme heeft, verloopt de opdrachtverstrekking buiten de sync, en kan dit stukje komen te vervallen... + __Log("*** START AX --> FCLT : Opdrachten uit AX en naar Facilitor ***", 2); + AX_2_FCLT_Opdrachten(); + __Log("*** END", 2); - __Log("*** START FCLT --> AX : Opdrachten in uitvoering uit Facilitor naar AX ***", 2); - FCLT_2_AX_UitvoeringOpdrachten(); + __Log("*** START FCLT --> AX2012 : Verwerken van ALLE opdrachtstatussen uit Mareon Facilitor naar AX obv notifyqueue ***", 2); + FCLT_2_AX_OpdrachtStatus(); __Log("*** END", 2); + //einde else-tak "push/notifyqueue" - __Log("*** START FCLT --> AX : Onderbroken opdrachten uit Facilitor naar AX ***", 2); - FCLT_2_AX_OnderbrokenOpdrachten(); - __Log("*** END", 2); } - else{ - __Log("*** Communicatie logboek UIT", 2); - } - - if (G_mar_sync_bijlages_naar_opdrgvr != '0'){ - __Log("*** START FCLT --> AX : Bijlagen bij opdrachten uit Mareon naar AX ***", 2); - FCLT_2_AX_Bijlagen(); - __Log("*** END", 2); - } - - __Log("*** START FCLT --> AX : Afgemelde opdrachten uit Facilitor naar AX ***", 2); - FCLT_2_AX_AfgemeldeOpdrachten(); - __Log("*** END", 2); } function Ax2012_2_FACILITOR() { - __Log("*** START AX2012 --> FCLT : Opdrachten uit AX en naar Facilitor ***", 2); - AX2012_2_FCLT_Opdrachten(); - __Log("*** END", 2); - - __Log("*** START FCLT --> AX2012 : Opmerking opdrachten uit Facilitor naar AX ***", 2); - FCLT_2_AX2012_OpmerkingOpdrachten(); - __Log("*** END", 2); - - __Log("*** START FCLT --> AX2012 : Geaccepteerde/geweigerde opdrachten uit Facilitor naar AX ***", 2); - FCLT_2_AX2012_AcceptRefuseOpdracht(); - __Log("*** END", 2); - - __Log("*** START FCLT --> AX2012 : Geplande opdrachten uit Facilitor naar AX ***", 2); - FCLT_2_AX2012_GeplandeOpdrachten(); - __Log("*** END", 2); - - if (G_mar_communicatielogboek == 1){ - __Log("*** Communicatie logboek AAN", 2); - - __Log("*** START FCLT --> AX2012 : Verlengde opdrachten uit Facilitor naar AX ***", 2); - FCLT_2_AX2012_VerlengdeOpdrachten(); + if (G_push_notifyqueue == "0"){ + //start then-tak pull + // Als de koppeling niet via PUSH verloopt, dan zelf de opdrachten uit AX halen (PULL), en de statusupdates via diverse views obv laatste tracking-key + + __Log("*** START AX2012 --> FCLT : Opdrachten uit AX en naar Facilitor ***", 2); + AX2012_2_FCLT_Opdrachten(); __Log("*** END", 2); - __Log("*** START FCLT --> AX2012 : Opdrachten in uitvoering uit Facilitor naar AX ***", 2); - FCLT_2_AX2012_UitvoeringOpdrachten(); + __Log("*** START FCLT --> AX2012 : Opmerking opdrachten uit Facilitor naar AX ***", 2); + FCLT_2_AX2012_OpmerkingOpdrachten(); __Log("*** END", 2); - __Log("*** START FCLT --> AX2012 : Onderbroken opdrachten uit Facilitor naar AX ***", 2); - FCLT_2_AX2012_OnderbrokenOpdrachten(); + __Log("*** START FCLT --> AX2012 : Geaccepteerde/geweigerde opdrachten uit Facilitor naar AX ***", 2); + FCLT_2_AX2012_AcceptRefuseOpdracht(); __Log("*** END", 2); + + __Log("*** START FCLT --> AX2012 : Geplande opdrachten uit Facilitor naar AX ***", 2); + FCLT_2_AX2012_GeplandeOpdrachten(); + __Log("*** END", 2); + + if (G_mar_communicatielogboek == 1){ + __Log("*** Communicatie logboek AAN", 2); + + __Log("*** START FCLT --> AX2012 : Verlengde opdrachten uit Facilitor naar AX ***", 2); + FCLT_2_AX2012_VerlengdeOpdrachten(); + __Log("*** END", 2); + + __Log("*** START FCLT --> AX2012 : Opdrachten in uitvoering uit Facilitor naar AX ***", 2); + FCLT_2_AX2012_UitvoeringOpdrachten(); + __Log("*** END", 2); + + __Log("*** START FCLT --> AX2012 : Onderbroken opdrachten uit Facilitor naar AX ***", 2); + FCLT_2_AX2012_OnderbrokenOpdrachten(); + __Log("*** END", 2); + } + else{ + __Log("*** Communicatie logboek UIT", 2); + } + + + // Alleen bij pull (niet bij push), de bijlages opvragen van ALLE(!) opdrachten op basis van sync-datum + // PS Bij push doen we dat per opdracht... + if (G_mar_sync_bijlages_naar_opdrgvr != '0'){ + __Log("*** START FCLT --> AX2012 : Bijlagen bij opdrachten uit Mareon naar AX ***", 2); + + + //Bijlages naar AX2012 kan alleen via Token icm Saxton AX-webservice(s). Op soortgelijke (bijna identieke wijze) als AX365. + //--------------- + __Log("*** START AX2012 --> FCLT : Get Token ***", 2); + G_Token = ReadTokenFromFile(); + __Log("G_Token ReadTokenFromFile:" + G_Token, 4); + if (G_Token == ""){ + __Log("G_Token ReadTokenFromFile is leeg:", 4); + G_Token = A2012_GetToken(); + } + __Log("*** END Get Token", 2); + //--------------- + + + FCLT_2_AX2012_Bijlagen(); + __Log("*** END", 2); + } + + // En tenslotte obv PULL de afgemelde opdrachten nog. + __Log("*** START FCLT --> AX2012 : Afgemelde opdrachten uit Facilitor naar AX ***", 2); + FCLT_2_AX2012_AfgemeldeOpdrachten(); + __Log("*** END", 2); + } // einde then-tak "pull" + + else { + + //start else-tak "push/notifyqueue" + + //Totdat AX nog geen push-mechanisme heeft, gaan we de opdrachtverstrekking nog PULLEN! + //Zodra AX2012 wel push-mechanisme heeft, verloopt de opdrachtverstrekking buiten de sync, en kan dit stukje komen te vervallen... + __Log("*** START AX2012 --> FCLT : Opdrachten uit AX en naar Facilitor ***", 2); + AX2012_2_FCLT_Opdrachten(); + __Log("*** END", 2); + + __Log("*** START FCLT --> AX2012 : Verwerken van ALLE opdrachtstatussen uit Mareon Facilitor naar AX obv notifyqueue ***", 2); + FCLT_2_AX2012_OpdrachtStatus(); + __Log("*** END", 2); + //einde else-tak "push/notifyqueue" + } - else{ - __Log("*** Communicatie logboek UIT", 2); - } - - if (G_mar_sync_bijlages_naar_opdrgvr != '0'){ - __Log("*** START FCLT --> AX2012 : Bijlagen bij opdrachten uit Mareon naar AX ***", 2); - - - //Bijlages naar AX2012 kan alleen via Token icm Saxton AX-webservice(s). Op soortgelijke (bijna identieke wijze) als AX365. - //--------------- - __Log("*** START AX2012 --> FCLT : Get Token ***", 2); - G_Token = ReadTokenFromFile(); - __Log("G_Token ReadTokenFromFile:" + G_Token, 4); - if (G_Token == ""){ - __Log("G_Token ReadTokenFromFile is leeg:", 4); - G_Token = A2012_GetToken(); - } - __Log("*** END Get Token", 2); - //--------------- - - - FCLT_2_AX2012_Bijlagen(); - __Log("*** END", 2); - } - - __Log("*** START FCLT --> AX2012 : Afgemelde opdrachten uit Facilitor naar AX ***", 2); - FCLT_2_AX2012_AfgemeldeOpdrachten(); - __Log("*** END", 2); } @@ -380,76 +442,108 @@ function Tobias_2_FACILITOR() function MAREON_2_FACILITOR() { - if (G_mar_sync_bijlages_opdrgvr != '0' && G_mar_sync_bijlages_opdrgvr != '-1'){ - // MARX#57420: Documenten van Tobias AX naar Mareon - // 0/leeg = bestanden vanuit opdrachtgever worden niet gedeeld; - // <> 0 = bestanden vanuit opdrachtgever wel delen met leverancier, default wordt door import nieuwe woco/opdrachtgever de waarde -1 ingevuld, mn voor Tobias bedoeld, hiermee wordt bereikt dat default wel bijlages wordt uitgewisseld. - // LET OP!: vul voor Faciltior kenmerk-key bijlages in, dus key van flexprop van bijlages uit facilitor omgeving, -1 is daarbij geen geldige waarde/key voor kenmerk, en betekent geen uitwisseling) - //Deze key voor Facilitor moet derhalve > 0 zijn, anders heeft dat geen zin cq. gaat dat fout. - __Log("*** START CUST.FACILITOR.NL --> MAREON : Bijlages van opdrachtgever naar Mareon ***", 2); - MARX_2_FCLT_NEW_Opdrachten(); + if (G_push_notifyqueue == "0"){ + //start then-tak pull + // Als de koppeling niet via PUSH verloopt, dan zelf de opdrachten uit AX halen (PULL), en de statusupdates via diverse views obv laatste tracking-key + + if (G_mar_sync_bijlages_opdrgvr != '0' && G_mar_sync_bijlages_opdrgvr != '-1'){ + // MARX#57420: Documenten van Tobias AX naar Mareon + // 0/leeg = bestanden vanuit opdrachtgever worden niet gedeeld; + // <> 0 = bestanden vanuit opdrachtgever wel delen met leverancier, default wordt door import nieuwe woco/opdrachtgever de waarde -1 ingevuld, mn voor Tobias bedoeld, hiermee wordt bereikt dat default wel bijlages wordt uitgewisseld. + // LET OP!: vul voor Faciltior kenmerk-key bijlages in, dus key van flexprop van bijlages uit facilitor omgeving, -1 is daarbij geen geldige waarde/key voor kenmerk, en betekent geen uitwisseling) + //Deze key voor Facilitor moet derhalve > 0 zijn, anders heeft dat geen zin cq. gaat dat fout. + __Log("*** START CUST.FACILITOR.NL --> MAREON : Bijlages van opdrachtgever naar Mareon ***", 2); + MARX_2_FCLT_NEW_Opdrachten(); + __Log("*** END", 2); + } + if (G_mar_sync_bijlages_naar_opdrgvr != '0'){ + __Log("*** START MAREON --> CUST.FACILITOR.NL : Bijlagen bij opdrachten uit Mareon naar Facilitor ***", 2); + MARX_2_FCLT_Bijlagen(); + __Log("*** END", 2); + } + + __Log("*** START MAREON --> CUST.FACILITOR.NL : Opmerking opdrachten uit Mareon naar Facilitor ***", 2); + MARX_2_FCLT_OpmerkingOpdrachten(); + __Log("*** END", 2); + + __Log("*** START MAREON --> CUST.FACILITOR.NL : Geaccepteerde/geweigerde opdrachten uit Mareon naar Facilitor ***", 2); + MARX_2_FCLT_AcceptRefuseOpdracht(); + __Log("*** END", 2); + + __Log("*** START MAREON --> CUST.FACILITOR.NL : Geplande opdrachten uit Mareon naar Facilitor ***", 2); + MARX_2_FCLT_GeplandeOpdrachten(); + __Log("*** END", 2); + + __Log("*** START MAREON --> CUST.FACILITOR.NL : Afgemelde opdrachten uit Mareon naar Facilitor ***", 2); + MARX_2_FCLT_AfgemeldeOpdrachten(); + __Log("*** END", 2); + + __Log("*** START MAREON --> CUST.FACILITOR.NL : Afgeronde opdrachten uit Mareon naar Facilitor ***", 2); + MARX_2_FCLT_AfgerondeOpdrachten(); + __Log("*** END", 2); + + __Log("*** START MAREON --> CUST.FACILITOR.NL : Facturen uit Mareon naar Facilitor ***", 2); + if (G_fclt_factuur_xmlfolder != ""){ + MARX_2_FCLT_Facturen(); + } + __Log("*** END", 2); + } // einde then-tak "pull" + else{ + //start else-tak "push/notifyqueue" + + __Log("*** START FCLT --> AX2012 : Verwerken van ALLE opdrachtstatussen uit Mareon naar Facilitor obv notifyqueue ***", 2); + MARX_2_FCLT_OpdrachtStatus(); __Log("*** END", 2); - } - if (G_mar_sync_bijlages_naar_opdrgvr != '0'){ - __Log("*** START MAREON --> CUST.FACILITOR.NL : Bijlagen bij opdrachten uit Mareon naar Facilitor ***", 2); - MARX_2_FCLT_Bijlagen(); + + __Log("*** START MAREON --> CUST.FACILITOR.NL : Facturen uit Mareon naar Facilitor ***", 2); + if (G_fclt_factuur_xmlfolder != ""){ + MARX_2_FCLT_Facturen(); + } __Log("*** END", 2); + //einde else-tak "push/notifyqueue" } - - __Log("*** START MAREON --> CUST.FACILITOR.NL : Opmerking opdrachten uit Mareon naar Facilitor ***", 2); - MARX_2_FCLT_OpmerkingOpdrachten(); - __Log("*** END", 2); - - __Log("*** START MAREON --> CUST.FACILITOR.NL : Geaccepteerde/geweigerde opdrachten uit Mareon naar Facilitor ***", 2); - MARX_2_FCLT_AcceptRefuseOpdracht(); - __Log("*** END", 2); - - __Log("*** START MAREON --> CUST.FACILITOR.NL : Geplande opdrachten uit Mareon naar Facilitor ***", 2); - MARX_2_FCLT_GeplandeOpdrachten(); - __Log("*** END", 2); - - __Log("*** START MAREON --> CUST.FACILITOR.NL : Afgemelde opdrachten uit Mareon naar Facilitor ***", 2); - MARX_2_FCLT_AfgemeldeOpdrachten(); - __Log("*** END", 2); - - __Log("*** START MAREON --> CUST.FACILITOR.NL : Afgeronde opdrachten uit Mareon naar Facilitor ***", 2); - MARX_2_FCLT_AfgerondeOpdrachten(); - __Log("*** END", 2); - - __Log("*** START MAREON --> CUST.FACILITOR.NL : Facturen uit Mareon naar Facilitor ***", 2); - if (G_fclt_factuur_xmlfolder != ""){ - MARX_2_FCLT_Facturen(); - } - __Log("*** END", 2); - - } function REMS_2_MAREON() { - __Log("*** START REMS --> MAREON.NL : Nieuwe opdrachten uit REMS naar Mareon ***", 2); - REMS_2_MARX_Opdrachten(); - __Log("*** END", 2); - - __Log("*** START MAREON --> REMS : Opmerking opdrachten uit Mareon naar REMS ***", 2); - MARX_2_REMS_OpmerkingOpdrachten(); - __Log("*** END", 2); - - __Log("*** START MAREON --> REMS : Geaccepteerde/geweigerde opdrachten uit Mareon naar REMS ***", 2); - MARX_2_REMS_AcceptRefuseOpdracht(); - __Log("*** END", 2); - - __Log("*** START MAREON --> REMS : Geplande opdrachten uit Mareon naar REMS ***", 2); - MARX_2_REMS_GeplandeOpdrachten(); - __Log("*** END", 2); - - __Log("*** START MAREON --> REMS : Afgemelde opdrachten uit Mareon naar REMS ***", 2); - MARX_2_REMS_AfgemeldeOpdrachten(); - __Log("*** END", 2); - - if (G_rems_facturen_xmlfolder != ""){ - MARX_2_REMS_Facturen(); + if (G_push_notifyqueue == "0"){ + //start then-tak pull + // Als de koppeling niet via PUSH verloopt, dan zelf de opdrachten uit AX halen (PULL), en de statusupdates via diverse views obv laatste tracking-key + __Log("*** START REMS --> MAREON.NL : Nieuwe opdrachten uit REMS naar Mareon ***", 2); + REMS_2_MARX_Opdrachten(); + __Log("*** END", 2); + + __Log("*** START MAREON --> REMS : Opmerking opdrachten uit Mareon naar REMS ***", 2); + MARX_2_REMS_OpmerkingOpdrachten(); + __Log("*** END", 2); + + __Log("*** START MAREON --> REMS : Geaccepteerde/geweigerde opdrachten uit Mareon naar REMS ***", 2); + MARX_2_REMS_AcceptRefuseOpdracht(); + __Log("*** END", 2); + + __Log("*** START MAREON --> REMS : Geplande opdrachten uit Mareon naar REMS ***", 2); + MARX_2_REMS_GeplandeOpdrachten(); + __Log("*** END", 2); + + __Log("*** START MAREON --> REMS : Afgemelde opdrachten uit Mareon naar REMS ***", 2); + MARX_2_REMS_AfgemeldeOpdrachten(); + __Log("*** END", 2); + + if (G_rems_facturen_xmlfolder != ""){ + MARX_2_REMS_Facturen(); + } + }// einde then-tak "pull" + else{ + //start else-tak "push/notifyqueue" + __Log("*** START FCLT --> AX2012 : Verwerken van ALLE opdrachtstatussen uit Mareon naar REMS obv notifyqueue ***", 2); + MARX_2_REMS_OpdrachtStatus(); + __Log("*** END", 2); + if (G_rems_facturen_xmlfolder != ""){ + MARX_2_REMS_Facturen(); + } + //einde else-tak "push/notifyqueue" } + } @@ -473,8 +567,9 @@ function FACILITOR_2_Xtractor() // 1.38 -- MARX#60079: Mareon inrichten voor reversible billing KPN // 1.40 -- MARX#59862: Tobias 365 - Mareon // 1.41 -- MARX#61048: Documenten versturen van Mareon naar AX +// 1.50 -- MARX#62647: Koppeling AX365 - Mareon (Push) -var G_Mareon_Adapter = "1.41"; +var G_Mareon_Adapter = "1.50"; //MARX#56643: Test Haagwonen inkoopordernummer ontbreekt in Mareon ION001753 var G_new_date = new Date(); //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -587,6 +682,10 @@ var G_mar_timeout = 0; //initieel 1e keer. // MARX#59862: Tobias 365 - Mareon var G_bedrijf_key = l_array[18]; // Key van woco-bedrijf + // 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 diff --git a/ax/SRC/Common.js b/ax/SRC/Common.js index 75a9b4a..fe4c675 100644 --- a/ax/SRC/Common.js +++ b/ax/SRC/Common.js @@ -1418,6 +1418,26 @@ function escapeXml (s) { }); } +myJSON = +{ + internal_parsedate: function (key, value) + { + var a; + if (typeof value === 'string') { + a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); + if (a) { + return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6])); + } + } + return value; + }, + // myJSON.parse doet hetzelfde als JSON.parse maar herkent automatisch datum variabelen + parse: function _parse(text) + { + return JSON.parse(text, myJSON.internal_parsedate); + } +} + function MARXQUIT(v_discard_active_abort){ if (v_discard_active_abort == 0) { diff --git a/ax/SRC/FCLT_CompleteServiceTask.js b/ax/SRC/FCLT_CompleteServiceTask.js index 407239b..2de5a2c 100644 --- a/ax/SRC/FCLT_CompleteServiceTask.js +++ b/ax/SRC/FCLT_CompleteServiceTask.js @@ -17,7 +17,8 @@ var v_req = "" var v_type = 1; var v_soapAction = ""; -var v_resp = apiAX(v_API, v_req, v_type, v_soapAction, 0); +var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) +var v_resp = apiAX_GENERAL(v_API, v_req, v_type, v_soapAction, 0, v_soort_api); return v_resp; } \ No newline at end of file diff --git a/ax/SRC/FCLT_FinancAfrondenServiceTask.js b/ax/SRC/FCLT_FinancAfrondenServiceTask.js index 65eb311..6ef8f60 100644 --- a/ax/SRC/FCLT_FinancAfrondenServiceTask.js +++ b/ax/SRC/FCLT_FinancAfrondenServiceTask.js @@ -17,7 +17,8 @@ var v_req = "" var v_type = 1; var v_soapAction = ""; -var v_resp = apiAX(v_API, v_req, v_type, v_soapAction, 0); +var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) +var v_resp = apiAX_GENERAL(v_API, v_req, v_type, v_soapAction, 0, v_soort_api); return v_resp; } \ No newline at end of file diff --git a/ax/SRC/FCLT_PlanServiceTask.js b/ax/SRC/FCLT_PlanServiceTask.js index f15a803..cafe6bb 100644 --- a/ax/SRC/FCLT_PlanServiceTask.js +++ b/ax/SRC/FCLT_PlanServiceTask.js @@ -16,7 +16,8 @@ var v_req = "" var v_type = 1; var v_soapAction = ""; -var v_resp = apiAX(v_API, v_req, v_type, v_soapAction, 0); +var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) +var v_resp = apiAX_GENERAL(v_API, v_req, v_type, v_soapAction, 0, v_soort_api); return v_resp; } \ No newline at end of file diff --git a/ax/SRC/FCLT_SetOpdrachtStatus.js b/ax/SRC/FCLT_SetOpdrachtStatus.js index 44dd432..333e6e7 100644 --- a/ax/SRC/FCLT_SetOpdrachtStatus.js +++ b/ax/SRC/FCLT_SetOpdrachtStatus.js @@ -17,7 +17,8 @@ v_req = v_req + ""; var v_type = 1; var v_soapAction = ""; -var v_resp = apiAX(v_API, v_req, v_type, v_soapAction, 0); +var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) +var v_resp = apiAX_GENERAL(v_API, v_req, v_type, v_soapAction, 0, v_soort_api); return v_resp; } \ No newline at end of file diff --git a/ax/SRC/FCLT_SetSupplierText.js b/ax/SRC/FCLT_SetSupplierText.js index 6b846e7..9fdbae4 100644 --- a/ax/SRC/FCLT_SetSupplierText.js +++ b/ax/SRC/FCLT_SetSupplierText.js @@ -16,7 +16,8 @@ var v_req = "" var v_type = 1; var v_soapAction = ""; -var v_resp = apiAX(v_API, v_req, v_type, v_soapAction, 0); +var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) +var v_resp = apiAX_GENERAL(v_API, v_req, v_type, v_soapAction, 0, v_soort_api); return v_resp; } \ No newline at end of file diff --git a/ax/SRC/F_GetMareonInfo.js b/ax/SRC/F_GetMareonInfo.js index 5281c71..9d2de1a 100644 --- a/ax/SRC/F_GetMareonInfo.js +++ b/ax/SRC/F_GetMareonInfo.js @@ -175,6 +175,13 @@ function F_GetMareonInfo() l_result.push(l_identityserver_scope.text); // (array 25) // Einde MARX#62284: Identityserver gegevens (tbv AX2012) niet in mareon sync.xml + //MARX#62647: (Push)Koppeling AX365 - Mareon + var l_node = strQuery + "/mar_push_notifyqueue"; + var l_mar_push_notifyqueue = v_resp.selectSingleNode(l_node); + __Log("l_mar_push_notifyqueue: " + l_mar_push_notifyqueue.text,2); + l_result.push(l_mar_push_notifyqueue.text); // (array 26) + // Einde MARX#62647 + return l_result; } diff --git a/ax/SRC/F_GetOpdrachtenAcceptedRefused.js b/ax/SRC/F_GetOpdrachtenAcceptedRefused.js index 2ec4ffc..0e1d7d8 100644 --- a/ax/SRC/F_GetOpdrachtenAcceptedRefused.js +++ b/ax/SRC/F_GetOpdrachtenAcceptedRefused.js @@ -66,50 +66,15 @@ function F_GetOpdrachten_AcceptRefuse() v_mld_opdr_extrainfo = escapeXml(v_mld_opdr_extrainfo); if (v_srtnotificatie_code == 'ORDACP') { - if (AX_or_Tobias() == "A") { - A_AcceptServiceTask (v_company_id, v_taskId, v_mld_opdr_extrainfo); - } - if (AX_or_Tobias() == "A12") { - A2012_AcceptServiceTask (v_company_id, v_taskId, v_mld_opdr_extrainfo); - } - if (AX_or_Tobias() == "T") { - T_AcceptServiceTask (v_company_id, v_taskId, "Ja"); - } - if (AX_or_Tobias() == "F") { - FCLT_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "ORDACP", ""); - } - if (AX_or_Tobias() == "R") { - //In REMS bestaat geen expliciet accepteren, ff uitgecommentarieerd - //R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "accepteren", "", v_mld_opdr_extrainfo); - __Log("Opdracht is geaccepteerd door uitvoerder: REMS kent deze status niet",2); - } + GEN_AcceptServiceTask(v_company_id, v_taskId, v_externnr, v_mld_opdr_extrainfo); } - + if (v_srtnotificatie_code == 'ORDCAN') { - if (AX_or_Tobias() == "A") { - A_RefuseServiceTask (v_company_id, v_taskId, v_extraInfo, v_mld_opdr_extrainfo); - } - if (AX_or_Tobias() == "A12") { - A2012_RefuseServiceTask (v_company_id, v_taskId, v_extraInfo, v_mld_opdr_extrainfo); - } - if (AX_or_Tobias() == "T") { - T_AcceptServiceTask (v_company_id, v_taskId, "Nee"); - } - if (AX_or_Tobias() == "F") { - FCLT_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "ORDCAN", ""); - } - if (AX_or_Tobias() == "R") { - R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "afkeuren ", "", v_mld_opdr_extrainfo); - } + GEN_RefuseServiceTask(v_company_id, v_taskId, v_externnr, "GEWEIGERD", v_mld_opdr_extrainfo); } if (v_srtnotificatie_code == 'ORDANN') { - if (AX_or_Tobias() == "A") { - A_UpdatePurchStatus(v_company_id, "ANN", v_externnr, v_mld_opdr_extrainfo, "-1") - } - if (AX_or_Tobias() == "A12") { - A2012_UpdatePurchStatus(v_company_id, "ANN", v_externnr, v_mld_opdr_extrainfo, "-1") - } + GEN_AnnuleerServiceTask(v_company_id, "ANN", v_externnr, v_mld_opdr_extrainfo, "-1"); } i = i + 1; @@ -117,3 +82,74 @@ function F_GetOpdrachten_AcceptRefuse() l_deelxml = v_resp.selectSingleNode(strQuery); } } + +function GEN_AcceptServiceTask(v_company_id, v_taskId, v_externnr, v_mld_opdr_extrainfo) +{ + var v_resp; + if (AX_or_Tobias() == "A") { + v_resp = A_AcceptServiceTask (v_company_id, v_taskId, v_mld_opdr_extrainfo); + } + if (AX_or_Tobias() == "A12") { + v_resp = A2012_AcceptServiceTask (v_company_id, v_taskId, v_mld_opdr_extrainfo); + } + if (AX_or_Tobias() == "T") { + v_resp = T_AcceptServiceTask (v_company_id, v_taskId, "Ja"); + } + if (AX_or_Tobias() == "F") { + v_resp = FCLT_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "ORDACP", ""); + } + if (AX_or_Tobias() == "R") { + //In REMS bestaat geen expliciet accepteren, ff uitgecommentarieerd + //R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "accepteren", "", v_mld_opdr_extrainfo); + __Log("Opdracht is geaccepteerd door uitvoerder: REMS kent deze status niet",2); + v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + return v_resp; +} + +function GEN_RefuseServiceTask(v_company_id, v_taskId, v_externnr, v_code_geweigerd, v_mld_opdr_extrainfo) +{ + var v_resp; + + if (AX_or_Tobias() == "A") { + v_resp = A_RefuseServiceTask (v_company_id, v_taskId, v_code_geweigerd, v_mld_opdr_extrainfo); + } + if (AX_or_Tobias() == "A12") { + v_resp = A2012_RefuseServiceTask (v_company_id, v_taskId, v_code_geweigerd, v_mld_opdr_extrainfo); + } + if (AX_or_Tobias() == "T") { + v_resp = T_AcceptServiceTask (v_company_id, v_taskId, "Nee"); + } + if (AX_or_Tobias() == "F") { + v_resp = FCLT_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "ORDCAN", ""); + } + if (AX_or_Tobias() == "R") { + v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "afkeuren ", "", v_mld_opdr_extrainfo); + } + + return v_resp; +} + + +function GEN_AnnuleerServiceTask(v_company_id, v_statuscode, v_externnr, v_mld_opdr_extrainfo, v_date) +{ + var v_resp; + + if (AX_or_Tobias() == "A") { + v_resp = A_UpdatePurchStatus(v_company_id, v_statuscode, v_externnr, v_mld_opdr_extrainfo, v_date); + } + if (AX_or_Tobias() == "A12") { + v_resp = A2012_UpdatePurchStatus(v_company_id, v_statuscode, v_externnr, v_mld_opdr_extrainfo, v_date); + } + if (AX_or_Tobias() == "T") { + v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + if (AX_or_Tobias() == "F") { + v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + if (AX_or_Tobias() == "R") { + v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + + return v_resp; +} \ No newline at end of file diff --git a/ax/SRC/F_GetOpdrachtenAfgemeld.js b/ax/SRC/F_GetOpdrachtenAfgemeld.js index b9beabd..e56274e 100644 --- a/ax/SRC/F_GetOpdrachtenAfgemeld.js +++ b/ax/SRC/F_GetOpdrachtenAfgemeld.js @@ -51,25 +51,33 @@ function F_GetOpdrachten_Afgemeld() //MARX#56792: XML equivalent van & < > etc toepassen... v_extraInfo = escapeXml(v_extraInfo); + GEN_CompleteServiceTask(v_company_id, v_taskId, v_externnr, v_extraInfo, v_dateComplete); - if (AX_or_Tobias() == "A") { - A_CompleteServiceTask (v_company_id, v_taskId, v_dateComplete, v_extraInfo); - } - if (AX_or_Tobias() == "A12") { - A2012_CompleteServiceTask (v_company_id, v_taskId, v_dateComplete, v_extraInfo); - } - if (AX_or_Tobias() == "T") { - T_CompleteServiceTask (v_company_id, v_taskId, v_dateComplete); - } - if (AX_or_Tobias() == "F") { - FCLT_CompleteServiceTask (v_company_id, v_taskId, v_externnr, v_dateComplete); - } - if (AX_or_Tobias() == "R") { - R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "goedkeuren", v_dateComplete, v_extraInfo); - } - i = i + 1; var strQuery = "//xml/mld_ordr[" + i + "]"; l_deelxml = v_resp.selectSingleNode(strQuery); } } + +function GEN_CompleteServiceTask(v_company_id, v_taskId, v_externnr, v_extraInfo, v_dateComplete) +{ + var v_resp; + + if (AX_or_Tobias() == "A") { + v_resp = A_CompleteServiceTask (v_company_id, v_taskId, v_dateComplete, v_extraInfo); + } + if (AX_or_Tobias() == "A12") { + v_resp = A2012_CompleteServiceTask (v_company_id, v_taskId, v_dateComplete, v_extraInfo); + } + if (AX_or_Tobias() == "T") { + v_resp = T_CompleteServiceTask (v_company_id, v_taskId, v_dateComplete); + } + if (AX_or_Tobias() == "F") { + v_resp = FCLT_CompleteServiceTask (v_company_id, v_taskId, v_externnr, v_dateComplete); + } + if (AX_or_Tobias() == "R") { + v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "goedkeuren", v_dateComplete, v_extraInfo); + } + + return v_resp; +} diff --git a/ax/SRC/F_GetOpdrachtenBijlagen.js b/ax/SRC/F_GetOpdrachtenBijlagen.js index 9539ff6..da8f40a 100644 --- a/ax/SRC/F_GetOpdrachtenBijlagen.js +++ b/ax/SRC/F_GetOpdrachtenBijlagen.js @@ -6,13 +6,29 @@ // // -------------------------------------------------------------------------------------- +//MARX#62647: Koppeling AX365 - Mareon (Push), bijlagen bij opdrachten +//Deze functie levert de bijlagen bij 1 opdracht op met p_opdr_key, die sinds de laatste sync-datum/tijd obv de tracking-key erbij zijn gekomen. +function F_GetOpdracht_BijlagenQueue (p_opdr_key, p_aanmaak_datum_van){ + var v_APIKEY = G_marx_apikey; + var v_req = "" + G_Mareon_Adapter + "" + v_APIKEY + "" + p_opdr_key + "" + p_aanmaak_datum_van + ""; + var v_API = "BIJLAGEN_QUEUE_OPDR_4AX"; + F_GetOpdrachten_Bijlagen_Inner(v_req, v_API); +} +//Deze functie (bestond al) levert de bijlagen van alle opdrachten van opdrachtgever (APIKEY) op, die sinds de laatste sync-datum/tijd erbij zijn gekomen function F_GetOpdrachten_Bijlagen() +{ + var v_APIKEY = G_marx_apikey; + var v_req = "" + G_Mareon_Adapter + "" + v_APIKEY + ""; + var v_API = "BIJLAGEN_OPDR_4AX"; + F_GetOpdrachten_Bijlagen_Inner(v_req, v_API); +} + +function F_GetOpdrachten_Bijlagen_Inner(v_req, v_API) { - var v_API = "BIJLAGEN_OPDR_4AX"; + var v_APIKEY = G_marx_apikey; - var v_req = "" + G_Mareon_Adapter + "" + v_APIKEY + "" var v_type = 1; // xml var v_soap_envelop = 1; //soap-envelop eromheen @@ -58,5 +74,5 @@ function F_GetOpdrachten_Bijlagen() var strQuery = "//xml/mld_ordr[" + i + "]"; l_deelxml = v_resp.selectSingleNode(strQuery); } - } + diff --git a/ax/SRC/F_GetOpdrachtenFinancAfgerond.js b/ax/SRC/F_GetOpdrachtenFinancAfgerond.js index a118bf7..bc88998 100644 --- a/ax/SRC/F_GetOpdrachtenFinancAfgerond.js +++ b/ax/SRC/F_GetOpdrachtenFinancAfgerond.js @@ -52,12 +52,33 @@ function F_GetOpdrachten_FinancAfgerond() //MARX#56792: XML equivalent van & < > etc toepassen... v_extraInfo = escapeXml(v_extraInfo); - if (AX_or_Tobias() == "F") { - FCLT_FinancAfrondenServiceTask (v_company_id, v_taskId, v_externnr, v_opdr_kosten); - } + GEN_FinancAfrondenServiceTask(v_company_id, v_taskId, v_externnr, v_opdr_kosten); i = i + 1; var strQuery = "//xml/mld_ordr[" + i + "]"; l_deelxml = v_resp.selectSingleNode(strQuery); } } + +function GEN_FinancAfrondenServiceTask(v_company_id, v_taskId, v_externnr, v_opdr_kosten) +{ + var v_resp; + + if (AX_or_Tobias() == "A") { + v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + if (AX_or_Tobias() == "A12") { + v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + if (AX_or_Tobias() == "T") { + v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + if (AX_or_Tobias() == "F") { + v_resp = FCLT_FinancAfrondenServiceTask ("", "", v_externnr, v_opdr_kosten); + } + if (AX_or_Tobias() == "R") { + v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + + return v_resp; +} \ No newline at end of file diff --git a/ax/SRC/F_GetOpdrachtenGepland.js b/ax/SRC/F_GetOpdrachtenGepland.js index 19b6aca..b735cf4 100644 --- a/ax/SRC/F_GetOpdrachtenGepland.js +++ b/ax/SRC/F_GetOpdrachtenGepland.js @@ -52,24 +52,32 @@ function F_GetOpdrachten_Gepland() //MARX#56792: XML equivalent van & < > etc toepassen... v_extraInfo = escapeXml(v_extraInfo); - if (AX_or_Tobias() == "A") { - A_PlanServiceTask (v_company_id, v_taskId, v_date, v_extraInfo); - } - if (AX_or_Tobias() == "A12") { - A2012_PlanServiceTask (v_company_id, v_taskId, v_date, v_extraInfo); - } - if (AX_or_Tobias() == "T") { - T_PlanServiceTask (v_company_id, v_taskId, v_date); - } - if (AX_or_Tobias() == "F") { - FCLT_PlanServiceTask (v_company_id, v_taskId, v_externnr, v_date); - } - if (AX_or_Tobias() == "R") { - R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "uitstellen", v_date, v_extraInfo); - } + GEN_PlanServiceTask(v_company_id, v_taskId, v_externnr, v_extraInfo, v_date); i = i + 1; var strQuery = "//xml/mld_ordr[" + i + "]"; l_deelxml = v_resp.selectSingleNode(strQuery); } } + +function GEN_PlanServiceTask(v_company_id, v_taskId, v_externnr, v_extraInfo, v_date) +{ + var v_resp; + if (AX_or_Tobias() == "A") { + v_resp = A_PlanServiceTask (v_company_id, v_taskId, v_date, v_extraInfo); + } + if (AX_or_Tobias() == "A12") { + v_resp = A2012_PlanServiceTask (v_company_id, v_taskId, v_date, v_extraInfo); + } + if (AX_or_Tobias() == "T") { + v_resp = T_PlanServiceTask (v_company_id, v_taskId, v_date); + } + if (AX_or_Tobias() == "F") { + v_resp = FCLT_PlanServiceTask (v_company_id, v_taskId, v_externnr, v_date); + } + if (AX_or_Tobias() == "R") { + v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "uitstellen", v_date, v_extraInfo); + } + + return v_resp; +} \ No newline at end of file diff --git a/ax/SRC/F_GetOpdrachtenOnderbroken.js b/ax/SRC/F_GetOpdrachtenOnderbroken.js index f33f33e..6d15b1d 100644 --- a/ax/SRC/F_GetOpdrachtenOnderbroken.js +++ b/ax/SRC/F_GetOpdrachtenOnderbroken.js @@ -51,24 +51,32 @@ function F_GetOpdrachten_Onderbroken() //MARX#56792: XML equivalent van & < > etc toepassen... v_extraInfo = escapeXml(v_extraInfo); - if (AX_or_Tobias() == "A") { - A_UpdatePurchStatus(v_company_id, v_statuscode, v_externnr, v_extraInfo, "-1"); - } - if (AX_or_Tobias() == "A12") { - A2012_UpdatePurchStatus(v_company_id, v_statuscode, v_externnr, v_extraInfo, "-1"); - } - //if (AX_or_Tobias() == "T") { - // T_PlanServiceTask (v_company_id, v_taskId, v_date); - //} - //if (AX_or_Tobias() == "F") { - // FCLT_VerlengServiceTask (v_company_id, v_taskId, v_externnr, v_date); - //} - //if (AX_or_Tobias() == "R") { - // R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "verlengen", v_date, v_extraInfo); - //} + GEN_OnderbreekServiceTask(v_company_id, v_statuscode, v_externnr, v_extraInfo, "-1"); i = i + 1; var strQuery = "//xml/mld_ordr[" + i + "]"; l_deelxml = v_resp.selectSingleNode(strQuery); } } + +function GEN_OnderbreekServiceTask(v_company_id, v_statuscode, v_externnr, v_extraInfo, v_date) +{ + var v_resp; + if (AX_or_Tobias() == "A") { + v_resp = A_UpdatePurchStatus(v_company_id, v_statuscode, v_externnr, v_extraInfo, v_date); + } + if (AX_or_Tobias() == "A12") { + v_resp = A2012_UpdatePurchStatus(v_company_id, v_statuscode, v_externnr, v_extraInfo, v_date); + } + if (AX_or_Tobias() == "T") { + v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + if (AX_or_Tobias() == "F") { + v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + if (AX_or_Tobias() == "R") { + v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + + return v_resp; +} diff --git a/ax/SRC/F_GetOpdrachtenOpmerking.js b/ax/SRC/F_GetOpdrachtenOpmerking.js index 0b67d82..5019e40 100644 --- a/ax/SRC/F_GetOpdrachtenOpmerking.js +++ b/ax/SRC/F_GetOpdrachtenOpmerking.js @@ -47,25 +47,34 @@ function F_GetOpdrachten_Opmerking() //MARX#56792: XML equivalent van & < > etc toepassen... v_extraInfo = escapeXml(v_extraInfo); + GEN_SetSupplierText(v_company_id, v_taskId, v_externnr, v_extraInfo); - if (AX_or_Tobias() == "A") { - A_SetSupplierText(v_company_id, v_taskId, v_extraInfo); - } - if (AX_or_Tobias() == "A12") { - A2012_SetSupplierText(v_company_id, v_taskId, v_extraInfo); - } - if (AX_or_Tobias() == "T") { - T_SetSupplierText(v_company_id, v_taskId, v_extraInfo); - } - if (AX_or_Tobias() == "F") { - FCLT_SetSupplierText(v_company_id, v_taskId, v_externnr, v_extraInfo); - } - if (AX_or_Tobias() == "R") { - R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "", "", v_extraInfo); - } i = i + 1; var strQuery = "//xml/mld_ordr[" + i + "]"; l_deelxml = v_resp.selectSingleNode(strQuery); } } + +function GEN_SetSupplierText(v_company_id, v_taskId, v_externnr, v_extraInfo) +{ + var v_resp; + + if (AX_or_Tobias() == "A") { + v_resp = A_SetSupplierText(v_company_id, v_taskId, v_extraInfo); + } + if (AX_or_Tobias() == "A12") { + v_resp = A2012_SetSupplierText(v_company_id, v_taskId, v_extraInfo); + } + if (AX_or_Tobias() == "T") { + v_resp = T_SetSupplierText(v_company_id, v_taskId, v_extraInfo); + } + if (AX_or_Tobias() == "F") { + v_resp = FCLT_SetSupplierText(v_company_id, v_taskId, v_externnr, v_extraInfo); + } + if (AX_or_Tobias() == "R") { + v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "", "", v_extraInfo); + } + + return v_resp; +} diff --git a/ax/SRC/F_GetOpdrachtenStatussen.js b/ax/SRC/F_GetOpdrachtenStatussen.js new file mode 100644 index 0000000..9f8987e --- /dev/null +++ b/ax/SRC/F_GetOpdrachtenStatussen.js @@ -0,0 +1,309 @@ +// -------------------------------------------------------------------------------------- +// F_GetOpdrachten_Statussen.js +// Copyright 2020 SG|facilitor. 053-4800 700, helpdesk@mareon.nl +// Written by MB (2019) +// -------------------------------------------------------------------------------------- + +//MARX#62647: Koppeling AX365 - Mareon (Push) +function F_GetOpdrachten_Statussen () +{ + + var l_url = G_marx_url + "api2/reports/?rapcode=MARX_NQ_ORDER"; + __Log("l_url: " + l_url,3); + + + var v_suppress_req_logging = 0; // Logging van request, indien dat gewenst is, niet onderdrukken. + var l_response_JSON = FcltAPI2(G_marx_apikey, "GET", l_url, "", 0, v_suppress_req_logging); + + //Array van soort notificatie codes, idee is dat als bij dezelfde opdracht als eerder in deze run is uitgevoerd, wordt de 2e, 3e notify etc overgeslagen. + var l_fac_srtnotificatie_code_LIST = {}; + + if (l_response_JSON){ + __Log("F_GetOpdrachten_Statussen: GET", 2); + + var data = myJSON.parse(l_response_JSON.responseText); + + __Log("Opdrachtstatus data:" + data, 4); + if ("marx_v_notifyqueue_orders" in data) + { var l_orders = data.marx_v_notifyqueue_orders; + var l_aant_orders = l_orders.length; + __Log("Aantal opdrachtenstatussen: " + l_aant_orders, 3); + + var l_prev_mld_opdr_key = -1; //default non-existent key + var l_error = 0; // default 0 = no (HTTP-error / success), 1 = HTTP-error/failure + for (var i = 0; i < l_aant_orders; i++) + { + var l_mld_opdr_key = l_orders[i].mld_opdr_key; + var l_fac_srtnotificatie_code = l_orders[i].fac_srtnotificatie_code; + var l_fac_notificatie_key = l_orders[i].fac_notificatie_key; + + __Log("l_mld_opdr_key: " + l_mld_opdr_key, 4); + __Log("l_fac_srtnotificatie_code: " + l_fac_srtnotificatie_code, 4); + __Log("l_fac_notificatie_key: " + l_fac_notificatie_key, 4); + + if (l_mld_opdr_key == l_prev_mld_opdr_key){ + //dezelfde opdracht als vorige keer + + if (l_error == 0){ + // Geen error bij dezelfde opdracht de vorge keer, dus DOORGAAN met deze + + // Maar wel eerst checken of deze soort notificatie bij dezelfde opdracht nog niet in deze sync is geweest, want dan slaan we die over. + if (l_fac_srtnotificatie_code in l_fac_srtnotificatie_code_LIST){ + // Ja, deze soort notificatie is dus al uitgevoerd, we gaan geen communicatie naar extern systeem doen, + // Enkel een OKE-berichtje met bit64 reset van deze notify naar Mareon... + __Log("F_GetOpdrachten_Statussen Bypass: dubbele srtnoti " + l_fac_srtnotificatie_code, 4); + post_do_exec_notification(l_fac_notificatie_key, {api_status_code: 1, api_status_message: "", api_response_message: ""}); + } + else{ + // We gaan de soort notificaties van dezelfde opdracht registeren in LIJST (Array) + l_fac_srtnotificatie_code_LIST[l_fac_srtnotificatie_code]=1; + // En communicatie van notify naar extern systeem... + l_error = do_exec_opdrstatus (l_orders[i]); + } + } + else{ + // Wel een error bij dezelfde opdracht de vorge keer, dus SKIPPEN van deze + __Log("Agv vorige fout bij MAR-nr " + l_orders[i].mld_opdr_marx_nr + ": opdrachtstatus " + l_orders[i].fac_srtnotificatie_code + " bij opdracht " + l_orders[i].mld_opdr_externnr + " / " + l_orders[i].mld_opdr_ordernr + " wordt overgeslagen" + "(key:" + l_mld_opdr_key + ")", 1); + } + + } + else{ + //andere opdracht dan de vorige keer + //meteen maar l_error en Array resetten. + l_error = 0; + l_fac_srtnotificatie_code_LIST = {}; + l_fac_srtnotificatie_code_LIST[l_fac_srtnotificatie_code]=1; + // en status natuurlijk gaan verwerken + l_error = do_exec_opdrstatus (l_orders[i]); + } + l_prev_mld_opdr_key = l_mld_opdr_key; + } + //einde lus alle statussen + } + } +} + +function do_exec_opdrstatus(p_order){ + var l_error = 0; + + var l_mld_opdr_key = p_order.mld_opdr_key; // eg 897125 + var l_fac_notificatie_key = p_order.fac_notificatie_key; // eg 409044 + + var l_fac_tracking_datum; + var l_fac_tracking_datum_tmp = p_order.fac_tracking_datum; // eg "2020-07-29T14:59:39Z" + if (l_fac_tracking_datum_tmp == null){l_fac_tracking_datum = ""} else{l_fac_tracking_datum = jsdatextoxml(l_fac_tracking_datum_tmp)}; + + var l_mld_statusopdr_key = p_order.mld_statusopdr_key; // eg 1 + var l_mld_opdr_halted = p_order.mld_opdr_halted; // eg 1 + //var l_mld_opdr_marx_nr = p_order.mld_opdr_marx_nr; // eg "MAR844121/1", + var l_ax_company_id = p_order.ax_company_id; // eg "1" + //var l_mld_melding_externnr = p_order.mld_melding_externnr; // eg "MLD00058733" + var l_mld_opdr_externnr = p_order.mld_opdr_externnr; // eg "ION00030210" + var l_mld_opdr_ordernr = p_order.mld_opdr_ordernr; // eg "MLD00058733-01" + + var l_mld_opdr_plandatum; + var l_mld_opdr_plandatum_tmp = p_order.mld_opdr_plandatum; //eg "2020-07-30T09:00:00Z", deze kan null zijn!! + if (l_mld_opdr_plandatum_tmp == null){l_mld_opdr_plandatum = ""} else {l_mld_opdr_plandatum = jsdatextoxml(l_mld_opdr_plandatum_tmp)}; + + var l_mld_opdr_plandatum2; + var l_mld_opdr_plandatum2_tmp = p_order.mld_opdr_plandatum2; //eg null, deze kan null zijn!! + if (l_mld_opdr_plandatum2_tmp == null){l_mld_opdr_plandatum2 = ""}else {l_mld_opdr_plandatum2 = jsdatextoxml(l_mld_opdr_plandatum2_tmp)}; + + var l_mld_opdr_opmerking = p_order.mld_opdr_opmerking; // eg "Is niet meer nodig, de vloerbedekking is weer goed.", deze kan null zijn!! + if (l_mld_opdr_opmerking == null){l_mld_opdr_opmerking = ""}; + l_mld_opdr_opmerking = escapeXml(l_mld_opdr_opmerking); + + //var l_fac_srtnotificatie_key = p_order.fac_srtnotificatie_key; // eg 264 + var l_fac_srtnotificatie_code = p_order.fac_srtnotificatie_code; // eg "ORDRSM" + var l_mld_opdr_kosten = p_order.mld_opdr_kosten; // eg 0 + + var l_mld_opdr_onderbreek_code = p_order.mld_opdr_onderbreek_code; // eg "AFW", deze kan null zijn!! + if (l_mld_opdr_onderbreek_code == null){l_mld_opdr_onderbreek_code = ""}; + + var l_mld_opdr_afwijs_code = p_order.mld_opdr_afwijs_code; // eg "ANN" of "WEI", deze kan null zijn!! + if (l_mld_opdr_afwijs_code == null){l_mld_opdr_afwijs_code = ""}; + + var l_response; + + __Log("do_exec_opdrstatus - l_mld_opdr_key: " + l_mld_opdr_key, 3); + __Log("do_exec_opdrstatus - l_fac_srtnotificatie_code: " + l_fac_srtnotificatie_code, 3); + switch (l_fac_srtnotificatie_code) + { + case "ORDNEW": + // Nieuwe opdracht + //Default gaan we ervan uit dat de response goed gaat/is, en dus de notify uit de queue kan... + l_response = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + // Alleen voor Facilitor -> bijlagen van de nieuwe opdrachten ophalen (pullen) + if (AX_or_Tobias() == "F"){ + if (G_mar_sync_bijlages_opdrgvr != '0' && G_mar_sync_bijlages_opdrgvr != '-1'){ + // MARX#57420: Documenten van Tobias AX naar Mareon + // 0/leeg = bestanden vanuit opdrachtgever worden niet gedeeld; + // <> 0 = bestanden vanuit opdrachtgever wel delen met leverancier, default wordt door import nieuwe woco/opdrachtgever de waarde -1 ingevuld, mn voor Tobias bedoeld, hiermee wordt bereikt dat default wel bijlages wordt uitgewisseld. + // LET OP!: vul voor Faciltior kenmerk-key bijlages in, dus key van flexprop van bijlages uit facilitor omgeving, -1 is daarbij geen geldige waarde/key voor kenmerk, en betekent geen uitwisseling) + //Deze key voor Facilitor moet derhalve > 0 zijn, anders heeft dat geen zin cq. gaat dat fout. + __Log("*** START CUST.FACILITOR.NL --> MAREON : Bijlages van opdrachtgever naar Mareon ***", 2); + var l_opdr_str = F_GetOpdrachtKey_NEW(l_mld_opdr_key,l_mld_opdr_ordernr); + F_GetOpdrachten_NEW_POST (l_opdr_str); + __Log("*** END", 2); + } + } + + break; + + case "ORDACP": + // Geaccepteerde opdracht + l_response = GEN_AcceptServiceTask(l_ax_company_id, l_mld_opdr_ordernr, l_mld_opdr_externnr, l_mld_opdr_opmerking); + break; + + case "ORDUPD": + // Gewijzigde opdracht, kan zijn: + // 1. opmerking, of + // 2. een flexprop "onderbroken" (via api) of + // 3. bijlage(n). + + //Default gaan we ervan uit dat de response goed gaat/is, en dus de notify uit de queue kan... + l_response = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + + // 1. opmerking + if (l_mld_opdr_opmerking != ""){ + l_response = GEN_SetSupplierText(l_ax_company_id, l_mld_opdr_ordernr, l_mld_opdr_externnr, l_mld_opdr_opmerking); + } + + // 2. een flexprop "onderbroken" (via api) + if (l_response.api_status_code == 1){ + // Communciatie vorige GEN_SetSupplierText is goed verlopen + if (l_mld_statusopdr_key == 8 && l_mld_opdr_halted == 1 && l_mld_opdr_onderbreek_code != ""){ + // status is 8 (=geaccepteerd), halted is 1 (=onderbroken), en flexprop "onderbeekcode" is gevuld + if (G_mar_communicatielogboek == 1){ + l_response = GEN_OnderbreekServiceTask(l_ax_company_id, l_mld_opdr_onderbreek_code, l_mld_opdr_externnr, l_mld_opdr_opmerking, "-1"); + } + else { + //Communicatielogboek staat UIT, dan geen actie, maar wel uit queue laten verwijderen, dus status_code 1 teruggeven: + l_response = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + } + } + // 3. bijlage(n) + if (l_response.api_status_code == 1){ + // Communciatie vorige GEN_SetSupplierText en/of GEN_OnderbreekServiceTask is goed verlopen + if (G_mar_sync_bijlages_naar_opdrgvr != '0'){ + if (AX_or_Tobias() == "F" || AX_or_Tobias() == "A" || AX_or_Tobias() == "A12" ){ + // Alleen in geval van Facilitor, AX2009 of AX2012 + __Log("*** START: Bijlagen bij opdrachten uit Mareon naar opdrachtgever ***", 2); + F_GetOpdracht_BijlagenQueue (l_mld_opdr_key, l_fac_tracking_datum); + //We gaan er voorlopig uit dat bijlage upload in principe altijd lukt, zo niet, dan toch, en laten we die voorbij gaan... + l_response = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + __Log("*** END", 2); + } + } + } + break; + + case "ORDPLD": + // Gewijzigde Start Plandatum bij opdracht + l_response = GEN_PlanServiceTask(l_ax_company_id, l_mld_opdr_ordernr, l_mld_opdr_externnr, l_mld_opdr_opmerking, l_mld_opdr_plandatum); + break; + + case "ORDPL2": + // Gewijzigde Eind Plandatum bij opdracht + if (G_mar_communicatielogboek == 1){ + //Communicatielogboek staat AAN + l_response = GEN_VerlengServiceTask(l_ax_company_id, "VER", l_mld_opdr_externnr, l_mld_opdr_opmerking, l_mld_opdr_plandatum2); + } + else { + //Communicatielogboek staat UIT, dan geen actie, maar wel uit queue laten verwijderen, dus status_code 1 teruggeven: + l_response = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + break; + + case "ORDHLT": + // Opdracht is onderbroken + if (G_mar_communicatielogboek == 1){ + //Communicatielogboek staat AAN + l_response = GEN_OnderbreekServiceTask(l_ax_company_id, l_mld_opdr_onderbreek_code, l_mld_opdr_externnr, l_mld_opdr_opmerking, "-1"); + } + else { + //Communicatielogboek staat UIT, dan geen actie, maar wel uit queue laten verwijderen, dus status_code 1 teruggeven: + l_response = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + break; + + case "ORDRSM": + // Opdracht is in uitvoering gezet + if (G_mar_communicatielogboek == 1){ + //Communicatielogboek staat AAN + l_response = GEN_UitvoeringServiceTask(l_ax_company_id, "UIT", l_mld_opdr_externnr, l_mld_opdr_opmerking, "-1"); + } + else { + //Communicatielogboek staat UIT, dan geen actie, maar wel uit queue laten verwijderen, dus status_code 1 teruggeven: + l_response = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + break; + + case "ORDCAN": + // Opdracht is afgewezen, reden kan zijn (1) geweigerd of (2) geannuleerd + if (l_mld_opdr_afwijs_code == 'WEI') { + l_response = GEN_RefuseServiceTask(l_ax_company_id, l_mld_opdr_ordernr, l_mld_opdr_externnr, "GEWEIGERD", l_mld_opdr_opmerking); + } + if (l_mld_opdr_afwijs_code == 'ANN') { + l_response = GEN_AnnuleerServiceTask(l_ax_company_id, "ANN", l_mld_opdr_externnr, l_mld_opdr_opmerking, "-1"); + } + break; + + case "ORDAFM": + // Opdracht is technisch voltooid (gereed) + l_response = GEN_CompleteServiceTask(l_ax_company_id, l_mld_opdr_ordernr, l_mld_opdr_externnr, l_mld_opdr_opmerking, l_fac_tracking_datum); + break; + + case "ORDAFR": + // Opdracht is administratief voltooid (kosten gereed) + l_response = GEN_FinancAfrondenServiceTask(l_ax_company_id, l_mld_opdr_ordernr, l_mld_opdr_externnr, l_mld_opdr_kosten); + break; + + default: + // Onbekend, doe niets, ook geen foutmelding, i.v.m. , backward compatible van oude sync adapters die nog (ergens) draaien, en nieuwe statuscodes moeten netto niets doen/geen impact hebben. + // Maar wel alsof het verwerken goed is gegaan, zodat ze uit de queue verdwijnen. + __Log("Onbekende statuscode:" + l_fac_srtnotificatie_code, 1); + l_response = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + l_error = post_do_exec_notification(l_fac_notificatie_key, l_response); + return l_error; +} + + +function post_do_exec_notification(p_fac_notificatie_key, p_response){ + var l_error = 0; + var l_statuscode = p_response.api_status_code; + var l_statustekst = p_response.api_status_message; + var l_reponsetekst = p_response.api_response_message; + var l_extra_omschr = ""; + + var v_API = "MARKNOTISENT"; + var l_url = G_marx_url + "?API=" + v_API + "¬i_key=" + p_fac_notificatie_key + + var v_suppress_req_logging = 0; // Logging van request, indien dat gewenst is, niet onderdrukken. + + if (l_statuscode == 1){ + // Statusbericht is goed verwerkt door ERP, stuur naar Mareon een goed-signaal voor deze notify-queue actie. + l_error = 0; + l_url = l_url + "&resultcode=0"; + FcltAPI2(G_marx_apikey, "GET", l_url, "", 0, v_suppress_req_logging); + } + else{ + // Statusbericht is NIET goed verwerkt door ERP, stuur naar Mareon een fout-signaal voor deze notify-queue actie incl bijbehorende tekst. + l_error = 1; + l_url = l_url + "&resultcode=-1"; + if (l_statustekst != "" || l_reponsetekst != ""){ + var l_extra_omschr = l_statustekst + " - " + l_reponsetekst; + l_extra_omschr = l_extra_omschr.substr(0, 1000); + l_extra_omschr = encodeURIComponent(l_extra_omschr); + l_url = l_url + "&track_text=" + l_extra_omschr; + } + __Log("post_do_exec_notification: Error: " + p_fac_notificatie_key + " - " + l_extra_omschr, 2); + + FcltAPI2(G_marx_apikey, "GET", l_url, "", 0, v_suppress_req_logging); + } + return l_error; +} + + diff --git a/ax/SRC/F_GetOpdrachtenUitvoer.js b/ax/SRC/F_GetOpdrachtenUitvoer.js index 4e8333e..ced2901 100644 --- a/ax/SRC/F_GetOpdrachtenUitvoer.js +++ b/ax/SRC/F_GetOpdrachtenUitvoer.js @@ -47,25 +47,32 @@ function F_GetOpdrachten_Uitvoer() //MARX#56792: XML equivalent van & < > etc toepassen... v_extraInfo = escapeXml(v_extraInfo); - - if (AX_or_Tobias() == "A") { - A_UpdatePurchStatus(v_company_id, "UIT", v_externnr, v_extraInfo, "-1"); - } - if (AX_or_Tobias() == "A12") { - A2012_UpdatePurchStatus(v_company_id, "UIT", v_externnr, v_extraInfo, "-1"); - } - //if (AX_or_Tobias() == "T") { - // T_PlanServiceTask (v_company_id, v_taskId, v_date); - //} - //if (AX_or_Tobias() == "F") { - // FCLT_VerlengServiceTask (v_company_id, v_taskId, v_externnr, v_date); - //} - //if (AX_or_Tobias() == "R") { - // R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "verlengen", v_date, v_extraInfo); - //} - + GEN_UitvoeringServiceTask(v_company_id, "UIT", v_externnr, v_extraInfo, "-1"); + i = i + 1; var strQuery = "//xml/mld_ordr[" + i + "]"; l_deelxml = v_resp.selectSingleNode(strQuery); } } + +function GEN_UitvoeringServiceTask(v_company_id, v_statuscode, v_externnr, v_extraInfo, v_date) +{ + var v_resp; + if (AX_or_Tobias() == "A") { + v_resp = A_UpdatePurchStatus(v_company_id, v_statuscode, v_externnr, v_extraInfo, v_date); + } + if (AX_or_Tobias() == "A12") { + v_resp = A2012_UpdatePurchStatus(v_company_id, v_statuscode, v_externnr, v_extraInfo, v_date); + } + if (AX_or_Tobias() == "T") { + v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + if (AX_or_Tobias() == "F") { + v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + if (AX_or_Tobias() == "R") { + v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + + return v_resp; +} diff --git a/ax/SRC/F_GetOpdrachtenVerlengd.js b/ax/SRC/F_GetOpdrachtenVerlengd.js index c996b73..3c10e98 100644 --- a/ax/SRC/F_GetOpdrachtenVerlengd.js +++ b/ax/SRC/F_GetOpdrachtenVerlengd.js @@ -50,25 +50,32 @@ function F_GetOpdrachten_Verlengd() //MARX#56792: XML equivalent van & < > etc toepassen... v_extraInfo = escapeXml(v_extraInfo); - - if (AX_or_Tobias() == "A") { - A_UpdatePurchStatus(v_company_id, "VER", v_externnr, v_extraInfo, v_date); - } - if (AX_or_Tobias() == "A12") { - A2012_UpdatePurchStatus(v_company_id, "VER", v_externnr, v_extraInfo, v_date); - } - //if (AX_or_Tobias() == "T") { - // T_PlanServiceTask (v_company_id, v_taskId, v_date); - //} - //if (AX_or_Tobias() == "F") { - // FCLT_VerlengServiceTask (v_company_id, v_taskId, v_externnr, v_date); - //} - //if (AX_or_Tobias() == "R") { - // R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "verlengen", v_date, v_extraInfo); - //} + GEN_VerlengServiceTask(v_company_id, "VER", v_externnr, v_extraInfo, v_date); i = i + 1; var strQuery = "//xml/mld_ordr[" + i + "]"; l_deelxml = v_resp.selectSingleNode(strQuery); } } + +function GEN_VerlengServiceTask(v_company_id, v_statuscode, v_externnr, v_extraInfo, v_date) +{ + var v_resp; + if (AX_or_Tobias() == "A") { + v_resp = A_UpdatePurchStatus(v_company_id, v_statuscode, v_externnr, v_extraInfo, v_date); + } + if (AX_or_Tobias() == "A12") { + v_resp = A2012_UpdatePurchStatus(v_company_id, v_statuscode, v_externnr, v_extraInfo, v_date); + } + if (AX_or_Tobias() == "T") { + v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + if (AX_or_Tobias() == "F") { + v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + if (AX_or_Tobias() == "R") { + v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + } + + return v_resp; +} diff --git a/ax/SRC/F_PutOpdrachten.js b/ax/SRC/F_PutOpdrachten.js index 9ec9555..c359a4e 100644 --- a/ax/SRC/F_PutOpdrachten.js +++ b/ax/SRC/F_PutOpdrachten.js @@ -225,9 +225,8 @@ function F_GetOpdrachten_NEW() var l_node; - var l_opdr_str = ""; - var l_marx_api = "ACTION_REF_KEY"; - var l_import_action = "OPDR_POST_BIJLAGE"; + var l_opdr_str = ""; + __Log("F_GetOpdrachten_NEW: " + v_resp.text, 3); @@ -243,24 +242,43 @@ function F_GetOpdrachten_NEW() l_node = strQuery + "/mld_opdr_key_fclt"; var v_mld_opdr_key_fclt = v_resp.selectSingleNode(l_node).text; __Log("v_mld_opdr_key_fclt: " + v_mld_opdr_key_fclt,2); - - if (AX_or_Tobias() == "F") { - v_aantal_bestanden = FCLT_2_MARX_PutOpdrachtBijlages(v_mld_opdr_key_fclt, v_mld_opdr_key_marx); - if (v_aantal_bestanden > 0) - { - l_opdr_str = l_opdr_str + "" + l_import_action + "" + "" + v_mld_opdr_key_marx + ""; - } - } + + l_opdr_str = l_opdr_str + F_GetOpdrachtKey_NEW(v_mld_opdr_key_marx, v_mld_opdr_key_fclt); + i = i + 1; var strQuery = "//xml/mld_ordr[" + i + "]"; l_deelxml = v_resp.selectSingleNode(strQuery); } - if (l_opdr_str != ""){ + F_GetOpdrachten_NEW_POST (l_opdr_str); +} + +// MARX#62647: Koppeling AX365 - Mareon (Push) +// Dezelfde functie als hierboven F_GetOpdrachten_NEW, waarbij daar ALLE opdrachten die nieuw zijn worden opgehaald. +// In dit geval is de nieuwe opdracht al bekend cq een gegevens, namelijk p_opdr_key, en is ophalen niet nodig (bypass) +// Voor het overige wordt hetzelfde gedaan +function F_GetOpdrachtKey_NEW(v_mld_opdr_key_marx, v_mld_opdr_key_fclt) +{ + var l_import_action = "OPDR_POST_BIJLAGE"; + var l_opdr_str = ""; + if (AX_or_Tobias() == "F") { + v_aantal_bestanden = FCLT_2_MARX_PutOpdrachtBijlages(v_mld_opdr_key_fclt, v_mld_opdr_key_marx); + if (v_aantal_bestanden > 0) + { + l_opdr_str = l_opdr_str + "" + l_import_action + "" + "" + v_mld_opdr_key_marx + ""; + } + } + return l_opdr_str; +} + +function F_GetOpdrachten_NEW_POST (l_opdr_str) +{ + var l_marx_api = "ACTION_REF_KEY"; + if (l_opdr_str != ""){ // Er zijn (nieuwe) bijlages bij minimaal 1 opdracht geupload l_opdr_str = "" + l_opdr_str + ""; api_F_PutXML(l_opdr_str, l_marx_api); - } + } } diff --git a/ax/SRC/R_GetOpdrachten.js b/ax/SRC/R_GetOpdrachten.js index 05195e2..7a53da2 100644 --- a/ax/SRC/R_GetOpdrachten.js +++ b/ax/SRC/R_GetOpdrachten.js @@ -127,6 +127,7 @@ function R_GetOpdrachten() else{ // MBMB Hier gaan we een signaal naar Mareon sturen dat er wat mis is gegaan, tbv support.... var l_mbmb = "TODO, een API call die een flexprop van klant zet oid"; + l_mbmb = l_mbmb + ""; } } } diff --git a/ax/SRC/R_SetOpdrachtStatus.js b/ax/SRC/R_SetOpdrachtStatus.js index d15ef07..1469a82 100644 --- a/ax/SRC/R_SetOpdrachtStatus.js +++ b/ax/SRC/R_SetOpdrachtStatus.js @@ -22,27 +22,35 @@ function R_SetOpdrachtStatus(v_company_id, v_taskId, v_externnr, v_status, v_mut //2016-04-15T10:00:43.420 // -var v_result = 0; +var v_result = {api_status_code: 1, api_status_message: "", api_response_message: ""}; + try{ + var v_req = "" + + "" + // + "" + + "" + v_externnr + "" + + "" + v_taskId + ""; + + if (v_status != ""){ + v_req = v_req + "" + v_status + ""; + } + if (v_opmerking != ""){ + v_req = v_req + "" + v_opmerking + ""; + } + + if (v_mut_datum != ""){ + v_req = v_req + "" + v_mut_datum + ""; + } + v_req = v_req + ""; + + WriteText2File(G_rems_opdrachtstatus_xmlfolder, "status_" + v_taskId , "xml" , v_req, 1, 1); + return v_result; + + } + catch (e) + { + // Error. + v_result = {api_status_code: 0, api_status_message: "", api_response_message: ""}; + return v_result; + } -var v_req = "" - + "" - // + "" - + "" + v_externnr + "" - + "" + v_taskId + ""; - -if (v_status != ""){ - v_req = v_req + "" + v_status + ""; } -if (v_opmerking != ""){ - v_req = v_req + "" + v_opmerking + ""; -} - -if (v_mut_datum != ""){ - v_req = v_req + "" + v_mut_datum + ""; -} -v_req = v_req + ""; - -WriteText2File(G_rems_opdrachtstatus_xmlfolder, "status_" + v_taskId , "xml" , v_req, 1, 1); -v_result = 1; -return v_result; -} \ No newline at end of file diff --git a/ax/SRC/T_AcceptServiceTask.js b/ax/SRC/T_AcceptServiceTask.js index 710dc99..d8c3500 100644 --- a/ax/SRC/T_AcceptServiceTask.js +++ b/ax/SRC/T_AcceptServiceTask.js @@ -17,6 +17,7 @@ var v_req = "BonId=" + v_bonId + "" var v_type = 0; var v_soapAction = ""; -var v_resp = apiAX(v_API, v_req, v_type, v_soapAction, 0); +var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) +var v_resp = apiAX_GENERAL(v_API, v_req, v_type, v_soapAction, 0, v_soort_api); return v_resp; } diff --git a/ax/SRC/T_CompleteServiceTask.js b/ax/SRC/T_CompleteServiceTask.js index 2a2650c..f8ec110 100644 --- a/ax/SRC/T_CompleteServiceTask.js +++ b/ax/SRC/T_CompleteServiceTask.js @@ -28,6 +28,7 @@ var v_req = "BonId=" + v_bonId + "" var v_type = 0; var v_soapAction = ""; -var v_resp = apiAX(v_API, v_req, v_type, v_soapAction, 0); +var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) +var v_resp = apiAX_GENERAL(v_API, v_req, v_type, v_soapAction, 0, v_soort_api); return v_resp; } \ No newline at end of file diff --git a/ax/SRC/T_GetOpdrachten.js b/ax/SRC/T_GetOpdrachten.js index 24ee1a3..9b2e405 100644 --- a/ax/SRC/T_GetOpdrachten.js +++ b/ax/SRC/T_GetOpdrachten.js @@ -22,7 +22,7 @@ function T_GetOpdrachten() var l_yesterday = new Date((new Date()).valueOf() - (parseInt(l_aantal_dagen) + parseInt(l_today))*1000*60*60*24); __Log("T_GetOpdrachten: l_yesterday = " + l_yesterday ,0); var v_datum_vanaf = jsdatextoxml(l_yesterday); - var v_datum_tm = jsdatextoxml(l_currentTime); + //var v_datum_tm = jsdatextoxml(l_currentTime); var v_xml_opdrachten; @@ -33,7 +33,7 @@ function T_GetOpdrachten() v_supplier_id = l_suppl_array[i]; // Ophalen van de opdrachten voor aannemer 'v_supplier_id' vanaf (default) gisteren tot en met nu. - v_xml_opdrachten = T_GetOpdrachten_van_Aannemer(v_supplier_id, v_status_code, v_datum_vanaf, v_datum_tm); + v_xml_opdrachten = T_GetOpdrachten_van_Aannemer(v_supplier_id, v_status_code, v_datum_vanaf); // Wegschrijven van de opdrachten (voor aannemer 'v_supplier_id') naar Facilitor.... api_F_PutXML(v_xml_opdrachten, "TOBIAS_OPDRACHTEN"); @@ -42,7 +42,7 @@ function T_GetOpdrachten() -function T_GetOpdrachten_van_Aannemer(v_supplier_id, v_status_code, v_datum_vanaf, v_datum_tm) +function T_GetOpdrachten_van_Aannemer(v_supplier_id, v_status_code, v_datum_vanaf) { diff --git a/ax/SRC/T_PlanServiceTask.js b/ax/SRC/T_PlanServiceTask.js index d7206c5..926ea88 100644 --- a/ax/SRC/T_PlanServiceTask.js +++ b/ax/SRC/T_PlanServiceTask.js @@ -37,6 +37,7 @@ if (l_time != ""){ var v_type = 0; var v_soapAction = ""; -var v_resp = apiAX(v_API, v_req, v_type, v_soapAction, 0); +var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) +var v_resp = apiAX_GENERAL(v_API, v_req, v_type, v_soapAction, 0, v_soort_api); return v_resp; } diff --git a/ax/SRC/T_SetSupplierText.js b/ax/SRC/T_SetSupplierText.js index d7a0ea8..d827e14 100644 --- a/ax/SRC/T_SetSupplierText.js +++ b/ax/SRC/T_SetSupplierText.js @@ -15,6 +15,7 @@ var v_req = "BonId=" + v_bonId + "" var v_type = 0; var v_soapAction = ""; -var v_resp = apiAX(v_API, v_req, v_type, v_soapAction, 0); +var v_soort_api = 1; // (nav MARX#61048: Documenten versturen van Mareon naar AX) is waarde 1 (oude/huidige api via SupplierService) of waarde 2 (nieuwe api via CustomerPortalAX) +var v_resp = apiAX_GENERAL(v_API, v_req, v_type, v_soapAction, 0, v_soort_api); return v_resp; } \ No newline at end of file