¿Qué va a pasar?

En solo tres pasos tu aplicación empresarial comenzará a ser una realidad

Registro
Escuchamos tus necesidades

Ejecución desde Velneo 6.x de funciones remotas de Velneo V7

En esta última versión Velneo V7.1 se ha añadido una útil funcionalidad para poder llamar a funciones remotas de Velneo V7, desde proyectos de Velneo 6.x

Funciones remotas entre Velneo 6.x y Velneo V7

¿Qué aplicativo de Velneo V7 me permite tener esta funcionalidad?Para poder disponer de esta funcionalidad es necesaria la librería vRemoteFunctionV7.dll, la cual es distribuida con el aplicativo “Velneo vClient V7”.Este aplicativo está disponible en el área de descargas para los niveles 2,3 y 4.Dicha librería incluye en su interior todos los elementos necesarios para su uso, es decir, código necesario de V7, librerías de Qt, etc. de modo que puede distribuirse por si misma, sin dependencias con otros elementos de la plataforma. No obstante, si necesitará del sistema de Windows las librerías del "Runtime de Visual C++ 2005 SP1". Dichas librerías suelen estar instaladas en los sistemas operativos modernos, aunque “Velneo vMap2ProjectAid V7” las instala en caso de no existir. No obstante en caso de copiar vRemoteFunctionV7.dll a otro equipo, y si no existen dichas librerías en él, será necesario que sean instaladas por el usuario (pueden ser descargadas gratuitamente del sitio web de Microsoft).

¿Qué debo hacer en Velneo V7 para que una función pueda ser llamada desde Velneo 6.x?

Nada especial, simplemente definir la función que deseamos llamar, e instanciar el proyecto en el que está definida, no hay que hacer nada en especial por el hecho de que vaya a ser llamada desde Velneo 6.x, salvo asegurarse de definir un identificador en las propiedades de la instancia desde Velneo vAdmin V7, para que Velneo 6.x sepa a qué instancia llamar.

El proceso detallado sería:

1.- Definir la función remota que deseamos ejecutar en Velneo V7

1_funcion_1

Como vemos, la función se define normalmente, sin diferencias añadidas por el hecho de que vaya a ser llamada desde Velneo 6.x

2.- Crear una instancia en Velneo vAdmin V7, y definir un identificador para dicha instancia

2_identificador

Definiendo un nombre para el identificador desde Velneo vAdmin V7, podremos decir a Velneo 6.x que instancia deseamos que ejecute la función remota que queremos llamar.

Nota.- Lógicamente desde Velneo 6.x se llamará a la función con el usuario y contraseña que deseemos, por lo que la configuración en Velneo vAdmin V7 debe permitir el acceso a la instancia en cuestión con ese usuario.

¿Que debo hacer en Velneo 6.x para llamar a la función de Velneo V7?

En el mapa que vayamos a usar, debemos crear un elemento en “Librerías de funciones (dll)” donde dar de alta la librería que se ocupará de enlazar Velneo 6.x con Velneo V7, que como comentamos al inicio de este artículo se llama “vRemoteFunctionV7.dll”.

Dicha librería contiene una función a la que debemos llamar desde Velneo 6.x con los parámetros necesarios para ejecutar la función definida en Velneo V7. La configuración debe ser:

3_v6_libreria
4_v6_funcion1

Los parámetros que afectan a la función son los siguientes:

1.- El retorno será “char *”, por lo que la función definida en Velneo V7 siempre devolverá una cadena de texto. Caso de no ser así, y si por ejemplo devolviese un número, dicho número sería convertido automáticamente a cadena de texto.

2.- La convención será “_cdecl” por diseño

3.- El nombre de la función debe ser “RemoteFuncV7”

4.- El número de parámetros definidos para la función serán 13, todos ellos del tipo “char *”. Los parámetros serían:

char* szServer: Contiene el Velneo vServer V7 al que deseamos conectarnos. La cadena debe comenzar siempre por “vatp://” seguido del nombre o dirección IP del servidor y su puerto. Por ejemplo: “vatp://80.80.80.80:691” o “vatp://servidorV7.com”

char* szInstancia: Contiene el identificador que definimos para la instancia que queremos ejecutar. Para las capturas de imagen anteriores, el identificador sería “FUNCAPP”.

char* szIdFuncion: Contiene el identificador de la función que queremos ejecutar dentro de la instancia definida en el punto anterior. Para las capturas de imagen anteriores, el identificador sería “FUNCION”

char* szUsuario: El nombre de usuario con el que conectarnos al Velneo vServer V7.

char* szPassword: La clave del usuario anterior.

char* szParam1, char* szParam2, …. , char* szParam8: Son los parámetros que enviamos a la función remota para su ejecución. El número máximo de parámetros como vemos es 8, no es posible introducir más. En caso de que nuestra función necesite menos de 8 parámetros, para evitar problemas deberemos definir igualmente los 8 aunque posteriormente no se usen.

Por último ¿cómo lanzo la función?

5_v6_proceso

En nuestro ejemplo lanzamos la función desde el proceso OnInit. Como vemos el uso es simple:

“Set->retorno, »VREMOTE1.RemoteFuncV7("vatp://Servidor", "FUNCAPP", "FUNCION", "usuario", "clave", "2","","","","","","","")”

Donde VREMOTE1 fue el nombre que dimos en el mapa Velneo 6.x a la librería de funciones. El retorno volverá en la variable “retorno” que después procesaremos como deseemos. Es importante, que tal y como vemos en el ejemplo, se envíen los 8 parámetros en la función, dejando “” en caso de que no los usemos.