Files
MBS/WEBSERVICES/productos/testconverte.4gl
T

122 lines
3.7 KiB
Plaintext

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