Puede utilizar la transformación Java™ personalizado para especificar su propio código Java para utilizarlo en la correlación.
En el editor de correlaciones de datos gráficas, seleccione Java personalizado en la lista Transformaciones personalizadas. A continuación, puede utilizar las propiedades de transformación para seleccionar un método Java en una clase Java desde un proyecto Java en el espacio de trabajo. El asistente de contenido de la columna Valores le servirá de ayuda para asignar los elementos necesarios del esquema de origen.
La clase Java que se proporciona a la correlación debe tener un método estático que devuelva el tipo adecuado para el valor del elemento de salida y tome los parámetros del tipo adecuado para las entradas conectadas.
Por ejemplo, el siguiente método Java puede utilizarse en una transformación Java personalizado que tenga tres elementos de entrada, de tipos xs:string, xs:decimal y xs:boolean y el elemento de salida que sea un xs:decimal:4
public static BigDecimal calSomething(String memType, BigDecimal stdCost, boolean flag) {
BigDecimal actualCost = stdCost;
if (flag & memType.startsWith("gold")) {
BigDecimal discRate = new BigDecimal(0.9);
actualCost = actualCost.multiply(discRate);
}
return actualCost;
}
En la tabla siguiente se muestran las correlaciones entre el tipo de Esquema, el tipo Java y el tipo de árbol de WebSphere Message Broker:
Tipo Esquema | Tipo Java | Tipo de árbol Message Broker |
---|---|---|
xs:anyURI | java.lang.String | CHARACTER |
xs:base64Binary | byte[] | BLOB |
xs:boolean | boolean, java.lang.Boolean | BOOLEAN |
xs:byte | byte, java.lang.Byte | INTEGER |
xs:date | javax.xml.datatype.XMLGregorianCalendar | DATE |
xs:dateTime | javax.xml.datatype.XMLGregorianCalendar | TIMESTAMP |
xs:dayTimeDuration | javax.xml.datatype.Duration | INTERVAL |
xs:decimal | java.math.BigDecimal | DECIMAL |
xs:double | double, java.lang.Double | FLOAT |
xs:duration | javax.xml.datatype.Duration | INTERVAL |
xs:float | float, java.lang.Float | FLOAT |
xs:gDay | javax.xml.datatype.XMLGregorianCalendar | DATE |
xs:gMonth | javax.xml.datatype.XMLGregorianCalendar | DATE |
xs:gMonthDay | javax.xml.datatype.XMLGregorianCalendar | DATE |
xs:gYear | javax.xml.datatype.XMLGregorianCalendar | DATE |
xs:gYearMonth | javax.xml.datatype.XMLGregorianCalendar | DATE |
xs:hexBinary | byte[] | BLOB |
xs:int | int, java.lang.Integer | INTEGER |
xs:integer | java.math.BigInteger | DECIMAL |
xs:long | long, java.lang.Long | INTEGER |
xs:negativeInteger | java.math.BigInteger | DECIMAL |
xs:nonNegativeInteger | java.math.BigInteger | DECIMAL |
xs:nonPositiveInteger | java.math.BigInteger | DECIMAL |
xs:normalizedString | java.lang.String | CHARACTER |
xs:positiveInteger | java.math.BigInteger | DECIMAL |
xs:short | short, java.lang.Short | INTEGER |
xs:string | java.lang.String | CHARACTER |
xs:time | javax.xml.datatype.XMLGregorianCalendar | TIME |
xs:unsignedByte | Short | INTEGER |
xs:unsignedInt | Long | INTEGER |
xs:unsignedLong | java.math.BigInteger | DECIMAL |
xs:unsignedShort | Int | INTEGER |
xs:yearMonthDuration | javax.xml.datatype.Duration | INTERVAL |
También puede crear transformaciones Java personalizado para procesar entradas y salidas que sean matrices o tipos complejos; éstos no se pueden convertir de un tipo Esquema a un tipo Java definido tal como se ha mostrado en la tabla anterior.
En este caso, la clase Java debe utilizar la clase MbElement para hacer referencia al elemento de entrada o salida. Para obtener más información sobre la utilización de Java y la clase MbElement, consulte Utilización de clases API de Java para transformaciones de correlaciones Java personalizado.