API Rest de descarga de datos

Ofrece un método para facilitar la obtención de respuestas de formularios de forma externa. La ruta a los servicios web de G·Forms es la siguiente:

$contexto_gforms$/seam/resources/rest/Answer

El sistema ofrece una librería de integración con los servicios web de G·Forms para simplificar el uso de los mismos llamada gforms-ws-client. Todo el código de ejemplo usado para ilustrar las opciones de integración de webservices hace uso de dicha librería.
Para obtener el recurso para operar con la api de gestión de formularios es necesario incluir las siguientes líneas en nuestro código:
AnswerService answerService = new AnswerService("$contexto_gforms$/seam/resources/rest");

Estructura de la clase Answer

public class Answer {

    private String question;
    private String label;
    private String externalId;
    private Long register;
    private String valor;
    private String formulario;
    private String version;
    private Boolean oculta;
    private String grupo;

/*
* Getters and Setters
*/
}

Estructura del XML Answer

<answer>
   <question></question>
   <label></label>
   <externalId></externalId>
   <register></register>
   <valor></valor>
   <formulario></formulario>
   <version></version>
   <oculta></oculta>
   <grupo></grupo>
</answer>

Obtener respuestas de un formulario

Devuelve una lista de objetos Answer según los parámetros de filtrado pasados. Todos los parámetros son opcionales pero hay que tener en cuenta que si no se especifica ninguno la cantidad de registros devueltos puede ser muy grande. La definición del método de consulta es la siguiente:

Invocación a través de gforms-ws-client

public Answers getAnswers(String externalId, String form, String questionId, String formVersion) throws GFormsWSException;

Invocación REST
Se realizará una petición PUT a la url $contexto_gforms$/seam/resources/rest/Answer/query enviando el siguiente XML:

<answerFilter>
   <formulario></formulario> <!-- Opcional -->
   <externalId></externalId> <!-- Opcional -->
   <question></question> <!-- Opcional -->
   <version></version> <!-- Opcional -->
   <oculta></oculta> <!-- Opcional -->
   <questionsValues> <!-- Opcional -->
      <name></name>
      <value></value>
   </questionsValues>
</answerFilter>

Existen múltiples combinaciones de filtros para la obtención de datos. A continuación se detallan las opciones de filtrado más comunes para este servicio.

Obtención de respuestas de una instancia determinada de formulario

Devuelve una lista objetos Answer pertenecientes a la instancia de formulario que se ha pasado por parámetro. En caso de error inesperado se lanzará una excepción GFormsWSException con la causa del error.

Invocación a través de gforms-ws-client

Answers answers = answerService.getAnswers("id_instancia", null, null, null);

Invocación REST
Se realizará una petición PUT a la url $contexto_gforms$/seam/resources/rest/Answer/query enviando el siguiente XML:

<answerFilter>
   <externalId>id_instancia</externalId>
</answerFilter>

Obtención de respuestas de todas las instancias de un formulario

Devuelve una lista objetos Answer pertenecientes a las instancias del formulario que se ha pasado por parámetro. En caso de error inesperado se lanzará una excepción GFormsWSException con la causa del error.

Invocación a través de gforms-ws-client

Answers answers = answerService.getAnswers(null, "id_formulario", null, null);

Invocación REST
Se realizará una petición PUT a la url $contexto_gforms$/seam/resources/rest/Answer/query enviando el siguiente XML:

<answerFilter>
   <formulario>id_formulario</formulario>
</answerFilter>

Obtención de respuestas a preguntas con un id determinado de todas las instancias de un formulario

Devuelve una lista objetos Answer pertenecientes a las instancias del formulario que se ha pasado por parámetro y cuyo identificador sea el especificado por parámetro. En caso de error inesperado se lanzará una excepción GFormsWSException con la causa del error.

Invocación a través de gforms-ws-client

Answers answers = answerService.getAnswers(null, "id_formulario", "id_pregunta", null);

Invocación REST
Se realizará una petición PUT a la url $contexto_gforms$/seam/resources/rest/Answer/query enviando el siguiente XML:

<answerFilter>
   <question>id_pregunta</question>
</answerFilter>

Obtención de respuestas a preguntas con un id y valor determinados de todas las instancias de un formulario

Devuelve una lista objetos Answer pertenecientes a las instancias del formulario que se ha pasado por parámetro y cuyo identificador y valor sean los especificados por parámetros. En caso de error inesperado se lanzará una excepción GFormsWSException con la causa del error.

Invocación a través de gforms-ws-client

List<Property> props = new ArrayList<Property>();
Property prop = new Property("id_pregunta", "valor_pregunta");
props.add(prop);
Answers answers = answerService.getAnswers(null, "id_formulario", null, null, props);

Invocación REST
Se realizará una petición PUT a la url $contexto_gforms$/seam/resources/rest/Answer/query enviando el siguiente XML:

<answerFilter>
   <formulario>id_formulario</formulario>
   <questionsValues>
      <name>id_pregunta</name>
      <value>valor_pregunta</value>
   </questionsValues>
</answerFilter>