Cada objeto tiene sus virtudes y también sus limitaciones. Conocerlas nos ayuda a decidir cuando usar uno u otro.
Las funciones
Ventajas
- Permiten el paso sencillo de parámetros.
- Pueden ser ejecutadas desde cualquier fórmula.
- Se pueden ejecutar en contenidos iniciales de campos.
- Se pueden ejecutar en condiciones de controles.
- Se pueden ejecutar como funciones remotas entre servidores o entre instancias del mismo servidor.
- Solo requieren una línea de código para su ejecución.
- Al no tener un origen se pueden usar de forma abstracta para cualquier tabla.
- Producen un retorno no asociado a ningún origen.
- Pueden ser ejecutadas en cualquier plano.
Limitaciones
- Solo admiten 10 parámetros.
- Los parámetros deben estar en el orden de definición.
- No es posible usar parámetros opcionales, salvo el último.
- No tienen origen y no se les pueden pasar registros o listas.
- Solo pueden tener un retorno.
- Si se ejecutan en 1º plano producen una transacción independiente.
- No se pueden lanzar en un plano diferente al del lanzador.
Procesos
Ventajas
- Se les puede pasar un origen de datos, ficha o lista.
- Pueden retornar un origen de datos, ficha o lista.
- Ejecutados con un manejador de objeto permite el paso ilimitado de parámetros y la recepción ilimitada de parámetros.
- En algunas circunstancias se pueden ejecutar en planos diferentes al del lanzador.
Limitaciones
- No es posible ejecutarlos desde una fórmula.
- Solo pueden tener un origen.
- Solo pueden tener un destino.
- Si tienen origen hay que crear uno para cada tabla.
- Si es necesario usar manejador de objeto requieren múltiples líneas de código.
¿Cómo elegir?
Estos pasos te pueden ayudar a tomar la decisión de cuál usar según la programación que vayas a realizar.
Usaré un proceso si necesito…
- Pasarle el registro o lista en la que estoy.
- Que me retorne un registro o lista.
- Pasarle más o menos parámetros en diferentes circunstancias.
- Lanzarlo en el servidor cuando estoy en el cliente.
Usaré una función si necesito…
- Ejecutarla para múltiples tablas.
- Ejecutarla en el contenido inicial de un campo.
- Ejecutar una funcionalidad de forma remota entre servidores o instancias.
- Que genere una transacción independiente en 1º plano cuando ya tengo una transacción en curso.
¿Te animas a aportar más a este post?
Deja un comentario con tus ideas y buenas prácticas.
Deja una respuesta