0
Hola Amigos:
Estoy haciendo una aplicación para conectar mi sistema a un servicio web (Conquer) para vendedores (notas de pedido, cobranzas, etc).
Estoy usando HttpRequest. logro hacer la conexión, pedir el token, pero después tengo que enviar un archivo json con la tabla de artículos.
Les voy pasando código:
Estas son las variables que uso. El campo clave es la clave para pedir el token (no a pongo acá porque le pertenece al cliente)COBOL Código:
01 variables-conexion global. 02 winhttp pic x(128) value "WinHttp.WinHttpRequest.5.1". 02 oWS usage object reference COM. 02 SRC pic x(1024). 02 MSG pic x(1024). 02 metodo pic x(1024) value "POST". 02 autenticacion pic x(1024) value "http://157.230.55.48:5000/api/v1/auth/login". 02 arti-alta pic x(1024) value "http://157.230.55.48:5000/api/v1/erp/articles/sync". 02 clave pic x(30) value "XXXXXXXXX". 02 credenciales. 03 pic x(7) value "Bearer ". 03 token pic x(1024). 02 RH1 pic x(1024). 02 RH2 pic x(1024). 02 url pic x(1024) value "http://157.230.55.48:5000/api/v1/erp/". 02 modo pic x(1024) value "FALSE". 02 respuesta pic x(8192). 02 envio-r. 03 pic x(19) value "d:\sernick\prueba1". 03 archivo-json. 04 pic x(5) value "temp". 04 arch-json-time pic 9(8). 04 pic x(5) value ".json". 02 redefines envio-r. 03 envio pic x(37).
Con esto pido el token...COBOL Código:
PROCEDURE DIVISION. #include "copys\declara-com.cpy". comienzo. invoke COM "CREATE-OBJECT" using winhttp returning oWS. invoke oWS "OPEN" using metodo autenticacion modo. move "Authorization" to RH1. move clave to RH2. invoke oWS "setRequestHeader" using RH1 RH2. invoke oWS "send". invoke oWS "get-Responsetext" returning respuesta. set oWS to null. invoke json "Clear". invoke json "Load" USING respuesta. invoke json "StringOf" using "token" returning token. invoke grdLista "AddItem" using respuesta. exit program.
Acá trato de enviar el json de artículos. En esta prueba que les muestro el json lo cargo en una variable, pero la idea es poder enviar el archivo.COBOL Código:
WORKING-STORAGE SECTION. 01 wsend. 02 pic x(115) value '{"000001":{"k":"1","rk":"1","b":"0","d":"CREMOSO LA LACTEO","i":"","n":"CREMOSO LA LACTEO","ld":"CREMOSO LA LACTEO"'. 02 pic x(115) value ',"nc":"0","fa":"0","dum":"UN","v":{"a":"21","f":false},"um":{"UN":{"e":"1","k":"UN","n":"UNIDAD"}}}}'. PROCEDURE DIVISION. #include "copys\declara-com.cpy". comienzo. invoke COM "CREATE-OBJECT" using winhttp returning oWS. invoke oWS "OPEN" using metodo arti-alta modo. move "Authorization" to RH1. move credenciales to RH2. invoke oWS "setRequestHeader" using RH1 RH2. invoke grdLista "AddItem" using credenciales. move "Content-Type" to RH1. move "application/json" to RH2. invoke oWS "setRequestHeader" using RH1 RH2. invoke oWS "send" using wsend. invoke oWS "get-Responsetext" returning respuesta. set oWS to null. invoke grdLista "AddItem" using respuesta. exit program.
Si lo hago con Postman no tengo problemas, pero no sé traducir al cobol eso
Ahí les paso la imagen de pantalla del Postman.
En el body, selecciono binary y me pide el archivo. Ahora cómo hacerlo en Cobol no pude...
Saludos
Fito...
Marcadores