55 lines
1.3 KiB
Plaintext
55 lines
1.3 KiB
Plaintext
IMPORT util
|
|
|
|
TYPE t_sync_cmd RECORD
|
|
oper STRING,
|
|
data STRING
|
|
END RECORD
|
|
|
|
FUNCTION seccion_download(url,xusuario,xclave)
|
|
DEFINE url,cmd,res,msg STRING,
|
|
ret INT,
|
|
i SMALLINT,
|
|
xusuario,xclave VARCHAR(50),
|
|
p RECORD
|
|
credenciales RECORD
|
|
usuario,clave VARCHAR(50)
|
|
END RECORD,
|
|
seccion DYNAMIC ARRAY OF RECORD
|
|
cod_seccion SMALLINT,
|
|
cod_bodega SMALLINT,
|
|
descripcion VARCHAR(60)
|
|
END RECORD,
|
|
mensajes RECORD
|
|
cod_msg INT,
|
|
descripcion STRING
|
|
END RECORD
|
|
END RECORD
|
|
|
|
DEFINE r_cmd t_sync_cmd
|
|
LET p.credenciales.usuario=xusuario
|
|
LET p.credenciales.clave = xclave
|
|
|
|
LET r_cmd.data = util.JSON.stringify(p)
|
|
LET r_cmd.oper='ip_secciones'
|
|
LET cmd = util.JSON.stringify(r_cmd)
|
|
|
|
CALL sync_send_command(url, cmd) RETURNING ret, res
|
|
IF ret == 0 THEN
|
|
CALL util.JSON.parse(res,p)
|
|
ELSE
|
|
LET msg=SFMT(%"Connection '%1' failed",r_cmd.oper),"\n",url,"\n",res
|
|
CALL show_sync_err(msg)
|
|
RETURN
|
|
END IF
|
|
BEGIN WORK
|
|
DELETE FROM secciones
|
|
FOR i = 1 TO p.seccion.getLength()
|
|
IF p.seccion[i].cod_seccion IS NOT NULL then
|
|
INSERT INTO secciones
|
|
VALUES (p.seccion[i].*)
|
|
END IF
|
|
END FOR
|
|
COMMIT WORK
|
|
|
|
END FUNCTION
|