IMPORT com IMPORT util IMPORT os TYPE t_sync_cmd RECORD oper STRING, data STRING END RECORD DEFINE url STRING MAIN CALL testconvierte() END MAIN FUNCTION testconvierte() DEFINE s,xrnc STRING, r_cmd t_sync_cmd DEFINE data RECORD generales RECORD usuario VARCHAR(50), clave VARCHAR(50), cotizacion_no INT, orden_cliente STRING, comentario_adicional VARCHAR(100) END RECORD, archivos DYNAMIC ARRAY OF RECORD tipo_file VARCHAR(3), contenido STRING, nombre_arch STRING END RECORD END RECORD, ret INTEGER, res,k1 STRING, d_tipos,f_tipos,mensaje,dir_file,filepath STRING LET url = "https://ws.marmotech.com.do/gas/ws/r/restserver" LET data.generales.usuario='jsoto' LET data.generales.clave = 'lmmjvsd2014' LET data.generales.cotizacion_no=147429 LET data.generales.orden_cliente='45454545' LET data.generales.comentario_adicional = 'ESTE ES EL COMENTARIO ADICIONAL DE LA ORDEN, NO TOMAR EN CUENTA' OPEN WINDOW w1 WITH FORM "conviertecotiza" INPUT ARRAY data.archivos FROM record1.* BEFORE INPUT LET d_tipos="PDF" LET f_tipos="*.pdf *.jpg *.png" LET mensaje=%"Elige Documento" ON ACTION abrir CALL ui.Interface.frontCall("standard","openfile", [dir_file,d_tipos,f_tipos,mensaje], [filepath] ) IF filepath IS NOT NULL THEN LET dir_file = data.generales.cotizacion_no USING "<<<<<<<<",'.',os.Path.extension(filepath) LET dir_file = ".\\tmp\\",dir_file CLIPPED DISPLAY "dir ",dir_file CALL fgl_getfile(filepath,dir_file) CALL file_to_b64(dir_file) RETURNING k1 END IF AFTER INPUT EXIT INPUT END INPUT CLOSE WINDOW w1 LET r_cmd.oper = 'orden_insert' LET data.archivos[1].contenido =k1 LET data.archivos[1].contenido = k1 LET data.archivos[1].nombre_arch = "147429.",os.Path.extension(filepath) LET data.archivos[1].tipo_file = 'DI' DISPLAY "DATOS ",data.archivos[1].nombre_arch," tt ",data.archivos[1].tipo_file,'contenido ', data.archivos[1].contenido LET r_cmd.data = util.JSON.stringify(data) LET s = util.JSON.stringify(r_cmd) DISPLAY "s-",s CALL sync_send_command(url, s) RETURNING ret, res DISPLAY "DATOS ",res END FUNCTION FUNCTION sync_send_command(url, cmd) DEFINE url, cmd STRING DEFINE result, tmp STRING DEFINE http_req com.HTTPRequest DEFINE http_resp com.HTTPResponse TRY LET http_req = com.HTTPRequest.Create(url) CALL http_req.setConnectionTimeout(40) CALL http_req.setTimeout(40) CALL http_req.setMethod("POST") CALL http_req.setCharset("UTF-8") CALL http_req.setHeader("DBSync-Client","mbs") CALL http_req.setHeader("Content-Type","dbsync/json") CALL http_req.doTextRequest(cmd) LET http_resp=http_req.getResponse() IF http_resp.getStatusCode() != 200 THEN RETURN http_resp.getStatusCode(), http_resp.getStatusDescription() END IF LET tmp = http_resp.getStatusDescription() IF (tmp == "OK" || tmp == "no error" ) THEN RETURN -1, SFMT("HTTP request status description: %1 ",tmp) END IF LET result = http_resp.getTextResponse() CATCH RETURN -2, SFMT("HTTP request error: STATUS=%1 (%2)",STATUS,SQLCA.SQLERRM) END TRY RETURN 0, result END FUNCTION FUNCTION show_sync_err(msg) DEFINE msg STRING CALL fgl_winmessage(%"ERROR", msg, "exclamation") END FUNCTION