ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Issue with SAP Input Adapter : Unconvertable character

Post new topic  Reply to topic Goto page 1, 2  Next
 Issue with SAP Input Adapter : Unconvertable character « View previous topic :: View next topic » 
Author Message
hellobond070
PostPosted: Mon Jul 26, 2010 3:15 pm    Post subject: Issue with SAP Input Adapter : Unconvertable character Reply with quote

Centurion

Joined: 18 Nov 2009
Posts: 118

Hi everyone,

I am getting an error with few IDOCs which comes in the messsage flow using SAP Input adapter.

I tried searching and found the below links which are very close to my problem. But couldn't really find any solution.
http://www.mqseries.net/phpBB/viewtopic.php?p=212907&sid=fac4372d0b1b45fdc2e5913a4ce5bc9e

How do I actually change the ccsid and encoding ?? Can I do it at SAPInput node ??

My message flow is as below :
SAPInput Node -> MQOutput Node

The message flow throws an error at MQOutput node everytime this IDOC is triggered with strange data.

Does anyone have any suggestion/solutions
Back to top
View user's profile Send private message
hellobond070
PostPosted: Mon Jul 26, 2010 3:58 pm    Post subject: Reply with quote

Centurion

Joined: 18 Nov 2009
Posts: 118

I tried the below code to change properties, but I get 0 byte output message in the queue


Code:
SET OutputRoot.Properties.CodedCharSetId = 1208;
SET OutputRoot.Properties.Encoding = 546;
SET OutputRoot.DataObject = CAST(InputRoot.DataObject AS BLOB CCSID 1208);
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Mon Jul 26, 2010 7:28 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

As you should. Check it out with a trace node. You need to get the tree right, including the namespace...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
flahunter
PostPosted: Mon Jul 26, 2010 8:03 pm    Post subject: Reply with quote

Acolyte

Joined: 30 Oct 2008
Posts: 62

Quote:
SET OutputRoot.DataObject = CAST(InputRoot.DataObject AS BLOB CCSID 1208);


DataObject = BLOB? It's wrong.

Try this and see what will happen(I'm not sure )

Code:
SET OutputRoot.DataObject = InputRoot.DataObject
Back to top
View user's profile Send private message
Amitha
PostPosted: Tue Jul 27, 2010 5:19 am    Post subject: Reply with quote

Voyager

Joined: 20 Nov 2009
Posts: 80
Location: Newyork

Are you trying to output SAPInput message to an Queue?

what is the CCSID set by the SAP, it is usually UTF-8(1208) . In that case you dont need any compute node to change the CCSID. So,you just need to connect SAPInput node out terminal to MQOutput node.
Back to top
View user's profile Send private message Send e-mail
hellobond070
PostPosted: Tue Jul 27, 2010 6:06 am    Post subject: Reply with quote

Centurion

Joined: 18 Nov 2009
Posts: 118

First the flow was just, SAPInput node -> MQoutput node

BUt due to this character issue, I tried introducing a compute node to change the ccsid
Back to top
View user's profile Send private message
AndreasMartens
PostPosted: Tue Jul 27, 2010 6:09 am    Post subject: What's the actual problem Reply with quote

Acolyte

Joined: 30 Jan 2006
Posts: 65
Location: Hursley, UK

I think we're jumping to conclusions here...
- What's the exact error you're seeing?
- Where is the error being emitted from?

cheers
Back to top
View user's profile Send private message MSN Messenger
hellobond070
PostPosted: Tue Jul 27, 2010 7:32 am    Post subject: Reply with quote

Centurion

Joined: 18 Nov 2009
Posts: 118

Hi everyone,

Sticking my exception I am getting below.

We have a IDOC coming in from SAP input node going to MQoutput node.

THe error is getting thrown at MQOutput node and the IDOC is rolling back in SAP.

Please advise.


Quote:
(0x01000000:Name):RecoverableException = (
(0x03000000:NameValue):File = 'F:\build\S610_P\src\DataFlowEngine\ImbMqOutputNode.cpp' (CHARACTER)
(0x03000000:NameValue):Line = 910 (INTEGER)
(0x03000000:NameValue):Function = 'ImbMqOutputNode::evaluate' (CHARACTER)
(0x03000000:NameValue):Type = 'ComIbmMQOutputNode' (CHARACTER)
(0x03000000:NameValue):Name = 'mnm/ABC_SAP_XXXXXX#FCMComposite_1_1' (CHARACTER)
(0x03000000:NameValue):Label = 'mnm.ABC_SAP_XXXXXX.ABC.SAP.WMB.PACKAGEPO' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPv610' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 2230 (INTEGER)
(0x03000000:NameValue):Text = 'Caught exception and rethrowing' (CHARACTER)
(0x01000000:Name ):ParserException = (
(0x03000000:NameValue):File = 'F:\build\S610_P\src\MTI\MTIforBroker\GenXmlParser4\ImbXMLNSCParser.cpp' (CHARACTER)
(0x03000000:NameValue):Line = 737 (INTEGER)
(0x03000000:NameValue):Function = 'ImbXMLNSCParser::refreshBitStreamFromElementsCommon' (CHARACTER)
(0x03000000:NameValue):Type = 'ComIbmSAPInputNode' (CHARACTER)
(0x03000000:NameValue):Name = 'mnm/ABC_SAP_XXXXXX#FCMComposite_1_4' (CHARACTER)
(0x03000000:NameValue):Label = 'mnm.ABC_SAP_XXXXXX.IA_SAP_ALE_XXXXXX_Operations' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPv610' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 5010 (INTEGER)
(0x03000000:NameValue):Text = 'XML Writing Errors have occurred' (CHARACTER)
(0x01000000:Name ):RecoverableException = (
(0x03000000:NameValue):File = 'F:\build\S610_P\src\CommonServices\ImbConverter.cpp' (CHARACTER)
(0x03000000:NameValue):Line = 290 (INTEGER)
(0x03000000:NameValue):Function = 'ImbConverterCPP::internalFromUnicode' (CHARACTER)
(0x03000000:NameValue):Type = '' (CHARACTER)
(0x03000000:NameValue):Name = '' (CHARACTER)
(0x03000000:NameValue):Label = '' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPv610' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 2136 (INTEGER)
(0x03000000:NameValue):Text = 'Unconvertable character' (CHARACTER)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'c300' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = '4c0061006e00640031003e00420052003c002f004c0061006e00640031003e003c005a006c007300630068003e0046003c002f005a006c007300630068003e003c00540065007800740031003e0041
0052002d00560065006e0064006100200041006e00740065006300690070006100640061003c002f00540065007800740031003e003c002f005
300610070005a0073006400740054006100620065006c00610073005a0073006400730054003000340032007a003000300030003e003c005300610070
005a0073006400740054006100620065006c00610073005a0073006400730054003000340032007a003000300030003e003c004d0061006e006400740 ' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 2 (INTEGER)
(0x03000000:NameValue):Text = '437' (CHARACTER)
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Tue Jul 27, 2010 7:38 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

Amitha wrote:
Are you trying to output SAPInput message to an Queue?

what is the CCSID set by the SAP, it is usually UTF-8(1208) . In that case you dont need any compute node to change the CCSID. So,you just need to connect SAPInput node out terminal to MQOutput node.

Don't forget to set OutputRoot.Properties.CodedCharSetId=1208;
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Amitha
PostPosted: Tue Jul 27, 2010 8:01 am    Post subject: Reply with quote

Voyager

Joined: 20 Nov 2009
Posts: 80
Location: Newyork

Add an trace node and extract the ${Root} message.See what is the message coming from SAP and what is the CCSID set.
Back to top
View user's profile Send private message Send e-mail
hellobond070
PostPosted: Tue Jul 27, 2010 9:33 am    Post subject: Reply with quote

Centurion

Joined: 18 Nov 2009
Posts: 118

Hi All,

I found the special character in the input SAP IDOC.
[quote]Ã[/quote]


I changed the data by modifying the special character with a replacement and it worked fine.

Can anyone let me know how can I resolve this issue with ESQL statements and the CCSID I need to use.

Environment details
Broker : 6.1.0.4
Platform : Windows
Back to top
View user's profile Send private message
hellobond070
PostPosted: Tue Jul 27, 2010 9:37 am    Post subject: Reply with quote

Centurion

Joined: 18 Nov 2009
Posts: 118

Even if I use

OutputRoot.Properties.CodedCharSetId=1208;

I get the below error. This is the extrac of trace logs :

Quote:
f004a005f00330041004b004f005200440032003e003c004a005f00330041004b004f005200440033003e003c002f004a005f00330041004b004f005200440033003e003c004d0045004e00470045003e00310'' cannot be converted from Unicode to codepage ''437''.
The source character is an invalid code point within the given codepage.
Correct the application or message flow that generated the message to ensure that all data within the message can be represented in the target codepage.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Tue Jul 27, 2010 10:19 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

hellobond070 wrote:
Even if I use

OutputRoot.Properties.CodedCharSetId=1208;

I get the below error. This is the extrac of trace logs :

Quote:
f004a005f00330041004b004f005200440032003e003c004a005f00330041004b004f005200440033003e003c002f004a005f00330041004b004f005200440033003e003c004d0045004e00470045003e00310'' cannot be converted from Unicode to codepage ''437''.
The source character is an invalid code point within the given codepage.
Correct the application or message flow that generated the message to ensure that all data within the message can be represented in the target codepage.


Well the error message here is quite clear. You are trying to output some kind of multibyte character into a single byte character CCSID (437) which does not cater for the character you are trying to portrait...
So find out what is setting the CCSID to 437 (MS DOS) (maybe just default CCSID of the qmgr?)
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
hellobond070
PostPosted: Tue Jul 27, 2010 3:11 pm    Post subject: Reply with quote

Centurion

Joined: 18 Nov 2009
Posts: 118

Everybody,

Thanks a lot of for your inputs.

I was able to resolve the issue by adding MQMD using ESQL statements and setting CCSID to 819.

I tried using the MQMD header node but got few plugin errors.

Quote:
(0x03000000:NameValue):Function = 'ImbJniNode::evaluate' (CHARACTER)
(0x03000000:NameValue):Type = 'ComIbmMQHeaderNode' (CHARACTER)
(0x03000000:NameValue):Name = 'gtn/VFC_SAP_YOONGC#FCMComposite_1_9' (CHARACTER)
(0x03000000:NameValue):Label = 'gtn.VFC_SAP_YOONGC.MQHeader' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPv610' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 2230 (INTEGER)
(0x03000000:NameValue):Text = 'Caught exception and rethrowing' (CHARACTER)
(0x01000000:Name ):RecoverableException = (
(0x03000000:NameValue):File = 'F:\build\S610_P\src\DataFlowEngine\PluginInterface\com_ibm_broker_plugin_CMbService.cpp' (CHARACTER)
(0x03000000:NameValue):Line = 1861 (INTEGER)
(0x03000000:NameValue):Function = 'ImbJavaExceptionUtils::throwableToNativeException' (CHARACTER)
(0x03000000:NameValue):Type = '' (CHARACTER)
(0x03000000:NameValue):Name = '' (CHARACTER)
(0x03000000:NameValue):Label = '' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPv610' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 4367 (INTEGER)
(0x03000000:NameValue):Text = 'Unhandled exception in plugin method.' (CHARACTER)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'evaluate' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'MQHeader' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'java.lang.NullPointerException' (CHARACTER)
)
(0x01000000:Name ):RecoverableException = (
(0x03000000:NameValue):File = 'F:\build\S610_P\src\DataFlowEngine\PluginInterface\com_ibm_broker_plugin_CMbService.cpp' (CHARACTER)
(0x03000000:NameValue):Line = 1879 (INTEGER)
(0x03000000:NameValue):Function = 'ImbJavaExceptionUtils::throwableToNativeException' (CHARACTER)
(0x03000000:NameValue):Type = '' (CHARACTER)
(0x03000000:NameValue):Name = '' (CHARACTER)
(0x03000000:NameValue):Label = '' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPv610' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 4395 (INTEGER)
(0x03000000:NameValue):Text = 'Unhandled exception in plugin method' (CHARACTER)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'java.lang.NullPointerException' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'com.ibm.broker.transportheadernodes.mq.MQHeaderNode' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'evaluate' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'MQHeaderNode.java' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 2 (INTEGER)
(0x03000000:NameValue):Text = '1074' (CHARACTER)
)
)
Back to top
View user's profile Send private message
flahunter
PostPosted: Tue Jul 27, 2010 6:00 pm    Post subject: Reply with quote

Acolyte

Joined: 30 Oct 2008
Posts: 62

Quote:
I was able to resolve the issue by adding MQMD using ESQL statements and setting CCSID to 819.


How do you know you have resolved this issue, since another issue raised. And I don't think that it's a good idea to use MQHeader node

1. When your message flow is sourced by an MQInput node, the MQMD takes precedence over the Properties folder in terms of value propagation between the folders.
2. When your message flow is sourced from an input node that is not the MQInput node (such as the HTTPInput node or a user-defined input node), the MQMD header does not take precedence over Properties folder .
3. When a MQMD folder is added in a tree that was created by the HTTP Transport, this MQMD does not have control over the Properties folder and the value propagation direction is not MQMD to Properties; it is Properties to MQMD.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Issue with SAP Input Adapter : Unconvertable character
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.