MARX#58812: Bijlage vanuit opdrachtNeMer naar opdrachtGeVer

svn path=/Mareon/trunk/; revision=43818
This commit is contained in:
Marcel Bourseau
2019-08-17 15:10:16 +00:00
parent d0a28f5e3b
commit 7eaaace0fb
6 changed files with 138 additions and 40 deletions

View File

@@ -121,6 +121,10 @@ function MARX_2_FCLT_NEW_Opdrachten(){
F_GetOpdrachten_NEW();
}
function MARX_2_FCLT_Bijlagen(){
F_GetOpdrachten_Bijlagen();
}
function MARX_2_FCLT_OpmerkingOpdrachten(){
F_GetOpdrachten_Opmerking();
}
@@ -319,6 +323,12 @@ function MAREON_2_FACILITOR()
MARX_2_FCLT_NEW_Opdrachten();
__Log("*** END", 2);
}
if (G_mar_sync_bijlages_naar_opdrgvr != '0' && G_mar_sync_bijlages_naar_opdrgvr != '-1'){
__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);
@@ -507,6 +517,7 @@ var G_mar_timeout = 0; //initieel 1e keer.
var G_mar_communicatielogboek = parseInt(l_array[14]); // Opdrachtgever maakt gebruik van communicatielogboek (AX webservice UpdatePurchStatus beschikbaar)
var G_mar_sync_bijlages_opdrgvr = l_array[16]; // Bijlages vanuit opdrachtgever worden gedeeld met leverancier indien niet leeg/0. Voor Facilitor vullen met de flexprop-key
var G_mar_sync_bijlages_naar_opdrgvr = l_array[17]; // Bijlages vanuit opdrachtnever worden gedeeld met opdrachtgever indien niet leeg/0. Voor Facilitor vullen met de flexprop-key
if (AX_or_Tobias() == "A")
{

View File

@@ -8,22 +8,37 @@
// Parameters:
// v_mld_opdr_key_fclt: key van mld_opdr in Facilitor omgeving
// v_mld_opdr_key_marx: key van mld_opdr in Mareon
// v_mld_kenmerk_key_fclt: string van key(s) van opdracht-kenmerk(en) in Facilitor omgeving, gescheiden door komma, dus b.v. "key1" of "key1,key2" etc.
function FCLT_GetOpdrachtBijlages(v_mld_opdr_key_fclt, v_mld_opdr_key_marx, v_mld_kenmerk_key_fclt)
function FCLT_2_MARX_PutOpdrachtBijlages(v_mld_opdr_key_fclt, v_mld_opdr_key_marx)
{
//v_mld_kenmerk_key_fclt is de instelling "Bijlages van opdrachtgever:" (flexprop key 40) bij prs_bedrijf (=opdrachtgever)
// Zet bijlages uit Facilitor volgens kenmerk-keys G_mar_sync_bijlages_opdrgvr in Mareon (in kenmerk-key 20 van Mareon)
// G_mar_sync_bijlages_opdrgvr: string van key(s) van opdracht-kenmerk(en) in Facilitor omgeving, gescheiden door komma, dus b.v. "key1" of "key1,key2" etc.
FCLT_or_MARX_PutOpdrachtBijlages(G_fclt_url, G_fclt_apikey, v_mld_opdr_key_fclt, G_marx_url, G_marx_apikey, v_mld_opdr_key_marx, G_mar_sync_bijlages_opdrgvr, "20", "FCLT_2_MARX");
}
// Parameters:
// v_mld_opdr_key_marx: key van mld_opdr in Mareon
// v_mld_opdr_key_fclt: key van mld_opdr in Facilitor omgeving
function MARX_2_FCLT_PutOpdrachtBijlages(v_mld_opdr_key_marx, v_mld_opdr_key_fclt)
{
FCLT_or_MARX_PutOpdrachtBijlages(G_marx_url, G_marx_apikey, v_mld_opdr_key_marx, G_fclt_url, G_fclt_apikey, v_mld_opdr_key_fclt, "28", G_mar_sync_bijlages_naar_opdrgvr, "MARX_2_FCLT");
}
function FCLT_or_MARX_PutOpdrachtBijlages(v_url_bron, v_apikey_bron, v_mld_opdr_key_bron, v_url_dest, v_apikey_dest, v_mld_opdr_key_dest, v_mld_kenmerk_key_bron, v_mld_kenmerk_key_dest, v_extra_log)
{
//v_mld_kenmerk_key_bron is de Mareon instelling "Bijlages van opdrachtgever:" (flexprop key 40) bij prs_bedrijf (=opdrachtgever)
//Voor Facilitor (dus hier) is dat de kenmerk-key van de bijlage-flexprop in de Facilitor-omgeving van klant, waarvan de bijlages opgehaald moeten worden
//In geval van meerdere kenmerk-keys (b.v. in geval van meerdere opdrachttypen, met ieder hun eigen (opdr)kenmerk, moeten de keys worden gescheiden door de komma (,), dus b.v.: 123,456,789
var l_url = G_fclt_url + "api2/orders/" + v_mld_opdr_key_fclt + ".json?scope=fo&include=custom_fields&fileencoding=base64&custom_fields=" + v_mld_kenmerk_key_fclt;
var l_url = v_url_bron + "api2/orders/" + v_mld_opdr_key_bron + ".json?scope=fo&include=custom_fields&fileencoding=base64&custom_fields=" + v_mld_kenmerk_key_bron;
__Log("l_url: " + l_url,3);
var l_response_JSON = FcltAPI2(G_fclt_apikey, "GET", l_url);
var l_response_JSON = FcltAPI2(v_apikey_bron, "GET", l_url);
if (l_response_JSON)
{
__Log("FCLT_GetOpdrachtBijlages: GET", 2);
__Log("FCLT_GetOpdrachtBijlages: GET", 2);
var data = eval ("(" + l_response_JSON.responseText + ")");
__Log("Opdracht data:" + data, 4);
if ("order" in data && "custom_fields" in data.order)
@@ -32,14 +47,26 @@ function FCLT_GetOpdrachtBijlages(v_mld_opdr_key_fclt, v_mld_opdr_key_marx, v_ml
{ __Log("Bijlage custom_fields: fld", 3);
var attarr = data.order.custom_fields[fld].attachments;
if (attarr)
{ __Log("Opdracht attachments: attarr", 3);
{ __Log("Aantal opdracht attachments " + v_extra_log + " :" + attarr.length, 3);
for (var i = 0; i < attarr.length; i++)
{
__Log("File: " + attarr[i].name,2);
__Log("Size: " + attarr[i].size,2);
__Log("Url: " + attarr[i].content_url,2);
api_F_PutOpdr_Bijlage(v_mld_opdr_key_marx, attarr[i].name, attarr[i].content_base64);
__Log("Bijlage: " + i + " van " + attarr.length + " geupload naar Mareon",2);
// Kenmerk-key in Mareon waarin de bijlagen terecht moet komen is key 20
var l_kenmerk_arr = v_mld_kenmerk_key_dest.split(",");
__Log("Aantal kenmerk-keys: " + l_kenmerk_arr.length, 3);
for (var j = 0; j < l_kenmerk_arr.length; j++)
{ try {
var l_kenmerk_key = parseInt(l_kenmerk_arr[j]);
api_F_PutOpdr_Bijlage(v_url_dest, v_apikey_dest, v_mld_opdr_key_dest, attarr[i].name, attarr[i].content_base64, l_kenmerk_key);
__Log("Bijlage " + v_extra_log + ": " + i + " van " + attarr.length + " geupload naar kenmerk " + l_kenmerk_key ,2);
}
catch(e) {
__Log("FCLT_or_MARX_PutOpdrachtBijlages: catch van parseInt van kenmerk-key" + l_kenmerk_arr[j], 3);
}
}
}
}
}

View File

@@ -128,6 +128,12 @@ function F_GetMareonInfo()
var l_sync_bijlages_opdrgvr = v_resp.selectSingleNode(l_node);
__Log("l_sync_bijlages_opdrgvr: " + l_sync_bijlages_opdrgvr.text,2);
l_result.push(l_sync_bijlages_opdrgvr.text);
//MARX#58812: Bijlage vanuit opdrachtNeMer naar opdrachtGeVer, via instelling regelen of bijlages naar opdrachtgever worden gesynct
var l_node = strQuery + "/mar_sync_bijlages_naar_opdrgvr";
var l_sync_bijlages_naar_opdrgvr = v_resp.selectSingleNode(l_node);
__Log("l_sync_bijlages_naar_opdrgvr: " + l_sync_bijlages_naar_opdrgvr.text,2);
l_result.push(l_sync_bijlages_naar_opdrgvr.text);
return l_result;
}

View File

@@ -0,0 +1,47 @@
// --------------------------------------------------------------------------------------
// F_GetOpdrachten_Bijlagen.js
// Copyright 2019 SG|facilitor. 053-4800 700, helpdesk@mareon.nl
// Written by MB (2019)
//
//
// --------------------------------------------------------------------------------------
function F_GetOpdrachten_Bijlagen()
{
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
var v_resp = apiFCLT(G_marx_url, v_API, v_APIKEY, v_req, v_type, v_soap_envelop);
var l_node;
__Log("F_GetOpdrachten_Bijlagen: " + v_resp.text, 3);
// Uitlezen van XML's...
var i = 1;
var strQuery = "//xml/mld_ordr[" + i + "]";
var l_deelxml = v_resp.selectSingleNode(strQuery);
while (l_deelxml)
{
l_node = strQuery + "/mld_opdr_key";
var v_mld_opdr_key_marx = v_resp.selectSingleNode(l_node).text;
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") {
MARX_2_FCLT_PutOpdrachtBijlages(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);
}
}

View File

@@ -22,37 +22,44 @@ function api_F_PutOpdrachten(v_xml, v_API)
}
function api_F_PutOpdr_Bijlage(p_mld_opdr_key, p_bestandsnaam, p_bijlage64)
function api_F_PutOpdr_Bijlage(p_url, p_apikey, p_mld_opdr_key, p_bestandsnaam, p_bijlage64, p_kenmerk_key)
{
// FF voor de test naar uwv op work/trunk, mareon op labs is nog 2015.1 (wacht op 2015.2 stuff)
//var factuurkey = 98225;
//var G_marx_url = 'http://uwva.facws001/trunk/';
// var http://uwva.facws001.sg.nl/trunk/api2/issues/1021288.html?include=custom_fields&fileencoding=base64&fields=custom_fields
__Log("Start api_F_PutOpdr_Bijlage: ", 2);
var v_url = G_marx_url + "api2/orders/" + p_mld_opdr_key + ".json?scope=fo&include=custom_fields&fileencoding=base64";
var l_json_data =
{
order: {
custom_fields: [
{
propertyid: 20,
attachments: [
{
name: p_bestandsnaam,
content_base64: p_bijlage64
}
]
}
]
try{
var v_url = p_url + "api2/orders/" + p_mld_opdr_key + ".json?scope=fo&include=custom_fields&fileencoding=base64";
var l_json_data =
{
order: {
custom_fields: [
{
propertyid: p_kenmerk_key,
attachments: [
{
name: p_bestandsnaam,
content_base64: p_bijlage64
}
]
}
]
}
}
}
l_json_message = JSON.stringify(l_json_data, null, 2);
var l_response_JSON = FcltAPI2(G_marx_apikey, "PUT", v_url, l_json_message);
//l_response_JSON_text = JSON.stringify(l_response_JSON, null, 2);
__Log("l_response_JSON_text:" + l_response_JSON, 3);
l_json_message = JSON.stringify(l_json_data, null, 2);
var l_response_JSON = FcltAPI2(p_apikey, "PUT", v_url, l_json_message);
//l_response_JSON_text = JSON.stringify(l_response_JSON, null, 2);
__Log("l_response_JSON_text:" + l_response_JSON, 3);
}
catch(e)
{
__Log("api_F_PutOpdr_Bijlage: catch met propertyid" + p_kenmerk_key, 3);
}
}
@@ -184,8 +191,8 @@ function api_AX_2_F_Verwerk_Documenten(v_mld_opdr_key, v_xml_documenten, v_aanta
__Log("api_AX_2_F_Verwerk_Documenten - v_mld_opdr_key : " + v_mld_opdr_key, 3);
if (v_mld_opdr_key != -1) {
__Log("api_AX_2_F_Verwerk_Documenten - Before api_F_PutOpdr_Bijlage : ", 3);
api_F_PutOpdr_Bijlage(v_mld_opdr_key, l_bestandsnaam, l_bijlage_base64);
// Kenmerk-key in Mareon waarin de bijlagen terecht moet komen is key 20.
api_F_PutOpdr_Bijlage(G_marx_url, G_marx_apikey, v_mld_opdr_key, l_bestandsnaam, l_bijlage_base64, 20);
// ----------------------------------------------------------------------
__Log("api_AX_2_F_Verwerk_Documenten - After api_F_PutOpdr_Bijlage : ", 3);
}
@@ -230,8 +237,8 @@ function F_GetOpdrachten_NEW()
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") {
FCLT_GetOpdrachtBijlages(v_mld_opdr_key_fclt, v_mld_opdr_key_marx, G_mar_sync_bijlages_opdrgvr);
if (AX_or_Tobias() == "F") {
FCLT_2_MARX_PutOpdrachtBijlages(v_mld_opdr_key_fclt, v_mld_opdr_key_marx);
}
i = i + 1;

View File

@@ -92,8 +92,8 @@ function R_GetOpdrachten()
__Log("R_GetOpdrachten - l_mld_opdr_key : " + l_mld_opdr_key, 2);
if (l_mld_opdr_key != -1) {
__Log("R_GetOpdrachten - Before api_F_PutOpdr_Bijlage : ", 3);
api_F_PutOpdr_Bijlage(l_mld_opdr_key, l_bestandsnaam, l_bijlage_base64);
// Kenmerk-key in Mareon waarin de bijlagen terecht moet komen is key 20.
api_F_PutOpdr_Bijlage(G_marx_url, G_marx_apikey, l_mld_opdr_key, l_bestandsnaam, l_bijlage_base64, 20);
// ----------------------------------------------------------------------
__Log("R_GetOpdrachten - After api_F_PutOpdr_Bijlage : ", 3);
}