Saltar al contenido principal
Administrator Guide
Última actualización: 2023-06-23
Referencia: objetos auxiliares de Studio

Referencia: objetos auxiliares de Studio

Studio proporciona varios objetos auxiliares que le permiten acceder a las propiedades de tiempo de ejecución de una integración mediante MVEL. Puede utilizar los objetos auxiliares para realizar cambios sencillos en los valores de tiempo de ejecución, o para extraerlos y pasarlos a los componentes del ensamblaje.
Objeto auxiliar
Finalidad
context
Proporciona acceso a la
MediationContext
objeto, es decir, al estado dinámico de la integración en tiempo de ejecución. El
MediationContext
los vínculos del objeto al mensaje actual, las propiedades de mediación, las variables de mediación y la información de error actual.
Ejemplo: esta expresión recupera el valor de la propiedad
myProperty
de la
MediationContext
:
context.getProperty('myProperty')
Ejemplo: esta expresión recupera la propiedad
someProperty
de la
MediationContext
si el valor de propiedad se establece en
someValue
:
context.getProperty('someProperty').equals('someValue')
da
El objeto auxiliar de acceso a documento. Proporciona acceso a la lista de documentos adjuntos al evento de integración antes de que se ejecutara esta integración. Combina de forma efectiva una llamada de servicio web Get Event Documents con la recuperación de los documentos a los que se hace referencia en la respuesta del servicio web.
El
da
El objeto auxiliar tiene algunas limitaciones:
  • Debe incluir explícitamente una lógica para gestionar los casos en los que hay disponible un número inesperado de archivos adjuntos.
  • No puede acceder al tipo de archivo del archivo adjunto.
  • No puede acceder a la codificación de caracteres del archivo adjunto.
La estrategia del enrutador
doc-iterator
gestiona automáticamente números inesperados de archivos adjuntos y puede acceder tanto al tipo MIME como a la codificación de caracteres. A menudo es más apropiado que una integración utilice esa estrategia para recuperar documentos de entrada, en lugar de este objeto auxiliar.
Ejemplo: esta expresión recupera un documento de un evento de integración con el nombre de archivo
eib_transform_output.txt
y añade una variable denominada
var1
:
da.toVar('eib_transform_output.txt', 'var1')
Ejemplo: esta expresión recupera un documento con la etiqueta dada:
da.getDocsMatching('label')
ftp
Proporciona acceso a la lista de archivos que se muestran al emitir la solicitud LIST a un servidor ftp, ftps o sftp.
Ejemplo: esta expresión recupera una lista de archivos para una URL:
ftp.list('URL')
intsys
Proporciona un acceso cómodo y de alto rendimiento a la configuración del sistema de integración que devuelve la llamada al servicio web Get Integration Systems.
Ejemplo: esta expresión recupera un atributo de integración denominado
username
:
intsys.getAttribute('username')
Ejemplo: esta expresión se muestra como verdadera si existe un servicio de integración con el nombre dado:
intsys.isServiceEnabled('name')
Si utiliza
intsys
para acceder a un atributo, primero debe definir un servicio en la
workday-in
transporte para el sistema de integración.
lp
Proporciona acceso a parámetros de inicio y otra información en el evento de inicio de integración.
Ejemplo: esta expresión recupera el valor de un parámetro de inicio con el nombre dado:
lp.getSimpleData('name')
Ejemplo: esta expresión se muestra como verdadera si existe un parámetro con la etiqueta dada:
lp.exists('label') == true
Antes de utilizar el
lp
variable, debe asignar el XML de parámetros de inicio a la variable
wd.launchparameters
.
message
Proporciona acceso al mensaje actual y a su información de cabecera. Utilice este objeto para asignar nuevo contenido al mensaje.
Ejemplo: esta expresión recupera la parte raíz de un mensaje como texto de la
MediationMessage
interfaz:
message.rootPartAsText
Ejemplo: esta expresión recupera
MediationContext
variables:
message.variables
mtable
Proporciona acceso a la
MTableAdapter
interfaz, que define las operaciones en una
mtable
instancia
Ejemplo: esta expresión establece datos en un
mtable
:
mtable['my_property'].set(0, 'Data_Column', 'my_test_data')
parts
Proporciona acceso a las partes individuales del mensaje actual. La mayoría de los mensajes de las integraciones de Workday tienen una sola parte, la parte raíz. Utilizar
parts[0]
para acceder a la pieza raíz.
Ejemplo: esta expresión recupera la cabecera
someHeader
de la parte raíz:
parts[0].getHeader('someHeader')
Ejemplo: esta expresión implementa la
xpathB
para evaluar una expresión booleana XPath:
parts[0].xpathB('/a/b')
props
Proporciona acceso a
MediationContext
propiedades
Ejemplo: esta expresión recupera el valor de la propiedad
myProperty
de la
MediationContext
:
props.myProperty
Ejemplo: esta expresión recupera el valor de la propiedad
bean.property
de la
MediationContext
:
props['bean.property']
spring
Proporciona acceso a los beans de creación y recuperación definidos en la configuración de Spring de un ensamblaje.
Ejemplo: esta expresión recupera el
name
atributo del bean llamado
Fred
en el contexto de Spring:
spring.getBean('fred').name
Ejemplo: esta expresión accede al contexto de la aplicación Spring:
spring.parent ApplicationContext
util
Un conjunto de funciones de utilidad para realizar operaciones comunes, como introducir valores de escape para insertarlos en XML o crear una URL HTTPS.
Ejemplo: esta expresión comprueba si el mensaje actual de la
MediationContext
es el último mensaje que generará el componente divisor:
props['is.last.record'] = util.isLastMessageInBatch()
Algunos
util
Las funciones tienen limitaciones cruciales. Ejemplo: el
xpathToCommaDelimString
La función genera una lista separada por comas a partir de los valores de cadena de la secuencia de nodos que devuelve una expresión XPath que opera en una cadena XML determinada. A continuación, puede dividir y manipular la lista separada por comas mediante las funciones de manipulación de cadenas de Java en MVEL. Sin embargo, la función tiene las siguientes limitaciones:
  • Solo es compatible con XPath 1.
  • No puede generar archivos CSV porque no aplica correctamente el formato de escape de las nuevas líneas, las comas y los caracteres de comillas.
  • No puede separar de forma segura los datos que contienen comas.
  • Su requisito de XML como cadena fomenta prácticas no escalables, como convertir el mensaje de contexto actual o la variable en una cadena.
Workday recomienda encarecidamente el uso de solicitudes de servicio web versionadas y explícitas para lograr estabilidad y compatibilidad con versiones anteriores. Utilizando
MVELUtilHelper.getLatestWWSVersion()
en las integraciones no es una buena práctica y puede dar lugar a integraciones con errores o resultados inesperados.
vars
Proporciona acceso a
MediationContext
variables
Ejemplo: esta expresión recupera la longitud de la variable
myVariable
:
vars['myVariable'].length
Ejemplo: esta expresión recupera la longitud de la variable
myVariable
:
vars['myVariable'].length
xmldiff
Proporciona acceso mediante programación a los resultados de la comparación de documentos con el componente
xmldiff
.
Ejemplo: esta expresión comprueba si hay diferencias entre dos documentos:
xmldiff.isDifferent() == true
Ejemplo: esta expresión recupera una lista de diferencias entre dos documentos:
xmldiff.changes