App Connect

 View Only

 Mapping node throwing exception for a fieldname containing '#' - ACE V13.0.6.1

Mohan Varma Valivarthi's profile image
Mohan Varma Valivarthi posted 03/25/26 06:07 PM

Hi,

I’m using an ACE Mapping node with JSON input and output schemas (.json) to perform graphical mapping in ACE 13.0.6.1. Some of the incoming JSON field names contain a ‘#’ character, for example:

{
  "after": {
    "des": "test1",
    "field1": "3",
    "field2": "Y",
    "field3": "Y",
    "field#": "72381001"
  }
}

When I deploy and run the mapping (.map file), the Mapping node fails during evaluation and throws a MbRecoverableException (BIP3946E). The XQuery compiler reports that the ‘#’ symbol is not valid in the generated XPath/XQuery expression:

IXJXE0945E: [ERR 0756] The input symbol '#' is not expected.
SystemID: <mappingFile>; Line#: 30; Column#: 85

This error occurs only for fields whose JSON field names contain the ‘#’ character.

Question: Is there a known limitation in ACE graphical mapping where JSON field names containing special characters (such as ‘#’) are not supported? If so, is there a recommended workaround for handling such fields in Mapping nodes?

Exception details from the Mapping node are included below for reference.

evaluate() is throwing MbRecoverableException  (id=129)
localizedMessage "[BIPmsgs:3946]BIP3946E: Failed to generate mapping routine '{schema}:mappingTable', with the following details: 'IXJXE0800E: [ERR XQ102231][ERR XPST0003] An expression is not a valid instance of the grammar defined for XQuery. \n Cause: 'com.ibm.xltxe.rnm1.xtq.ast.parsers.xpath.ParseException: IXJXE0945E: [ERR 0756] The input symbol '#' is not expected.; SystemID: schema/:mappingTable; Line#: 30; Column# 85''. \n\nThe generation of the specified map has failed. \n\nReview and resolve the problems indicated in the message from the map generation. : Caught BrokerXCIStaticException"
message "[BIPmsgs:3946]BIP3946E: Failed to generate mapping routine '{bfsonline}:CDCEvent2TxServicesMapping_bfsonline_sodtdoc', with the following details: 'IXJXE0800E: [ERR XQ102231][ERR XPST0003] An expression is not a valid instance of the grammar defined for XQuery. \n Cause: 'com.ibm.xltxe.rnm1.xtq.ast.parsers.xpath.ParseException: IXJXE0945E: [ERR 0756] The input symbol '#' is not expected.; SystemID: bfsonline/:CDCEvent2TxServicesMapping_bfsonline_sodtdoc; Line#: 30; Column# 85''. \n\nThe generation of the specified map has failed. \n\nReview and resolve the problems indicated in the message from the map generation. : Caught BrokerXCIStaticException"



RecoverableException

File:CHARACTER:MbErrorHandler.java

Line:INTEGER:120

Function:CHARACTER:prepareMap

Type:CHARACTER:

Name:CHARACTER:

Label:CHARACTER:

Catalog:CHARACTER:BIPmsgs

Severity:INTEGER:3

Number:INTEGER:3946

Text:CHARACTER:Caught BrokerXCIStaticException

Insert

Type:INTEGER:5

Text:CHARACTER:{bfsonline}:CDCEvent2TxServicesMapping_bfsonline_sodtdoc

Insert

Type:INTEGER:5

Text:CHARACTER:IXJXE0800E: [ERR XQ102231][ERR XPST0003] An expression is not a valid instance of the grammar defined for XQuery.

Cause: 'com.ibm.xltxe.rnm1.xtq.ast.parsers.xpath.ParseException: IXJXE0945E: [ERR 0756] The input symbol '#' is not expected.; SystemID: bfsonline/:CDCEvent2TxServicesMapping_bfsonline_sodtdoc; Line#: 30; Column# 85'}

I have created a graphical mapping (,map file) while I deployed and executing it - getting the below exception for the field's with '#' values. Is there any limitation on the ACE for graphical mapping with the '#' values ?

Exception info captured at mapping node :

RecoverableException

File:CHARACTER:MbErrorHandler.java

Line:INTEGER:120

Function:CHARACTER:prepareMap

Type:CHARACTER:

Name:CHARACTER:

Label:CHARACTER:

Catalog:CHARACTER:BIPmsgs

Severity:INTEGER:3

Number:INTEGER:3946

Text:CHARACTER:Caught BrokerXCIStaticException

Insert

Type:INTEGER:5

Text:CHARACTER:{bfsonline}:CDCEvent2TxServicesMapping_bfsonline_sodtdoc

Insert

Type:INTEGER:5

Text:CHARACTER:IXJXE0800E: [ERR XQ102231][ERR XPST0003] An expression is not a valid instance of the grammar defined for XQuery.

Cause: 'com.ibm.xltxe.rnm1.xtq.ast.parsers.xpath.ParseException: IXJXE0945E: [ERR 0756] The input symbol '#' is not expected.; SystemID: bfsonline/:CDCEvent2TxServicesMapping_bfsonline_sodtdoc; Line#: 30; Column# 85'

Kim Meynendonckx's profile image
Kim Meynendonckx

Hi,

It appears that this issue is related to a limitation within the graphical mapping node. When attempting to create the mapping manually inside the node, I encounter an error indicating that the field name is not handled correctly.

When using a JSON schema, the "#" character in the field name does not raise any issues during development in the toolkit. However, the problem only becomes visible during deployment, which suggests that the runtime validation behaves differently from the design-time validation and may enforce stricter rules.

As a possible workaround, you can bypass the graphical mapping node and use ESQL instead. For example:

SET OutputRoot.JSON.Data.after."field#" = InputRoot.JSON.Data.after."field#";

This approach allows you to explicitly reference the field name, including the special character, without triggering the same error. This worked in my test.

I hope this helps. Let me know if you run into any other issues.

Kind regards,
Kim