En Velneo V7, como en la mayorÃa de los lenguajes y herramientas de programación, hay problemas que podemos resolverlos de distintas formas y obtener el mismo resultado.
La diferencia no esta en el resultado en si, que de un modo u otro será el mismo, la verdadera diferencia está en usar el método óptimo para llegar a ese resultado.
Y es aqui, donde se nos plantea la siguiente duda, en multitud de ocasiones, para solucionar un problema, podemos usar una “Función” o un “Proceso”.
A fin de cuentas, una “Función” es muy similar a un “Proceso” en muchos aspectos, aunque también tienen algunas diferencias
La función:
- Permite hasta 10 parámetros de entrada, aunque esa barrera ya la habiamos superado cuando se publicó este articulo: Parámetros en funciones de V7
- Tiene un parámetro de salida, aunque también habiamos solucionado este problema encadenando los valores (en el mismo artÃculo).
- La función no tiene una tabla de origen, y tampoco destino.
El proceso:
- Podemos usar tantos parámetros como necesitemos, eso si, usando el manejador de objetos para poder pasar y recibir parámetros.
- Podemos obtener varios valores de retorno.
- No es necesario indicar todos los parámetros en la llamada, solo aquellos que sean realmente necesarios.
- El proceso puede ser: sin origen, o con origen y destino en una misma tabla (de tipo ficha o lista) dependiendo de donde lo vayamos a llamar.
Veamos ahora un ejemplo real que podriamos usar para solucionar un problema común:
La función:
El proceso:
Como podemos observar, las dos imagenes representan lo mismo:
Pasamos como parámetros de entrada los campos #ALM (almacén) y #ART (artÃculo), y comprobamos si existe el registro en la tabla de “Stock”, y si no existe, lo creamos. Al finalizar retornamos el #ID del registro creado (esto no es necesario pero se ha incluido para ver el retorno de valores).
Ademas, la definición es practicamente igual:
- Las mismas variables en el panel de subobjetos
- Las mismas instrucciones en el editor central
- Y el mismo origen, en el panel de propiedades, aunque en el caso del proceso, esto puede cambiar.
Hemos visto como se definen las funciones y los procesos, pero como serÃa la llamada para ejecutarlos, porque aqui es donde realmente se diferencian:
En el caso de la función, la llamada es asi:
Necesitamos una variable a la cual asignamos el resultado que retorna la función, y despues, llamamos a la función pasandole todos los parámetros que necesita.
En el caso del proceso, la llamada mediante el manejador de objetos es asi:
La llamada mediante el manejador de objetos es un poco más compleja, ya que hay que definir el objeto en el manejador, luego asignar los valores a las variables con SET, después, ejecutar el proceso y, en último lugar, recoger los valores retornados con GET.
A la vista de los ejemplos, podemos ver que el uso de uno u otro método es aconsejable en los siguientes casos:
- La función es obligatoria cuando necesitemos hacer uso de ella desde un contenido inicial.
- El proceso es recomendable cuando necesitemos muchos parámetros o vayamos a retornar varios valores.
- El proceso es obligatorio si queremos ejecutar en 3º plano.
- El proceso es recomendable cuando los parámetros de entrada no sean obligatorios
Gracias por la visita y hasta pronto.



