sep 5

¿Función o proceso?

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.

Create PDF    Enviar artculo en formato PDF   
comments: 6 »