Converting a legacy message map that includes ESQL mapping functions

When you convert a legacy message map that includes ESQL mapping functions, the conversion process converts some ESQL functions to equivalent XPath 2.0 functions (fn:functionName), or to cast type functions (xs:type). A Task transform is added to your converted map when there is no automatic conversion for an ESQL function.

Before you begin

If your legacy message map includes esql:coalesce calls, check that the format of the calls can be converted; see Limitations on the conversion of esql:coalesce calls.

Procedure

Check the conversion process behavior when you convert a legacy message map to a message map that includes ESQL mapping functions:

  1. When a legacy message map includes calls to predefined ESQL mapping functions, each ESQL function call is converted to an XPath expression, cast type function, or to a Custom XPath transform in the converted map. For each expression, xs:type function, or Custom XPath transform in the converted map, complete the following steps:
    1. Check that the expression, xs:type function, or Custom XPath transform re-creates the required behavior.

      If your ESQL mapping function has optional input parameters, you must implement conditions to handle this situation. By default, the conversion process assumes that all input parameters are mandatory.

    2. For each expression, xs:type function, or transform, check that the correct number of inputs is connected.

      In earlier releases of WebSphere® Message Broker Version 8, the number of inputs wired to a transform and required to implement a transformation in a legacy message map was not enforced. When the Graphical Data Mapping editor converts a transform that includes an ESQL mapping function, it creates an XPath function that conforms to the XPath 2.0 specification, and wires the input elements to the transform as defined in the legacy message map. As a result, a converted map might have more inputs than the XPath expression requires, or less inputs than the ones required to perform the calculation. Consequently, the converted map will fail to run when you deploy it.

  2. If there is no XPath equivalent of an ESQL mapping function, the function is replaced with a Task transform in your converted map. You must replace each of these Task transforms with a Custom XPath transform, a Custom Java transform, or a Custom ESQL transform that re-creates the required behavior.
    1. Check the Documentation properties of the transform in the converted map for more information on how the ESQL function was implemented in your legacy message map.

    The following ESQL mapping functions that you can use in a legacy message map have no XPath equivalent in message maps:

    • Certain mathematical functions:
      • ACOS
      • ASIN
      • ATAN
      • ATAN2
      • BITAND
      • BITNOT
      • BITOR
      • BITXOR
      • COS
      • COSH
      • COT
      • DEGREES
      • EXP
      • LN
      • LOG
      • LOG10
      • MOD
      • POWER
      • RADIANS
      • RAND
      • SIGN
      • SIN
      • SINH
      • SQRT
      • TAN
      • TANH
    • Decimal function:
      • TRUNCATE
    • Certain String functions:
      • LTRIM
      • RTRIM
      • TRIM-LEADING
      • TRIM-TRAILING
      • REPLICATE
      • SPACE
      • TRIM-BOTH( Singleton FROM Source )

        The simple form TRIM-BOTH ( Source ) is converted.

    • Certain field functions:
      • ABITSTREAM
      • BITSTREAM
      • SAMEFIELD
    • Certain date time functions:
      • TIMESTAMP
      • CURRENT-GMTDATE
      • CURRENT-GMTTIME
      • CURRENT-GMTTIMESTAMP
    • All INTERVAL- functions
    • The ESQL LIKE function
    • The ESQL FOLLOWING form of the ESQL POSITION function
    • All SQL functions
    • The UUIDASCHAR and UUIDASBLOB functions

What to do next

Continue converting your legacy message map. For more information, see Converting a message map from a .msgmap file to a .map file.