dic 16

Parametros en funciones de V7

Posted in analisis, ideas

Uno de los problemas en el artículo anterior, que diferencia también a V6 y V7 es el paso de parametros a las funciones, en V6 no hay limite (aparentemente), mientras en V7 existe un limite de 10 parametros como máximo.

En realidad, ¿para que estan los limites?, ¿para que estan los obstaculos?, … ¡para superarlos!

Los limites están porque alguien, consciente o inconscientemente quiere impedirnos que esos limites sean superados, en este caso, se debe simplemente, a que el departamente de desarrollo ha considerado que 10 parametros era más que suficiente para poder ejecutar cualquier operación con este objeto.

Pero hay excepciones, y en esos casos, en que nos encontramos con un obstaculo, y un muro nos impide seguir nuestro camino, tenemos varias opciones:

  1. sentarnos y esperar a que el muro sea derribado
  2. acelerar e intentar saltarlo, chocando repetidamente hasta cansarnos
  3. intentar rodearlo, aunque ello nos suponga un esceso de tiempo y de esfuerzo

o con un poquito de imaginación, y un poquito de esfuerzo también, pero sin excederse,

  • abrir una puerta que nos permita cruzar al otro lado

Y para solucionar el probema de la limitación de parametros en las funciones, hemos abierto esa puerta:

Para esto, solo necesitamos pasar 1 o varios parametros en la llamada a la función, y en cada parametro podemos encadenar tantos valores como sea necesario, usando un separador “;”, por ejemplo.

Dentro de la función, como ya habeis imaginado vosotros, solo necesitaremos usar la funcion del sistema StringSection para volver a separar los valores de cada parametro recibido, y procesarlos como sea necesario.

La solución es sencilla, y no solo permite pasar algunos parametros más a la función, sino que elimina completamente la barrera.

Soluciones como esta, las estamos inventando a diario, pero es dificil imaginar una solución y mucho menos cuando aún no se ha presentado el problema.

….

Uhmmmmmmm

….

y ya puestos, si hemos abierto una puerta para pasar al otro lado, me pregunto:

¿porque no puedo utilizar la misma puerta para volver?

y la respuesta es ¡SI!, la puerta se abre en las dos direcciones,

por tanto, tambien puedo realizar la misma operacion para retornar varios resultados de una misma función, encadenando los valores antes de retornar el resultado y volviendolos a separar en el proceso o evento que recibe el resultado de la función.

Yo, he abierto la puerta, pero si alguien tiene alguna idea para que la puerta sea automatica y se abra sola ante nuestra simple presencia, eso siempre es de agradecer.

PDF Printer    Enviar artculo en formato PDF   
comments: Closed

21 Responses to “Parametros en funciones de V7”

  1. Miguel dice:

    Me gusta mucho la idea del retorno. Tu sigue asi no pares.

    Un saludo

  2. Roberto Blasco dice:

    Hola Pepeto.

    Si hay límite de paso de parámetros, porqué no pasas todos los parámetros separados por un calificador, por ejemplo la arroba.

    Lo único que tienes que hacer es recoger los parámetros deseados en el proceso extrayendo el dato de la cadena original.

    Un saludo. Roberto Blasco.

  3. Benito Lavandeira dice:

    Personas como tú revalorizan el foro diariamente.
    Muchas gracias

  4. admin dice:

    Roberto, ¿estas un poco espeso hoy? , 😀

    Y que crees que he dicho en todo el royo que he metido,
    La verdad es que podia resumirlo como tu, … pero me he extendido un poquito mas, jeje

    un saludo
    Jose Luis

  5. agustin dice:

    Esto si que es un blog interesante y no el oficial.

  6. Chema dice:

    Una solución sencilla. Quizás una más elegante se podría hacer con la funciones de diccionario que están en la open app vTools (http://velneo.es/vtools/)

    Saludos

  7. Juan Diaz dice:

    Me quedo sin palabras, Gracias Pepeto.

  8. gegeo dice:

    Esto si que es un blog interesante y no el oficial.

    Si señor.

  9. Miguel dice:

    Por cierto Jose Luis, una petición.
    Tu blog ya tiene cierta dimensión y aporta a diario muchas ideas, lo que hace que muchas veces busque soluciones directamente en el. Creo por lo que veo, que los post los tienes clasificados por categorias y aumentar el nº de categorias para clasificar mejor los articulos entiendo que desvirtuaría una clasificación que debe ser generalista (corrigeme si me equivoco). Pero para los adictos como yo a tu blog, si añadieras la posibilidad de etiquetar los post con una o varias etiquetas, o poder sugerirtelas en el artículo, podriamos buscar directamente los artículos relacionados con la etiqueta.
    Por ejemplo, yo a este articulo le añadiria las etiquetas de “parametros funciones” , “funciones”, y “retornos funciones” y de esta manera cuando los que abusamos sin piedad de tu generosidad acudamos a la “vPepeto´sReference” para buscar ideas ingeniosas como esta, que resulta más útil que la documentación oficial, buscamos por etiquetas y consumamos el delito de flagrante abuso de conocimiento.
    Vamos! por si no tenias bastante trabajo.
    Salu2.

  10. Dario dice:

    Ésto lo venía usando con v6, tanto en el paso de parámetros como en el retorno.

    Lo que no me explico es porqué una cosa que estaba bien resuelta en v6 ahora la limitan en v7.

    La verdad, no lo entiendo. :-(

  11. Roberto Blasco dice:

    @Pepeto

    Jajajajaaja, es verdad … estoy muy espeso ….

    Al hilo de esto. Como muchas veces he dicho, casi todo está inventado. Y esto no iba a ser menos. En otros lenguajes a este proceso de “dividir” objetos en cadenas de texto formateadas se le denomina serializar/deserializar, por ejemplo en java es JSON.

    ¿Por qué los desarrolladores de Velneo no implementan VSON?. De esta forma se podrían pasar como parámetros a las funciones cualquier cosa, formularios, tablas, búsquedas …..

    Un saludo. Roberto Blasco.

  12. agustin dice:

    @Roberto, seguro que Tipesoft ya lo tiene en cartera lo del vSON

  13. Portiella dice:

    Esa solución no es aconsejable cuando tienes que hacer muchas llamadas a dicha función, el rendimiento bajará mucho puesto que la función estará troceando los parámetros por cada llamada y si son miles de ellas ya te puedes imaginar…
    Debéis juntaros todos y pedir al menos una explicación del límite de 10 parámetros y a ser posible ampliarlo, quitar el límite tal vez a Velneo no le interese por alguna optimización aunque no lo sé

  14. admin dice:

    @Portiella

    Tienes razón, es una solución, pero no es para meterle miles de parametros, pero al menos eliminanos el limite de 10.

    ¿Debemos juntarnos para pedir a velneo, que?. Yo dejo aqui todas las propuestas, y allá aquel que las quiera escuchar.

    @Miguel

    La idea que propones es buena, pero como bien dices no sobra demasiado tiempo, y tengo otras cosas importantes que tampoco puedo descuidar … los chicos, la mujer, el trabajo, los amigos, … y a veces resulta complicado quedar bien con todo el mundo. Pero te sugiero que uses mas el buscador del blog y podras encontrar perfectamente todo lo que necesites.

    @Todos en general

    Muchas gracias por vuestro apoyo, se agradece enormemente y me da mas fuerza para seguir adelante.

    Parece una tonteria, pero un comentario, aunque sea para NO estar de acuerdo con lo que se dice, es de agradecer para saber que se lee. Si el comentario es como en este articulo de agradecimiento, mucho mejor, pero al menos se que no estoy loco y hablo solo.

    Y teneis total libertar para decir todo lo que os parezca bien o mal.
    Yo me he dedicado a criticar en muchas ocasiones, asi que no dejeis de criticarme tambien si lo creeis necesario, que a veces tambien se me va la pinza.

    No se si es por la Navidad, o es que me estoy enterneciendo 😀

    un fuerte abrazo para todos.
    Jose Luis

  15. Edilberto dice:

    Cordial saludo. Yo superaría la barrera de los 10 parámetros pasándolos a la función a través de un vector. No se si eso se pueda en V7. Igual para retornarlos.

  16. admin dice:

    @Edilberto

    Me temo que, o mucho me equivoco, o no es posible vasar variables de tipo array a una funcion.

    Y mientras Velneo aporta otro tipo de solución, es la mejor que se me ocurre.

    En V6, tambien se podian utilizar variables globales, y asi no era necesario traspasar el valor a la funcion, ya que podiamos acceder al valor de la variable desde la propia funcion. Pero ahora las variables globales dejan mucho que desear, asi pues, no se me ocurre otra forma.

    un saludo
    Jose Luis

  17. Otra solución (desde mi punto de vista más elegante) es simular parámetros por referencia en los procedimientos (los procedimientos son más potentes ya que disponen de soporte E/S y variables por referencia).

    1.- En el procedimiento defines las variables de E/S necesarias como locales (incluso arrays)
    2.- Defines entrada y salida (elemento, lista o nada)
    3.- La manejas con Create Object y luego manejar las variables con las instrucciones de proceso Set/Get del proceso manejado.

    Es la solución que nosotros usamos en el módulo de conexiones.

    Atentamente,
    Jorge Hontoria
    http://tipesoft.com

  18. admin dice:

    Aqui teneis otra explicación de esto mismo:
    http://velneo.es/funciones-y-parametros/



Pings responses to this post