Velneo y Javascript la conexión de dos mundos

Ya deciamos que después del 11/11/11 algo iba a cambiar y vaya que cambió. Las jornadas no tuvieron desperdicio, cada cual mejor. Pero no me he puesto a esta hora a escribir para hablar de la conferencia de hace casi un mes (lo siento pero no he tenido mucho tiempo, y supongo que eso es bueno ;), sobre todo para los tiempos que corren ). Me pongo por que después de esas jornadas ha habido otro acontecimiento a destacar y ha sido el blog de nuestro querido vArquitecto Juan Muñoz-Cobos, en él nos está informando de primerísima mano por donde se está trabajando para las siguientes versiones, algo que muchos reclamabamos a Velneo desde hace tiempo y ahora Juan, como siempre, nos ha dicho «quieres caldo… pues toma tres tazas».

En él nos está informando de la apertura de v7 a la programación en javascript, detallandonos los objetos que tendremos para acceder a toda las información de la aplicación desde el entorno gráfico a la base de datos. Así podremos crear procesos y funciones en javascript o v7, a gusto del consumidor.

Pero me parece que cuando empezemos a hacer los procesos en javascript, vamos a dejar los de v7 para las cosas sencillas solamente.

Estoy tratando de digerir las posibilidades, y lo que quiero en esta entrada es hacer un ejercicio teorico, de las posibilidades que se abren. Para ello voy a partir del ejemplo de su entrada http://varquitecto.wordpress.com/2011/11/24/procesos-javascript/ donde dispone de una estructura de tres tablas:

Hay tenemos un ejemplo de como en javascript podemos retornar las PELICULAS de una PERSONA.

Yo voy a tratar de hacer un proceso en javascript que sustituya a 2 procesos de v7.

Procesos en v7:

  1. PERSONAS_REPARTOS. Origen ficha PERSONA, Salida Lista REPARTOS
  2. PELICULAS_REPARTOS. Origen ficha PELICULA, salida Lista REPARTOS

Estos procesos en v7 todos sabremos hacerlos, ahora ¿como sería un único proceso en javascript que nos sirva para los dos casos?.

// Este proceso puede recibir una ficha de la tabla PERSONAS o de la tabla PELICULAS

// Retornará en cualquier caso la lista de la tabla REPARTOS historica de la ficha recibida

var TableInfoEntrada = VRegisterIn.tableInfo();

var reparto = VRegisterList;

if ( TableInfoEntrada.id() == «PELICULAS» ) {

reparto = VRegisterIn.loadPlurals( «REPARTOS_PELICULAS» );

}

else {

reparto = VRegisterIn.loadPlurals( «REPARTOS_PERSONAS» );

}

// Ponemos a la salida la lista

VRegisterListOut.append( reparto );

 

Ya tenemos el mismo proceso que retorna el histórico REPARTOS a partir de cualquiera de sus maestros. Ahora es cuestión de perfeccionar el proceso para que sirva para muchas mas combinaciones.

Espero que funcione, pues no lo he podido probar ;), pero si no es así es culpa mía no de la herramienta.

 

 

10 comentarios en “Velneo y Javascript la conexión de dos mundos

  1. Probado y funciona salvo por culpa mia en la documentacion, la cual paso a corregir. En lugar de VRegister, que es la clase, hay que poner VRegisterIn que es el objeto de la clase VRegister que se crea automaticamente como entrada

  2. El proceso queda muy bien, pero mientras no se controle la entrada de forma dinámica, en v7 tendras que copiarlo dos veces. En uno la entrada será la ficha PERSONAS y en otro PELICULAS.
    No veo la prestación por ningun sitio. Bueno si, que en un fichero plano de texto se puede escribir cualquier cosa.
    ¿Donde esta la utilidad de utilizar otro lenguaje de programación para hacer lo que ya hacen los comandos de instrucción de Velneo?
    Y si la respuesta es para hacer cosas nuevas, preguntate ¿Por que no lo hacen los comandos de instrucción de Velneo?¿Por que hay que utilizar JS para poder conseguir eso? ¿alguien ha dado alguna respuesta razonable?
    Y no me sirve que es «por que es el camino que ha tomado el vArquitecto».

    • ikonos: Me parece que no entiendes lo que aporta VJavascript. Este proceso tiene 2 posibles entradas ficha de PELICULAS o ficha de PERSONAS, y podría tener muchas mas.
      El código solo se escribe una vez.
      Desde v7 el «proceso» que se crea solo es un enlace entre los datos y este código, no se repite el código. Por lo tanto ya hay una mejora importante de reutilización.

      ¿Que utilidad tiene utilizar otro lenguaje?. TODA. Se rompe con lo que hasta ahora se ha achacado a Velneo que era cerrado. El utilizar otros lenguajes te abre un mundo de posibilidades. Por ejemplo integración. Tendrás la flexibilidad del lenguaje de programación y todas las API necesarias para interactuar con el entorno de Velneo.

      Los comandos de instrucción de Velneo están muy bien para programar de una forma guiada y amigable, y el que quiera seguir usándolos siempre los podrá usar.

      Espero que te resulte lo suficientemente razonable. Yo desde luego lo veo muy claro.

      • @Nacho,
        Me gustaria que no te molestaras por que discrepe de vuestra particular visión. Eres la segunda persona que desde la lejanía (sin conocerme) me dice que no entiendo lo que aporta JS (el primero fué tu vArquitecto) y la verdad me entra la risa tonta cuando me lo decís. A veces me dá la sensación que si vuestro vArquitecto os dijera que os tireis de cabeza a un pozo, todos acabariaís en el fondo.

        Te vuelvo a repetir, que el proceso aunque tenga el mismo código lo tienes que repetir dos veces, con entradas distintas. ¿como lo harias con comandos de instrucción de velneo? Ostras con 2 procesos, y bien sencillos. Que casualidad!!.

        ¿Ves la genericidad de la classe que se utiliza en JavasCript por algun sitio? Debo ser miope por que yo no la veo.

        «Programar para hacer lo mismo, es una tonteria»

        Y ahora vamos a la verdadera utilidad de JS.
        Ya se que JS sirve para todo (ay! que me entra la risa otra vez) dialecto del estándar ECMAScript, se define como «orientado a objetos», basado en prototipos, imperativo, débilmente tipado y «dinámico», se puede utilizar en el lado del cliente o en el del servidor. Aunque la «utilidad práctica» es ser un lenguaje interpretado para interactuar con una página web a traves de la implementación del Document Object Model (DOM).
        ¿Velneo lo va a incluir para que aprovechemos toda la infinidad de código existente para interactuar con el HTML ? !!!!Perfecto!!!! ESTO ES INTEGRACIÓN.
        ¿Velneo lo va a utilizar para hacer uso de las propiedades de la POO, sobre todo la genericidad, lo que haria que no tuvieras que repetir ese proceso?
        !!!!Perfecto!!!! ESTO ES INTEGRACIÓN.
        ¿Velneo lo va a utilizar para hacer de otra forma lo mismo que ya hace?
        var reparto = VRegister.loadPlurals («REPARTOS PERSONAS») !Vaya tonteria!
        ¿Velneo lo va a utilizar para hacer cosas que no hace, «pero que deberia hacer» con sus comandos de instrucción? Como por ejemplo controlar la interfaz «Apagar el boton cerrar del marco»
        VMainWindow.customizeWindowHint(0x01|0x02|0x04|0x08);
        Venga ya!!! ¿no es demasiado rebuscado implementar toda una libreria de JS para llegar a VMainWindow.customizeWindowHint(0x01|0x02|0x04|0x08)?
        Alguien se ha perdido en la NUBE.

    • @ikonos, en absoluto me molesto. Pero es que no os dais cuenta (y pluralizo por que a otras personas les ha pasado li mismo), que el proceso no se repite 2 veces.

      En el proyecto de v7 (en esta nueva versión) tendrá una carpeta donde podrás crear o incorporar archivos de javascript.
      El código del ejemplo es uno de esos archivos, no en es el proceso!!

      Si te fijas en la parte derecha de la imagen http://varquitecto.files.wordpress.com/2011/11/procesojs.jpg el objeto «proceso v7 de javascript», lo que hace es hacer referencia a un fichero javascript al que le va a pasar una ficha y va a esperar que le retorne una lista. Yo puedo hacer otro objeto «proceso v7 de tipo javascript» que tenga como origen una ficha de otra tabla y como destino una lista de otra y asociarlo al mismo fichero javascript.
      Cuando edito cualquiera de los dos procesos, edito el mismo fichero de javascript, que está guardado en una carpeta del sistema.

      Y en cuanto a tus dos primeras preguntas en las que te respondes «!!!!Perfecto!!!! ESTO ES INTEGRACIÓN.». Decirte que claro que vas a poder!!!!! de eso es de lo que se está hablando.
      Las otras dos preguntas, por supuesto, que es una tontería.

  3. @Nacho,

    Lo tengo claro desde el principio. Está claro que no repites el código JS. Lo que repites es el proceso, por que las entradas al proceso son estáticas en v7. Y tu dirás, bueno pero solo es copiar y pegar en otro proceso con el mismo código fuente. Pues no, por que el cógido JS que has puesto solo sirve para las tablas que has especificado «PELICULAS» y «PERSONAS», para cualquier otra tabla no serviría.
    Sin embargo JS que es un lenguaje orientado a objetos podría hacer que sirviera para cualquier tabla, pero lo «capa» el hecho de que las entradas al proceso en v7 son estáticas, entonces ¿para qué utilizar JS si no utilizas la «genericidad»?

    Otro hecho distinto, sería que el vArquitecto aclarara que «para Velneo mantener el origen estático de la entrada y salida de los procedimientos en básico para la estabilidad de la plataforma» y es un punto «inamovible». A partir de ahí conoceríamos las limitaciones de la aplicación, y buscariamos la forma de sortearlas. Pero que no nos vendan la burra, por que el N4 nos cuesta bastante pasta como para que nos creen falsas expectativas.

    Para mi, que se hable de JS y QML para para manejar datos y la interfaz de Velneo pone de manifiesto la limitación de la herramienta. Y si no fuera así hace tiempo que controlarias el diseño de la interfaz y manejarias objetos «de verdad» sin necesidad de que esten instanciados previamente en el proceso.

    Bueno lo dejo aquí, por que yo creo que ya está bastante tocado el tema.
    Un saludo

    • @Ikonos,

      Mira entre un comentario y otro te contradices, pero es absurdo profundizar, por que realmente el que está perdido en la nube eres tú, por que estás pagando nivel 4 (según dices), de un herramienta que no es ni será nunca la que quieres. Cambia de nube

      Yo en tu caso no perdería ni un euro, ni un minuto mas de mi tiempo en usar ni leer sobre esta herramienta, por que no es ni será nunca la tuya.

      un saludo.

Replica a Nacho Cancelar la respuesta