MARX#62647: Koppeling AX365 - Mareon (Push)

svn path=/Mareon/trunk/; revision=47788
This commit is contained in:
Marcel Bourseau
2020-08-14 15:31:25 +00:00
parent 1b9843c454
commit b150688e51
39 changed files with 963 additions and 355 deletions

View File

@@ -12,7 +12,9 @@ var v_API = "SupplierPortalAcceptServiceTaskRequest";
var v_req = '<SupplierPortalAcceptServiceTaskRequest xmlns="http://tempuri.org"> <_companyID>' + v_company_id + "</_companyID> <_taskId>" + v_taskId + "</_taskId> <_extraInfo>" + v_extraInfo + "</_extraInfo></SupplierPortalAcceptServiceTaskRequest>";
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;
}

View File

@@ -12,7 +12,9 @@ var v_API = "SupplierPortalCompleteServiceTaskRequest";
var v_req = '<SupplierPortalCompleteServiceTaskRequest xmlns="http://tempuri.org"><_companyID>' + v_company_id + "</_companyID> <_taskId>" + v_taskId + "</_taskId> <_dateComplete>" + v_dateComplete + "Z</_dateComplete> <_extraInfo>" + v_extraInfo + "</_extraInfo></SupplierPortalCompleteServiceTaskRequest>";
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;
}

View File

@@ -17,7 +17,9 @@ else
v_req = '<SupplierPortalSetPlanDateRequest xmlns="http://tempuri.org"><_companyID>' + v_company_id + "</_companyID> <_taskId>" + v_taskId + "</_taskId> <_planDate>" + v_plandate + "</_planDate> <_extraInfo>" + v_extraInfo + "</_extraInfo></SupplierPortalSetPlanDateRequest>";
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;
}

View File

@@ -12,7 +12,9 @@ var v_API = "SupplierPortalRefuseServiceTaskRequest";
var v_req = '<SupplierPortalRefuseServiceTaskRequest xmlns="http://tempuri.org"><_companyID>' + v_company_id + "</_companyID><_taskId>" + v_taskId + "</_taskId> <_returnCode>" + v_resultCodeId + "</_returnCode> <_extraInfo>" + v_extraInfo + "</_extraInfo></SupplierPortalRefuseServiceTaskRequest>";
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;
}

View File

@@ -11,6 +11,8 @@ var v_API = "SupplierPortalAddSupplierTextRequest";
var v_req = '<SupplierPortalAddSupplierTextRequest xmlns="http://tempuri.org"><_companyID>' + v_company_id + "</_companyID> <_taskId>" + v_taskId + "</_taskId><_text>" + v_extraInfo + "</_text></SupplierPortalAddSupplierTextRequest>";
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;
}

View File

@@ -32,7 +32,9 @@ function A2012_UpdatePurchStatus(v_company_id, v_statuscode, v_purchId, v_extraI
v_req = '<SupplierPortalUpdatePurchStatusRequest xmlns="http://tempuri.org"><_companyID>' + v_company_id + "</_companyID><_statusCode>" + v_statuscode + "</_statusCode><_purchId>" + v_purchId + "</_purchId><_extraInfo>" + v_extraInfo + "</_extraInfo>" + v_datum_xml + "</SupplierPortalUpdatePurchStatusRequest>";
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);

View File

@@ -16,7 +16,8 @@ var v_req = "<acceptServiceTask xmlns=\"http://tempuri.org/\">"
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;
}

View File

@@ -18,7 +18,8 @@ var v_req = "<completeServiceTask xmlns=\"http://tempuri.org/\">"
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;
}

View File

@@ -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.

View File

@@ -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;
}

View File

@@ -28,7 +28,8 @@ var v_req = "<refuseServiceTask xmlns=\"http://tempuri.org/\">"
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;
}

View File

@@ -18,6 +18,7 @@ var v_req = "<setSupplierText xmlns=\"http://tempuri.org/\">"
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;
}

View File

@@ -29,7 +29,8 @@ function A_UpdatePurchStatus(v_company_id, v_statuscode, v_purchId, v_extraInfo,
v_req = '<updatePurchStatus xmlns="http://tempuri.org/"><companyId>' + v_company_id + "</companyId><statusCode>" + v_statuscode + "</statusCode><purchId>" + v_purchId + "</purchId><extraInfo>" + v_extraInfo + "</extraInfo>" + v_datum_xml + "</updatePurchStatus>";
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 {

View File

@@ -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

View File

@@ -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)
{

View File

@@ -17,7 +17,8 @@ var v_req = "<opdracht key=\"" + v_externnr + "\" type=\"update\">"
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;
}

View File

@@ -17,7 +17,8 @@ var v_req = "<opdracht key=\"" + v_externnr + "\" type=\"update\">"
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;
}

View File

@@ -16,7 +16,8 @@ var v_req = "<opdracht key=\"" + v_externnr + "\" type=\"update\">"
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;
}

View File

@@ -17,7 +17,8 @@ v_req = v_req + "</opdracht>";
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;
}

View File

@@ -16,7 +16,8 @@ var v_req = "<opdracht key=\"" + v_externnr + "\" type=\"update\">"
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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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 = "<GetBIJLAGEN_QUEUE_OPDR_4AX><adapterversion>" + G_Mareon_Adapter + "</adapterversion><APIkey>" + v_APIKEY + "</APIkey><mld_opdr_key>" + p_opdr_key + "</mld_opdr_key><aanmaak_datum_van>" + p_aanmaak_datum_van + "</aanmaak_datum_van></GetBIJLAGEN_QUEUE_OPDR_4AX>";
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 = "<GetBIJLAGEN_OPDR_4AX><adapterversion>" + G_Mareon_Adapter + "</adapterversion><APIkey>" + v_APIKEY + "</APIkey></GetBIJLAGEN_OPDR_4AX>";
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 = "<GetBIJLAGEN_OPDR_4AX><adapterversion>" + G_Mareon_Adapter + "</adapterversion><APIkey>" + v_APIKEY + "</APIkey></GetBIJLAGEN_OPDR_4AX>"
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);
}
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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 + "&noti_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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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 + "<action><action_code>" + l_import_action + "</action_code>" + "<ref_key>" + v_mld_opdr_key_marx + "</ref_key></action>";
}
}
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 + "<action><action_code>" + l_import_action + "</action_code>" + "<ref_key>" + v_mld_opdr_key_marx + "</ref_key></action>";
}
}
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 = "<xml>" + l_opdr_str + "</xml>";
api_F_PutXML(l_opdr_str, l_marx_api);
}
}
}

View File

@@ -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 + "";
}
}
}

View File

@@ -22,27 +22,35 @@ function R_SetOpdrachtStatus(v_company_id, v_taskId, v_externnr, v_status, v_mut
//<DatumTijd>2016-04-15T10:00:43.420</DatumTijd>
//</OpdrachtActie>
var v_result = 0;
var v_result = {api_status_code: 1, api_status_message: "", api_response_message: ""};
try{
var v_req = "<?xml version=\"1.0\"?>"
+ "<OpdrachtActie xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"
// + "<Uitvoerder></Uitvoerder>"
+ "<Opdracht>" + v_externnr + "</Opdracht>"
+ "<ControleGUID>" + v_taskId + "</ControleGUID>";
if (v_status != ""){
v_req = v_req + "<Actie>" + v_status + "</Actie>";
}
if (v_opmerking != ""){
v_req = v_req + "<Opmerking>" + v_opmerking + "</Opmerking>";
}
if (v_mut_datum != ""){
v_req = v_req + "<DatumTijd>" + v_mut_datum + "</DatumTijd>";
}
v_req = v_req + "</OpdrachtActie>";
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 = "<?xml version=\"1.0\"?>"
+ "<OpdrachtActie xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"
// + "<Uitvoerder></Uitvoerder>"
+ "<Opdracht>" + v_externnr + "</Opdracht>"
+ "<ControleGUID>" + v_taskId + "</ControleGUID>";
if (v_status != ""){
v_req = v_req + "<Actie>" + v_status + "</Actie>";
}
if (v_opmerking != ""){
v_req = v_req + "<Opmerking>" + v_opmerking + "</Opmerking>";
}
if (v_mut_datum != ""){
v_req = v_req + "<DatumTijd>" + v_mut_datum + "</DatumTijd>";
}
v_req = v_req + "</OpdrachtActie>";
WriteText2File(G_rems_opdrachtstatus_xmlfolder, "status_" + v_taskId , "xml" , v_req, 1, 1);
v_result = 1;
return v_result;
}

View File

@@ -17,6 +17,7 @@ var v_req = "<tob:string>BonId=" + v_bonId + "</tob:string>"
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;
}

View File

@@ -28,6 +28,7 @@ var v_req = "<tob:string>BonId=" + v_bonId + "</tob:string>"
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;
}

View File

@@ -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)
{

View File

@@ -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;
}

View File

@@ -15,6 +15,7 @@ var v_req = "<tob:string>BonId=" + v_bonId + "</tob:string>"
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;
}