Ejemplos javascript en v7 – Combobox y Separador de formularios

javascript    javascript1

Como he notado que en la comunidad existia alguna dificuldad en poner en prática alguna de las classes de javascript incorporadas en v7, he decidido ir haciendo una aplicación de ejemplo donde pueden ver en funcionamiento algunas partes de la api.

En adjunto les dejo un vin, que contiene ejemplo de como alimentar dinámicamente un combobox, y otro ejemplo de como alimentar y remover pestañas a un separador de formularios.

Como podreis observar en el vin en ambos los casos con 2/3 lineas de javascript podemos controlar los objectos, y resulta extremadamente sencillo interactuar con la interfaz.

javascript2

La idea es ir a poco y poco añadiendo más ejemplos al mapa, hasta quedar algo completo.

En algunos ejemplos se podrían evitar algunos eventos, pero la compreensión quedaria más dificil, por eso he optado por hacerlo lo más simples posible, para que todos lo podais entender.

El vin no depiende de ningnuna solucíon ni hereda de nada. La podeis instalar sin problemas.

http://filipegomes.eu/javascript.vin

Saludos.

Velneo v7, pequeño analisis

Desde mi punto de vista Velneo V7, está llegando a un estado de desarrollo de funcionalidades que en alguns casos se acerca al que siempre he soñado con velneo, y en otros lo supera.
La plataforma está más estable que nunca, y recentemiente se han abierto otros mundos de posibilidades.
Por veces nos cuesta imaginar las nuevas posibilidades abiertas, pero cuando veo lo que están haciendo algunos compañeros, siempre me consiguen sorpreender, con imaginación y creatividad es posible hacer cosas casi impensables con velneo v7 y que por veces ni soñanos que se pueden hacer.

  • Ya es posible acceder de manera clara a la base de datos de velneo, con tan solo desarrollar un pequeña api de javascript, con esto quiero decir, que con tan solo programando una vez, puedes accecer desde cualquier plataforma o sistema operativo para obtener los datos que desees de velneo.

 

  • Ya es posible interactuar con la interfaz a un limite hace unos pocos meses impensable.
  1. Abir sub-formularios dinamicamente(Por id), activarlos, ocultarlos.
  2. Controlar las rejillas(Vistas de datos) que estamos viendo en cada momento en pantalla, controlarlas, filtrarlas modificarlas.
  3. Controlar la visibilidad de casi todo de forma abstracta.
  4. Alimentar comboboxs, añadiendo imagenes y opciones, sin depender de una tabla y de un origen.
  5. Obtener todos los controles y sub-controles de nuestras aplicaciones, de manera abstracta lo que nos permite implementar: permisos de una forma mucho más transparente, interectuar con cada uno de los objectos(Visibilidad, etc), y un largo etc.
  6. Interactuar con html, y recuperar los clicks en HTML, poder leerlos y modificarlos.
  7. El Qml abre un pequeño mundo dentro de v7, no es fácil de aprender, tiene su dificultad pero para casos muy concretos nos saca de grandes apuros. Falta abir un poco la api de javascript dentro de qml, para que podamos interactuar de manera más natural.
  8. Las hojas de estilos (CSS), nos ofrecen una manera cómoda y rápida de poder personalizar el aspecto visual de las aplicaciones, y con tan solo un click, cambiar totalmente ese aspecto inicial. Se pueden aplicar css a controles con un determinado identificador, a grupos de objectos, modificar propriedades de los objectos en edición (por ejemplo el titulo de un dock), etc (Casi no hay limite)
  9. Se pueden pasar y recibir variables locales entre vistas de datos lo que permite no duplicar interfaz. Ahora ya se puede tener un pequeño formulario con el titulo de un menu, que dependiendo que padre lo cargue, presenta un titulo o otro(Es una variable local), cambian las imagenes etc. Así se queremos cambiar masivamente esa parte de la intefaz, nos basta con cambiar un formulario, para que toda la aplicación adopte esos cambios.
  10. Y un largo etc, son tantas las puertas que se abrieran que facilmente me olvido de cosas importantes.
  • Indices Complejos en la 7.12 (Esperaremos para saber todo los que nos aporta, pero pienso que bastante)
  • Tablas de extensión en la 7.12 (Esperaremos para saber todo los que nos aporta, pero pienso que bastante)

Nos faltaria solucionar algunos aspectos:

  • Una mejor rejilla
  • Los informes (Veremos lo que nos trae la 7.12)
  • Algunos muchos puntos de menor importancia
  • Al mejor un odbc más optimizado
  • etc

Ahora si, V7 se ha tornado un monstro en funcionalidades, pero para poder aprovecharlos al máximo hay que dedicar muchas horas de aprendizaje.

Yo por mi parte, ya he hecho una lista, y todas las semanas intento explorar alguna area.

Pienso que en los proximos meses, la comunidad de velneo nos irá presentando proyectos realmente fantásticos y a poco y poco nos iremos dando cuenta de la herramienta fantástica que tenemos al dia de hoy.

 

 

 

 

Velneo y el cambio

Velneo al momento de hoy, mantiene dos versiones muy distintas de sus productos: Velneo v6 y Velneo V7.

Aquelos que me conoceis, sabreis que me he resistido bastante a evolucionar de 6.x a 7.x, V7 aparenta ser más complicada, para los niveles 1, no puede ser ejecutada en local, los proyectos no son compatibles entre estas dos versiones, etc.

Hace un año, que he decidio dar una oportunidad a V7, y les dejo mis sinceras conclusiones del gran cambio que supone dejar de desarrollar en Velneo v6 para empezar con Velneo V7.

 

1º Mes con Velneo V7 (Conclusiones):

  • Esto es muy complicado, es mucho más lento, es una putada no poder trabajar en local, sigo prefiriendo v6.

2º Mes con Velneo V7 (Conclusiones):

  • Es complicado y lento, permite hacer algunas cosas interesantes, pero no lo veo.

3º Mes con Velneo V7 (Conclusiones):

  • Empiezas a entender que el codigo que has desarrollado en los primeros meses no te sirve para nada, no está optimizado, en v7 no se hace así.
  • Las variables globales en v6 eran una constante en v7, salvo raras excepciones (Por ejemplo guardar el id del usuario logueado), no las necesitas, tienes variables locales que tienen un rendimiento excelente y puedes ir pasando su valor de objecto a objecto.
  • Empiezas a entender la herancia y sus ventajas
  • Sigues echando de menos el desarrollar en local.

4º Mes con Velneo V7 (Conclusiones):

  • Punto de inflexión
  • Te dás cuenta que desarrollar en la nube no es un problema, de echo es una ventaja. Te permite optimizar codigo, si funciona rápido en la nube, funcionará a la velocidad de la luz en local.
  • Apriendes que en v7, puedes hacer procesos abstractos que te sirven para casi todos los rincones de tu aplicación.
  • Apriendes a lanzar más procesos con el manejador de objectos.
  • Apriendes a usar más busquedas (y lanzarlas con el manejador de objectos pasandole parametros), y menos cargar lista.
  • Apriendes que si haces una buena busqueda, esa busqueda te sirvará para toda la aplicación (Una busqueda por tabla).
  • Empiezas a entender las ventajas enormes de Javascript, la abastración que consigues (Por ejemplo un proceso que te permite exportar los datos de una tabla, independiente de la origen de la tabla, 1 proceso -> n tablas)
  • Ya te dá pereza tocar en Velneo V6.

5º Mes con Velneo V7 (Conclusiones):

  • Velneo v6, es el pasado. Mantienes tus aplicaciones existentes, pero los nuevos proyectos ya los haces en v7 sin dudar.
  • Todo te parece más facil, ahora v6 te parece complicada, cuando tienes que tocarla echas de menos variables locales o pasar parametros a procesos.
  • Descubres que para tus clientes tener un erp en linux es una gran ventaja, y permite ahorrar muchos miles de euros.
  • Al final Velneo v7 no es lento, simplesmente hay que hacerlo de otra forma.

 

Passado un año de haber empezado con velneo v7, muy honestamente pienso que esta ya supera en 100x las funcionalidades de Velneo v6, ya no me planteo hacer ningnun desarrollo en v6, y me parece una herramienta extraordinaria.

He podido hacer proyectos en v7, que en v6, los tenia apartados por no permitirme algunos niveles de abstración.

Velneo v7, no es perfecta, tienes sus cosas, (V6 también las tiene, y muchas), pero al dia de hoy tus aplicaciones en Velneo V7 tienen mucho más valor comercial do que en v6.

 

Dále una oportunidad a Velneo V7, no te arrependirás.

Y vosotros como fue vuestra experiencia???

 

V7, el inicio de la abastración y las buenas practicas de programación

Estaba leyendo el articulo de Jesús Arboleya acerca de las buenas práticas de programación (http://velneo.es/buenas-practicas-de-programacion-alias/) y me he dado cuenta que v7, me obligó ultimamente, más que nunca ha establecer métodos de desarrollo y de organización.

Aqui les dejo, las medidas que estoy implementando en mis desarrollos para que yo mismo o terceros puedan facilmente entender el codigo.

  • Debido al uso intensivo que hago con el manejador de objectos, y a la cantidad de parametros que les paso o recibo como parametro, he adoptado una nomenclatura en las variables de los procesos. Si es una variable que paso como parametro al proceso la inicializo siempre con “IN_”, por ejemplo si pasamos como parametro el id de un articulo, el nombre de la variable será “IN_ARTIC_ID”. De la misma forma, si recibo una variable como retorno la inicializo siempre con “OU_”, por ejemplo si retornamos el id de un articulo, el nombre de la variable será “OU_ARTIC_ID”.

 

  •  Si uso funciones auxiliares que pueden ser usadas en cualquier parte de la aplicación, su nomenclatura debe empezar siempre por “UT_” de utiles.

 

  • En el nombre de las tablas de sistema, (considero tablas de sistema todas las tablas que sean comunes a todos los proyectos, como por ejemplo las tablas de control de usuarios), las empiezo siempre por “SY_” de sistema.

  • Los procesos web los empiezo siempre por “WE_

 

Y vosotros, habeis adoptado soluciones del mismo tipo? Seria interesante conocer vuestras experiencias en este sentido.

 

 

Orgulloso!!!!

Hace tiempo que no me sentia verdaderamente orgulloso de un desarrollo hecho en Velneo.

Un poco de javascript,

 

una variable json con un sin numero de variables embutidas,

muchos manejadores con un codigo super limpio y muy optimizado.

 

Que orgulloso estoy al mirar mi proprio codigo!!!!

Tengo la sensación que la era de Velneo V7 solo ahora acaba de empezar.

Finalmente Velneo empieza a dar los pasos que siempre he deseado.

Reinventando la web con Velneo V7

En los utlimos proyectos web que he realizado con Velneo V7, he usado una combinación de tecnologias, que me estan tornando realmente productivo en los desarrollos web.

En este articulo les quiero comentar, de una forma general como lo estoy haciendo y con que resultados.

Las tecnologias que estoy usando para la realización de aplicaciones web (o sitios web avanzados) son:

  1. Velneo V7 es una plataforma de desarrollo de aplicaciones empresariales. Esta plataforma nos permite desarrollar aplicaciones nativas para Windows, MAC, Linux y Android, de una forma simples, pero que podremos llegar a complicarla casi todo lo que queremos, nos permite desarrollar en local, en Cliente -> Servidor y está optimizada para Saas, software como servicio en la nube. Tienen una base de datos própria extremadamente rápida y la curva de aprendizaje es también muy rápida, no obstante para hacer aplicaciones optimizadas en rendimiento hay que tener una certa experiencia.
  2. CodeIgniter es un framework de PHP. Este Framework en mi opinión tiene dos ventajas principales, la curva de aprendizaje es relativamente baja cuando comparamos con otros frameworks, y es muy rápido en ejecución. Es una herramienta ideal para proyectos de média dimensión, si bien que se puede usar para proyectos de gran porte con muy buenos resultados. (Atención: Con média dimensión significa tener miles de visitas por dia.) Codeigniter te enseña a desarrollar en PHP usando los padrones de MVC (Modelo ->Vista->Controllador).
  3. Smarty es un motor de plantillas para PHP. CodeIgniter no incorpora de forma predeterminada ningnuno motor de plantillas, por lo tanto he decidido añadir esta funcionalidad usando Smarty. Esta herramienta es ampliamente usada por los desarrolladores PHP y diseñadores web, para maquetaren sitios web abstrayendose del lenguaje PHP. Yo diria que al dia de hoy ya casi es un Estandar.

¿Porqué usar esta combinación de tecnologias?

En mi opinión Velneo V7 es una excelente herramienta, pero no fue diseñada para tener la potencia que puede tener por ejemplo PHP en el desarrollo de proyectos web, por lo tanto uso las herramientas que Velneo dispone para usarlo (en la parte web), como base de datos.

Por otro lado, nosotros (desarrolladores web), con el tiempo nos tornamos algo paranoicos con la seguridad, por lo tanto no me gusta que un visitante web sepa cual es la IP o HOST del servidor de aplicaciones de velneo, al final de cuentas es donde tenemos toda nuestra base de datos con información sensible.

 

En los ultimos tiempos he estado liado en el desarrollo de un potente cms usando estas herramientas, aqui les dejos algunas caracteristicas:

  • Sistema de plantillas HTML, donde se puede configurar cualquier html estático como plantilla en apenas 10/15 minutos. Es un sistema libre de plantillas, por lo cual no hay que seguir reglas de programación de HTML como sucede en wordpress, Joomla o otros.
  • Api de plantillas en la aplicación, que permite, una vez creada la plantilla, auto-crear las paginas y secciones en la interfaz de administración (Velneo vClient), siendo necesario solo rellenar con datos (texto, imagenes, etc), las secciones automaticamente creadas.
  • Objectos multimedia, todos los objectos (imagenes, documentos, videos, ..), son almacenados externamente a la base de datos, tornando así la base de datos más estable y ligera.
  • Como las imagenes son almacenadas externamente, tenemos a nuestra disposición un sistema de autogeneración de thumbnails (imagenes en miniatura), para visualizar las imagenes en rejillas y formularios de manera cómoda.
  • El CMS puede ser alojado en cualquier hosting compartido (nos permite obtener más rendimiento, aislando el vServer de la web)
  • Sistema de Cachés, que asienta en la permisa: (Si no ha cambiado datos, porqué consultarlo novamente a la base de datos?), permite liberar el servidor de Velneo de trabajos no esenciales.
  • Configuración de menus de navegación de una forma simples y cómoda.
  • Urls amigables (sin usar ids de tablas, solo nombres), lo que permite mejorar muchissimo el SEO del CMS.
  • El CMS está preparado para permitir sus uso a distintos niveles de conicimiento del usuario, si es un usuario avanzado podrá realizar casi todo tan solo con configuraciones de vClient, si es un usuario basico, las opciones se limitan, para permitir solo la edición de textos simples.
  •  El CMS es multi-sitio y multi-plantilla, lo que quiere decir que podremos tener alojado en la misma aplicación, cuantos sitios web (dominios) cuanto quieramos cada uno con sus datos y su plantilla.
  • Si pueden usar los servidores de Velneo en Cloud para servir la web y la aplicación (inclusivé los gratuitos).
  • Comos la parte visual está externa a velneo, cualquier cambio visual a nivel de plantilla puede ser hecho a caliente (sin necesidad de reiniciar el vServer de Velneo)

Ejemplo de plantilla html usando smarty:

Espero que les haya gustado, las posibilidades son enormes, yo personalmente me siento como un niño con un juguete nuevo.

Este es un resultado de un longo periódo de pruebas y testes, que empezó con v6, pero ha visto la luz con Velneo V7.

Un abrazo a todos.

 

¿Community manager?

Quiero aclarar que yo no soy Community manager, ni siquera tengo demasiada experiencia en redes sociales, realmente me considero un usuario avanzado que le gusta analizar su entorno en la red.

En la ultima semana, he dejado de seguir en twitter unas cuantos personas que se autodenominan “Comunity Manager”, la razón para ello, es que bastantes profesionales, en mi opinión, aún no han entendido como funciona la vida social virtual de las personas.

Yo sigo en Twitter unas cuantas personas, por un simples motivo: porque sus tweets de una manera o otra me aportan algo, o en su falta compartimos gustos similares.

Pero cuando abro el Twitter y veo 10 tweets seguidos de la misma persona, pienso: “Esta gente realmente piensa, que voy a leer sus 10 tweets consecutivos?”, para min esto es una forma de SPAM, si SPAM, no le encuemtro otra palabra más apropriada.

Después hay los que usando distintas herramientas para redes sociales, configuran respuestas automáticas a sus tweets, las herramientas en si, están muy bien, pero en mi opinión una persona solo tiene bastantes seguidores si es única, exclusiva, y cada uno y todos sus tweets revelan su identidad virtual, si una maquina o software se encarga de realizar ese trabajo, la identidad de esa persona se desvanece, y en mi opinión ya no hay motivos para seguirla.

La tecnologia puede ser fantástica, y aportarnos mucho valor, pero, Por favor, la tecnologia sin identidad humana no significa nada, no tiene valor y no aporta valor.

Dejemos que la tecnologia nos ayude, pero no dejemos de ser unicos y exclusivos, como personas, y como seres vivos, si de verdad queremos ser bien sucedidos en la red, no creo que crear respuestas automáticas en los tweets o escribir 10 tweets consequtivos, sin aportar nada de nuestra identidad, ni conecimiento importante nos ayude.

Es solo una reflexión, un buen fin de semana a todos.

 

 

 

¿Qué es un CRM?

Estaba leyendo con mucha atención un articulo escrito por Alfonso Gutierres acerca de CRM (alfonsogu.com), donde hace una pequeña definición de CRM ( Customer Relationship Management ), se bien lo que dice es muy cierto, en mi ponión es una definición muy incompleta de CRM, o soy yo que en el passado le he dado otro tipo de importancia.

En realidad el motivo de este articulo es más una fustración do que una critica, en mi opinión los conceptos de CRM y ERP en los ultimos años, fueran desvirtualizados.

En mis tiempos de Universidad CRM era algo bastante más ambicioso do que aquello que vemos en estos dias, un CRM es el estudio, acompañado por acciones y conclusiones automáticas o semi-automáticas de todo el comportamiento de los clientes, un ejemplo aplicado a la grand distribuición seria obtener un dato idêntico a:

“50% de los clientes que compram CocaCola también compran palomitas”

Y algunos me preguntais, y para que quiero obtener ese dato? Por um simples y grandioso motivo, imaginen que hago una promoción donde la CocaCola la pongo al 30% de descuento, pero las palomitos las subo de precio un 300%. De esta forma estoy atrayendo los clientes hacia min usando una promoción, y en realidad mantengo mi margen de negócio sin arriesgar absolutamente nada.

Otro caso bastante evidente, también en la gran distribuición, es el uso de las tarjetas de descuento. De verdade penseis que las grandes superficies nos dan descuentos porque si?

Al usar una tarjeta de descuento al cliente está registrando no solo sus compras como también sus hábitos de consumo, a que horas hace compras, que importe gasta, que familia de articulos adquiere y un grande etc… Pero lo más importante para un gran supermercado es detectar el cambio en el hábito de consumo, ej:

De un momento para el otro el cliente empezó a comprar pañales, ese facto probavelmente significa que la familia ha crescido o irá crescer en los próximos dias, por lo tanto es una buena oportunidad para enviar para su casa un catálogo de productos para bebés, o si es una gran empresa, con distintas áreas de negócio, enviar información acerca de seguros o cuentas de ahorro para niños.

Yo cuando pienso en CRM pienso en estos ejemplos, y sinceramente veo muy pocos CRM’s que dispongan de este tipo de análisis.

Otro ejemplo más cercano a min: en la empresa que trabajo (empresa fortemente comercial), tenemos conectada la centralita a nuestro software de gestión realizado en Velneo, cuando llama un cliente, comprueba que el numero de télefono ya existe en nuestra base de datos, relacionando esa llamada y todos sus datos (duración, etc), con la ficha del cliente, queda registrada la extensión a que fue redirigida la llamada, y como cada extensión está asignada a un comercial, sabemos de forma automatica con que comercial el cliente ha estado hablando.

En este caso, tenemos un montón de información util generada de forma automática, que en el futuro es extremadamente importante para analisis no solo del comportamiento de los clientes, así como del comportamiento y rendimiento de los comerciales.

Si queremos triunfar con software CRM, en empresas que se dignem, sinceramente tenemos que dotar nuestros software de verdaderos CRM’s, y no meros gestores de agendas, emails y contactos, en el mundo actual, en mi opinión, esas caracteristicas en un software valen muy poco por si solas. Hay que pensar más allá, arriesgarse y de verdade proporcionar verdaderas soluciones que aporten ventajas reales a nuestros clientes.

¿Estamos preparados para dar este tipo de soluciones?

crm