API Rest de información de instancia

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

$contexto_gforms$/seam/resources/rest/Instance

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:
InstanceService instanceService = new InstanceService("$contexto_gforms$/seam/resources/rest");

Estructura de la clase Instance

public class Instance {

    private String externalId;
    private String formulario;
    private Date lastAccessDate;
    private Date lastUpdateDate;
    private Long duration;
    private String lastQuestionAnsweredId;

/*
* Getters and Setters
*/
}

Estructura del XML Instance

<instance>
   <externalId></externalId>
   <descripcion></descripcion>
   <formulario></formulario>
   <lastAccessDate></lastAccessDate>
   <lastUpdateDate></lastUpdateDate>
   <duration></duration>
   <lastQuestionAnsweredId></lastQuestionAnsweredId>
</instance>

Obtención de información de instancias de formulario

Devuelve una lista de objetos Instance 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. Las definiciones del método de consulta son las siguientes:

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

public Instances getInstances(String externalId, String form) throws GFormsWSException;
public Instances getInstances(String externalId) throws GFormsWSException;

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

<instanceFilter>
  <externalId>externalId</externalId> <!-- Opcional -->
  <formulario>form</formulario> <!-- Opcional -->
</instanceFilter>

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 información de una instancia concreta de formulario

Devuelve una lista de objetos Instance que únicamente contendrá la instancia con el identificador y formulario especificados. Si no se encuentra ninguna instancia que coincida con los parámetros la lista vendrá vacía. 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

Instances instances = instanceService.getInstances("id_instancia", "id_formulario");

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

<instanceFilter>
  <externalId>id_instancia</externalId>
  <formulario>id_formulario</formulario>
</instanceFilter>

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

Devuelve una lista de objetos Instance que contendrá las instancia pertenecientes al formulario especificado. Si no se encuentra ninguna instancia que coincida con los parámetros la lista vendrá vacía. 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

Instances instances = instanceService.getInstances(null, "id_formulario");

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

<instanceFilter>
  <formulario>id_formulario</formulario>
</instanceFilter>

Obtención de PDF de una instancia de formulario

Devuelve un objeto File con el binario de un fichero PDF que contiene la información introducida en la instancia del formulario en el idioma seleccionado. Si no se encuentra ninguna instancia que coincida con los parámetros devolverá error.

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

public File getPDFInstance(String externalId, String form, String locale) throws GFormsWSException

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

<instanceFilter>
  <externalId>externalId</externalId>
  <formulario>form</formulario>
  <localeSeleccionado>locale</localeSeleccionado>
</instanceFilter>

Obtención de PDF de una instancia de una versión concreta de formulario

Devuelve un objeto File con el binario de un fichero PDF que contiene la información introducida en la instancia del formulario en el idioma seleccionado y sobre la versión de formulario establecida. Si no se encuentra ninguna instancia que coincida con los parámetros devolverá error.

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

public File getPDFInstance(String externalId, String form, String locale, String version) throws GFormsWSException

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

<instanceFilter>
  <externalId>externalId</externalId>
  <formulario>form</formulario>
  <localeSeleccionado>locale</localeSeleccionado>
  <version>version</version>
</instanceFilter>