Una librería externa es un objeto visual que permite declarar una librería de enlace dinámico externa y sus funciones, a las que podremos invocar desde distintos puntos del proyecto
Este objeto solamente puede ser creado dentro de un proyecto de aplicación.
Al pulsar el botón o pulsara la tecla F4 e abrirá un panel pop-up con la lista de las librerías externas declaradas tanto en el proyecto en curso con en los proyectos heredados.
Para ejecutar una función de una librería externa no tendremos más que incluirla dentro de una fórmula. Para ello desplegaremos el nodo de la librería externa cuya función queremos llamar y haremos doble clic sobre la función deseada:
Ésta será insertada en la fórmula en curso. La sintaxis es la siguiente:
dll:IDENTIFICADOR_LIBRERIA.IDENTIFICADOR_FUNCION@nombre_proyecto.ext([Parámetro1, Parámetro2, Parámetro3…])
Donde:
dll:: prefijo que indica que se trata de una función de una librería externa.
IDENTIFICADOR_LIBRERIA: mostrará el identificador de la librería externa.
IDENTIFICADOR_FUNCION: mostrará el identificador de la función a llamar de la librería externa.
@: indica que a continuación se declararán los datos del proyecto.
nombre_proyecto: nombre del proyecto al que pertenece la librería.
.ext: tipo de proyecto. .dat indica proyecto de datos y .app indica proyecto de aplicación.
([Parámetro1, Parámetro2, Parámetro3…]): parámetros de la función, si los tiene. En caso de no tenerlos se incluirán solamente los paréntesis: ().
dll:TPV_VPR.LISTPRINTERS@vERP_2_app.app(dir)
Si en la función se han declarado parámetros, éstos serán identificados al final de la misma entre paréntesis. En ese caso habrá que sustituir esos parámetros por los datos que queramos pasar a la función:
dll:TPV_VPR.LISTPRINTERS@vERP_2_app.app( tempPaht() + "/printers.txt" )
Si la función retorna algo, este retorno será atrapado en el objeto o sub-objeto desde el que sea llamada. Por ejemplo, si la llamada a la función la hacemos en un comando de instrucción de proceso Set, el retorno de la función será el contenido que se le asigne al campo.
Las librerías tienen que estar compiladas en la misma arquitectura que el componente de Velneo desde el que se vaya a hacer llamadas a las mismas; es decir, si la librería va a ser llamada desde un Velneo vClient de 32 bits, la librería tendrá que estar compilada para 32 bits, pero sin la librería va a ser llamada desde un vClient de 64 bits, entonces tendrá que estar compilada para 64 bits.
Con el fin de garantizar tanto la estabilidad como la seguridad de Velneo vServer el acceso a librerías externas desde procesos ésta permitido solamente en procesos ejecutados en primer o segundo plano (ejecución en cliente), no siendo posible hacer llamadas a librerías externas desde procesos ejecutados en tercer plano (en el servidor). Este objeto siempre debe ser creado dentro de un proyecto de aplicación; ya que, en la versión actual, las librerías declaradas en proyecto de datos no son funcionales.