Uso del servicio Web Services para invocar los servicios de LiveCycle ES con valores de entrada y salida de documentos (LiveCycle ES 8.2.1)

Problema

Este artículo describe cómo utilizar el servicio Web Service en procesos para invocar servicios que requieren adjuntos de archivos como valores de entrada. Este artículo también describe cómo especificar el formato en el que los servicios web de LiveCycle ES devuelven los archivos adjuntos.

Por ejemplo, las variables de entrada y salida de servicio de tipo documento se representan en mensajes SOAP como archivos adjuntos. Para proporcionar valores de documento de entrada, el mensaje SOAP incluye un archivo adjunto. Los mensajes de respuesta incluyen archivos adjuntos cuando los servicios web tienen variables de salida de tipo documento.

Los archivos pueden adjuntarse como archivos adjuntos MIME o MTOM, texto codificado base64 o utilizando la URL del archivo:

Nota: Los servicios web que proporciona LiveCycle ES no son compatibles con los archivos adjuntos MTOM.

Configuración del mensaje de solicitud de servicio web

En esta sección se describe cómo configurar la propiedad Opciones de servicio web de la operación Invocar servicio web. Esta propiedad se utiliza para configurar el mensaje de solicitud SOAP que se envía al servicio web:

Abrir el cuadro de diálogo Configuración de WebService

Utilice el cuadro de diálogo Configuración de WebService para configurar la propiedad Opciones de servicio web de la operación Invocar servicio web.

Para abrir el cuadro de diálogo Configuración de WebService:

  1. En el diagrama de proceso, haga clic en la operación Invocar servicio web.
  2. En la vista Propiedades, expanda la sección Opciones de servicio web y haga clic en el botón situado junto al cuadro Opciones.

Especificación de las propiedades del servicio web

Debe proporcionar la siguiente información sobre el servicio web para que el servicio de servicios web recupere el WSDL y envíe y reciba mensajes SOAP:

URL del WSDL: La URL de la definición del servicio web. La URL de los WSDL de proceso tiene el siguiente formato: http://[server name]:[port]/soap/services/[process name]?wsdl Por ejemplo, la siguiente URL apunta al WSDL para el proceso llamado echoDocument. El servidor de aplicación se ejecuta en el mismo equipo en el que está instalado LiveCycle Workbench ES: http://localhost:8080/soap/services/echoDocument?wsdl El nombre de usuario: de la cuenta que puede utilizar para acceder al servicio web. Necesita proporcionar un nombre de usuario solo si el servicio web requiere autenticación.

Contraseña: la contraseña que se corresponde con el nombre de usuario que usted proporcionó para la propiedad Nombre de usuario.

Puerto: el servicio que desea utilizar, que se expone a través del WSDL. Un WSDL puede exponer múltiples servicios.

URL de destino: la URL que proporciona acceso al servicio web. Para un proceso llamado echoDocument, la URL es http://localhost:8080/soap/services/echoDocument.

strong>Operación: La operación de servicio web que se desea invocar. La lista se rellena automáticamente cuando se carga la definición del servicio web.

Tiempo muerto: La cantidad de tiempo que desea esperar una respuesta del servicio web antes de abandonar la invocación del servicio web. El valor que usted proporciona es en segundos.





Para especificar las propiedades del servicio web

  1. En el cuadro de diálogo Configuración de WebService, haga clic en la etiqueta Configuración.
  2. En el cuadro URL de WSDL, escriba la URL del servicio web WSDL.
  3. Haga clic en Cargar para recuperar el WSDL. Algunas propiedades de la pestaña Configuración se rellenan automáticamente utilizando información del WSDL.
  4. Si es necesario, escriba un nombre de usuario y una contraseña.
  5. Si el valor predeterminado de Puerto no es correcto, escriba un valor diferente.
  6. Si el valor predeterminado de la URL de destino no es correcto, escriba una URL diferente.
  7. Seleccione la operación que desea invocar.
  8. (Opcional) Especifique la cantidad de tiempo que transcurre antes de que la solicitud de servicio se agote.

Generación de la solicitud inicial SOAP

El cuadro de diálogo Configuración de WebService genera automáticamente un mensaje SOAP para invocar el servicio web. El mensaje se basa en las propiedades del servicio web que ha especificado. El mensaje SOAP se proporciona en un cuadro de texto donde puede editar el mensaje según sea necesario.

Para generar el mensaje inicial SOAP:

  1. En el cuadro de diálogo Configuración de WebService, haga clic en la ficha Solicitar.
  2. Haga clic en Generar.

Configuración de archivos adjuntos

El mensaje SOAP debe incluir archivos adjuntos para representar los valores de documento de los parámetros de entrada del servicio.

El siguiente código XML muestra la estructura general de un mensaje SOAP que se utiliza para llamar a una operación de servicio web:

  • El elemento Body contiene un elemento que tiene el mismo nombre que la operación de servicio.
  • El elemento nombre_operación contiene un elemento para cada parámetro de entrada. Los nombres de estos elementos son los mismos que los nombres de los parámetros.
  • El método utilizado para adjuntar archivos al mensaje SOAP (MIME, MTOM (excluidos los servicios web de LiveCycle ES), texto codificado base64 o URL de archivo) determina los elementos que se utilizan para identificar los archivos adjuntos.

<soapenv:Envelope
  
      xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/
  
      xmlns:ser="http://foo.net/services"> 
  
     <soapenv:Header /> 
  
     <soapenv:Body> 
  
        <ser:operation_name> 
  
           <ser:parameter_name> 
  
              <!-- elements for file attachments are placed here --> 
  
           </ser:parameter_name> 
  
        </ser:operation_name> 
  
     </soapenv:Body> 
  
  </soapenv:Envelope> 

Para los servicios web de los procesos activados, siempre se invoca el nombre de la operación. Los nombres de parámetros son los nombres de las variables de entrada que se definen en el proceso. En la siguiente tabla se describe cómo configurar las opciones del cuadro de diálogo Configuración de WebService para adjuntar archivos. Se proporcionan ejemplos de mensajes SOAP para cada método. Los ejemplos son mensajes de solicitud para el servicio web de un proceso con un parámetro de entrada llamado documentIn. El parámetro documentIn es un valor de documento.

Tipo de accesorio

Descripción

Ejemplo de mensaje SOAP

MIME/MTOM

La ficha Anexo del cuadro de diálogo Configuración de WebService se utiliza para especificar el valor del documento. Cada línea de la tabla representa un anexo de fichero.

Para configurar un archivo adjunto MIME:

  1. Haga clic en la ficha Plantillas.
  2. Haga clic en Cargar parte de datos adjuntos para agregar filas a la tabla para los datos adjuntos que deben especificarse para la operación de servicio web que está invocando. Las columnas Parte y Tipo se rellenan con valores automáticamente.

    Tome nota de los valores en la columna Parte. Necesitará estos valores en el paso 6 de este procedimiento. La columna Parte contiene la identificación del anexo. El servicio web determina la identificación.

  3. Para cada fila de la tabla, haga clic en la celda Adjuntar, y luego haga clic en el botón de elipsis que aparece para abrir XPath Builder. La expresión XPath que cree debe resolverse en la ubicación de datos donde se guarda el valor del documento.
  4. Para cada fila de la tabla, haga clic en la celda Tipo de contenido y escriba el tipo MIME del archivo que está adjuntando, por ejemplo, application/pdf.
  5. Haga clic en la pestaña Solicitud y añada un elemento attachmentID dentro de cada elemento que represente el parámetro que toma un archivo adjunto como valor.
  6. Dentro de cada elemento attachmentID, escriba el texto que aparece en la columna Parte para el archivo adjunto en la ficha Anexo.

<soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/ xmlns:ser="http://adobe.com/idp/services"> <soapenv:Header/> <soapenv:Body> <ser:invoke> <ser:documentIn> <ser:attachmentID> part0 </ser:attachmentID> </ser:documentIn> </ser:invoke> </soapenv:Body> </soapenv:Envelope>

base64-texto codificado

El tipo de contenido MIME y la representación de texto codificado base64 del archivo se incluye en el mensaje SOAP:

  • El tipo de contenido se especifica en un elemento contentType.
  • El texto se especifica en un elemento binaryData.

Para obtener el texto codificado base64, puede utilizar la función getDocContentBase64 XPath.

El siguiente procedimiento asume que el texto codificado en base a 64 que representa el valor del documento está almacenado en una variable de proceso.

Para configurar un archivo adjunto de texto codificado en base-64:

  1. Haga clic en la pestaña Plantillas.
  2. Añada los siguientes elementos dentro del elemento que representa el parámetro que toma el valor del documento:
    • contentType
    • binaryData
  3. Dentro del elemento contentType, escriba el tipo de contenido o agregue una expresión XPath que se resuelva a una variable de cadena que contenga el tipo de contenido.
  4. Dentro del elemento binaryData, agregue una expresión XPath que se resuelve a una variable de cadena que contiene el texto codificado base64 que representa el documento.

<soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/ xmlns:ser="http://adobe.com/idp/services"> <soapenv:Header/> <soapenv:Body> <ser:invoke> <ser:documentIn> <ser:contentType> {$/process_data/@contentType$} </ser:contentType> <ser:binaryData> {$/process_data/@docBase64$} </ser:binaryData> </ser:documentIn> </ser:invoke> </soapenv:Body> </soapenv:Envelope>

URL del archivo

La URL del archivo se especifica en un elemento remoteURL.

Para configurar un archivo adjunto de URL de archivo:

  1. Haga clic en la pestaña Plantillas.
  2. Añadir un elemento remoteURL dentro del elemento que representa el parámetro que toma el valor del documento.
  3. Dentro del elemento remoteURL, escriba la URL del archivo o agregue una expresión XPath que se resuelva a una variable de cadena que contenga la URL.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://adobe.com/idp/services"> <soapenv:Header/> <soapenv:Body> <ser:invoke> <ser:documentIn> <ser:remoteURL> http://help.adobe.com/en_US/livecycle/es/overview.pdf </ser:remoteURL> </ser:documentIn> </ser:invoke> </soapenv:Body> </soapenv:Envelope>

Configuración de los mensajes de respuesta del servicio web de LiveCycle ES

Cuando un servicio web de LiveCycle ES devuelve un valor de documento, el valor es un archivo adjunto al mensaje de respuesta SOAP. El comportamiento predeterminado de los servicios web de LiveCycle ES es almacenar el valor del documento resultante en el servidor de LiveCycle ES e incluir la URL del documento en el mensaje de respuesta. Sin embargo, si el mensaje de solicitud SOAP incluía un anexo MIME, la respuesta también utiliza un anexo MIME para devolver los valores del documento.

Puede anular el comportamiento predeterminado y especificar el método que utilizan los servicios web de LiveCycle ES para devolver los archivos adjuntos de los documentos. Los archivos se pueden adjuntar a los mensajes de respuesta SOAP como archivos adjuntos MIME, texto cifrado base64, o utilizando la URL del archivo. Para especificar la forma en que se adjuntan los archivos a los mensajes de respuesta, debe agregar uno de los valores de la tabla siguiente a la URL de destino que se especifica en la pestaña Configuración del cuadro de diálogo Configuración de WebService:

Tipo de accesorio

Texto que desea añadir

base64-texto codificado

?blob=base64

MIME

?blob=mime

URL del archivo

?blob=http

Por ejemplo, el siguiente valor para la URL de destino hace que el servicio web de un proceso llamado echoDocument adjunte archivos a los mensajes de respuesta SOAP como texto codificado base64:

http://localhost:8080/soap/services/echoDocument?blob=base64

Para anular el comportamiento predeterminado de los adjuntos de los mensajes de respuesta SOAP:

  1. En el cuadro de diálogo Configuración de WebService, haga clic en la pestaña Configuración.
  2. En el cuadro URL de destino, agregue uno de los valores a la URL:
    • ?blob=base64
    • ?blob=mime
    • ?blob=http