diff --git a/ax/SRC/AxFacilitor.js b/ax/SRC/AxFacilitor.js index e5d35e4..391c54a 100644 --- a/ax/SRC/AxFacilitor.js +++ b/ax/SRC/AxFacilitor.js @@ -109,6 +109,10 @@ function AX2012_2_FCLT_Opdrachten(){ function FCLT_2_AX2012_Bijlagen(){ F_GetOpdrachten_Bijlagen(); + //MARX#69956 Notities bij opdrachten naar de opdrachtgever, dan ook evt bijlagen in notities. + if (G_mar_sync_bijlages_naar_opdrgvr == '-1'){ + F_GetOpdrachtenNotitie_Bijlagen(); + } } function FCLT_2_AX2012_OpdrachtStatus(){ @@ -743,7 +747,7 @@ function FACILITOR_2_Xtractor() // 1.78 -- MARX#81877: Bij een fout in factuurkoppeling naar Viewpoint wordt de factuur toch verwerkt + MARX#81919 Veel timeouts op facturen richting Tobias 365 - NQ lijst + MARX#82680 Verwijderen van XML die door REMS wordt aangeboden,maar niet verwerkt kan worden // 1.79 -- MARX#82415: Implementatie "Mijande Wonen" (Dynamic Empire van Zig/Cegeka) + MARX#83105 Tobias AX2012 -> T365 conversie met facturenstop + MARX#83688 Implementatie Bouwinvest / Schepvastgoed (Zig/Casix) // 1.80 -- MARX#81606: Signaleren dat een opdracht gewijzigd is (VM000000566278), t.b.v. (alleen) AX2012 is aanpassing in SYNC nodig (AX2009 worden geen updates meer gedaan, alle andere ERPs verlopen via pushprincipe en doen het) -// 1.90 -- MARX#69956 Notities bij opdrachten naar de opdrachtgever +// 1.90 -- MARX#69956: Notities bij opdrachten naar de opdrachtgever var G_Mareon_Adapter = "1.90"; //MARX#56643: Test Haagwonen inkoopordernummer ontbreekt in Mareon ION001753 diff --git a/ax/SRC/FCLT_GetOpdrachtBijlages.js b/ax/SRC/FCLT_GetOpdrachtBijlages.js index 831376e..f516558 100644 --- a/ax/SRC/FCLT_GetOpdrachtBijlages.js +++ b/ax/SRC/FCLT_GetOpdrachtBijlages.js @@ -65,12 +65,12 @@ function FCLT_or_MARX_PutOpdrachtBijlages(v_url_bron, v_apikey_bron, v_mld_opdr_ var l_filename; var l_file_url; - var l_file_size; + var v_suppress_req_logging = 0; // Logging van request, indien dat gewenst is, niet onderdrukken. var l_response_JSON = FcltAPI2(v_apikey_bron, "GET", l_url, "", 0, v_suppress_req_logging); if (l_response_JSON) { - __Log("FCLT_GetOpdrachtBijlages: GET", 2); + __Log("FCLT_or_MARX_PutOpdrachtBijlages: GET", 2); var data = eval ("(" + l_response_JSON.responseText + ")"); __Log("Opdracht data:" + data, 4); if ("order" in data && "custom_fields" in data.order) @@ -78,90 +78,168 @@ function FCLT_or_MARX_PutOpdrachtBijlages(v_url_bron, v_apikey_bron, v_mld_opdr_ for (var fld in data.order.custom_fields) { __Log("Bijlage custom_fields: fld", 3); var attarr = data.order.custom_fields[fld].attachments; - if (attarr) - { v_totaal_aantal_bestanden = attarr.length; - __Log("Aantal opdracht attachments " + v_src_2_dest + " :" + v_totaal_aantal_bestanden, 3); - for (var i = 0; i < v_totaal_aantal_bestanden; i++) - { - l_filename = attarr[i].name; - l_file_size = attarr[i].size; - l_file_url = attarr[i].content_url; - - // MARX61048: Documenten versturen van Mareon naar AX (Stadgenoot), alleen bijlages die nog niet eerder zijn geupload (dus check filter v_fac_bijlagen_filename) - // Als er geen filter met files is opgegeven (= dont care), of wel een filter maar de filenaam is gelijk aan of zit in het filter, dan uploaden die hap :) naar het andere systeem... - if ((v_fac_bijlagen_filename == "") || (l_filename == v_fac_bijlagen_filename)){ - __Log("File: " + l_filename,2); - __Log("Size: " + l_file_size,2); - __Log("Url: " + l_file_url,2); - // ophalen van binary bestand via URL l_file_url en base64 encoderen... - v_base64_str = BinaryStream_2_Base64(v_apikey_bron, l_file_url); - - if (v_src_2_dest == "MARX_2_AX") { - var v_resp_xml_str = A_UploadDocument (v_base64_str); - var v_checksum = A_GetCheckSum_UploadDocument(v_resp_xml_str); - if (v_checksum != ""){ - // v_company_id, v_entityname, v_entityid , v_checksum, v_filename, v_notes); - A_CreateDocuRefByEntityName (v_apikey_dest, "PurchaseOrder", v_mld_opdr_key_dest, v_checksum, l_filename, ""); - } - else{ - __Log("FCLT_or_MARX_PutOpdrachtBijlages warning: checksum not returned by Tobias AX 2009",1); - } - } - if (v_src_2_dest == "MARX_2_AX2012") { - var v_resp_json_str = A2012_UploadDocument (v_base64_str); - var v_checksum = A12_365_GetCheckSum_UploadDocument(v_resp_json_str); - if (v_checksum != ""){ - // v_company_id, v_entityname, v_entityid , v_checksum, v_filename, v_notes); - A2012_CreateDocuRefByEntityName (v_apikey_dest, "PurchaseOrder", v_mld_opdr_key_dest, v_checksum, l_filename, ""); - } - else{ - __Log("FCLT_or_MARX_PutOpdrachtBijlages warning: checksum not returned by Tobias AX 2012",1); - } - } - if (v_src_2_dest == "MARX_2_AX365") { - var v_resp_json_str = A365_UploadDocument (v_base64_str); - var v_checksum = A12_365_GetCheckSum_UploadDocument(v_resp_json_str); - if (v_checksum != ""){ - // v_company_id, v_entityname, v_entityid , v_checksum, v_filename, v_notes); - A365_CreateDocuRefByEntityName (v_apikey_dest, "PurchaseOrder", v_mld_opdr_key_dest, v_checksum, l_filename, ""); - } - else{ - __Log("FCLT_or_MARX_PutOpdrachtBijlages warning: checksum not returned by Tobias AX 365",1); - } - } - if ((v_src_2_dest == "FCLT_2_MARX") || (v_src_2_dest == "MARX_2_FCLT")) { - // Van Facilitor naar Mareon OF van Mareon naar Facilitor - 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]); - var l_upload_success = api_F_PutOpdr_Bijlage(v_url_dest, v_apikey_dest, v_mld_opdr_key_dest, l_filename, v_base64_str, l_kenmerk_key); - if (l_upload_success == null){ - // Upload niet gelukt, b.v. omdat opdracht al gesloten was (technisch gereed of afgewezen), of omdat file-extensie niet geoorloofd, omdat .... - // Dat zouden we kunnen tracken bij de opdracht, b.v. via algemene API 'ACTION_REF_KEY' onder een CUST-notify, doen we vooralsnog ff niet - __Log("Upload failure: Bijlage " + v_src_2_dest + ": File " + l_filename + " NIET geupload naar kenmerk " + l_kenmerk_key ,1); - } - else - { - __Log("Upload success: Bijlage " + v_src_2_dest + ": File " + l_filename + " geupload naar kenmerk " + l_kenmerk_key ,3); - } - } - catch(e) { - __Log("FCLT_or_MARX_PutOpdrachtBijlages: catch van parseInt van kenmerk-key" + l_kenmerk_arr[j], 3); - } - } - } - } - } - } + v_totaal_aantal_bestanden += UploadBijlagen(attarr, v_apikey_bron, v_url_dest, v_apikey_dest, v_mld_opdr_key_dest, v_mld_kenmerk_key_dest, v_src_2_dest, v_fac_bijlagen_filename); } } } else { - __Log("FCLT_GetOpdrachtBijlages 1: " + l_response_JSON.responseText,2); - __Log("FCLT_GetOpdrachtBijlages 2: " + l_response_JSON.status, 2); + __Log("FCLT_or_MARX_PutOpdrachtBijlages 1: " + l_response_JSON.responseText,2); + __Log("FCLT_or_MARX_PutOpdrachtBijlages 2: " + l_response_JSON.status, 2); } return v_totaal_aantal_bestanden; +} + + +function MARX_GetOpdrNotitieBijlages(v_url_bron, v_apikey_bron, v_mld_opdr_key_bron, v_url_dest, v_apikey_dest, v_mld_opdr_key_dest, v_mld_opdr_note_key, v_mld_kenmerk_key_dest, v_src_2_dest, v_fac_bijlagen_filename) +{ + // Init aantal bijlages op 0. + var v_totaal_aantal_bestanden = 0; + //v_mld_opdr_note_key is de notitie waar evt bijlagen zijn toegevoegd, dat gaan we hier uitvogelen + + var l_url = v_url_bron + "api2/orders/" + v_mld_opdr_key_bron + ".json?include=notes¬es_id=" + v_mld_opdr_note_key; + + __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(v_apikey_bron, "GET", l_url, "", 0, v_suppress_req_logging); + if (l_response_JSON) + { + __Log("MARX_GetOpdrNotitieBijlages: GET", 2); + var data = eval ("(" + l_response_JSON.responseText + ")"); + __Log("Opdracht data:" + data, 4); + if ("order" in data && "notes" in data.order) + { __Log("Opdracht : order", 3); + for (var fld in data.order.notes) + { __Log("Bijlage notes: fld", 3); + var attarr = data.order.notes[fld].attachments; + v_totaal_aantal_bestanden += UploadBijlagen(attarr, v_apikey_bron, v_url_dest, v_apikey_dest, v_mld_opdr_key_dest, v_mld_kenmerk_key_dest, v_src_2_dest, v_fac_bijlagen_filename); + } + } + } + else + { + __Log("MARX_GetOpdrNotitieBijlages 1: " + l_response_JSON.responseText,2); + __Log("MARX_GetOpdrNotitieBijlages 2: " + l_response_JSON.status, 2); + } + return v_totaal_aantal_bestanden; +} + + + +function UploadBijlagen(v_attachments, v_apikey_bron, v_url_dest, v_apikey_dest, v_mld_opdr_key_dest, v_mld_kenmerk_key_dest, v_src_2_dest, v_fac_bijlagen_filename) +{ +// v_attachments moet JSON ARRAY zijn met minimaal deze parameters: +// [ +// { +// "name": "image_20240612T133240.png", +// "content_url": "http://marx.facws001.sg.nl/branch20242/appl/shared/BijlagenStream.asp?module=ORDN&bijlagen_key=3713551&opdr_key=3554247&hmac=12345...." +// }, +// { +// "name": "image_20240612T133241.png", +// "content_url": "http://marx.facws001.sg.nl/branch20242/appl/shared/BijlagenStream.asp?module=ORDN&bijlagen_key=3713552&opdr_key=3554247&hmac=67890...." +// }, +// .... +// ] + var l_filename; + var l_file_url; + + // Init aantal bijlages op 0. + var v_totaal_aantal_bestanden = 0; + + if (v_attachments) + { v_totaal_aantal_bestanden = v_attachments.length; + __Log("Aantal opdracht attachments " + v_src_2_dest + " :" + v_totaal_aantal_bestanden, 3); + for (var i = 0; i < v_totaal_aantal_bestanden; i++) + { + l_filename = v_attachments[i].name; + l_file_url = v_attachments[i].content_url; + + // MARX61048: Documenten versturen van Mareon naar AX (Stadgenoot), alleen bijlages die nog niet eerder zijn geupload (dus check filter v_fac_bijlagen_filename) + // Als er geen filter met files is opgegeven (= dont care), of wel een filter maar de filenaam is gelijk aan of zit in het filter, dan uploaden die hap :) naar het andere systeem... + if ((v_fac_bijlagen_filename == "") || (l_filename == v_fac_bijlagen_filename)){ + __Log("File: " + l_filename,2); + __Log("Url: " + l_file_url,2); + // ophalen van binary bestand via URL l_file_url en base64 encoderen... + v_base64_str = BinaryStream_2_Base64(v_apikey_bron, l_file_url); + + if (v_src_2_dest == "MARX_2_AX") { + var v_resp_xml_str = A_UploadDocument (v_base64_str); + var v_checksum = A_GetCheckSum_UploadDocument(v_resp_xml_str); + if (v_checksum != ""){ + // v_company_id, v_entityname, v_entityid , v_checksum, v_filename, v_notes); + A_CreateDocuRefByEntityName (v_apikey_dest, "PurchaseOrder", v_mld_opdr_key_dest, v_checksum, l_filename, ""); + } + else{ + __Log("FCLT_or_MARX_PutOpdrachtBijlages warning: checksum not returned by Tobias AX 2009",1); + } + } + if (v_src_2_dest == "MARX_2_AX2012") { + var v_resp_json_str = A2012_UploadDocument (v_base64_str); + var v_checksum = A12_365_GetCheckSum_UploadDocument(v_resp_json_str); + if (v_checksum != ""){ + // v_company_id, v_entityname, v_entityid , v_checksum, v_filename, v_notes); + A2012_CreateDocuRefByEntityName (v_apikey_dest, "PurchaseOrder", v_mld_opdr_key_dest, v_checksum, l_filename, ""); + } + else{ + __Log("FCLT_or_MARX_PutOpdrachtBijlages warning: checksum not returned by Tobias AX 2012",1); + } + } + if (v_src_2_dest == "MARX_2_AX365") { + var v_resp_json_str = A365_UploadDocument (v_base64_str); + var v_checksum = A12_365_GetCheckSum_UploadDocument(v_resp_json_str); + if (v_checksum != ""){ + // v_company_id, v_entityname, v_entityid , v_checksum, v_filename, v_notes); + A365_CreateDocuRefByEntityName (v_apikey_dest, "PurchaseOrder", v_mld_opdr_key_dest, v_checksum, l_filename, ""); + } + else{ + __Log("FCLT_or_MARX_PutOpdrachtBijlages warning: checksum not returned by Tobias AX 365",1); + } + } + if ((v_src_2_dest == "FCLT_2_MARX") || (v_src_2_dest == "MARX_2_FCLT")) { + // Van Facilitor naar Mareon OF van Mareon naar Facilitor + 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]); + var l_upload_success = api_F_PutOpdr_Bijlage(v_url_dest, v_apikey_dest, v_mld_opdr_key_dest, l_filename, v_base64_str, l_kenmerk_key); + if (l_upload_success == null){ + // Upload niet gelukt, b.v. omdat opdracht al gesloten was (technisch gereed of afgewezen), of omdat file-extensie niet geoorloofd, omdat .... + // Dat zouden we kunnen tracken bij de opdracht, b.v. via algemene API 'ACTION_REF_KEY' onder een CUST-notify, doen we vooralsnog ff niet + __Log("Upload failure: Bijlage " + v_src_2_dest + ": File " + l_filename + " NIET geupload naar kenmerk " + l_kenmerk_key ,1); + } + else + { + __Log("Upload success: Bijlage " + v_src_2_dest + ": File " + l_filename + " geupload naar kenmerk " + l_kenmerk_key ,3); + } + } + catch(e) { + __Log("FCLT_or_MARX_PutOpdrachtBijlages: catch van parseInt van kenmerk-key" + l_kenmerk_arr[j], 3); + } + } + } + } + } + } + return v_totaal_aantal_bestanden; +} + +function MARX_SendOpdrachtNotitieBijlages(v_ax_company_id, v_mld_opdr_key_marx, v_mld_opdr_note_key, v_mld_opdr_ordernr, v_mld_opdr_externnr) +{ + var v_aantal_bestanden = 0; + if (AX_or_Tobias() == "A") { + var v_aantal_bestanden = MARX_GetOpdrNotitieBijlages(G_marx_url, G_marx_apikey, v_mld_opdr_key_marx, "", v_ax_company_id, v_mld_opdr_externnr, v_mld_opdr_note_key, "", "MARX_2_AX", ""); + } + if (AX_or_Tobias() == "A12") { + var v_aantal_bestanden = MARX_GetOpdrNotitieBijlages(G_marx_url, G_marx_apikey, v_mld_opdr_key_marx, "", v_ax_company_id, v_mld_opdr_externnr, v_mld_opdr_note_key, "", "MARX_2_AX2012", ""); + } + if (AX_or_Tobias() == "A365") { + var v_aantal_bestanden = MARX_GetOpdrNotitieBijlages(G_marx_url, G_marx_apikey, v_mld_opdr_key_marx, "", v_ax_company_id, v_mld_opdr_externnr, v_mld_opdr_note_key, "", "MARX_2_AX365", ""); + } + if (AX_or_Tobias() == "F") { + var v_aantal_bestanden = MARX_GetOpdrNotitieBijlages(G_marx_url, G_marx_apikey, v_mld_opdr_key_marx, G_fclt_url, G_fclt_apikey, v_mld_opdr_ordernr, v_mld_opdr_note_key, G_mar_sync_bijlages_naar_opdrgvr, "MARX_2_FCLT", ""); + } + return v_aantal_bestanden; } \ No newline at end of file diff --git a/ax/SRC/F_GetOpdrachtenBijlagen.js b/ax/SRC/F_GetOpdrachtenBijlagen.js index 0564ea0..da40064 100644 --- a/ax/SRC/F_GetOpdrachtenBijlagen.js +++ b/ax/SRC/F_GetOpdrachtenBijlagen.js @@ -12,7 +12,7 @@ function F_GetOpdracht_BijlagenQueue (p_opdr_key, p_aanmaak_datum_van){ var v_APIKEY = G_marx_apikey; var v_req = "" + G_Mareon_Adapter + "" + v_APIKEY + "" + p_opdr_key + "" + p_aanmaak_datum_van + ""; var v_API = "BIJLAGEN_QUEUE_OPDR_4AX"; - F_GetOpdrachten_Bijlagen_Inner(v_req, v_API); + F_GetOpdrachten_Bijlagen_Inner(v_req, v_API, "mld_opdr"); } //Deze functie (bestond al) levert de bijlagen van alle opdrachten van opdrachtgever (APIKEY) op, die sinds de laatste sync-datum/tijd erbij zijn gekomen @@ -21,10 +21,20 @@ function F_GetOpdrachten_Bijlagen() var v_APIKEY = G_marx_apikey; var v_req = "" + G_Mareon_Adapter + "" + v_APIKEY + ""; var v_API = "BIJLAGEN_OPDR_4AX"; - F_GetOpdrachten_Bijlagen_Inner(v_req, v_API); + F_GetOpdrachten_Bijlagen_Inner(v_req, v_API, "mld_opdr"); } -function F_GetOpdrachten_Bijlagen_Inner(v_req, v_API) +//MARX#69956 Notities bij opdrachten naar de opdrachtgever, dan ook evt bijlagen in notities. +//Deze functie (bestond al) levert de bijlagen van alle opdrachtnotities van opdrachtgever (APIKEY) op, die sinds de laatste sync-datum/tijd erbij zijn gekomen +function F_GetOpdrachtenNotitie_Bijlagen() +{ + var v_APIKEY = G_marx_apikey; + var v_req = "" + G_Mareon_Adapter + "" + v_APIKEY + ""; + var v_API = "BIJLAGEN_OPDR_NOTES_4AX"; + F_GetOpdrachten_Bijlagen_Inner(v_req, v_API, "mld_opdr_note"); +} + +function F_GetOpdrachten_Bijlagen_Inner(v_req, v_API, v_entiteit) { @@ -64,7 +74,15 @@ function F_GetOpdrachten_Bijlagen_Inner(v_req, v_API) MARX_2_AX_PutOpdrachtBijlages(v_ax_company_id, v_mld_opdr_key_marx, v_mld_opdr_externnr, v_fac_bijlagen_filename); } if (AX_or_Tobias() == "A12") { - MARX_2_AX2012_PutOpdrachtBijlages(v_ax_company_id, v_mld_opdr_key_marx, v_mld_opdr_externnr, v_fac_bijlagen_filename); + if (v_entiteit == "mld_opdr"){ + MARX_2_AX2012_PutOpdrachtBijlages(v_ax_company_id, v_mld_opdr_key_marx, v_mld_opdr_externnr, v_fac_bijlagen_filename); + } + if (v_entiteit == "mld_opdr_note"){ + l_node = strQuery + "/mld_opdr_note_key"; + var v_mld_opdr_note_key = v_resp.selectSingleNode(l_node).text; + __Log("v_mld_opdr_note_key: " + v_mld_opdr_note_key,2); + MARX_SendOpdrachtNotitieBijlages(v_ax_company_id, v_mld_opdr_key_marx, v_mld_opdr_note_key, "", v_mld_opdr_externnr); + } } if (AX_or_Tobias() == "A365") { MARX_2_AX365_PutOpdrachtBijlages(v_ax_company_id, v_mld_opdr_key_marx, v_mld_opdr_externnr, v_fac_bijlagen_filename); diff --git a/ax/SRC/F_GetOpdrachtenStatussen.js b/ax/SRC/F_GetOpdrachtenStatussen.js index aa85e27..995c043 100644 --- a/ax/SRC/F_GetOpdrachtenStatussen.js +++ b/ax/SRC/F_GetOpdrachtenStatussen.js @@ -160,7 +160,7 @@ function do_exec_opdrstatus(p_order, p_min_fac_tracking_datum_ordupd){ //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_ordernr = p_order.mld_opdr_ordernr; // eg "MLD00058733-01", en voor Facilitor-koppeling staat hier het mld_opdr_key van de klant (4-lettercode) waarmee gekoppeld wordt. var l_mld_opdr_plandatum; var l_mld_opdr_plandatum_tmp = p_order.mld_opdr_plandatum; //eg "2020-07-30T09:00:00", UTC time, deze kan null zijn!! @@ -228,6 +228,8 @@ function do_exec_opdrstatus(p_order, p_min_fac_tracking_datum_ordupd){ if (l_mld_opdr_notitie == null){l_mld_opdr_notitie = ""}; l_mld_opdr_notitie = escapeXml(l_mld_opdr_notitie); + var l_mld_opdr_note_key = p_order.mld_opdr_note_key; // eg 123456, of null + //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 @@ -255,6 +257,12 @@ function do_exec_opdrstatus(p_order, p_min_fac_tracking_datum_ordupd){ // En ook alleen sturen als opdracht nog loopt, dwz niet afgesloten is, dus niet in status 1, 6, 7, 9 if (l_mld_opdr_notitie != "" && l_mld_statusopdr_key != 1 && l_mld_statusopdr_key != 6 && l_mld_statusopdr_key != 7 && l_mld_statusopdr_key != 9){ l_response = GEN_SetSupplierText(l_ax_company_id, l_mld_opdr_ordernr, l_mld_opdr_externnr, l_mld_opdr_notitie); + // 2. evt bijlage(n) bij de notitie, dit kan alleen bij losse notities, zie MARX#69956 "Notities bij opdrachten naar de opdrachtgever" + if (l_response.api_status_code == 1) + { MARX_SendOpdrachtNotitieBijlages(l_ax_company_id, l_mld_opdr_key, l_mld_opdr_note_key, l_mld_opdr_ordernr, l_mld_opdr_externnr); + //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: ""}; + } } break;