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

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