Nueva versión de fap-sdk

7 views
Skip to first unread message

patryalcala

unread,
Aug 11, 2011, 3:31:21 PM8/11/11
to fap-support
Hola,

Daniel me ha comentado que hay una nueva versión de fap-sdk (versión
2) en la que cambia la sintaxis del DSL, el generador, ..., y me ha
pedido que adapte mi aplicación de tecnólogos actual a la nueva
versión. ¿Desde dónde puedo descargarla y consultar documentación?

Saludos.

jelcaf

unread,
Aug 12, 2011, 4:12:43 AM8/12/11
to fap-s...@googlegroups.com, patry...@gmail.com
Hola,


Veamos, en cuanto a la versión 2.0 varios puntos:

- En cuanto al DSL, cambia, pero los cambios no son muy drásticos, en todo caso es más simple crear aplicaciones nuevas, aunque cambia la sintaxis en muchos elementos. Tú empezaste a desarrollar desde tecnólogos ¿verdad? .... El problema es que nosotros no tenemos una versión de Tecnólogos adaptada a la nueva versión. Tenemos otra aplicación llamada "MarcoCompensatorio" la cual puedes ver para guiarte.

- En lo que se refiere a la tecnología, la versión 2.0 cambia de tecnología, casi completamente. Ahora nos apoyamos en Play (http://www.playframework.org/) un framework de Java (en ideas bastante parecido a Grails). La parte del generador sigue manteniendo Xtext y Groovy.

- En cuanto a la documentación (http://fap-devel.etsii.ull.es/home/documentacion/home) aunque no está completa. Ésta documentación se te descargará completamente cuando hagas un checkout del módulo FAP.

- Para la instalación sigue éste guión http://fap-devel.etsii.ull.es/home/documentacion/tutorial-instalacion .... aunque en el paso 1 de INSTALACIÓN DEL FAP-SDK en vez de "Descargue el sdk desde la página de descarga y descomprímalo en algún lugar del sistema de ficheros.", haz lo siguiente:

1 Creación de un workspace

  • Configurar el workspace para trabajar en UTF-8 Windows/Preferences/General/Workspace/Text File Encoding -> UTF-8
  • Refrescar recursos automáticamente Windows/Preferences/General/Workspace/Refresh Automatically


1.1 Descargar Generador

  • Checkout los proyectos del generador (play-compiler/trunk/compiler/es.fap.simpleled.*) en la carpeta C:\fap-sdk2\compiler-src
  • Aparecerán errores. Ejecutar GenerateLed.mwe2
  • Puede que el workflow del generador siga dando errores. Abrirlo y guardarlo.


1.2 Descargar modulo

  • Checkout con tortoise SVN del modulo (play-module) en C:\fap-sdk2\fap
  • play eclipsify (en la consola, en el directorio C:\fap-sdk2\fap)
  • Importar a eclipse

1.3 Descargar aplicación

  • Checkout con tortoise SVN de la aplicación (marcoCompensatorio) en C:\fap-sdk2\apps\marcoCompensatorio
  • play eclipsify (en la consola, en el directorio C:\fap-sdk2\fap)
  • Importar a eclipse

Aunque veas un proyecto que se llama "play-tecnologos", fue con el que empezamos a migrar el entorno, pero al aparecer otras aplicaciones que se iban a utilizar lo dejamos de lado (quizás te sirva ..... para las entidades por lo menos).

Los siguientes pasos (Configuración de Eclipse, Instalación de la BBDD y Configuración adicional para el desarrollo de Fap-SDK) no son necesarios.

PERO ... a partir del paso 4 sin hacer el paso 6 (fap:init).

Cualquier duda o problema, aquí estamos.

Saludos.
Jorge (jel...@gmail.com)



--
Has recibido este mensaje porque estás suscrito al grupo "fap-support" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a fap-s...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a fap-support...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/fap-support?hl=es.


patryalcala

unread,
Aug 22, 2011, 3:24:52 PM8/22/11
to fap-support
Hola,

Gracias por la información.
He seguido todos los pasos y en la parte de generación

> Para generar y cargar la aplicación:http://fap-devel.etsii.ull.es/home/documentacion/tutorial-nuevoProyecto
> PERO ... a partir del paso 4 sin hacer el paso 6 (fap:init).

Entiendo que tengo que realizar los pasos de la parte de
"Desarrollo" (a partir del 4 y sin hacer el paso 6) para el proyecto
marcoCompensatorio.
Tanto al ejecutar "play fap:model --dev" como "play fap:generate --
dev" me aparece el siguiente error:

2 ERROR Mwe2Launcher - [XtextLinkingDiagnostic: null:52
Couldn't resolve reference to JvmType 'org.eclipse.xpand2.Generator'.,
XtextLinkingDiagnostic:
null:53 Couldn't resolve reference to JvmFeature 'expand'.,
XtextLinkingDiagnostic: null:54 Couldn't resolve reference to
JvmFeature 'outlet'., XtextLinkingDiag
nostic: null:55 Couldn't resolve reference to JvmFeature 'path'.,
XtextLinkingDiagnostic: null:58 Couldn't resolve reference to
JvmFeature 'fileEncoding'., Xtex
tLinkingDiagnostic: null:62 Couldn't resolve reference to JvmType
'org.eclipse.xpand2.Generator'., XtextLinkingDiagnostic: null:63
Couldn't resolve reference to
JvmFeature 'expand'., XtextLinkingDiagnostic: null:64 Couldn't
resolve reference to JvmFeature 'outlet'., XtextLinkingDiagnostic:
null:65 Couldn't resolve refe
rence to JvmFeature 'path'., XtextLinkingDiagnostic: null:68 Couldn't
resolve reference to JvmFeature 'fileEncoding'.,
XtextLinkingDiagnostic: null:72 Couldn't
resolve reference to JvmType 'org.eclipse.xpand2.Generator'.,
XtextLinkingDiagnostic: null:73 Couldn't resolve reference to
JvmFeature 'expand'., XtextLinkingDi
agnostic: null:74 Couldn't resolve reference to JvmFeature 'outlet'.,
XtextLinkingDiagnostic: null:75 Couldn't resolve reference to
JvmFeature 'path'., XtextLin
kingDiagnostic: null:78 Couldn't resolve reference to JvmFeature
'fileEncoding'., XtextLinkingDiagnostic: null:82 Couldn't resolve
reference to JvmType 'org.ecl
ipse.xpand2.Generator'., XtextLinkingDiagnostic: null:83 Couldn't
resolve reference to JvmFeature 'expand'., XtextLinkingDiagnostic:
null:84 Couldn't resolve re
ference to JvmFeature 'outlet'., XtextLinkingDiagnostic: null:85
Couldn't resolve reference to JvmFeature 'path'.,
XtextLinkingDiagnostic: null:88 Couldn't reso
lve reference to JvmFeature
'fileEncoding'.]java.lang.IllegalStateException:
[XtextLinkingDiagnostic: null:52 Couldn't resolve reference to JvmType
'org.eclipse.xpand2.Generator'., XtextLinkingDiagnostic: null:53
Couldn't resolve reference to JvmFeature 'expand'.,
XtextLinkingDiagnostic: null:54 Couldn't resolve reference to
JvmFeature 'outlet'., XtextLinkingDiagnostic: null:55 Couldn't resolve
reference to JvmFeature 'path'., XtextLinkingD
iagnostic: null:58 Couldn't resolve reference to JvmFeature
'fileEncoding'., XtextLinkingDiagnostic: null:62 Couldn't resolve
reference to JvmType 'org.eclipse.
xpand2.Generator'., XtextLinkingDiagnostic: null:63 Couldn't resolve
reference to JvmFeature 'expand'., XtextLinkingDiagnostic: null:64
Couldn't resolve referen
ce to JvmFeature 'outlet'., XtextLinkingDiagnostic: null:65 Couldn't
resolve reference to JvmFeature 'path'., XtextLinkingDiagnostic: null:
68 Couldn't resolve r
eference to JvmFeature 'fileEncoding'., XtextLinkingDiagnostic: null:
72 Couldn't resolve reference to JvmType
'org.eclipse.xpand2.Generator'., XtextLinkingDiagn
ostic: null:73 Couldn't resolve reference to JvmFeature 'expand'.,
XtextLinkingDiagnostic: null:74 Couldn't resolve reference to
JvmFeature 'outlet'., XtextLink
ingDiagnostic: null:75 Couldn't resolve reference to JvmFeature
'path'., XtextLinkingDiagnostic: null:78 Couldn't resolve reference to
JvmFeature 'fileEncoding'
., XtextLinkingDiagnostic: null:82 Couldn't resolve reference to
JvmType 'org.eclipse.xpand2.Generator'., XtextLinkingDiagnostic: null:
83 Couldn't resolve refer
ence to JvmFeature 'expand'., XtextLinkingDiagnostic: null:84 Couldn't
resolve reference to JvmFeature 'outlet'., XtextLinkingDiagnostic:
null:85 Couldn't resol
ve reference to JvmFeature 'path'., XtextLinkingDiagnostic: null:88
Couldn't resolve reference to JvmFeature 'fileEncoding'.]
at
org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:66)
at
org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:52)
at
org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.run(Mwe2Launcher.java:
74)
at
org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.main(Mwe2Launcher.java:
35)

¿Han tenido este problema?
Gracias.
Saludos.


On 12 ago, 09:12, jelcaf <jel...@gmail.com> wrote:
> Hola,
>
> Veamos, en cuanto a la versión 2.0 varios puntos:
>
> - En cuanto al DSL, cambia, pero los cambios no son muy drásticos, en todo
> caso es más simple crear aplicaciones nuevas, aunque cambia la sintaxis en
> muchos elementos. Tú empezaste a desarrollar desde tecnólogos ¿verdad? ....
> El problema es que nosotros no tenemos una versión de Tecnólogos adaptada a
> la nueva versión. Tenemos otra aplicación llamada "MarcoCompensatorio" la
> cual puedes ver para guiarte.
>
> - En lo que se refiere a la tecnología, la versión 2.0 cambia de tecnología,
> casi completamente. Ahora nos apoyamos en Play (http://www.playframework.org/) un framework de Java (en ideas bastante
> parecido a Grails). La parte del generador sigue manteniendo Xtext y Groovy.
>
> - En cuanto a la documentación (http://fap-devel.etsii.ull.es/home/documentacion/home) aunque no está
> completa. Ésta documentación se te descargará completamente cuando hagas un
> checkout del módulo FAP.
>
> - Para la instalación sigue éste guiónhttp://fap-devel.etsii.ull.es/home/documentacion/tutorial-instalacion....
> aunque en el paso 1 de INSTALACIÓN DEL FAP-SDK en vez de "Descargue el sdk
> desde la página de descarga <http://fap-devel.etsii.ull.es/home/descarga> y
> descomprímalo en algún lugar del sistema de ficheros.", haz lo siguiente:
>
> 1 Creación de un workspace
>
>    - Configurar el workspace para trabajar en UTF-8
>    Windows/Preferences/General/Workspace/Text File Encoding -> UTF-8
>    - Refrescar recursos automáticamente
>    Windows/Preferences/General/Workspace/Refresh Automatically
>
> 1.1 Descargar Generador
>
>    - Checkout los proyectos del generador
>    (play-compiler/trunk/compiler/es.fap.simpleled.*) en la carpeta
>    C:\fap-sdk2\compiler-src
>    - Aparecerán errores. Ejecutar GenerateLed.mwe2
>    - Puede que el workflow del generador siga dando errores. Abrirlo y
>    guardarlo.
>
> 1.2 Descargar modulo
>
>    - Checkout con tortoise SVN del modulo (play-module) en C:\fap-sdk2\fap
>    - play eclipsify (en la consola, en el directorio C:\fap-sdk2\fap)
>    - Importar a eclipse
>
> 1.3 Descargar aplicación
>
>    - Checkout con tortoise SVN de la aplicación (marcoCompensatorio) en
>    C:\fap-sdk2\apps\marcoCompensatorio
>    - play eclipsify (en la consola, en el directorio C:\fap-sdk2\fap)
>    - Importar a eclipse
>
> Aunque veas un proyecto que se llama "play-tecnologos", fue con el que
> empezamos a migrar el entorno, pero al aparecer otras aplicaciones que se
> iban a utilizar lo dejamos de lado (quizás te sirva ..... para las entidades
> por lo menos).
>
> Los siguientes pasos (Configuración de Eclipse, Instalación de la BBDD y
> Configuración adicional para el desarrollo de Fap-SDK) no son necesarios.
>
> Para generar y cargar la aplicación:http://fap-devel.etsii.ull.es/home/documentacion/tutorial-nuevoProyecto
> PERO ... a partir del paso 4 sin hacer el paso 6 (fap:init).
>
> Cualquier duda o problema, aquí estamos.
>
> Saludos.
> Jorge (jel...@gmail.com)
>

Axel Hernández Ferrera

unread,
Aug 23, 2011, 7:23:56 AM8/23/11
to fap-s...@googlegroups.com, Patricia González
Hola

Hemos actualizado el módulo para que sea sea mas sencillo descargarlo.
Sigue los pasos que están aquí (los acabo de actualizar)



Si habías seguido los pasos anteriores y ya tenía el módulo instalado, es posible que tengas que borrar la cache, borrando la carpeta /Usuario/.ivy2/cache/fap o fap-module

No hace falta que hagas la sección desarrollo.

Avísanos si tienes cualquier problema.


Saludos

patryalcala

unread,
Aug 23, 2011, 4:51:46 PM8/23/11
to fap-support
Hola,

He seguido los pasos que me indicas para la aplicación de
marcoCompensatorio y funciona correctamente.
He descargado también la aplicación play-tecnologos que voy a tomar
como base para adaptar mi antigua aplicación de tecnólogos. Al
intentar generar la aplicación me saltan varios errores en el dsl
(archivo Solicitud.play) los cuales no sé como corregir:

1) "mismatched input 'ClaveValor' expecting '}'"

Pagina Solicitante guardarParaPreparar {
Persona datosSolicitante campo="solicitud.solicitante" titulo="Datos
del solicitante" requerido
...
Texto campo="solicitud.solicitante.web" titulo="Página
web" requerido

ClaveValor campo="solicitud.datosSolicitante.cnaePrincipal"
titulo="Clasificación CNAE Principal" requerido
ClaveValor campo="solicitud.datosSolicitante.cnaeProyecto"
titulo="Clasificación CNAE Proyecto" requerido
...
}


2) "Couldn't resolve reference to Popup 'PopUpGrupoInvestigacion'"
"mismatched input 'Popup' expecting EOF"

Pagina Proyecto guardarParaPreparar {
Texto campo="solicitud.proyecto.tituloProyecto" titulo="Título"
requerido
AreaTexto campo="solicitud.proyecto.resumen" titulo="Resumen"
requerido
...
Tabla tablaGrupoInv titulo="Colaboración con grupos de
investigación" campo="solicitud.proyecto.grupoInv"
popup=PopUpGrupoInvestigacion
{
Columna campo="grupoInvestigacion.nombre" titulo="Grupo" expandir
Columna campo="grupoInvestigacion.tipo" titulo="Tipo Entidad"
}
...
}

Popup PopUpGrupoInvestigacion titulo="Grupo de investigación en el
que se colabora" campo="solicitud.proyecto.grupoInv" {
Texto campo="grupoInvestigacion.nombre" titulo="Nombre del Grupo de
investigación" requerido
Combo campo="grupoInvestigacion.tipo" titulo="Tipo de la entidad del
Grupo de investigación"
}


3) "mismatched input 'proyectoCooperacion' expecting RULE_STRING" en
el siguiente código.

Check proyectoCooperacion campo="solicitud.proyecto.enCooperacion"
titulo="Proyecto en cooperación"

Grupo titulo="Empresas cooperantes" mostrarSiCheck
proyectoCooperacion = true {
Tabla empresasCoop titulo="Empresas cooperantes"
campo="solicitud.proyecto.empresasCooperantes"
popup=PopUpEmpresaCooperante {
Columna campo="empresaCooperante.nombre" titulo="Nombre/Razón
Social" expandir
Columna campo="empresaCooperante.cif" titulo="CIF/NIF/NIE"
}
}
Parece que no admite añadir un ID al elemento check para luego usar su
valor compo condición para decidir si mostrar un grupo. Por lo que se
ve en el código si admite ID para el elemento Combo.


Saludos.

On 23 ago, 12:23, Axel Hernández Ferrera <axel...@gmail.com> wrote:
> Hola
>
> Hemos actualizado el módulo para que sea sea mas sencillo descargarlo.
> Sigue los pasos que están aquí (los acabo de actualizar)
>
> http://fap-devel.etsii.ull.es/home/documentacion/curso-nuevoProyecto
>
> Si habías seguido los pasos anteriores y ya tenía el módulo instalado, es
> posible que tengas que borrar la cache, borrando la carpeta
> /Usuario/.ivy2/cache/fap o fap-module
>
> No hace falta que hagas la sección desarrollo.
>
> Avísanos si tienes cualquier problema.
>
> Saludos
>

Axel Hernández Ferrera

unread,
Aug 24, 2011, 4:29:05 AM8/24/11
to fap-s...@googlegroups.com, Patricia González
Hola

La aplicación de tecnologos no está actualizada totalmente. Marco Compensatorio es una aplicación nuevo que va a salir en Septiembre y es esta la que tenemos totalmente actualizada. No es muy distinta a Tecnologos, así que a lo mejor puedes adaptar lo que estas haciendo a esta aplicación.

Si prefieres seguir utilizando Tecnólogos puedes ir modificándola fijándote en los cambios de Marco Compenatorio. Por ejemplo, el primer error que te está dando, es que eliminamos el elemento ClaveValor y está incluido dentro del elemento Combo, con un parámetro, mostrarClave.

Saludos

Axel Hernández Ferrera

unread,
Aug 24, 2011, 4:31:28 AM8/24/11
to fap-s...@googlegroups.com, Patricia González
Jorge acaba de actualizar Tecnologos para que por lo menos arranque. Puedes actualizarla desde el repositorio.

Saludos

patryalcala

unread,
Aug 25, 2011, 5:46:36 PM8/25/11
to fap-support
Hola

Daniel me ha autorizado para que empiece a trabajar con la aplicación
de marcoCompensatorio en lugar de tecnologos.

La cuestión es que he estado adaptando el DSL para añadir el módulo de
cesiones y me han surgido varias dudas.

- Una de mis entidades debe tener una relacion a un objeto
Documento, pero al intentar generar me dice que no reconoce la entidad
Documento (supongo porque está definida en el módulo fap y no en la
aplicación). ¿Cómo lo hago?
- Necesito añadir un nuevo rol de gestor a la aplicación. El tema es
que la lista de roles está definida en el fichero ListasFAP.play
dentro del módulo y, por tanto, tendría que hacer cambios en el mismo.
He cambiado el fichero de dependencias para que tire de mi aplicación
fap local (tal y como se dice en la sección de desarrollo), pero al
actualizar las dependencias y generar el módulo me siguen apareciendo
problemas de compilación en el módulo. ¿Qué tengo que hacer para que
el módulo fap me compile y pueda regenarlo tras realizar cualquier
cambio?. Parece que la definicion de entidades en ListasFAP.play no
está completa y faltan campos que se hacen referencia en algunas
clases.

PD: he asumido que los checkouts debía hacerlos de los proyectos
dentro de la ruta http://banot.etsii.ull.es/subversion/faparte/.

Gracias,
Saludos.

On 24 ago, 09:31, Axel Hernández Ferrera <axel...@gmail.com> wrote:
> Jorge acaba de actualizar Tecnologos para que por lo menos arranque. Puedes
> actualizarla desde el repositorio.
>
> Saludos
>
> El 24 de agosto de 2011 09:29, Axel Hernández Ferrera
> <axel...@gmail.com>escribió:
>
> > Hola
>
> > La aplicación de tecnologos no está actualizada totalmente. Marco
> > Compensatorio es una aplicación nuevo que va a salir en Septiembre y es esta
> > la que tenemos totalmente actualizada. No es muy distinta a Tecnologos, así
> > que a lo mejor puedes adaptar lo que estas haciendo a esta aplicación.
>
> > Si prefieres seguir utilizando Tecnólogos puedes ir modificándola fijándote
> > en los cambios de Marco Compenatorio. Por ejemplo, el primer error que te
> > está dando, es que eliminamos el elemento ClaveValor y está incluido dentro
> > del elemento Combo, con un parámetro, mostrarClave.
>
> > Saludos
>
> ...
>
> leer más »

Axel Hernández Ferrera

unread,
Aug 26, 2011, 5:48:26 AM8/26/11
to fap-s...@googlegroups.com, Patricia González
Hola

Con la versión 1.0.1 ya puedes hacer una referencia a un objeto de tipo Documento.
En cuanto a añadir roles nuevos. Puedes crearte una nueva lista que se llame igual que la lista definida en el módulo, en ese caso lo que se hará es combinar las dos listas.

Por ejemplo:
//Lista creada por el usuario:
Lista roles {
   gestor : "Gestor"
}

//Lista definida en el módulo fap:
Lista roles {
administrador: "Administrador"
usuario: "Usuario"
}

El resultado es que la tabla tendrá definido los 3 roles (usuario, administrador y gestor)


--

patryalcala

unread,
Aug 28, 2011, 10:05:17 AM8/28/11
to fap-support
Hola,

Ahora tengo otro problema :-(.
Cuando genero la aplicación marcoCompensatorio la generación termina
sin errores pero al iniciarla (con play run) y acceder a la misma
(http://localhost:9003) me aparece una pantallas indicando errores de
compilación que también se pueden ver desde el Eclipse:

The file /app/models/Solicitud.java could not be compiled. Error
raised is : The method initSolicitudGenerica() is undefined for the
type SolicitudGenerica

La clase Solicitud.java de marcoCompensatorio intenta invocar a un
método initSolicitudGenerica() en la clase SolicitudGenerica del
módulo fap, pero en esta clase el método se llama init(). Parece como
si el módulo fap y la aplicación marcoCompensatorio se estuvieran
actualizando con distintas versiones del generador. Para generar
marcoCompensatorio estoy usando la última versión del generador (en
http://banot.etsii.ull.es/subversion/faparte/play-compiler/trunk/compiler/es.fap.simpleled.*)

¿Cuál es el problema?

Saludos.

On 26 ago, 10:48, Axel Hernández Ferrera <axel...@gmail.com> wrote:
> Hola
>
> Con la versión 1.0.1 ya puedes hacer una referencia a un objeto de tipo
> Documento.
> En cuanto a añadir roles nuevos. Puedes crearte una nueva lista que se llame
> igual que la lista definida en el módulo, en ese caso lo que se hará es
> combinar las dos listas.
>
> Por ejemplo:
> //Lista creada por el usuario:
> Lista roles {
>    gestor : "Gestor"
>
> }
>
> //Lista definida en el módulo fap:
> Lista roles {
> administrador: "Administrador"
> usuario: "Usuario"
>
> }
>
> El resultado es que la tabla tendrá definido los 3 roles (usuario,
> administrador y gestor)
>
> El 25 de agosto de 2011 22:46, patryalcala <patryalc...@gmail.com> escribió:
>
> > Hola
>
> > Daniel me ha autorizado para que empiece a trabajar con la aplicación
> > de marcoCompensatorio en lugar de tecnologos.
>
> > La cuestión es que he estado adaptando el DSL para añadir el módulo de
> > cesiones y me han surgido varias dudas.
>
> >  - Una de mis entidades debe tener una relacion a un objeto
> > Documento, pero al intentar generar me dice que no reconoce la entidad
> > Documento (supongo porque está definida en el módulo fap y no en la
> > aplicación). ¿Cómo lo hago?
> >  - Necesito añadir un nuevo rol de gestor a la aplicación. El tema es
> > que la lista de roles está definida en el fichero ListasFAP.play
> > dentro del módulo y, por tanto, tendría que hacer cambios en el mismo.
> > He cambiado el fichero de dependencias para que tire de mi aplicación
> > fap local (tal y como se dice en la sección de desarrollo), pero al
> > actualizar las dependencias y generar el módulo me siguen apareciendo
> > problemas de compilación en el módulo. ¿Qué tengo que hacer para que
> > el módulo fap me compile y pueda regenarlo tras realizar cualquier
> > cambio?. Parece que la definicion de entidades en ListasFAP.play no
> > está completa y faltan campos que se hacen referencia en algunas
> > clases.
>
> > PD: he asumido que los checkouts debía hacerlos de los proyectos
> > dentro de la rutahttp://banot.etsii.ull.es/subversion/faparte/.
> ...
>
> leer más »

Axel Hernández Ferrera

unread,
Aug 29, 2011, 3:34:09 AM8/29/11
to fap-s...@googlegroups.com
Hola

Parece que no estás generando con la última versión del módulo. Con la última versión el método se debería llamar "init" y no "initSolicitudGenerica". Puedes revisar la carpeta modules y ver cómo tienes referenciado el módulo.
- En caso de que tenga un archivo de texto que se llame fap. Abre el archivo y debe aparecer la ruta donde está el módulo.
- En caso de que tengas una carpeta, esta carpeta tiene que tener todo el contenido del módulo.

Busca dentro del módulo el fichero "conf/dependencies.yml" y verás una linea donde tienes la versión del módulo.


self: play -> fap 1.0.1
Para la próxima versión vamos a incluir un comando "fap:version" para saber en todo momento con qué versión del módulo estás generando.

Saludos


> ...
>
> leer más »

patryalcala

unread,
Aug 29, 2011, 2:46:58 PM8/29/11
to fap-support
Hola,

Parece que está todo como indicas. Dentro de marcoCompensatorio/
modules tengo una carpeta fap1.0.1. Dentro de esta carpeta, el fichero
conf/dependencies.yml tiene la versión correcta:

# Application dependencies

self: play -> fap 1.0.1

Aún así, al generar la aplicación marcoCompensatorio algunas clases
como models/Solicitud.java siguen invocando al método
initSolicitudGenerica() que no existe en la clase SolicitudGenerica
del módulo.

¿Para generar la aplicación moduloCompensatorio se utiliza la versión
del generador que se encuentra en marcoCompensatorio/modules/fap-1.0.1/
compiler/compiled?

¡Ya no sé qué hacer con esto!

Saludos.


En

On 29 ago, 08:34, Axel Hernández Ferrera <axel...@gmail.com> wrote:
> Hola
>
> Parece que no estás generando con la última versión del módulo. Con la
> última versión el método se debería llamar "init" y no
> "initSolicitudGenerica". Puedes revisar la carpeta modules y ver cómo tienes
> referenciado el módulo.
> - En caso de que tenga un archivo de texto que se llame fap. Abre el archivo
> y debe aparecer la ruta donde está el módulo.
> - En caso de que tengas una carpeta, esta carpeta tiene que tener todo el
> contenido del módulo.
>
> Busca dentro del módulo el fichero "conf/dependencies.yml" y verás una linea
> donde tienes la versión del módulo.
>
> self: play -> fap 1.0.1
>
> Para la próxima versión vamos a incluir un comando "fap:version" para saber
> en todo momento con qué versión del módulo estás generando.
>
> Saludos
>
> El 28 de agosto de 2011 15:05, patryalcala <patryalc...@gmail.com> escribió:
>
> > Hola,
>
> > Ahora tengo otro problema :-(.
> > Cuando genero la aplicación marcoCompensatorio la generación termina
> > sin errores pero al iniciarla (con play run) y acceder a la misma
> > (http://localhost:9003) me aparece una pantallas indicando errores de
> > compilación que también se pueden ver desde el Eclipse:
>
> > The file /app/models/Solicitud.java could not be compiled. Error
> > raised is : The method initSolicitudGenerica() is undefined for the
> > type SolicitudGenerica
>
> > La clase Solicitud.java de marcoCompensatorio intenta invocar a un
> > método initSolicitudGenerica() en la clase SolicitudGenerica del
> > módulo fap, pero en esta clase el método se llama init(). Parece como
> > si el módulo fap y la aplicación marcoCompensatorio se estuvieran
> > actualizando con distintas versiones del generador. Para generar
> > marcoCompensatorio estoy usando la última versión del generador (en
>
> >http://banot.etsii.ull.es/subversion/faparte/play-compiler/trunk/comp...
> > )
> ...
>
> leer más »

jelcaf

unread,
Aug 29, 2011, 3:41:31 PM8/29/11
to fap-s...@googlegroups.com
Hola,

Ahora no tengo el código delante, pero posiblemente sea código de la parte "manual" del Solicitud.java. Prueba a actualizar el proyecto marcoCompensatorio, por lo menos ese fichero "Solicitud.java".

Saludos.
Jorge.


> ...
>
> leer más »

patryalcala

unread,
Aug 30, 2011, 7:05:22 AM8/30/11
to fap-support
Hola,

Primero que nada darles las gracias por responder a mis "numerosas"
preguntas.

No me había dado cuenta que dentro de las clases del modelo hay partes
para insertar código manual, he dejado esa parte tal y como está en el
SVN.
Al generar la aplicación marcoCompensatorio se actualizan numerosas
clases con respecto a la versión almacenada en el SVN. Después de
hacer algunos ajustes en las mismas he conseguido que la aplicación
arranque.

He redefinido en la aplicación la lista "roles" ya definida en el
módulo de fap para añadir un nuevo elemento "gestor" (tal y como me
comentaba Axel). Sin embargo, cuando accedo al desplegable de roles de
la cabecera (parte derecha) sólo aparecen los valores "Administrador"
y "Usuario". ¿A qué puede deberse?

Por otra parte, he definido un nuevo fichero Gestion.play. En éste
existe un Formulario llamado "Gestión" con permiso para que solamente
lo puedan ver administradores y gestores. Al acceder a la aplicación,
en el menú de la izquierda solo aparece el menú de gestión y no los ya
existentes para el rol administrador que es el seleccionado por
defecto. Mi pregunta es, ¿Cuál es la manera correcta de añadir un
nuevo cuadro de menú (como el de Administración para rol
Administrador) en la página principal que solo sea visible por el rol
gestor?

Saludos.

On 29 ago, 20:41, jelcaf <jel...@gmail.com> wrote:
> Hola,
>
> Ahora no tengo el código delante, pero posiblemente sea código de la parte
> "manual" del Solicitud.java. Prueba a actualizar el proyecto
> marcoCompensatorio, por lo menos ese fichero "Solicitud.java".
>
> Saludos.
> Jorge.
>
> ...
>
> leer más »

jelcaf

unread,
Aug 30, 2011, 8:55:55 AM8/30/11
to fap-s...@googlegroups.com
Hola,

Respecto a la pregunta de los roles, una vez que modifiques valores de las listas, deberás recargar la tabla de tablas para que se actualicen dichos valores. Para ello, en el formulario de Administración -> Tabla de Tablas, pulsar el botón de "Borrar todas y leer desde fichero".

En cuanto a la segunda pregunta, ¿qué es lo que realmente quieres hacer? ... ¿Añadir más opciones del menú a tu formulario? En cuyo caso bastaría con copiar idénticamente las opciones del menú Principal u otro menú a tu formulario. Pero si lo que quieres es añadir más opciones al formulario "Principal", puedes sobreescribirlo así:

Formulario Principal {
Menu {
                // Los ya definidos
Enlace "Miiiiiiiis Solicitudes" pagina="Solicitudes"
Enlace "Administración" permiso="administrador" pagina="Usuarios"
Enlace "Ayuda" pagina="Soporte"
Enlace "Salir" accion="fap.SecureController.logout"
    }
}

Añadiendo o eliminando dentro de "Menu", las opciones o grupos de menú que quieras.

Saludos.
Jorge.


> ...
>
> leer más »

patryalcala

unread,
Aug 30, 2011, 9:21:23 AM8/30/11
to fap-support
Gracias,

Probaré lo de las listas esta tarde.

En cuanto a la segunda cuestión, en el módulo fap hay un fichero
Administracion.play con un menú igual que el del fichero
Principal.play pero en el cual el apartado administración en lugar de
un enlace a la página de usuarios es un grupo de opciones destinadas
únicamente a usuarios con rol administrador.

Formulario Administracion permiso="administrador"{
Menu {
Enlace "Mis Solicitudes" pagina="Solicitudes"
Grupo "Administración" {
Enlace "Usuarios" pagina="Usuarios"
Enlace "Aed" pagina="Aed"
Enlace "Requerimientos" pagina="Requerimientos"
Enlace "Tabla de tablas" pagina="TablaDeTablas"
Enlace "Emails" pagina="Emails"
Enlace "Logs" accion="fap.LoggerController.index"
}
Enlace "Ayuda" pagina="Soporte"
Enlace "Salir" accion="fap.SecureController.logout"
}
}

Pretendo lograr lo mismo pero teniendo un formulario con un menú que
contenga un grupo con las opciones a las que solamente pueda acceder
el usuario gestor.

Por similitud, lo que hice fue crear dentro de marcoCompensatorio un
fichero Gestion.play con un contenido muy similar al del fichero
Administracion.play del módulo. Algo así:

Formulario Gestion permiso="administrador"{
Menu {
Enlace "Mis Solicitudes" pagina="Solicitudes"
Enlace "Administración" permiso="administrador"
pagina="Usuarios"
Grupo "Gestión" {
Enlace "Generar ficheros de petición de cesiones de datos"
pagina="GenerarFichPeticionCesion"
Enlace "Subir ficheros de respuesta de cesiones de datos"
pagina="SubirFichRespuestaCesion"
}
Enlace "Ayuda" pagina="Soporte"
Enlace "Salir" accion="fap.SecureController.logout"
}

Pagina GenerarFichPeticionCesion {
...
}

Pagina SubirFichRespuestaCesion{
...
}

}

¿Sería esto lo correcto?.

Saludos.

On 30 ago, 13:55, jelcaf <jel...@gmail.com> wrote:
> Hola,
>
> Respecto a la pregunta de los roles, una vez que modifiques valores de las
> listas, deberás recargar la tabla de tablas para que se actualicen dichos
> valores. Para ello, en el formulario de Administración -> Tabla de Tablas,
> pulsar el botón de "Borrar todas y leer desde fichero".
>
> En cuanto a la segunda pregunta, ¿qué es lo que realmente quieres hacer? ...
> ¿Añadir más opciones del menú a tu formulario? En cuyo caso bastaría con
> copiar idénticamente las opciones del menú Principal u otro menú a tu
> formulario. Pero si lo que quieres es añadir más opciones al formulario
> "Principal", puedes sobreescribirlo así:
>
> Formulario Principal {
> Menu {
>                 // Los ya definidos
> Enlace "Miiiiiiiis Solicitudes" pagina="Solicitudes"
>  Enlace "Administración" permiso="administrador" pagina="Usuarios"
> Enlace "Ayuda" pagina="Soporte"
>  Enlace "Salir" accion="fap.SecureController.logout"
>     }
>
> }
>
> Añadiendo o eliminando dentro de "Menu", las opciones o grupos de menú que
> quieras.
>
> Saludos.
> Jorge.
>
> ...
>
> leer más »

jelcaf

unread,
Aug 31, 2011, 3:18:18 AM8/31/11
to fap-s...@googlegroups.com
Hola,

Si, perfecto, lo que faltaría el permiso de ese grupo, algo como:

               Grupo "Gestión" permiso="gestor" {
                          ...........
               }

Y en un fichero de permisos, crear el permiso gestor (al que solo puedan acceder los gestores)

rule administrador
when
agente.rolActivo = "gestor" // Siendo "gestor" la clave que le hayas puesto al permiso Gestor en la lista de roles que añadiste, algo como {gestor:"Gestor"}
then
grant

Saludos.
Jorge.


> ...
>
> leer más »

jelcaf

unread,
Aug 31, 2011, 3:29:53 AM8/31/11
to fap-s...@googlegroups.com
Una errata en el nombre de la regla ... debería llamarse -gestor-

rule gestor
when
agente.rolActivo = "gestor" // Siendo "gestor" la clave que le hayas puesto al permiso Gestor en la lista de roles que añadiste, algo como {gestor:"Gestor"}
then
grant

Saludos.
Jorge.


patryalcala

unread,
Aug 31, 2011, 3:47:33 AM8/31/11
to fap-support
Hola,

Ayer estuve trabajando con eso y ya he conseguido que aparezca
correctamente el menú y las páginas de gestores. En cuanto al rol de
gestor, a pesar de borrar la tabla de tablas y comprobar que en el
listado se muestran los 3 roles correctamente, al desplegar el select
de los roles situado en la parte derecha de la cabecera siguen
apareciendo únicamente "Administrador" y "Usuario".

Por otra parte, en mi antigua aplicación de tecnólogos había
conseguido crear una tabla que tuviera como primera columna un check,
de tal manera que puediera marcar todas las filas que deseara. Al
pulsar un botón era capaz de recuperar las filas que habían sido
marcadas haciendo algunos cambios directamente en el generador. He
intentado reproducir lo mismo en la nueva versión pero no lo consigo.
¿Existe algún atributo que se pueda añadir al elemento Tabla que
permita lo comentado?. He buscado en la documentación en
http://fap-devel.etsii.ull.es/home/documentacion/home pero no
encuentro la descripción del elemento Tabla.

Gracias de nuevo.
Saludos.
> ...
>
> leer más »

jelcaf

unread,
Aug 31, 2011, 4:15:36 AM8/31/11
to fap-s...@googlegroups.com
Hola,

supongo que no te sale en el desplegable porque el usuario no tiene el nuevo rol (gestor) entre sus posibles roles. Para ello, en BBDD, en la tabla "agente_roles" añádele al usuario que estés utilizando el nuevo rol.

O para que se cargue cada vez que se cree la BBDD, el fichero initial-data/agentes.yml quedaría algo como:

Agente(agente-admin):
    email: "ad...@fap.com"
    username: "admin"
    password: "DMF1ucDxtqgxw5niaXcmYQ=="
    roles: [administrador, usuario, gestor]
    rolActivo: "administrador"

así, el usuario "admin" tendrá el role gestor, y lo podrá seleccionar en el combo de roles.


En cuanto a lo de la tabla .... no está implementado. Así que pensaremos como hacerlo y te iremos informando.

Saludos.
Jorge.


> ...
>
> leer más »

patryalcala

unread,
Sep 5, 2011, 3:55:04 PM9/5/11
to fap-support
Hola,

Aún sigo intentando adaptar el código que había creado para tecnólogos
en marcoCompensatorio.
Necesito tener una página que me permita definir una serie de
criterios de búsqueda para recuperar un listado de solicitudes y
seleccionar un subconjunto de las mismas. Para ello he definido una
entidad nonPersist GenerarFichPeticionCesion que contiene todos los
campos de búsqueda y una lista de elementos ExpedienteAutCesion
también nonPersist que almacenarán un subconjunto de campos de una
solicitud.

Entidad ExpedienteAutCesion nonPersist {
Boolean seleccionado
String numero
String NIPCIF
String tipoDocumento
String solicitante
DateTime fechaConsulta
DateTime fechaValidez
}

Entidad GenerarFichPeticionCesion nonPersist {
Lista tiposCesionDatos cesionTipo //requerido
Lista tiposSeleccionExp cesionSeleccionar //requerido
DateTime cesionFechaValidez
OneToMany ExpedienteAutCesion expedientesAut
}

La página consta de 3 botones.
- Actualizar Expedientes: se ha de encargar de recuperar el listado de
solicitudes autorizadas por la entidad correspondiente en función del
valor seleccionado en el campo cesionTipo. Es necesario que se
actualice en la pantalla el listado de la tabla expedientesAut.
- Seleccionar Expedientes: se ha de encargar de marcar un subconjunto
determinado de elementos de la tabla expedientesAut en función del
valor seleccionado el el combo cesionSeleccionar.
- Generar: Generar un fichero de petición a partir de los elementos
seleccionados en la tabla.

El tema es que a pesar de usar el atributo nonPersist en las
entidades, todos los métodos generados en el controlador Gen incluyen
referencias a una tabla de base de datos que en realidad no debería
existir. No genera ningún atributo de tipo GenerarFichPeticionCesion
de modo que se pueda acceder en todo momento a los valores
seleccionados en la pantalla o almacenar en la lista expedientesAut
los elementos resultantes de la búsqueda de solicitudes, por lo que
aunque sobrescriba el método
public static void actualizarExpAutCesion(GenerarFichPeticionCesion
generarFichPeticionCesion){
}
no sé donde almacenar la lista resultante para que se actualice la
tabla en pantalla.

Espero que más o menos me haya explicado.

Gracias,
Saludos.

---- Filtrar expedientes -----
combo TipoCesion
boton ActualizarExpedientes

---- Seleccionar expedientes -----
combo Tipo de seleccion


On 31 ago, 09:15, jelcaf <jel...@gmail.com> wrote:
> Hola,
>
> supongo que no te sale en el desplegable porque el usuario no tiene el nuevo
> rol (gestor) entre sus posibles roles. Para ello, en BBDD, en la tabla
> "agente_roles" añádele al usuario que estés utilizando el nuevo rol.
>
> O para que se cargue cada vez que se cree la BBDD, el fichero
> initial-data/agentes.yml quedaría algo como:
>
> Agente(agente-admin):
>     email: "ad...@fap.com"
>     username: "admin"
>     password: "DMF1ucDxtqgxw5niaXcmYQ=="
>     roles: [administrador, usuario,* gestor*]
>     rolActivo: "administrador"
>
> así, el usuario "admin" tendrá el role gestor, y lo podrá seleccionar en el
> combo de roles.
>
> En cuanto a lo de la tabla .... no está implementado. Así que pensaremos
> como hacerlo y te iremos informando.
>
> Saludos.
> Jorge.
>
> El 31 de agosto de 2011 08:47, patryalcala <patryalc...@gmail.com> escribió:
>
> > Hola,
>
> > Ayer estuve trabajando con eso y ya he conseguido que aparezca
> > correctamente el menú y las páginas de gestores. En cuanto al rol de
> > gestor, a pesar de borrar la tabla de tablas y comprobar que en el
> > listado se muestran los 3 roles correctamente, al desplegar el select
> > de los roles situado en la parte derecha de la cabecera siguen
> > apareciendo únicamente "Administrador" y "Usuario".
>
> > Por otra parte, en mi antigua aplicación de tecnólogos había
> > conseguido crear una tabla que tuviera como primera columna un check,
> > de tal manera que puediera marcar todas las filas que deseara. Al
> > pulsar un botón era capaz de recuperar las filas que habían sido
> > marcadas haciendo algunos cambios directamente en el generador. He
> > intentado reproducir lo mismo en la nueva versión pero no lo consigo.
> > ¿Existe algún atributo que se pueda añadir al elemento Tabla que
> > permita lo comentado?. He buscado en la documentación en
> >http://fap-devel.etsii.ull.es/home/documentacion/homepero no
> ...
>
> leer más »

Daniel Pérez

unread,
Sep 6, 2011, 3:40:01 AM9/6/11
to fap-s...@googlegroups.com, patry...@gmail.com
Hola Patricia,

por lo que aquí hemos entendido del problema, hemos pensado una solución en la que no es necesario el uso de una tabla en esta página. Consiste en una página con un elemento "Form", dentro del cual estarán los 2 combos y un botón "generar" cuya acción tendrías que sobreescribir y que se tendría que encargar de:
  1) filtrar las solicitudes en base al valor del primer combo (cesionTipo)
  2) filtrar las solicitudes obtenidas del paso 1, en base al valor del segundo combo (cesionSeleccionar)
  3) generar el fichero de petición a partir de las solicitudes obtenidas en el paso 2.

Todo en el mismo controlador, en la misma petición, por lo que no sería necesario crear entidades intermedias.

Si no te sirve y necesitas otra solución háznoslo saber.

Un saludo.


> ...
>
> leer más »

--
Has recibido este mensaje porque estás suscrito al grupo "fap-support" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a fap-s...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a fap-support...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/fap-support?hl=es.




--
Daniel Pérez Barbudo   ----   dani...@gmail.com / alu...@etsii.ull.es                             

patry...@gmail.com

unread,
Sep 6, 2011, 8:46:59 AM9/6/11
to Daniel Pérez, fap-s...@googlegroups.com
El tema es que necesito que se vean en pantalla los datos de las solicitudes para que el usuario pueda ver las q desea seleccionar por si deseara elegir algunas que no estén incluidas al elegir un valor determinado del segundo combo y pulsar el botón Seleccionar.Esta pantalla ya la tenía lista con la versión anterior.Por lo que veo la nueva versión carece aún de muchas posibilidades q proporcionaba la antigua versión por lo que la migración de todos los cambios que ya tenía implementados me está resultando muy laboriosa.Qué opinan?.
No existe posibilidad de trabajar con datos sin q se haga referencia a base de datos?

Gracias,
Saludos.

Enviado desde mi HTC

Daniel Pérez

unread,
Sep 7, 2011, 8:19:48 AM9/7/11
to patry...@gmail.com, fap-s...@googlegroups.com
Ahora mismo no tenemos ningún elemento que permita filtrar una tabla en función del valor de un combo. Pero haciendo una página manual a partir del contenido de una página generada, se puede hacer. Te explico como:

En primer tienes que crear en el DSL la página en cuestión, con los dos combos y una tabla. La tabla debe contener el atributo "seleccionable", que sirve para añadir un botón que al pulsarlo llama a un controlador que tiene como parámetro una lista de ID's correspondiente a la lista de filas seleccionadas en el momento de pulsar el botón. Este botón podría ser el tercero que necesitas en tu página, "Generar". A continuación te pongo un ejemplo de tabla con el atributo "seleccionable":

Tabla tabla1 titulo="Tabla 1" campo="Solicitud" seleccionable="generar"{
      Columna campo="Solicitud.campo1" titulo="campo 1"
           Columna campo="Solicitud.campo2" titulo="campo 2"
}

Por cierto esta funcionalidad no está disponible en la versión que tienes de FAP. Aún tenemos pendiente sacar una nueva versión, que incluya este cambio y algunos más. Lo haremos en los próximos días, y te avisaremos.

Con respecto al filtrado de los combos, copia la página generada a partir de lo anterior, a otro sitio, para añadirle código JavaScript que escuche los eventos de cambio de valor en los combos, y actualice la tabla adecuadamente, sin pasar por el servidor. A continuación te pongo el script que podría servirte para hacer el filtrado, y te los explico un poco:

<script>
$(function(){
     $('#combo1').change(function(){
     $('#tabla1').data('grid').getStore().clearFilter(true);
     $('#tabla1').data('grid').getStore().filter("campo1", $('#combo1').val()); 
     });      
});
$(function(){
     $('#combo2').change(function(){
     $('#tabla1').data('grid').getSelectionModel().deselectAll(true);
     $('#tabla1').data('grid').getStore().each(function(record) {
     if (record.data.campo2 == $('#combo2').val())
     $('#tabla1').data('grid').getSelectionModel().select(record);
     });
     });      
});

</script>


La primera función es para el primero de tus combos, que es el que tiene filtrar completamente la tabla, es decir, haciendo desaparecer las filas, no deseleccionándolas, que es el caso del segundo. En la linea

$('#tabla1').data('grid').getStore().filter("campo1", $('#combo1').val());

lo que se está haciendo es filtrar la tabla con el criterio de que el valor de la columna "campo1" tiene que ser igual al valor del combo.
Nota: necesitas los ID's de la tabla y del combo, y los tienes en la página, como parámetros de fap.combo y fap.tabla.

La segunda función corresponde con el combo que filtra de manera "especial", es decir, seleccionando o no filas en función del resultado del filtrado.

Creo que con esta solución te puedes evitar la creación de entidades nonPersist que guarden las filas filtradas en cada paso.

Si tienes alguna duda ya sabes. Y cuando esté subida la nueva versión con la nueva funcionalidad de la tabla te aviso. Será en uno o dos días.

Un saludo.
Reply all
Reply to author
Forward
0 new messages