Funciones remotas


([N1] antoniaorenes) #1

Buenos días… Tengo una duda… Necesito montar un servidor en Cloud además de tres equipos que funcionen fuera de línea. La razón es porque el trabajo a realizar serán tareas de mantenimiento de equipos industriales en zonas de penosa cobertura. Es la razón por la que olvido un montaje convencional de equipos conectados vía 3G para decantarme por equipos sin conexión.
Esto implica que una vez al día dichos equipos portátiles y remotos, tendrán que llegar a la central y cargar y descargar los datos generados. Pienso en tabletas con Windows y motores mono puesto en cada una de estos equipos remotos.

Hasta aquí todo bien, el problema me surge porque necesito que los equipos remotos vuelquen datos al servidor principal y que el servidor principal también vuelque a los remotos. Por lo que he leído esto no se puede hacer con funciones remotas o no sé hacerlo yo… Desconozco las IP que tendrían los equipos remotos y la IP la necesito si utilizo funciones remotas… Según tengo entendido yo. ¿Se puede suplir esto de alguna manera?

¿Cuál es el medio más adecuado? ¿Se puede hacer con la función TCP? ¿El componente tcp permite que una vez establecida la comunicación desde las estaciones remotas, sean dichas estaciones las que lean en tablas del servidor en la nube y se graben los datos leídos en dichos equipos remotos?

Gracias, un saludo.


([N1] wikan) #2

Por mi experiencia lo principal es pensar en la cantidad de datos a sincronizar y como enviar independiente a los terminales.

  • Si solo conoces la ip del servidor, puedes lanzar una función remota desde los terminales y recibir la información.
  • Si el servidor en cloud lo puedes administrar puedes montar un ftp y dejar los ficheros ahí, tanto de envio como de recepción. El servidor deja los ficheros para los terminales y los terminales para que el servidor los reciba. Montas una estructura de directorios para saber el terminal y si es entrada o salida y procesas ficheros planos.

([N3] pacosatu) #3

Hola antoniaorenes.

No tienes ningún problema. Solo necesitas saber el dominio o la IP del servidor remoto o en cloud.

Cuando la tableta esté en la central ejecutas las Funciones remotas contra el servidor en cloud que cargan/descargan la información necesaria.

Por supuesto, tendrás que habilitar un formato de intercambio de datos (Texto plano, JSON, XML, …)

Saludos y suerte con el proyecto.
Paco Satué


([N3] GSI) #4

Hola nosotros tenemos desarrollada una API para comunicar tablets windows, web, ios, etc. con nuestras aplicaciones ERP…, el principal problema que tuvimos que resolver es que los envíos podemos hacerlos por TCP, es lo más fácil, y mediante funciones remotas realizar peticiones o envíos de datos. Pero…

El problema viene cuando tenemos que recibir en las tablets datos, hay un problema con el tema de IP y puertos, aunque sea windows, optamos por utilizar los comandos SDV, para recibir ficheros en las tablets, enviar lo hacemos por TCP, lo que hacemos brevemente es:

1.- Enviamos el fichero por TCP
2.- Indicamos al Servidor por TCP-Enviar linea, los datos de lo enviado y el proceso que debe realizarse
3.- Mediante comandos SDV recogemos el resultado del servidor

A día de hoy nos funciona perfectamente y tenemos varias aplicaciones de servios técnicos, vendedores, etc. funcionando y sincronizando


([N1] antoniaorenes) #5

gracias señores… me alienta saber que funciona… voy a hacerlo por funciones remotas… creo que me será mas sencillo, pues ya las utilizaba en v6.

Gracias, buen fin de semana


([N1] antoniaorenes) #6

Buenos días… al final he decidido hacerlo con funciones remotas… pues bien hasta aquí todo perfecto, el problema me surge al introducir los datos en la formula rfc:REMOTO1(“vatp://v7cloud1.velneo.com:1615”, “CRM”, “remoto”,“1111”, OK) Si os dais cuenta veréis que he escrito directamente en la formula, los valores del servidor, la instancia, el usuario y su contraseña, ¿por que? pues porque si lo hago con variables no me funciona… ¿a alguien le ha pasado algo similar?

Son variables alfabéticas, he probado la función trimmedString, le he puesto las “” dentro y fuera de la variable, en fin, he probado todo lo que pienso que puede influir en el contenido de dichas variables. Como digo… ¿a alguien le ha pasado algo similar?

Gracias, un saludo


([N4] Infortic) #7

Hola.

Si pasas variables alfabéticas ya no tienes que poner las comillas, eso es sólo si pasas los valores literalmente.

¿Las estás poniendo?


([N1] antoniaorenes) #8

Gracias… ese era el error, ponía comillas en los contenidos dentro de las variables.


([N1] antoniaorenes) #9

Una cuestión mas… necesito retornar desde funciones remotas, contenido de campos binarios. ¿se puede hacer?

Gracias, un saludo.


([N3] pacosatu) #10

Hola antoniaorenes.

Tendrás que pasar el campo binario a un String (codificado en base64) y en el cliente hacer el proceso contrario.
Esto es posible con la clase VByteArray del API de Velneo.

Pruébala.
Saludos
Paco Satué