Resolving ESQL problems when developing message flows

This topic contains advice for dealing with some common ESQL problems that can arise when developing message flows:

A Routine not defined error message is issued in ESQL when you move a routine

Procedure

  • Scenario: A Routine not defined error message is displayed in ESQL when you move a routine from one schema to another.
  • Explanation: If a routine that was referenced by code in one schema is moved to another schema, where it is still visible, a false error is generated stating that the routine cannot be resolved.
  • Solution: Clean the project by clicking Project > Clean.

The product fails to respond when you paste ESQL statements from Adobe Reader

Procedure

  • Scenario: When you copy and paste certain ESQL statements from Adobe Reader into the ESQL editor, IBM® App Connect Enterprise stops responding.
  • Explanation: This problem occurs when you paste text directly from Adobe Reader into either the ESQL editor or the Java™ editor.
  • Solution: To work around this problem, either enter the text manually, or copy and paste it to a text editor (such as Notepad), then perform another copy and paste action from there.

You do not know how message flows handle the code page of ESQL files

Procedure

  • Scenario: You do not know how message flows handle the code page of ESQL files.
  • Solution: The code page of an ESQL file is the code page of the IBM App Connect Enterprise Toolkit on which the file is created. You must deploy a message flow using an ESQL file on an IBM App Connect Enterprise Toolkit with the same code page setting as the ESQL file. When multiple ESQL files are involved in a single compiled message flow (.cmf) file, all these ESQL files must be in the same code page.

You do not know the naming restrictions for ESQL procedures and functions

Procedure

  • Scenario: You do not know the restrictions for choosing names for ESQL modules or schema scope ESQL and mapping procedures and functions.
  • Solution: Module and schema scope procedures and functions cannot have names starting with IBM_WBIMB_ because IBM_ is reserved for IBM use, and IBM_WBIMB_ is reserved for IBM App Connect Enterprise.

Error message BIP5431 is issued and the integration node fails

Procedure

  • Scenario: Error message BIP5431 is displayed and the integration node fails.
  • Explanation: When setting output message properties, you have specified an incorrect physical format name for the message format.
  • Solution: The name that you specify for the physical layer must match the name that you have defined for it. The default physical layer names are Binary1, XML1 and Text1.

You are unable to call Java from ESQL

Procedure

  • Scenario: Your Java class files are not being found.
  • Explanation: When creating the class files, you have not placed them in the correct location within the system CLASSPATH.
  • Solution: See the CREATE PROCEDURE statement for further information.

Error message BIP3203 is issued: Format expression is not a valid FORMAT expression for converting expression to type

Procedure

  • Scenario: Your format expression contains an unrecognized character for the conversion.
  • Explanation: Your format expression for a numeric conversion was used to convert to or from a DATE, TIME, TIMESTAMP, GMTTIME or GMTTIMESTAMP variable. Another possible explanation is that your format expression for a DateTime conversion was used to convert to or from an INTEGER, DECIMAL or FLOAT variable.
  • Solution: Replace the format expression with one from the applicable types. For more information about valid data types and expressions, see the ESQL reference topic.

Error message BIP3204 is issued: Input expression does not match FORMAT expression. Parsing failed to match

Procedure

  • Scenario: You have used an input string that does not match the format expression.
  • Explanation: Your format expression contains data that does not match the current element of the format expression.
  • Solution: Either rewrite the format expression to match the input data, or modify the input data to match the format expression. For more information about valid data types and expressions, see the ESQL reference topic.

The CAST function does not provide the expected DST offset for non-GMT time zones

Procedure

  • Scenario: You are using the CAST function to convert a string to a TIME variable, in an integration node that is running in a time zone other than GMT. The daylight saving time (DST) offset is not correctly calculated.
  • Explanation: If no time zone is associated with the time string passed to CAST, it is converted to GMT time. If no date is supplied, the current system date is assumed.
  • Solution: Specify the correct time zone and date. See Formatting and parsing dateTimes as strings for more information.

Error message BIP3205 is issued: The use of a FORMAT expression is not allowed when converting

Procedure

  • Scenario: You have used a format expression when it is not applicable, for example when converting from decimal to integer.
  • Explanation: The use of format expressions is limited to casting between datetime and string values or numeric and string values. Your format expression cannot be applied in this case.
  • Solution: Either remove the FORMAT clause, or change the parameters. For more information about valid data types and expressions, see the ESQL reference topic.