MARX#69220 Koppeling Mareon -> Twinq: statusupdates van opdracht naar Twinq
svn path=/Mareon/trunk/; revision=54249
This commit is contained in:
@@ -115,6 +115,7 @@ $(OBJ)\objMareon.js: \
|
|||||||
$(MSRC)\A_UploadDocument.js \
|
$(MSRC)\A_UploadDocument.js \
|
||||||
$(MSRC)\A2012_UploadDocument.js \
|
$(MSRC)\A2012_UploadDocument.js \
|
||||||
$(MSRC)\R_SetOpdrachtStatus.js \
|
$(MSRC)\R_SetOpdrachtStatus.js \
|
||||||
|
$(MSRC)\TQ_SetOpdrachtStatus.js \
|
||||||
$(MSRC)\F_PutOpdrachten.js \
|
$(MSRC)\F_PutOpdrachten.js \
|
||||||
$(MSRC)\A_SetSupplierText.js \
|
$(MSRC)\A_SetSupplierText.js \
|
||||||
$(MSRC)\A2012_SetSupplierText.js \
|
$(MSRC)\A2012_SetSupplierText.js \
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
#include "SRC\A_UploadDocument.js"
|
#include "SRC\A_UploadDocument.js"
|
||||||
#include "SRC\A2012_UploadDocument.js"
|
#include "SRC\A2012_UploadDocument.js"
|
||||||
#include "SRC\R_SetOpdrachtStatus.js"
|
#include "SRC\R_SetOpdrachtStatus.js"
|
||||||
|
#include "SRC\TQ_SetOpdrachtStatus.js"
|
||||||
#include "SRC\T_GetOpdrachten.js"
|
#include "SRC\T_GetOpdrachten.js"
|
||||||
#include "SRC\F_PutOpdrachten.js"
|
#include "SRC\F_PutOpdrachten.js"
|
||||||
#include "SRC\A_SetSupplierText.js"
|
#include "SRC\A_SetSupplierText.js"
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
// --------------------------------------------------------------------------------------
|
|
||||||
// A2012_VerlengServiceTask.js
|
|
||||||
// Copyright 2019 Facilitor. 053-4800 700, helpdesk@facilitor.nl
|
|
||||||
// Written by MB (2019)
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
function A2012_VerlengServiceTask(v_company_id, v_taskId, v_plandate2)
|
|
||||||
{
|
|
||||||
|
|
||||||
var v_API = "updatePurchStatus";
|
|
||||||
if (v_plandate2 != "")
|
|
||||||
{v_plandate2 = v_plandate2 + "Z";}
|
|
||||||
else
|
|
||||||
{v_plandate2 = "1900-01-01T00:00:00Z";}
|
|
||||||
|
|
||||||
v_req = '<updatePurchStatus xmlns="http://tempuri.org"><_companyID>' + v_company_id + "</_companyID> <_taskId>" + v_taskId + "</_taskId> <_planDate>" + v_plandate2 + "</_planDate></updatePurchStatus>";
|
|
||||||
v_type = 0;
|
|
||||||
var v_soapAction = "SupplierPortal/updatePurchStatus";
|
|
||||||
v_resp = apiAX(v_API, v_req, v_type,v_soapAction);
|
|
||||||
|
|
||||||
if (v_type == 1 && v_resp != "")
|
|
||||||
{
|
|
||||||
oStream = new ActiveXObject("ADODB.Stream");
|
|
||||||
oStream.Open();
|
|
||||||
oStream.Type = 1; // adTypeBinary
|
|
||||||
oStream.Write(v_resp); // responseText geeft encoding problemen!
|
|
||||||
oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
|
|
||||||
oStream.Close();
|
|
||||||
|
|
||||||
}
|
|
||||||
return v_resp;
|
|
||||||
}
|
|
||||||
@@ -6,31 +6,60 @@
|
|||||||
|
|
||||||
function A365_supplierservice_GetToken (){
|
function A365_supplierservice_GetToken (){
|
||||||
var v_token;
|
var v_token;
|
||||||
v_token = MARX_GetToken(G_ID_ax365_supplierservice_url, G_ID_ax365_supplierservice_client_id, G_ID_ax365_supplierservice_client_secret, G_ID_ax365_supplierservice_grant_type, G_ID_ax365_supplierservice_resource, G_ID_ax365_supplierservice_scope);
|
v_token = MARX_GetToken(G_ID_ax365_supplierservice_url, G_ID_ax365_supplierservice_client_id, G_ID_ax365_supplierservice_client_secret, G_ID_ax365_supplierservice_grant_type, G_ID_ax365_supplierservice_resource, G_ID_ax365_supplierservice_scope, 0);
|
||||||
WriteSupplierserviceToken2File(v_token);
|
WriteSupplierserviceToken2File(v_token);
|
||||||
return v_token;
|
return v_token;
|
||||||
}
|
}
|
||||||
|
|
||||||
function A365_saxton_GetToken (){
|
function A365_saxton_GetToken (){
|
||||||
var v_token;
|
var v_token;
|
||||||
v_token = MARX_GetToken(G_ID_saxton_url, G_ID_saxton_client_id, G_ID_saxton_client_secret, G_ID_saxton_grant_type, G_ID_saxton_resource, G_ID_saxton_scope);
|
v_token = MARX_GetToken(G_ID_saxton_url, G_ID_saxton_client_id, G_ID_saxton_client_secret, G_ID_saxton_grant_type, G_ID_saxton_resource, G_ID_saxton_scope, 0);
|
||||||
WriteSaxtonToken2File(v_token);
|
WriteSaxtonToken2File(v_token);
|
||||||
return v_token;
|
return v_token;
|
||||||
}
|
}
|
||||||
|
|
||||||
function A2012_saxton_GetToken (){
|
function A2012_saxton_GetToken (){
|
||||||
var v_token;
|
var v_token;
|
||||||
v_token = MARX_GetToken(G_ID_saxton_url, G_ID_saxton_client_id, G_ID_saxton_client_secret, G_ID_saxton_grant_type, G_ID_saxton_resource, G_ID_saxton_scope);
|
v_token = MARX_GetToken(G_ID_saxton_url, G_ID_saxton_client_id, G_ID_saxton_client_secret, G_ID_saxton_grant_type, G_ID_saxton_resource, G_ID_saxton_scope, 0);
|
||||||
WriteSaxtonToken2File(v_token);
|
WriteSaxtonToken2File(v_token);
|
||||||
return v_token;
|
return v_token;
|
||||||
}
|
}
|
||||||
|
|
||||||
function MARX_GetToken (v_url, v_client_id, v_client_secret, v_grant_type, v_resource, v_scope)
|
//MARX#69220 Koppeling Mareon -> Twinq
|
||||||
|
function TWINQ_GetToken (){
|
||||||
|
var v_token;
|
||||||
|
v_token = MARX_GetToken(G_ID_saxton_url, G_ID_saxton_client_id, G_ID_saxton_client_secret, G_ID_saxton_grant_type, G_ID_saxton_resource, G_ID_saxton_scope, 1);
|
||||||
|
WriteSaxtonToken2File(v_token);
|
||||||
|
return v_token;
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARX#69220 Koppeling Mareon -> Twinq
|
||||||
|
// v_basic_authentication (0 of 1): In geval van Twinq, geldt v_basic_authentication (waarde = 1), bij T365/AX2012 geldt dat niet (waarde = 0)
|
||||||
|
function MARX_GetToken (v_url, v_client_id, v_client_secret, v_grant_type, v_resource, v_scope, v_basic_authentication)
|
||||||
{
|
{
|
||||||
|
__Log("MARX_GetToken v_url: " + v_url,3);
|
||||||
|
__Log("MARX_GetToken v_client_id: " + v_client_id,3);
|
||||||
|
__Log("MARX_GetToken v_client_secret: " + v_client_secret,4);
|
||||||
|
__Log("MARX_GetToken v_grant_type: " + v_grant_type,3);
|
||||||
|
__Log("MARX_GetToken v_resource: " + v_resource,3);
|
||||||
|
__Log("MARX_GetToken v_scope: " + v_scope,3);
|
||||||
|
__Log("MARX_GetToken v_basic_authentication: " + v_basic_authentication,3);
|
||||||
|
|
||||||
l_request_body = "client_id=" + v_client_id
|
var l_secret;
|
||||||
|
var l_request_body;
|
||||||
|
l_secret = "";
|
||||||
|
if (v_basic_authentication == 0)
|
||||||
|
{ //geen basic auth, credentials in body...
|
||||||
|
l_request_body = "client_id=" + v_client_id
|
||||||
+ "&client_secret=" + v_client_secret
|
+ "&client_secret=" + v_client_secret
|
||||||
+ "&grant_type=" + v_grant_type;
|
+ "&grant_type=" + v_grant_type;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ // wel basis auth, alleen granttype in body, en client_id en client secret worden in base64 omgezet...
|
||||||
|
l_request_body = "grant_type=" + v_grant_type;
|
||||||
|
var base64 = new Base64Cls();
|
||||||
|
l_secret = base64.encode(v_client_id + ":" + v_client_secret);
|
||||||
|
}
|
||||||
// v_resource is optioneel, in geval van AX365 is deze WEL gevuld (en in AX2012 NIET)
|
// v_resource is optioneel, in geval van AX365 is deze WEL gevuld (en in AX2012 NIET)
|
||||||
if (v_resource != "")
|
if (v_resource != "")
|
||||||
l_request_body = l_request_body + "&resource=" + v_resource;
|
l_request_body = l_request_body + "&resource=" + v_resource;
|
||||||
@@ -41,7 +70,7 @@ function MARX_GetToken (v_url, v_client_id, v_client_secret, v_grant_type, v_res
|
|||||||
var v_type = 1;
|
var v_type = 1;
|
||||||
var v_contenttype = "application/x-www-form-urlencoded";
|
var v_contenttype = "application/x-www-form-urlencoded";
|
||||||
__Log("MARX_GetToken: Nieuwe token opgehaald" ,2);
|
__Log("MARX_GetToken: Nieuwe token opgehaald" ,2);
|
||||||
var v_resp = apiIDentity(v_url, l_request_body, v_type, v_contenttype, 0);
|
var v_resp = apiIDentity(v_url, l_request_body, v_type, v_contenttype, 0, v_basic_authentication, l_secret);
|
||||||
var json_resp = JSON.parse(v_resp);
|
var json_resp = JSON.parse(v_resp);
|
||||||
|
|
||||||
var v_token = json_resp.access_token;
|
var v_token = json_resp.access_token;
|
||||||
|
|||||||
@@ -217,6 +217,16 @@ function MARX_2_REMS_Facturen(){
|
|||||||
F_GetFacturen_REMS();
|
F_GetFacturen_REMS();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ----------------------------- TWINQ functies -----------------------------------------
|
||||||
|
function MARX_2_TWINQ_OpdrachtStatus(){
|
||||||
|
F_GetOpdrachten_Statussen();
|
||||||
|
}
|
||||||
|
|
||||||
|
function MARX_2_TWINQ_Facturen(){
|
||||||
|
F_GetFacturen_TWINQ();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------- Xtractor functies -----------------------------------------
|
// ----------------------------- Xtractor functies -----------------------------------------
|
||||||
function FCLT_2_AX_Facturen(){
|
function FCLT_2_AX_Facturen(){
|
||||||
F_GetFacturen_AX();
|
F_GetFacturen_AX();
|
||||||
@@ -395,7 +405,7 @@ function AX365_2_FACILITOR()
|
|||||||
G_Token_saxton = ReadSaxtonTokenFromFile();
|
G_Token_saxton = ReadSaxtonTokenFromFile();
|
||||||
__Log("G_Token_saxton ReadSaxtonTokenFromFile:" + G_Token_saxton, 4);
|
__Log("G_Token_saxton ReadSaxtonTokenFromFile:" + G_Token_saxton, 4);
|
||||||
if (G_Token_saxton == ""){
|
if (G_Token_saxton == ""){
|
||||||
__Log("G_Token_saxton ReadSupplierserviceTokenFromFile is leeg:", 4);
|
__Log("G_Token_saxton ReadSaxtonTokenFromFile is leeg:", 4);
|
||||||
G_Token_saxton = A365_saxton_GetToken();
|
G_Token_saxton = A365_saxton_GetToken();
|
||||||
}
|
}
|
||||||
__Log("*** END Get AX Saxton Token", 2);
|
__Log("*** END Get AX Saxton Token", 2);
|
||||||
@@ -520,7 +530,7 @@ function MAREON_2_FACILITOR()
|
|||||||
else{
|
else{
|
||||||
//start else-tak "push/notifyqueue"
|
//start else-tak "push/notifyqueue"
|
||||||
|
|
||||||
__Log("*** START FCLT --> AX2012 : Verwerken van ALLE opdrachtstatussen uit Mareon naar Facilitor obv notifyqueue ***", 2);
|
__Log("*** START MAREON --> CUST.FACILITOR.NL : Verwerken van ALLE opdrachtstatussen uit Mareon naar Facilitor obv notifyqueue ***", 2);
|
||||||
MARX_2_FCLT_OpdrachtStatus();
|
MARX_2_FCLT_OpdrachtStatus();
|
||||||
__Log("*** END", 2);
|
__Log("*** END", 2);
|
||||||
|
|
||||||
@@ -588,17 +598,50 @@ function REMS_2_MAREON()
|
|||||||
REMS_2_MARX_Opdrachten();
|
REMS_2_MARX_Opdrachten();
|
||||||
__Log("*** END", 2);
|
__Log("*** END", 2);
|
||||||
|
|
||||||
__Log("*** START FCLT --> AX2012 : Verwerken van ALLE opdrachtstatussen uit Mareon naar REMS obv notifyqueue ***", 2);
|
__Log("*** START MAREON --> REMS : Verwerken van ALLE opdrachtstatussen uit Mareon naar REMS obv notifyqueue ***", 2);
|
||||||
MARX_2_REMS_OpdrachtStatus();
|
MARX_2_REMS_OpdrachtStatus();
|
||||||
__Log("*** END", 2);
|
__Log("*** END", 2);
|
||||||
if (G_rems_facturen_xmlfolder != ""){
|
if (G_rems_facturen_xmlfolder != ""){
|
||||||
MARX_2_REMS_Facturen();
|
MARX_2_REMS_Facturen();
|
||||||
}
|
}
|
||||||
//einde else-tak "push/notifyqueue"
|
//einde else-tak "push/notifyqueue"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function MAREON_2_TWINQ()
|
||||||
|
{
|
||||||
|
|
||||||
|
if (G_ID_saxton_url != "" && G_push_notifyqueue == "1")
|
||||||
|
{
|
||||||
|
__Log("*** START MAREON --> TWINQ : Get (Saxton) Token ***", 2);
|
||||||
|
G_Token_saxton = ReadSaxtonTokenFromFile();
|
||||||
|
__Log("G_Token_saxton ReadSaxtonTokenFromFile:" + G_Token_saxton, 4);
|
||||||
|
if (G_Token_saxton == ""){
|
||||||
|
__Log("G_Token_saxton ReadSaxtonTokenFromFile is leeg:", 4);
|
||||||
|
G_Token_saxton = TWINQ_GetToken();
|
||||||
|
}
|
||||||
|
__Log("*** END Get (Saxton) Token", 2);
|
||||||
|
|
||||||
|
//start "push/notifyqueue"
|
||||||
|
__Log("*** START MAREON --> TWINQ : Verwerken van ALLE opdrachtstatussen uit Mareon naar Twinq obv notifyqueue ***", 2);
|
||||||
|
MARX_2_TWINQ_OpdrachtStatus();
|
||||||
|
__Log("*** END", 2);
|
||||||
|
|
||||||
|
// TODO TODO
|
||||||
|
|
||||||
|
//__Log("*** START MAREON --> TWINQ: Facturen uit Mareon naar Twinq ***", 2);
|
||||||
|
//if (G_fclt_factuur_xmlfolder != ""){
|
||||||
|
// MARX_2_TWINQ_Facturen();
|
||||||
|
//}
|
||||||
|
//__Log("*** END", 2);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
//Geen "push/notifyqueue" ingesteld
|
||||||
|
__Log("*** NQ staat niet in gesteld, de koppeling naarr Twinq staat uit ***", 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function FACILITOR_2_Xtractor()
|
function FACILITOR_2_Xtractor()
|
||||||
{
|
{
|
||||||
@@ -625,8 +668,9 @@ function FACILITOR_2_Xtractor()
|
|||||||
// 1.52 -- MARX#67695: Adapter genereert veel te veel logging --> Logging van base64 XML nodes (van PDF bestanden) is oorzaak, we kappen de logging daarvan af op max. 1024 tekens (1K)
|
// 1.52 -- MARX#67695: Adapter genereert veel te veel logging --> Logging van base64 XML nodes (van PDF bestanden) is oorzaak, we kappen de logging daarvan af op max. 1024 tekens (1K)
|
||||||
// 1.53 -- MARX#67715: Uitbreiding van de communicatie van statuscodes naar REMS
|
// 1.53 -- MARX#67715: Uitbreiding van de communicatie van statuscodes naar REMS
|
||||||
// 1.54 -- MARX#69545 Factuur scanning 365 werkt niet door update in Tobias 365
|
// 1.54 -- MARX#69545 Factuur scanning 365 werkt niet door update in Tobias 365
|
||||||
|
// 1.60 -- MARX#69220 Koppeling Mareon -> Twinq
|
||||||
|
|
||||||
var G_Mareon_Adapter = "1.54";
|
var G_Mareon_Adapter = "1.60";
|
||||||
//MARX#56643: Test Haagwonen inkoopordernummer ontbreekt in Mareon ION001753
|
//MARX#56643: Test Haagwonen inkoopordernummer ontbreekt in Mareon ION001753
|
||||||
var G_new_date = new Date();
|
var G_new_date = new Date();
|
||||||
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
@@ -654,6 +698,8 @@ var G_Token_supplierservice = "";
|
|||||||
var G_ax365_url_serviceax = Read_Ini_Setting("ax365","url_serviceax");
|
var G_ax365_url_serviceax = Read_Ini_Setting("ax365","url_serviceax");
|
||||||
var G_Token_saxton = "";
|
var G_Token_saxton = "";
|
||||||
|
|
||||||
|
var G_twinq_url = Read_Ini_Setting("twinq","url");
|
||||||
|
|
||||||
// In een (1) sync sessie mogen er max 3 x een poging worden gedaan (= eigen keuze) om een Token op te halen indien deze expired zou zijn (om niet in oneindige loop te raken).
|
// In een (1) sync sessie mogen er max 3 x een poging worden gedaan (= eigen keuze) om een Token op te halen indien deze expired zou zijn (om niet in oneindige loop te raken).
|
||||||
var G_AX365_Allowed_Get_Token = 3;
|
var G_AX365_Allowed_Get_Token = 3;
|
||||||
|
|
||||||
@@ -673,7 +719,7 @@ var G_pdf_xtractorfolder = Read_Ini_Setting("xtractor","pdffolder");
|
|||||||
var G_ax_succeededfolder = Read_Ini_Setting("xtractor", "succeededfolder");
|
var G_ax_succeededfolder = Read_Ini_Setting("xtractor", "succeededfolder");
|
||||||
var G_ax_rejectedfolder = Read_Ini_Setting("xtractor", "rejectedfolder");
|
var G_ax_rejectedfolder = Read_Ini_Setting("xtractor", "rejectedfolder");
|
||||||
|
|
||||||
// Identity Token instellingen voor de AX Saxton webservice 'CustomerPortalAX'
|
// Identity Token instellingen voor de AX Saxton webservice 'CustomerPortalAX' of Twinq token service
|
||||||
var G_ID_saxton_url = Read_Ini_Setting("identityserver","token/url");
|
var G_ID_saxton_url = Read_Ini_Setting("identityserver","token/url");
|
||||||
var G_ID_saxton_client_id = Read_Ini_Setting("identityserver","token/client_id");
|
var G_ID_saxton_client_id = Read_Ini_Setting("identityserver","token/client_id");
|
||||||
var G_ID_saxton_client_secret = Read_Ini_Setting("identityserver","token/client_secret");
|
var G_ID_saxton_client_secret = Read_Ini_Setting("identityserver","token/client_secret");
|
||||||
@@ -707,6 +753,8 @@ var G_mar_timeout = 0; //initieel 1e keer.
|
|||||||
__Log("***XML- ax/url(ServiceAX): " + G_ax_url_serviceax, 1);
|
__Log("***XML- ax/url(ServiceAX): " + G_ax_url_serviceax, 1);
|
||||||
__Log("***XML- ax2012/url(SupplierService): " + G_ax2012_url, 1);
|
__Log("***XML- ax2012/url(SupplierService): " + G_ax2012_url, 1);
|
||||||
__Log("***XML- ax2012/url(ServiceAX): " + G_ax2012_url_serviceax, 1);
|
__Log("***XML- ax2012/url(ServiceAX): " + G_ax2012_url_serviceax, 1);
|
||||||
|
__Log("***XML- ax365/url(SupplierService): " + G_ax365_url_supplierservice, 1);
|
||||||
|
__Log("***XML- ax365/url(ServiceAX): " + G_ax365_url_serviceax, 1);
|
||||||
__Log("***XML- tobias/url: " + G_tobias_url, 1);
|
__Log("***XML- tobias/url: " + G_tobias_url, 1);
|
||||||
__Log("***XML- facilitor/url: " + G_fclt_url, 1);
|
__Log("***XML- facilitor/url: " + G_fclt_url, 1);
|
||||||
__Log("***XML- facilitor/factuur/xmlfolder: " + G_fclt_factuur_xmlfolder, 1);
|
__Log("***XML- facilitor/factuur/xmlfolder: " + G_fclt_factuur_xmlfolder, 1);
|
||||||
@@ -714,6 +762,7 @@ var G_mar_timeout = 0; //initieel 1e keer.
|
|||||||
__Log("***XML- rems/opdrachtenfolder: " + G_rems_opdracht_xmlfolder, 1);
|
__Log("***XML- rems/opdrachtenfolder: " + G_rems_opdracht_xmlfolder, 1);
|
||||||
__Log("***XML- rems/opdrachtstatusfolder: " + G_rems_opdrachtstatus_xmlfolder, 1);
|
__Log("***XML- rems/opdrachtstatusfolder: " + G_rems_opdrachtstatus_xmlfolder, 1);
|
||||||
__Log("***XML- rems/facturenfolder: " + G_rems_facturen_xmlfolder, 1);
|
__Log("***XML- rems/facturenfolder: " + G_rems_facturen_xmlfolder, 1);
|
||||||
|
__Log("***XML- twinq/url: " + G_twinq_url, 1);
|
||||||
__Log("***XML- identityserver/token/url: " + G_ID_saxton_url, 1);
|
__Log("***XML- identityserver/token/url: " + G_ID_saxton_url, 1);
|
||||||
__Log("***XML- mareon/url: " + G_marx_url, 1);
|
__Log("***XML- mareon/url: " + G_marx_url, 1);
|
||||||
__Log("***XML- xtractor/xmlfolder: " + G_ax_xtractorfolder, 1);
|
__Log("***XML- xtractor/xmlfolder: " + G_ax_xtractorfolder, 1);
|
||||||
@@ -851,6 +900,11 @@ var G_mar_timeout = 0; //initieel 1e keer.
|
|||||||
__Log("REMS", 2);
|
__Log("REMS", 2);
|
||||||
REMS_2_MAREON();
|
REMS_2_MAREON();
|
||||||
}
|
}
|
||||||
|
if (AX_or_Tobias() == "TQ")
|
||||||
|
{
|
||||||
|
__Log("TWINQ", 2);
|
||||||
|
MAREON_2_TWINQ();
|
||||||
|
}
|
||||||
if (G_ax_xtractorfolder != "")
|
if (G_ax_xtractorfolder != "")
|
||||||
{
|
{
|
||||||
FACILITOR_2_Xtractor();
|
FACILITOR_2_Xtractor();
|
||||||
|
|||||||
@@ -59,6 +59,10 @@
|
|||||||
<opdr_past_days>1</opdr_past_days><!-- opdr_past_days is default 1 (alle opdrachten vanaf gisteren) -->
|
<opdr_past_days>1</opdr_past_days><!-- opdr_past_days is default 1 (alle opdrachten vanaf gisteren) -->
|
||||||
<opdr_today></opdr_today><!-- opdr_today is optioneel en default empty (empty = alle opdrachten tot en met vandaag, 1 = alle opdrachten tot met gisteren, 2 = eergisteren etc) -->
|
<opdr_today></opdr_today><!-- opdr_today is optioneel en default empty (empty = alle opdrachten tot en met vandaag, 1 = alle opdrachten tot met gisteren, 2 = eergisteren etc) -->
|
||||||
</ax365>
|
</ax365>
|
||||||
|
<twinq>
|
||||||
|
<!-- URL van de webservice 'ketenstandaard' bij Twinq -->
|
||||||
|
<url></url>
|
||||||
|
</twinq>
|
||||||
<!-- Identity-server behorende bij de AX Saxton webservice 'CustomerPortalAX' van ax2012 of ax365 -->
|
<!-- Identity-server behorende bij de AX Saxton webservice 'CustomerPortalAX' van ax2012 of ax365 -->
|
||||||
<identityserver>
|
<identityserver>
|
||||||
<token>
|
<token>
|
||||||
|
|||||||
304
ax/SRC/Common.js
304
ax/SRC/Common.js
@@ -19,7 +19,9 @@ function AX_or_Tobias(){
|
|||||||
else {if (G_ax365_url_supplierservice != "" || G_ax365_url_serviceax != "") return "A365";
|
else {if (G_ax365_url_supplierservice != "" || G_ax365_url_serviceax != "") return "A365";
|
||||||
else {if (G_fclt_url != "") return "F";
|
else {if (G_fclt_url != "") return "F";
|
||||||
else {if (G_rems_opdracht_xmlfolder != "") return "R";
|
else {if (G_rems_opdracht_xmlfolder != "") return "R";
|
||||||
else return "";
|
else {if (G_twinq_url != "") return "TQ";
|
||||||
|
else return "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -291,6 +293,12 @@ function apiAX_GENERAL (v_API, v_req, v_type, v_soapAction, v_discard_active_abo
|
|||||||
}
|
}
|
||||||
l_result = api2_AX365_inner(v_url, v_API, v_req, v_type, v_soapAction, v_discard_active_abort, v_soort_api, v_token);
|
l_result = api2_AX365_inner(v_url, v_API, v_req, v_type, v_soapAction, v_discard_active_abort, v_soort_api, v_token);
|
||||||
}
|
}
|
||||||
|
if (AX_or_Tobias() == "TQ")
|
||||||
|
{
|
||||||
|
var v_url = G_twinq_url;
|
||||||
|
var v_token = G_Token_saxton;
|
||||||
|
l_result = api2_TWINQ_inner(v_url, v_API, v_req, v_type, v_soapAction, v_discard_active_abort, v_soort_api, v_token);
|
||||||
|
}
|
||||||
if (AX_or_Tobias() == "T")
|
if (AX_or_Tobias() == "T")
|
||||||
{
|
{
|
||||||
// laatste parameter is runmethod, hier altijd 0 (= standaard runmethod van Tobias)
|
// laatste parameter is runmethod, hier altijd 0 (= standaard runmethod van Tobias)
|
||||||
@@ -732,7 +740,7 @@ function api2_AX365_inner (v_Url, v_API, v_req, v_type, v_soapAction, v_discard_
|
|||||||
G_AX365_Allowed_Get_Token = G_AX365_Allowed_Get_Token - 1;
|
G_AX365_Allowed_Get_Token = G_AX365_Allowed_Get_Token - 1;
|
||||||
switch (v_soort_api){
|
switch (v_soort_api){
|
||||||
case 1: G_Token_supplierservice = A365_supplierservice_GetToken(); var l_token = G_Token_supplierservice; break;
|
case 1: G_Token_supplierservice = A365_supplierservice_GetToken(); var l_token = G_Token_supplierservice; break;
|
||||||
case 2: G_Token_saxton = A2012_saxton_GetToken(); var l_token = G_Token_saxton; break;
|
case 2: G_Token_saxton = A365_saxton_GetToken(); var l_token = G_Token_saxton; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// We mogen nu de functie zelf nog eens aanroepen (iteratief).
|
// We mogen nu de functie zelf nog eens aanroepen (iteratief).
|
||||||
@@ -769,15 +777,143 @@ function api2_AX365_inner (v_Url, v_API, v_req, v_type, v_soapAction, v_discard_
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Levert/retourneert een rij (struct) op van de volgende waarden:
|
||||||
|
// api_status_code: 0 of 1, 0 = fout gegaan, 1 = goed gegaan
|
||||||
|
// api_status_message: statustekst behorende bij status_code (http.statusText)
|
||||||
|
// api_response_message: response-berecht van webservice (api) die wordt aangeroepen.
|
||||||
|
function api2_TWINQ_inner (v_Url, v_API, v_req, v_type, v_soapAction, v_discard_active_abort, v_soort_api, v_token)
|
||||||
|
{
|
||||||
|
__Log("api2_TWINQ_inner v_API: " + v_API, 3);
|
||||||
|
__Log("api2_TWINQ_inner v_type: " + v_type, 3);
|
||||||
|
__Log("api2_TWINQ_inner v_req: " + v_req, 3);
|
||||||
|
__Log("api2_TWINQ_inner v_discard_active_abort: " + v_discard_active_abort, 3);
|
||||||
|
__Log("api2_TWINQ_inner v_soort_api: " + v_soort_api, 3);
|
||||||
|
|
||||||
|
var lResolve = 0;
|
||||||
|
var lConnect = 60 * 1000;
|
||||||
|
var lSend = 30 * 1000;
|
||||||
|
|
||||||
|
|
||||||
function apiIDentity (v_url, v_req, v_type, v_contenttype, v_discard_active_abort)
|
var xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP.6.0");
|
||||||
|
SXH_PROXY_SET_PROXY = 2;
|
||||||
|
if (typeof proxy != "undefined" && proxy)
|
||||||
|
xmlhttp.setProxy(SXH_PROXY_SET_PROXY, proxy);
|
||||||
|
|
||||||
|
xmlhttp.open("POST", v_Url, false);
|
||||||
|
|
||||||
|
__Log("api2_TWINQ_inner v_token: " + v_token, 4);
|
||||||
|
xmlhttp.setRequestHeader("Authorization", "Bearer " + v_token);
|
||||||
|
xmlhttp.setRequestHeader("Content-Type", "text/plain");
|
||||||
|
var v_msg = v_req;
|
||||||
|
|
||||||
|
__Log("api2_TWINQ_inner v_msg: " + v_msg, 4);
|
||||||
|
|
||||||
|
if (G_mar_timeout != 0){
|
||||||
|
//MARX#57502: AX Adapter robuuster maken, instelbare timeout
|
||||||
|
xmlhttp.setTimeouts(lResolve, lConnect, lSend, G_mar_timeout * 1000);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
xmlhttp.send(v_msg);
|
||||||
|
var txt = xmlhttp.responseText;
|
||||||
|
}
|
||||||
|
catch (e)
|
||||||
|
{
|
||||||
|
//MARX#57502: AX Adapter robuuster maken: Waarschijnlijk timeout-error
|
||||||
|
var txt = "api2_TWINQ_inner failed/timeout: " + e.description;
|
||||||
|
__Log(txt,1);
|
||||||
|
if (G_abort_http_error == 1)
|
||||||
|
{
|
||||||
|
MARXQUIT(v_discard_active_abort);
|
||||||
|
}
|
||||||
|
return {api_status_code: 0, api_status_message: "", api_response_message: txt};
|
||||||
|
//return "";
|
||||||
|
}
|
||||||
|
var l_statusText = xmlhttp.status + " " + xmlhttp.statusText;
|
||||||
|
|
||||||
|
if (xmlhttp.status >= 200 && xmlhttp.status <= 299)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
__Log("api2_TWINQ_inner XML Response = TRUE :", 3);
|
||||||
|
__Log("api2_TWINQ_inner XML Response :" + txt, 3);
|
||||||
|
return {api_status_code: 1, api_status_message: l_statusText, api_response_message: txt};
|
||||||
|
//return txt;
|
||||||
|
}
|
||||||
|
catch (e)
|
||||||
|
{
|
||||||
|
// Waarschijnlijk http-error terug gekregen
|
||||||
|
return {api_status_code: 1, api_status_message: l_statusText, api_response_message: txt};
|
||||||
|
//return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ __Log("api2_TWINQ_inner XML Response = FALSE :",1);
|
||||||
|
__Log("api2_TWINQ_inner - HTTP <> 2xx",1);
|
||||||
|
__Log("api2_TWINQ_inner URL: " + v_Url,1);
|
||||||
|
__Log("api2_TWINQ_inner Message: " + v_msg.substr(0,4*1024),1);
|
||||||
|
__Log("api2_TWINQ_inner Status: "+ l_statusText,1);
|
||||||
|
l_resp = xmlhttp.responseText;
|
||||||
|
__Log("api2_TWINQ_inner ResponseText:" + l_resp,1);
|
||||||
|
|
||||||
|
if (xmlhttp.status == 500 || xmlhttp.status == 401){
|
||||||
|
// SupplierService geeft HTTP 500 in geval van Unauthorized, AX Saxton webservice 'CustomerPortalAX' geeft HTTP 401
|
||||||
|
// Token expired? Kan heel goed mogelijk zijn, token heeft geldigheid van uur, en is om
|
||||||
|
// Als in response (dit is XML) de faultcode forbidden is, dan is dat het geval:
|
||||||
|
// <faultcode xmlns:a="http://schemas.microsoft.com/2009/WebFault">a:Forbidden</faultcode>
|
||||||
|
// Bij HTTP401 (in geval CustomerPortalAX) is er geen XML die terugkomt.
|
||||||
|
// MARX#69545 Factuur scanning 365 werkt niet door update in Tobias 365, vandaar extra check op NativeErrorCode 1287
|
||||||
|
if (xmlhttp.status == 401) {
|
||||||
|
// Forbidden gevonden, we doen een retry, door een nieuwe token op te halen / op te vragen, max. 3 x in een sync (G_AX365_Allowed_Get_Token > 0)
|
||||||
|
if (G_AX365_Allowed_Get_Token > 0){
|
||||||
|
G_AX365_Allowed_Get_Token = G_AX365_Allowed_Get_Token - 1;
|
||||||
|
G_Token_saxton = TWINQ_GetToken(); var l_token = G_Token_saxton;
|
||||||
|
|
||||||
|
|
||||||
|
// We mogen nu de functie zelf nog eens aanroepen (iteratief).
|
||||||
|
l_result = api2_TWINQ_inner (v_Url, v_API, v_req, v_type, v_soapAction, v_discard_active_abort, v_soort_api, l_token);
|
||||||
|
return l_result;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
__Log("api2_TWINQ_inner: Token problem, maximum van 3 pogingen zijn allemaal mislukt" ,1);
|
||||||
|
if (G_abort_http_error == 1)
|
||||||
|
{
|
||||||
|
MARXQUIT(v_discard_active_abort);
|
||||||
|
}
|
||||||
|
return {api_status_code: 0, api_status_message: l_statusText, api_response_message: txt};
|
||||||
|
//return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if (G_abort_http_error == 1)
|
||||||
|
{
|
||||||
|
MARXQUIT(v_discard_active_abort);
|
||||||
|
}
|
||||||
|
return {api_status_code: 0, api_status_message: l_statusText, api_response_message: txt};
|
||||||
|
//return ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (G_abort_http_error == 1)
|
||||||
|
{
|
||||||
|
MARXQUIT(v_discard_active_abort);
|
||||||
|
}
|
||||||
|
return {api_status_code: 0, api_status_message: l_statusText, api_response_message: txt};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function apiIDentity (v_url, v_req, v_type, v_contenttype, v_discard_active_abort, v_basic_authentication, v_secret)
|
||||||
{
|
{
|
||||||
|
|
||||||
__Log("apiIDentity v_url: " + v_url, 3);
|
__Log("apiIDentity v_url: " + v_url, 3);
|
||||||
__Log("apiIDentity v_req: " + v_req, 3);
|
__Log("apiIDentity v_req: " + v_req, 3);
|
||||||
__Log("apiIDentity v_type: " + v_type, 3);
|
__Log("apiIDentity v_type: " + v_type, 3);
|
||||||
__Log("apiIDentity v_discard_active_abort: " + v_discard_active_abort, 3);
|
__Log("apiIDentity v_discard_active_abort: " + v_discard_active_abort, 3);
|
||||||
|
__Log("apiIDentity v_basic_authentication: " + v_basic_authentication, 3);
|
||||||
|
|
||||||
|
|
||||||
var lResolve = 0;
|
var lResolve = 0;
|
||||||
var lConnect = 60 * 1000;
|
var lConnect = 60 * 1000;
|
||||||
@@ -791,6 +927,11 @@ function apiIDentity (v_url, v_req, v_type, v_contenttype, v_discard_active_abor
|
|||||||
|
|
||||||
xmlhttp.open("POST", v_url, false);
|
xmlhttp.open("POST", v_url, false);
|
||||||
xmlhttp.setRequestHeader("Content-Type", v_contenttype);
|
xmlhttp.setRequestHeader("Content-Type", v_contenttype);
|
||||||
|
if (v_basic_authentication == 1)
|
||||||
|
{
|
||||||
|
__Log("apiIDentity l_secret: " + v_secret, 4);
|
||||||
|
xmlhttp.setRequestHeader("Authorization", "Basic " + v_secret);
|
||||||
|
}
|
||||||
|
|
||||||
if (G_mar_timeout != 0){
|
if (G_mar_timeout != 0){
|
||||||
//MARX#57502: AX Adapter robuuster maken, instelbare timeout
|
//MARX#57502: AX Adapter robuuster maken, instelbare timeout
|
||||||
@@ -1342,6 +1483,10 @@ function MARX_substr (v_str, v_char, v_last){
|
|||||||
return l_result;
|
return l_result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function MARX_replaceAll(str, find, replace) {
|
||||||
|
return str.replace(new RegExp(find, 'g'), replace);
|
||||||
|
}
|
||||||
|
|
||||||
function STR_2_XML (v_str){
|
function STR_2_XML (v_str){
|
||||||
var xmldoc = new ActiveXObject("Msxml2.DOMDocument.6.0");
|
var xmldoc = new ActiveXObject("Msxml2.DOMDocument.6.0");
|
||||||
xmldoc.async = false;
|
xmldoc.async = false;
|
||||||
@@ -1393,6 +1538,159 @@ function __Log_XML(p_xmldoc, p_node, level){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Copied from \UTILS\PutOrders\puo_base64.js
|
||||||
|
function Base64Cls()
|
||||||
|
{
|
||||||
|
// Private variabelen
|
||||||
|
this._keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
|
||||||
|
|
||||||
|
// Public functies
|
||||||
|
this.encode = _encode;
|
||||||
|
this.decode = _decode;
|
||||||
|
|
||||||
|
|
||||||
|
// private method for UTF-8 encoding
|
||||||
|
function utf8_encode(string)
|
||||||
|
{
|
||||||
|
string = string.replace(/\r\n/g,"\n");
|
||||||
|
var utftext = "";
|
||||||
|
|
||||||
|
for (var n = 0; n < string.length; n++)
|
||||||
|
{
|
||||||
|
var c = string.charCodeAt(n);
|
||||||
|
|
||||||
|
if (c < 128)
|
||||||
|
{
|
||||||
|
utftext += String.fromCharCode(c);
|
||||||
|
}
|
||||||
|
else if((c > 127) && (c < 2048))
|
||||||
|
{
|
||||||
|
utftext += String.fromCharCode((c >> 6) | 192);
|
||||||
|
utftext += String.fromCharCode((c & 63) | 128);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
utftext += String.fromCharCode((c >> 12) | 224);
|
||||||
|
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
|
||||||
|
utftext += String.fromCharCode((c & 63) | 128);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return utftext;
|
||||||
|
}
|
||||||
|
|
||||||
|
// private method for UTF-8 decoding
|
||||||
|
function utf8_decode(utftext)
|
||||||
|
{
|
||||||
|
var string = "";
|
||||||
|
var i = 0;
|
||||||
|
var c = c1 = c2 = 0;
|
||||||
|
|
||||||
|
while ( i < utftext.length )
|
||||||
|
{
|
||||||
|
c = utftext.charCodeAt(i);
|
||||||
|
|
||||||
|
if (c < 128)
|
||||||
|
{
|
||||||
|
string += String.fromCharCode(c);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
else if((c > 191) && (c < 224))
|
||||||
|
{
|
||||||
|
c2 = utftext.charCodeAt(i+1);
|
||||||
|
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
|
||||||
|
i += 2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
c2 = utftext.charCodeAt(i+1);
|
||||||
|
c3 = utftext.charCodeAt(i+2);
|
||||||
|
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
|
||||||
|
i += 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return string;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function _encode(input)
|
||||||
|
{
|
||||||
|
var output = "";
|
||||||
|
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
|
||||||
|
var i = 0;
|
||||||
|
|
||||||
|
input = utf8_encode(input);
|
||||||
|
|
||||||
|
while (i < input.length)
|
||||||
|
{
|
||||||
|
chr1 = input.charCodeAt(i++);
|
||||||
|
chr2 = input.charCodeAt(i++);
|
||||||
|
chr3 = input.charCodeAt(i++);
|
||||||
|
|
||||||
|
enc1 = chr1 >> 2;
|
||||||
|
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
|
||||||
|
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
|
||||||
|
enc4 = chr3 & 63;
|
||||||
|
|
||||||
|
if (isNaN(chr2))
|
||||||
|
{
|
||||||
|
enc3 = enc4 = 64;
|
||||||
|
}
|
||||||
|
else if (isNaN(chr3))
|
||||||
|
{
|
||||||
|
enc4 = 64;
|
||||||
|
}
|
||||||
|
|
||||||
|
output = output +
|
||||||
|
this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
|
||||||
|
this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
|
||||||
|
|
||||||
|
}
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _decode(input)
|
||||||
|
{
|
||||||
|
var output = "";
|
||||||
|
var chr1, chr2, chr3;
|
||||||
|
var enc1, enc2, enc3, enc4;
|
||||||
|
var i = 0;
|
||||||
|
|
||||||
|
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
|
||||||
|
|
||||||
|
while (i < input.length)
|
||||||
|
{
|
||||||
|
enc1 = this._keyStr.indexOf(input.charAt(i++));
|
||||||
|
enc2 = this._keyStr.indexOf(input.charAt(i++));
|
||||||
|
enc3 = this._keyStr.indexOf(input.charAt(i++));
|
||||||
|
enc4 = this._keyStr.indexOf(input.charAt(i++));
|
||||||
|
|
||||||
|
chr1 = (enc1 << 2) | (enc2 >> 4);
|
||||||
|
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
|
||||||
|
chr3 = ((enc3 & 3) << 6) | enc4;
|
||||||
|
|
||||||
|
output = output + String.fromCharCode(chr1);
|
||||||
|
|
||||||
|
if (enc3 != 64)
|
||||||
|
{
|
||||||
|
output = output + String.fromCharCode(chr2);
|
||||||
|
}
|
||||||
|
if (enc4 != 64)
|
||||||
|
{
|
||||||
|
output = output + String.fromCharCode(chr3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
output = utf8_decode(output);
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function encodeBase64(p_bytes){
|
function encodeBase64(p_bytes){
|
||||||
l_xml=new ActiveXObject("Msxml2.DOMDocument.6.0");
|
l_xml=new ActiveXObject("Msxml2.DOMDocument.6.0");
|
||||||
// Create temporary node with Base64 data type
|
// Create temporary node with Base64 data type
|
||||||
|
|||||||
@@ -66,15 +66,15 @@ function F_GetOpdrachten_AcceptRefuse()
|
|||||||
v_mld_opdr_extrainfo = escapeXml(v_mld_opdr_extrainfo);
|
v_mld_opdr_extrainfo = escapeXml(v_mld_opdr_extrainfo);
|
||||||
|
|
||||||
if (v_srtnotificatie_code == 'ORDACP') {
|
if (v_srtnotificatie_code == 'ORDACP') {
|
||||||
GEN_AcceptServiceTask(v_company_id, v_taskId, v_externnr, v_mld_opdr_extrainfo);
|
GEN_AcceptServiceTask(v_company_id, "", "", v_taskId, v_externnr, v_mld_opdr_extrainfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (v_srtnotificatie_code == 'ORDCAN') {
|
if (v_srtnotificatie_code == 'ORDCAN') {
|
||||||
GEN_RefuseServiceTask(v_company_id, v_taskId, v_externnr, "GEWEIGERD", v_mld_opdr_extrainfo);
|
GEN_RefuseServiceTask(v_company_id, "", "", v_taskId, v_externnr, "GEWEIGERD", v_mld_opdr_extrainfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (v_srtnotificatie_code == 'ORDANN') {
|
if (v_srtnotificatie_code == 'ORDANN') {
|
||||||
GEN_AnnuleerServiceTask(v_company_id, v_taskId, "ANN", v_externnr, v_mld_opdr_extrainfo, "-1");
|
GEN_AnnuleerServiceTask(v_company_id, "", "", v_taskId, "ANN", v_externnr, v_mld_opdr_extrainfo, "-1");
|
||||||
}
|
}
|
||||||
|
|
||||||
i = i + 1;
|
i = i + 1;
|
||||||
@@ -83,7 +83,7 @@ function F_GetOpdrachten_AcceptRefuse()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function GEN_AcceptServiceTask(v_company_id, v_taskId, v_externnr, v_mld_opdr_extrainfo)
|
function GEN_AcceptServiceTask(v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_externnr, v_mld_opdr_extrainfo)
|
||||||
{
|
{
|
||||||
var v_resp;
|
var v_resp;
|
||||||
if (AX_or_Tobias() == "A") {
|
if (AX_or_Tobias() == "A") {
|
||||||
@@ -101,13 +101,16 @@ function GEN_AcceptServiceTask(v_company_id, v_taskId, v_externnr, v_mld_opdr_ex
|
|||||||
if (AX_or_Tobias() == "F") {
|
if (AX_or_Tobias() == "F") {
|
||||||
v_resp = FCLT_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "ORDACP", "");
|
v_resp = FCLT_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "ORDACP", "");
|
||||||
}
|
}
|
||||||
if (AX_or_Tobias() == "R") {
|
if (AX_or_Tobias() == "R") {
|
||||||
v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "ACC", "", v_mld_opdr_extrainfo);
|
v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "ACC", "", v_mld_opdr_extrainfo);
|
||||||
}
|
}
|
||||||
|
if (AX_or_Tobias() == "TQ") {
|
||||||
|
v_resp = TQ_SetOpdrachtStatus (v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_externnr, "ACC", v_mld_opdr_extrainfo, "-1");
|
||||||
|
}
|
||||||
return v_resp;
|
return v_resp;
|
||||||
}
|
}
|
||||||
|
|
||||||
function GEN_RefuseServiceTask(v_company_id, v_taskId, v_externnr, v_code_geweigerd, v_mld_opdr_extrainfo)
|
function GEN_RefuseServiceTask(v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_externnr, v_code_geweigerd, v_mld_opdr_extrainfo)
|
||||||
{
|
{
|
||||||
var v_resp;
|
var v_resp;
|
||||||
|
|
||||||
@@ -129,12 +132,14 @@ function GEN_RefuseServiceTask(v_company_id, v_taskId, v_externnr, v_code_geweig
|
|||||||
if (AX_or_Tobias() == "R") {
|
if (AX_or_Tobias() == "R") {
|
||||||
v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "WEI", "", v_mld_opdr_extrainfo);
|
v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "WEI", "", v_mld_opdr_extrainfo);
|
||||||
}
|
}
|
||||||
|
if (AX_or_Tobias() == "TQ") {
|
||||||
|
v_resp = TQ_SetOpdrachtStatus (v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_externnr, "WEI", v_mld_opdr_extrainfo, "-1");
|
||||||
|
}
|
||||||
return v_resp;
|
return v_resp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function GEN_AnnuleerServiceTask(v_company_id, v_taskId, v_statuscode, v_externnr, v_mld_opdr_extrainfo, v_date)
|
function GEN_AnnuleerServiceTask(v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_statuscode, v_externnr, v_mld_opdr_extrainfo, v_date)
|
||||||
{
|
{
|
||||||
var v_resp;
|
var v_resp;
|
||||||
|
|
||||||
@@ -156,6 +161,8 @@ function GEN_AnnuleerServiceTask(v_company_id, v_taskId, v_statuscode, v_externn
|
|||||||
if (AX_or_Tobias() == "R") {
|
if (AX_or_Tobias() == "R") {
|
||||||
v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, v_statuscode, "", v_mld_opdr_extrainfo);
|
v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, v_statuscode, "", v_mld_opdr_extrainfo);
|
||||||
}
|
}
|
||||||
|
if (AX_or_Tobias() == "TQ") {
|
||||||
|
v_resp = TQ_SetOpdrachtStatus (v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_externnr, v_statuscode, v_mld_opdr_extrainfo, "-1");
|
||||||
|
}
|
||||||
return v_resp;
|
return v_resp;
|
||||||
}
|
}
|
||||||
@@ -51,7 +51,7 @@ function F_GetOpdrachten_Afgemeld()
|
|||||||
|
|
||||||
//MARX#56792: XML equivalent van & < > etc toepassen...
|
//MARX#56792: XML equivalent van & < > etc toepassen...
|
||||||
v_extraInfo = escapeXml(v_extraInfo);
|
v_extraInfo = escapeXml(v_extraInfo);
|
||||||
GEN_CompleteServiceTask(v_company_id, v_taskId, v_externnr, v_extraInfo, v_dateComplete);
|
GEN_CompleteServiceTask(v_company_id, "", "", v_taskId, v_externnr, v_extraInfo, v_dateComplete);
|
||||||
|
|
||||||
i = i + 1;
|
i = i + 1;
|
||||||
var strQuery = "//xml/mld_ordr[" + i + "]";
|
var strQuery = "//xml/mld_ordr[" + i + "]";
|
||||||
@@ -59,7 +59,7 @@ function F_GetOpdrachten_Afgemeld()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function GEN_CompleteServiceTask(v_company_id, v_taskId, v_externnr, v_extraInfo, v_dateComplete)
|
function GEN_CompleteServiceTask(v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_externnr, v_extraInfo, v_dateComplete)
|
||||||
{
|
{
|
||||||
var v_resp;
|
var v_resp;
|
||||||
|
|
||||||
@@ -81,6 +81,8 @@ function GEN_CompleteServiceTask(v_company_id, v_taskId, v_externnr, v_extraInfo
|
|||||||
if (AX_or_Tobias() == "R") {
|
if (AX_or_Tobias() == "R") {
|
||||||
v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "GER", v_dateComplete, v_extraInfo);
|
v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "GER", v_dateComplete, v_extraInfo);
|
||||||
}
|
}
|
||||||
|
if (AX_or_Tobias() == "TQ") {
|
||||||
|
v_resp = TQ_SetOpdrachtStatus (v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_externnr, "GER", v_extraInfo, v_dateComplete);
|
||||||
|
}
|
||||||
return v_resp;
|
return v_resp;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,6 +82,8 @@ function GEN_FinancAfrondenServiceTask(v_company_id, v_taskId, v_externnr, v_opd
|
|||||||
if (AX_or_Tobias() == "R") {
|
if (AX_or_Tobias() == "R") {
|
||||||
v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""};
|
v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""};
|
||||||
}
|
}
|
||||||
|
if (AX_or_Tobias() == "TQ") {
|
||||||
|
v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""};
|
||||||
|
}
|
||||||
return v_resp;
|
return v_resp;
|
||||||
}
|
}
|
||||||
@@ -52,7 +52,7 @@ function F_GetOpdrachten_Gepland()
|
|||||||
//MARX#56792: XML equivalent van & < > etc toepassen...
|
//MARX#56792: XML equivalent van & < > etc toepassen...
|
||||||
v_extraInfo = escapeXml(v_extraInfo);
|
v_extraInfo = escapeXml(v_extraInfo);
|
||||||
|
|
||||||
GEN_PlanServiceTask(v_company_id, v_taskId, v_externnr, v_extraInfo, v_date);
|
GEN_PlanServiceTask(v_company_id, "", "", v_taskId, v_externnr, v_extraInfo, v_date);
|
||||||
|
|
||||||
i = i + 1;
|
i = i + 1;
|
||||||
var strQuery = "//xml/mld_ordr[" + i + "]";
|
var strQuery = "//xml/mld_ordr[" + i + "]";
|
||||||
@@ -60,7 +60,7 @@ function F_GetOpdrachten_Gepland()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function GEN_PlanServiceTask(v_company_id, v_taskId, v_externnr, v_extraInfo, v_date)
|
function GEN_PlanServiceTask(v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_externnr, v_extraInfo, v_date)
|
||||||
{
|
{
|
||||||
var v_resp;
|
var v_resp;
|
||||||
if (AX_or_Tobias() == "A") {
|
if (AX_or_Tobias() == "A") {
|
||||||
@@ -81,6 +81,8 @@ function GEN_PlanServiceTask(v_company_id, v_taskId, v_externnr, v_extraInfo, v_
|
|||||||
if (AX_or_Tobias() == "R") {
|
if (AX_or_Tobias() == "R") {
|
||||||
v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "AFH", v_date, v_extraInfo);
|
v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "AFH", v_date, v_extraInfo);
|
||||||
}
|
}
|
||||||
|
if (AX_or_Tobias() == "TQ") {
|
||||||
|
v_resp = TQ_SetOpdrachtStatus (v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_externnr, "AFH", v_extraInfo, v_date);
|
||||||
|
}
|
||||||
return v_resp;
|
return v_resp;
|
||||||
}
|
}
|
||||||
@@ -51,7 +51,7 @@ function F_GetOpdrachten_Onderbroken()
|
|||||||
|
|
||||||
//MARX#56792: XML equivalent van & < > etc toepassen...
|
//MARX#56792: XML equivalent van & < > etc toepassen...
|
||||||
v_extraInfo = escapeXml(v_extraInfo);
|
v_extraInfo = escapeXml(v_extraInfo);
|
||||||
GEN_OnderbreekServiceTask(v_company_id, v_taskId, v_statuscode, v_externnr, v_extraInfo, "-1");
|
GEN_OnderbreekServiceTask(v_company_id, "", "", v_taskId, v_statuscode, v_externnr, v_extraInfo, "-1");
|
||||||
|
|
||||||
i = i + 1;
|
i = i + 1;
|
||||||
var strQuery = "//xml/mld_ordr[" + i + "]";
|
var strQuery = "//xml/mld_ordr[" + i + "]";
|
||||||
@@ -60,7 +60,7 @@ function F_GetOpdrachten_Onderbroken()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function GEN_OnderbreekServiceTask(v_company_id, v_taskId, v_statuscode, v_externnr, v_extraInfo, v_date)
|
function GEN_OnderbreekServiceTask(v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_statuscode, v_externnr, v_extraInfo, v_date)
|
||||||
{
|
{
|
||||||
var v_resp;
|
var v_resp;
|
||||||
if (AX_or_Tobias() == "A") {
|
if (AX_or_Tobias() == "A") {
|
||||||
@@ -81,13 +81,15 @@ function GEN_OnderbreekServiceTask(v_company_id, v_taskId, v_statuscode, v_exter
|
|||||||
if (AX_or_Tobias() == "R") {
|
if (AX_or_Tobias() == "R") {
|
||||||
v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, v_statuscode, "", v_extraInfo);
|
v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, v_statuscode, "", v_extraInfo);
|
||||||
}
|
}
|
||||||
|
if (AX_or_Tobias() == "TQ") {
|
||||||
|
v_resp = TQ_SetOpdrachtStatus (v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_externnr, v_statuscode, v_extraInfo, v_date);
|
||||||
|
}
|
||||||
return v_resp;
|
return v_resp;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dezelfde functie als GEN_OnderbreekServiceTask, maar wordt alleen uitgevoerd als de onderbreek-status afwijkt van laatst gestuurde onderbreek-status, en nadat bericht is gestuurd, wordt deze laatste
|
// Dezelfde functie als GEN_OnderbreekServiceTask, maar wordt alleen uitgevoerd als de onderbreek-status afwijkt van laatst gestuurde onderbreek-status, en nadat bericht is gestuurd, wordt deze laatste
|
||||||
// onderbreekstatus in Mareon vastgelegd/geregistreerd, voor de volgende keer.
|
// onderbreekstatus in Mareon vastgelegd/geregistreerd, voor de volgende keer.
|
||||||
function GEN_Conditioneel_OnderbreekServiceTask (v_opdr_key, v_company_id, v_taskId, v_statuscode, v_externnr, v_extraInfo, v_date){
|
function GEN_Conditioneel_OnderbreekServiceTask (v_opdr_key, v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_statuscode, v_externnr, v_extraInfo, v_date){
|
||||||
var v_resp;
|
var v_resp;
|
||||||
//Default gaan we ervan uit dat de response goed gaat/is, en dus de notify uit de queue kan...
|
//Default gaan we ervan uit dat de response goed gaat/is, en dus de notify uit de queue kan...
|
||||||
v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""};
|
v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""};
|
||||||
@@ -96,7 +98,7 @@ function GEN_Conditioneel_OnderbreekServiceTask (v_opdr_key, v_company_id, v_tas
|
|||||||
v_laatste_statuscode_Mareon = F_GetOpdracht_Laatse_Onderbreekcode (v_opdr_key);
|
v_laatste_statuscode_Mareon = F_GetOpdracht_Laatse_Onderbreekcode (v_opdr_key);
|
||||||
if (v_statuscode != v_laatste_statuscode_Mareon){
|
if (v_statuscode != v_laatste_statuscode_Mareon){
|
||||||
// De statuscode die nu wordt gestuurd, wijkt af van de laatste statuscode, dus: opsturen naar ERP odprachtgever...
|
// De statuscode die nu wordt gestuurd, wijkt af van de laatste statuscode, dus: opsturen naar ERP odprachtgever...
|
||||||
v_resp = GEN_OnderbreekServiceTask(v_company_id, v_taskId, v_statuscode, v_externnr, v_extraInfo, v_date);
|
v_resp = GEN_OnderbreekServiceTask(v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_statuscode, v_externnr, v_extraInfo, v_date);
|
||||||
if (v_resp.api_status_code == 1){
|
if (v_resp.api_status_code == 1){
|
||||||
// then goed verwerkt, stuur naar Mareon dat deze (laatst) gestuurde onderbreek-code naar ERP opdrachtgever goed is verwerkt, en registreer deze onderbreek-code, om dubbele berichten te voorkomen
|
// then goed verwerkt, stuur naar Mareon dat deze (laatst) gestuurde onderbreek-code naar ERP opdrachtgever goed is verwerkt, en registreer deze onderbreek-code, om dubbele berichten te voorkomen
|
||||||
MARX_Send_Succes_Or_Failure(v_opdr_key, "OPDR_POST_ONDERBREEK", v_statuscode);
|
MARX_Send_Succes_Or_Failure(v_opdr_key, "OPDR_POST_ONDERBREEK", v_statuscode);
|
||||||
|
|||||||
@@ -78,6 +78,9 @@ function GEN_SetSupplierText(v_company_id, v_taskId, v_externnr, v_extraInfo)
|
|||||||
if (AX_or_Tobias() == "R") {
|
if (AX_or_Tobias() == "R") {
|
||||||
v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "", "", v_extraInfo);
|
v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, "", "", v_extraInfo);
|
||||||
}
|
}
|
||||||
|
if (AX_or_Tobias() == "TQ") {
|
||||||
|
v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""};
|
||||||
|
}
|
||||||
|
|
||||||
return v_resp;
|
return v_resp;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -154,6 +154,10 @@ function do_exec_opdrstatus(p_order, p_min_fac_tracking_datum_ordupd){
|
|||||||
var l_mld_opdr_halted = p_order.mld_opdr_halted; // 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_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_ax_company_id = p_order.ax_company_id; // eg "1"
|
||||||
|
|
||||||
|
var l_woco_gln = p_order.woco_prs_leverancier_nr; // eg "1234567890123"
|
||||||
|
var l_lev_gln = p_order.lev_prs_leverancier_nr; // eg "1234567890123"
|
||||||
|
|
||||||
//var l_mld_melding_externnr = p_order.mld_melding_externnr; // eg "MLD00058733"
|
//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_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_ordernr = p_order.mld_opdr_ordernr; // eg "MLD00058733-01"
|
||||||
@@ -226,7 +230,7 @@ function do_exec_opdrstatus(p_order, p_min_fac_tracking_datum_ordupd){
|
|||||||
|
|
||||||
case "ORDACP":
|
case "ORDACP":
|
||||||
// Geaccepteerde opdracht
|
// Geaccepteerde opdracht
|
||||||
l_response = GEN_AcceptServiceTask(l_ax_company_id, l_mld_opdr_ordernr, l_mld_opdr_externnr, l_mld_opdr_opmerking);
|
l_response = GEN_AcceptServiceTask(l_ax_company_id, l_woco_gln, l_lev_gln, l_mld_opdr_ordernr, l_mld_opdr_externnr, l_mld_opdr_opmerking);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "ORDUPD":
|
case "ORDUPD":
|
||||||
@@ -248,7 +252,7 @@ function do_exec_opdrstatus(p_order, p_min_fac_tracking_datum_ordupd){
|
|||||||
// Communciatie vorige GEN_SetSupplierText is goed verlopen
|
// Communciatie vorige GEN_SetSupplierText is goed verlopen
|
||||||
if (l_mld_statusopdr_key == 8 && l_mld_opdr_halted == 1 && l_mld_opdr_onderbreek_code != ""){
|
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
|
// status is 8 (=geaccepteerd), halted is 1 (=onderbroken), en flexprop "onderbeekcode" is gevuld
|
||||||
l_response = GEN_Conditioneel_OnderbreekServiceTask(l_mld_opdr_key, l_ax_company_id, l_mld_opdr_ordernr, l_mld_opdr_onderbreek_code, l_mld_opdr_externnr, l_mld_opdr_opmerking, "-1");
|
l_response = GEN_Conditioneel_OnderbreekServiceTask(l_mld_opdr_key, l_ax_company_id, l_woco_gln, l_lev_gln, l_mld_opdr_ordernr, l_mld_opdr_onderbreek_code, l_mld_opdr_externnr, l_mld_opdr_opmerking, "-1");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 3. bijlage(n)
|
// 3. bijlage(n)
|
||||||
@@ -278,7 +282,7 @@ function do_exec_opdrstatus(p_order, p_min_fac_tracking_datum_ordupd){
|
|||||||
case "ORDPLD":
|
case "ORDPLD":
|
||||||
// Gewijzigde Start Plandatum bij opdracht
|
// Gewijzigde Start Plandatum bij opdracht
|
||||||
if (l_mld_opdr_plandatum != ""){
|
if (l_mld_opdr_plandatum != ""){
|
||||||
l_response = GEN_PlanServiceTask(l_ax_company_id, l_mld_opdr_ordernr, l_mld_opdr_externnr, l_mld_opdr_opmerking, l_mld_opdr_plandatum);
|
l_response = GEN_PlanServiceTask(l_ax_company_id, l_woco_gln, l_lev_gln, l_mld_opdr_ordernr, l_mld_opdr_externnr, l_mld_opdr_opmerking, l_mld_opdr_plandatum);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
// Uit de NQ halen
|
// Uit de NQ halen
|
||||||
@@ -289,7 +293,7 @@ function do_exec_opdrstatus(p_order, p_min_fac_tracking_datum_ordupd){
|
|||||||
case "ORDPL2":
|
case "ORDPL2":
|
||||||
// Gewijzigde Eind Plandatum bij opdracht
|
// Gewijzigde Eind Plandatum bij opdracht
|
||||||
if (l_mld_opdr_plandatum2 != ""){
|
if (l_mld_opdr_plandatum2 != ""){
|
||||||
l_response = GEN_VerlengServiceTask(l_ax_company_id, l_mld_opdr_ordernr, "VER", l_mld_opdr_externnr, l_mld_opdr_opmerking, l_mld_opdr_plandatum2);
|
l_response = GEN_VerlengServiceTask(l_ax_company_id, l_woco_gln, l_lev_gln, l_mld_opdr_ordernr, "VER", l_mld_opdr_externnr, l_mld_opdr_opmerking, l_mld_opdr_plandatum2);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
// Uit de NQ halen
|
// Uit de NQ halen
|
||||||
@@ -299,21 +303,21 @@ function do_exec_opdrstatus(p_order, p_min_fac_tracking_datum_ordupd){
|
|||||||
|
|
||||||
case "ORDHLT":
|
case "ORDHLT":
|
||||||
// Opdracht is onderbroken
|
// Opdracht is onderbroken
|
||||||
l_response = GEN_Conditioneel_OnderbreekServiceTask(l_mld_opdr_key, l_ax_company_id, l_mld_opdr_ordernr, l_mld_opdr_onderbreek_code, l_mld_opdr_externnr, l_mld_opdr_opmerking, "-1");
|
l_response = GEN_Conditioneel_OnderbreekServiceTask(l_mld_opdr_key, l_ax_company_id, l_woco_gln, l_lev_gln, l_mld_opdr_ordernr, l_mld_opdr_onderbreek_code, l_mld_opdr_externnr, l_mld_opdr_opmerking, "-1");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "ORDRSM":
|
case "ORDRSM":
|
||||||
// Opdracht is in uitvoering gezet
|
// Opdracht is in uitvoering gezet
|
||||||
l_response = GEN_UitvoeringServiceTask_ResetOnderbreek(l_mld_opdr_key, l_ax_company_id, l_mld_opdr_ordernr, "UIT", l_mld_opdr_externnr, l_mld_opdr_opmerking, "-1");
|
l_response = GEN_UitvoeringServiceTask_ResetOnderbreek(l_mld_opdr_key, l_ax_company_id, l_woco_gln, l_lev_gln, l_mld_opdr_ordernr, "UIT", l_mld_opdr_externnr, l_mld_opdr_opmerking, "-1");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "ORDCAN":
|
case "ORDCAN":
|
||||||
// Opdracht is afgewezen, reden kan zijn (1) geweigerd of (2) geannuleerd
|
// Opdracht is afgewezen, reden kan zijn (1) geweigerd of (2) geannuleerd
|
||||||
if (l_mld_opdr_afwijs_code == 'WEI') {
|
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);
|
l_response = GEN_RefuseServiceTask(l_ax_company_id, l_woco_gln, l_lev_gln, l_mld_opdr_ordernr, l_mld_opdr_externnr, "GEWEIGERD", l_mld_opdr_opmerking);
|
||||||
}
|
}
|
||||||
if (l_mld_opdr_afwijs_code == 'ANN') {
|
if (l_mld_opdr_afwijs_code == 'ANN') {
|
||||||
l_response = GEN_AnnuleerServiceTask(l_ax_company_id, l_mld_opdr_ordernr, "ANN", l_mld_opdr_externnr, l_mld_opdr_opmerking, "-1");
|
l_response = GEN_AnnuleerServiceTask(l_ax_company_id, l_woco_gln, l_lev_gln, l_mld_opdr_ordernr, "ANN", l_mld_opdr_externnr, l_mld_opdr_opmerking, "-1");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ function F_GetOpdrachten_Uitvoer()
|
|||||||
|
|
||||||
//MARX#56792: XML equivalent van & < > etc toepassen...
|
//MARX#56792: XML equivalent van & < > etc toepassen...
|
||||||
v_extraInfo = escapeXml(v_extraInfo);
|
v_extraInfo = escapeXml(v_extraInfo);
|
||||||
GEN_UitvoeringServiceTask(v_company_id, v_taskId, "UIT", v_externnr, v_extraInfo, "-1");
|
GEN_UitvoeringServiceTask(v_company_id, "", "", v_taskId, "UIT", v_externnr, v_extraInfo, "-1");
|
||||||
|
|
||||||
i = i + 1;
|
i = i + 1;
|
||||||
var strQuery = "//xml/mld_ordr[" + i + "]";
|
var strQuery = "//xml/mld_ordr[" + i + "]";
|
||||||
@@ -55,7 +55,7 @@ function F_GetOpdrachten_Uitvoer()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function GEN_UitvoeringServiceTask(v_company_id, v_taskId, v_statuscode, v_externnr, v_extraInfo, v_date)
|
function GEN_UitvoeringServiceTask(v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_statuscode, v_externnr, v_extraInfo, v_date)
|
||||||
{
|
{
|
||||||
var v_resp;
|
var v_resp;
|
||||||
if (AX_or_Tobias() == "A") {
|
if (AX_or_Tobias() == "A") {
|
||||||
@@ -76,16 +76,18 @@ function GEN_UitvoeringServiceTask(v_company_id, v_taskId, v_statuscode, v_exter
|
|||||||
if (AX_or_Tobias() == "R") {
|
if (AX_or_Tobias() == "R") {
|
||||||
v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, v_statuscode, "", v_extraInfo);
|
v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, v_statuscode, "", v_extraInfo);
|
||||||
}
|
}
|
||||||
|
if (AX_or_Tobias() == "TQ") {
|
||||||
|
v_resp = TQ_SetOpdrachtStatus (v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_externnr, v_statuscode, v_extraInfo, v_date);
|
||||||
|
}
|
||||||
return v_resp;
|
return v_resp;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dezelfde functie als GEN_UitvoeringServiceTask, maar nadat bericht is gestuurd, wordt deze laatste onderbreekstatus in Mareon gewist, voor de volgende keer altijd (=onvoorwaardelijk) een onderbreekcode wordt gestuurd.
|
// Dezelfde functie als GEN_UitvoeringServiceTask, maar nadat bericht is gestuurd, wordt deze laatste onderbreekstatus in Mareon gewist, voor de volgende keer altijd (=onvoorwaardelijk) een onderbreekcode wordt gestuurd.
|
||||||
function GEN_UitvoeringServiceTask_ResetOnderbreek (v_opdr_key, v_company_id, v_taskId, v_statuscode, v_externnr, v_extraInfo, v_date){
|
function GEN_UitvoeringServiceTask_ResetOnderbreek (v_opdr_key, v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_statuscode, v_externnr, v_extraInfo, v_date){
|
||||||
var v_resp;
|
var v_resp;
|
||||||
//Default gaan we ervan uit dat de response goed gaat/is, en dus de notify uit de queue kan...
|
//Default gaan we ervan uit dat de response goed gaat/is, en dus de notify uit de queue kan...
|
||||||
|
|
||||||
v_resp = GEN_UitvoeringServiceTask(v_company_id, v_taskId, v_statuscode, v_externnr, v_extraInfo, v_date);
|
v_resp = GEN_UitvoeringServiceTask(v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_statuscode, v_externnr, v_extraInfo, v_date);
|
||||||
if (v_resp.api_status_code == 1){
|
if (v_resp.api_status_code == 1){
|
||||||
// then goed verwerkt, stuur naar Mareon dat de (laatst) gestuurde onderbreek-code naar ERP opdrachtgever gewist/gedelete kan worden.
|
// then goed verwerkt, stuur naar Mareon dat de (laatst) gestuurde onderbreek-code naar ERP opdrachtgever gewist/gedelete kan worden.
|
||||||
MARX_Send_Succes_Or_Failure(v_opdr_key, "OPDR_POST_ONDERBREEK", "");
|
MARX_Send_Succes_Or_Failure(v_opdr_key, "OPDR_POST_ONDERBREEK", "");
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ function F_GetOpdrachten_Verlengd()
|
|||||||
|
|
||||||
//MARX#56792: XML equivalent van & < > etc toepassen...
|
//MARX#56792: XML equivalent van & < > etc toepassen...
|
||||||
v_extraInfo = escapeXml(v_extraInfo);
|
v_extraInfo = escapeXml(v_extraInfo);
|
||||||
GEN_VerlengServiceTask(v_company_id, v_taskId, "VER", v_externnr, v_extraInfo, v_date);
|
GEN_VerlengServiceTask(v_company_id, "", "", v_taskId, "VER", v_externnr, v_extraInfo, v_date);
|
||||||
|
|
||||||
i = i + 1;
|
i = i + 1;
|
||||||
var strQuery = "//xml/mld_ordr[" + i + "]";
|
var strQuery = "//xml/mld_ordr[" + i + "]";
|
||||||
@@ -58,7 +58,7 @@ function F_GetOpdrachten_Verlengd()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function GEN_VerlengServiceTask(v_company_id, v_taskId, v_statuscode, v_externnr, v_extraInfo, v_date)
|
function GEN_VerlengServiceTask(v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_statuscode, v_externnr, v_extraInfo, v_date)
|
||||||
{
|
{
|
||||||
var v_resp;
|
var v_resp;
|
||||||
if (AX_or_Tobias() == "A") {
|
if (AX_or_Tobias() == "A") {
|
||||||
@@ -79,6 +79,8 @@ function GEN_VerlengServiceTask(v_company_id, v_taskId, v_statuscode, v_externnr
|
|||||||
if (AX_or_Tobias() == "R") {
|
if (AX_or_Tobias() == "R") {
|
||||||
v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, v_statuscode, v_date, v_extraInfo);
|
v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, v_statuscode, v_date, v_extraInfo);
|
||||||
}
|
}
|
||||||
|
if (AX_or_Tobias() == "TQ") {
|
||||||
|
v_resp = TQ_SetOpdrachtStatus (v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_externnr, v_statuscode, v_extraInfo, v_date);
|
||||||
|
}
|
||||||
return v_resp;
|
return v_resp;
|
||||||
}
|
}
|
||||||
|
|||||||
144
ax/SRC/TQ_SetOpdrachtStatus.js
Normal file
144
ax/SRC/TQ_SetOpdrachtStatus.js
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
// --------------------------------------------------------------------------------------
|
||||||
|
// TQ_SetOpdrachtStatus.js
|
||||||
|
// Copyright 2021 Facilitor. 053-4800 700, helpdesk@mareon.nl
|
||||||
|
// Written by MB
|
||||||
|
//
|
||||||
|
|
||||||
|
//Berichtvoorbeeld
|
||||||
|
//Voorbeeld Body: dit is een SALES005 ketenstandaard MaintenanceStatus XML-bericht:
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
//<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
//<MaintenanceStatus xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.ketenstandaard.nl/onderhoudsstatus/SALES/005" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ketenstandaard.nl/onderhoudsstatus/SALES/005 Onderhoudsstatus_SALES005.xsd">
|
||||||
|
//<MessageNumber>1234</MessageNumber>
|
||||||
|
//<MessageDate>2021-12-16</MessageDate>
|
||||||
|
//<MessageTime>10:27:30</MessageTime>
|
||||||
|
//<Buyer>
|
||||||
|
// <GLN>8712345000011</GLN>
|
||||||
|
//</Buyer>
|
||||||
|
//<Contractor>
|
||||||
|
// <GLN>8712345000004</GLN>
|
||||||
|
//</Contractor>
|
||||||
|
//<InstructionData>
|
||||||
|
// <InstructionNumber>ION000001</InstructionNumber>
|
||||||
|
// <Status>GER</Status>
|
||||||
|
// <DateReady>2021-12-15</DateReady>
|
||||||
|
// <FreeText>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</FreeText>
|
||||||
|
// <AppointmentDateTimeInformation>
|
||||||
|
// <RequiredDeliveryDate>2018-07-17</RequiredDeliveryDate> Afspraakdatum
|
||||||
|
// <RequiredDeliveryTime>00:00:00</RequiredDeliveryTime> Afspraaktijd
|
||||||
|
// <DeliveryTimeFrame>
|
||||||
|
// <DeliveryDateEarliest>2018-07-16</DeliveryDateEarliest>
|
||||||
|
// <DeliveryTimeEarliest>00:00:00</DeliveryTimeEarliest>
|
||||||
|
// <DeliveryDateLatest>2018-07-18</DeliveryDateLatest> Verlengingsdatum
|
||||||
|
// <DeliveryTimeLatest>00:00:00</DeliveryTimeLatest> Verlengingstijd
|
||||||
|
// </DeliveryTimeFrame>
|
||||||
|
// </AppointmentDateTimeInformation>
|
||||||
|
//</InstructionData>
|
||||||
|
//</MaintenanceStatus>
|
||||||
|
|
||||||
|
// v_company_id is AX365 bedrijf-id
|
||||||
|
// v_statuscode is een van de vaste/afgesproken (ketenstandaard) statuscode, bv ACC, GER, etc
|
||||||
|
// v_purchId is het opdracht/ION nr van AX365
|
||||||
|
// v_extraInfo is optionele tekst
|
||||||
|
// v_dateTime is datum/tijd veld die bij sommige statuscodes verplicht is, bv bij die van GER (gereeddatum/tijd)
|
||||||
|
// v_communicatie_logboek_vereist(waarde 0/1) geeft aan of in AX365 het zg. "communicatielogboek" moet zijn ingericht (nee=0, ja=1) voor betreffende status 'v_statuscode',
|
||||||
|
// wanneer waarde 0 dan altijd communicatie, en bij waarde 1 betekent dat G_mar_communicatielogboek moet aanstaan, zo niet, dan wordt de status niet aan AX365 gestuurd (maar geskipt)
|
||||||
|
|
||||||
|
function TQ_SetOpdrachtStatus (v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_purchId, v_statuscode, v_extraInfo, v_dateTime)
|
||||||
|
{
|
||||||
|
//default gaan we ervan uit dat de communcatie goed verloopt (lekker positief ingesteld ;-)
|
||||||
|
var v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""};
|
||||||
|
__Log("TQ_SetOpdrachtStatus: " + "Start", 2);
|
||||||
|
__Log("v_company_id: " + v_company_id, 2);
|
||||||
|
__Log("v_woco_gln: " + v_woco_gln, 2);
|
||||||
|
__Log("v_lev_gln: " + v_lev_gln, 2);
|
||||||
|
__Log("v_taskId: " + v_taskId, 2);
|
||||||
|
__Log("v_purchId: " + v_purchId, 2);
|
||||||
|
__Log("v_statuscode: " + v_statuscode, 2);
|
||||||
|
__Log("v_dateTime: " + v_dateTime, 2);
|
||||||
|
|
||||||
|
if (v_dateTime == "-1")
|
||||||
|
{
|
||||||
|
// met v_dateTime gelijk aan -1 willen we de datumtime xml niet opnemen in de request!
|
||||||
|
v_dateTime = "";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
v_dateTime = v_dateTime; // e.g.: 2021-12-17T12:00:00
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var l_timestamp = displayTimeStamp() //yyyy-mm-ddThh_mi_ss_iii (jaar-maand-dagTuur_min_sec_millisec): 23 tekens
|
||||||
|
|
||||||
|
l_msg_id = l_timestamp.substr(2); // 21 tekens
|
||||||
|
l_msg_id = MARX_replaceAll(l_msg_id, "-", "");//19 tekens
|
||||||
|
l_msg_id = MARX_replaceAll(l_msg_id, "_", "");//17 tekens
|
||||||
|
l_msg_id = MARX_replaceAll(l_msg_id, "T", "");//15 tekens
|
||||||
|
|
||||||
|
// Returns a random integer from 0 to 99 // 2 tekens
|
||||||
|
var l_random = Math.floor(Math.random() * 100);
|
||||||
|
var l_msg_id = l_msg_id + l_random; // max. 17 tekens
|
||||||
|
|
||||||
|
var l_msg_date = l_timestamp.substr(0,10); //yyyy-mm-dd
|
||||||
|
var l_msg_time = l_timestamp.substr(11,8)
|
||||||
|
l_msg_time = MARX_replaceAll(l_msg_time, "_", ":"); //hh:mi:ss
|
||||||
|
|
||||||
|
var v_req = "<MaintenanceStatus xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"http://www.ketenstandaard.nl/onderhoudsstatus/SALES/005\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.ketenstandaard.nl/onderhoudsstatus/SALES/005 Onderhoudsstatus_SALES005.xsd\">"
|
||||||
|
+ "<MessageNumber>" + l_msg_id + "</MessageNumber>"
|
||||||
|
+ "<MessageDate>" + l_msg_date + "</MessageDate>"
|
||||||
|
+ "<MessageTime>" + l_msg_time + "</MessageTime>"
|
||||||
|
+ "<Buyer>"
|
||||||
|
+ "<GLN>" + v_woco_gln + "</GLN>"
|
||||||
|
+ "</Buyer>"
|
||||||
|
+ "<Contractor>"
|
||||||
|
+ "<GLN>" + v_lev_gln + "</GLN>"
|
||||||
|
+ "</Contractor>"
|
||||||
|
+ "<InstructionData>"
|
||||||
|
+ "<InstructionNumber>" + v_purchId + "</InstructionNumber>"
|
||||||
|
+ "<Status>" + v_statuscode + "</Status>";
|
||||||
|
|
||||||
|
var l_dateTime_datum = v_dateTime.substr(0,10);
|
||||||
|
var l_dateTime_tijd = v_dateTime.substr(11,8);
|
||||||
|
|
||||||
|
if (v_statuscode == "GER" && l_dateTime_datum != "")
|
||||||
|
{ // Alleen bij gereedmelden opdrachten (technisch afmelden) komt in SALES005 de DateReady in de vorm van YYYY-MM-DD mee...
|
||||||
|
v_req = v_req + "<DateReady>" + l_dateTime_datum + "</DateReady>";
|
||||||
|
}
|
||||||
|
if (v_extraInfo != "")
|
||||||
|
{
|
||||||
|
v_req = v_req + "<FreeText>" + v_extraInfo + "</FreeText>";
|
||||||
|
}
|
||||||
|
if ((v_statuscode == "AFH" || v_statuscode == "VER") && l_dateTime_datum != "")
|
||||||
|
{
|
||||||
|
v_req = v_req + "<AppointmentDateTimeInformation>";
|
||||||
|
if (v_statuscode == "AFH")
|
||||||
|
{
|
||||||
|
v_req = v_req + "<RequiredDeliveryDate>" + l_dateTime_datum + "</RequiredDeliveryDate>"; // Afspraakdatum
|
||||||
|
v_req = v_req + "<RequiredDeliveryTime>" + l_dateTime_tijd + "</RequiredDeliveryTime>";// Afspraakdatum
|
||||||
|
}
|
||||||
|
if (v_statuscode == "VER")
|
||||||
|
{
|
||||||
|
v_req = v_req + "<DeliveryTimeFrame>";
|
||||||
|
v_req = v_req + "<DeliveryDateLatest>" + l_dateTime_datum + "</DeliveryDateLatest>"; // Verlengingsdatum
|
||||||
|
v_req = v_req + "<DeliveryTimeLatest>" + l_dateTime_tijd + "</DeliveryTimeLatest>"; // Verlengingstijd
|
||||||
|
v_req = v_req + "</DeliveryTimeFrame>";
|
||||||
|
}
|
||||||
|
v_req = v_req + "</AppointmentDateTimeInformation>";
|
||||||
|
}
|
||||||
|
v_req = v_req + "</InstructionData>";
|
||||||
|
v_req = v_req + "</MaintenanceStatus>";
|
||||||
|
|
||||||
|
__Log("v_req: " + v_req, 2);
|
||||||
|
|
||||||
|
var v_API = "";
|
||||||
|
var v_type = 0;
|
||||||
|
var v_soapAction = "";
|
||||||
|
var v_discard_active_abort = 1; //In geval van 500-error, geen active abort...
|
||||||
|
var v_soort_api = 2;
|
||||||
|
var v_resp = apiAX_GENERAL(v_API, v_req, v_type, v_soapAction, v_discard_active_abort, v_soort_api);
|
||||||
|
|
||||||
|
__Log("TQ_SetOpdrachtStatus: " + "End", 2);
|
||||||
|
return v_resp;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user