Buenas tardes, estoy de pruebas y he pretendido hacer algo que, a priori, me parecía muy sencillo, pero que parece que no tiene solución en Velneo.
Estoy tratando de hacer una apliación que tenga botones que lancen otras aplicaciones, pero quiero que todas se ejecuten de forma independiente y que no se ejecuten como pestañas dentro del marco inicial.
Si estuviera con C# o Delphi, estaría claro, desde un formulario MDI o nó, abriría tantos formularios como quisiera y luego los destruiría, pero en Velneo no lo tengo tan claro:
No veo la forma de aplicar una acción para abrir un marco, únicamente formularios.
Si abro un formulario desde un marco inicial, el resultado es que se abre como una pestaña y no es el resultado que buscaba.
Por ejemplo, Si abro una nueva aplicación en blanco y quiero, desde una acción abrir vERP, únicamente puedo abrir vERP dentro de una pestaña, perdiendo la barra de menús porque eso se configura en el marco y no en el formulario
Soy completamente noob en Velneo y es posible que exista algún método, pero no doy con ello.
Lo primero es cambiar el chip y no querer hacer las cosas como se hacían en otro lenguaje, cada herramienta tiene sus pecuriliadares, para bien y para mal.
No puedes ejecutar una aplicación independiente dentro de otra aplicación, todo es la misma aplicación. Da igual que los demás proyectos tengan su marco, se ejecuta el que le hayas dado permisos.
A partir de ahí abres los formularios y objectos que contenga toda la aplicación (conjunto de proyectos), puede ser en pestañas, sdi, mdi.
Aclarar 2 cosas para que atarazona lo tenga más claro:
Rodea el Path de la aplicación con comillas porque tiene espacios y seguramente no se ejecutará si no los lleva.
Lanzar Aplicación(No esperar,"\cC:/Program Files (x86)/Velneo/V7.18/vClient.exe\c", …
El primer parámetro debe estar a “No esperar” para que la aplicación llamada no bloquee a la principal.
Aprovecho para recordar que vClient tiene ahora un nuevo parámetro “-platform minimal” que nos permitirá ejecutar una aplicación Velneo de forma desatendida y/o silenciosa.
Respecto a lo que comentas del parámetro “-platform minimal”, ¿sabes cómo se comporta en caso de que se deshaga una transacción?
Yo ahora mismo tengo varias soluciones que se ejecutan de forma automática en un servidor. Mediante el programador de tareas de Windows, abro un vClient que ejecuta la solución y se cierra cuando termina. El problema es que de vez en cuando encuentra un registro bloqueado y deja en pantalla el aviso de que la transacción se ha deshecho y que si se quiere reintentar.
Como no hay ningún usuario para confirmar el mensaje, se queda hasta que alguien se da cuenta.
Personalmente no lo he probado, aunque lo puedes comprobar fácilmente.
Puede ocurrir 2 cosas:
Que ignore totalmente los comandos que necesitan interface gráfico
Que los ejecute y se quede bloqueado esperando
Haz una pequeña aplicación que intente modificar un registro bloqueado y nos cuentas el resultado.
De todas formas, cualquier proceso que hagamos para ejecutarse de forma desatendida deberá estar muy probado.
Con Velneo este tema es una tarea dificil, por la falta de una buena gestión de errores y de un ridículo log en el vServer.