Author |
Message
|
akbardar |
Posted: Mon Mar 03, 2014 9:30 am Post subject: Message Broker SAP Adapter 'Unconvertable character' |
|
|
Novice
Joined: 05 Apr 2006 Posts: 21 Location: New Haven, CT
|
I started getting following error in production after data is fetched from SAP through SAP Adapter. I did not change anything and SAP is not changed as well. Can you folks tell, why am I getting this? I know that something changed, now I have to figure out.
( ['MQROOT' : 0x112a35b50]
(0x01000000:Name):RecoverableException = (
(0x03000000:NameValue):File = '/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 = 'SAPJBD_SAPTOBrokerFlow#FCMComposite_1_3' (CHARACTER)
(0x03000000:NameValue):Label = 'SAPJBD_SAPTOBrokerFlow.Capture Pre FLow' (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 = '/build/S610_P/src/MTI/MTIforBroker/GenXmlParse
r4/ImbXMLNSCParser.cpp' (CHARACTER)
(0x03000000:NameValue):Line = 737 (INTEGER)
(0x03000000:NameValue):Function = 'ImbXMLNSCParser::refreshBitStreamFromElementsC
ommon' (CHARACTER)
(0x03000000:NameValue):Type = 'ComIbmSAPInputNode' (CHARACTER)
(0x03000000:NameValue):Name = 'SAPJBD_SAPTOBrokerFlow#FCMComposite_1_15' (CHA
RACTER)
(0x03000000:NameValue):Label = 'SAPJBD_SAPTOBrokerFlow.From SAP' (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 = '/build/S610_P/src/CommonServices/ImbConverter.cpp' (CHAR
ACTER)
(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 = '2019' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = '003c004e00530031003a005300610070005a0072006500630072007500 _________________ AkBar Dar
IT Administrator |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Mar 03, 2014 10:39 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Looks like bad field content. Apparenty an integer was expected but the data was character?  _________________ MQ & Broker admin |
|
Back to top |
|
 |
akbardar |
Posted: Mon Mar 03, 2014 10:44 am Post subject: |
|
|
Novice
Joined: 05 Apr 2006 Posts: 21 Location: New Haven, CT
|
So; you are suggesting that there is a bad data comming from SAP. Message is failing when it's writing to the Queue as is without any changes. Is there any way to figure out what data is bad?
Regards,
AkBar Dar _________________ AkBar Dar
IT Administrator |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Mar 03, 2014 10:48 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
most probably your data model...
Did SAP implement a different version of the IDOC?  _________________ MQ & Broker admin |
|
Back to top |
|
 |
akbardar |
Posted: Mon Mar 03, 2014 10:50 am Post subject: |
|
|
Novice
Joined: 05 Apr 2006 Posts: 21 Location: New Haven, CT
|
SAP Admin won't admit that they have changed any iDocs structure. Can I see the input data? All I get bunch of binary code on the exception Root.
Please advise.
Regards,
AkBar Dar _________________ AkBar Dar
IT Administrator |
|
Back to top |
|
 |
kimbert |
Posted: Mon Mar 03, 2014 1:34 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Are you able to get a user trace of the error? It would probably be very useful. _________________ Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too. |
|
Back to top |
|
 |
mqsiuser |
Posted: Tue Mar 04, 2014 12:33 am Post subject: Re: Message Broker SAP Adapter 'Unconvertable character' |
|
|
 Yatiri
Joined: 15 Apr 2008 Posts: 637 Location: Germany
|
akbardar wrote: |
(0x03000000:NameValue):File = '/build/S610_P/src/DataFlowEngine/ImbMqOutputNode.cpp'
(0x03000000:NameValue):Number = 2230 (INTEGER)
(0x03000000:NameValue):Text = 'Caught exception and rethrowing' (CHARACTER)
(0x03000000:NameValue):Text = 'XML Writing Errors have occurred' (CHARACTER)
(0x03000000:NameValue):Text = 'Unconvertable character' (CHARACTER) |
This looks like as if the msg properly comes from SAP, goes through your flow and on the out-writing/parsing is has trouble.
Look at the message-set (which is used for "out"-parsing)...
... you could have wrote a "transparent" (non-validating... or "not so much"-validating) interface, which means that all fields on the output msg set are STRINGs!
Then SAP and the receiving Application would have to argue (with one another) about WRONG CONTENT.
Do you see a field there which is INT (Integer) ?
You (your company) decided to VALIDATE on the OUT-WRITING: NOW you should better have something in place (e.g. full msg-logging before and after the flow(s)) to investigate.
If you validate within your broker platform and throw an exception (stopping the msg between the two systems/partners), then you should be prepared to provide (to both of them) an explanation  _________________ Just use REFERENCEs
Last edited by mqsiuser on Tue Mar 04, 2014 1:19 am; edited 1 time in total |
|
Back to top |
|
 |
kimbert |
Posted: Tue Mar 04, 2014 1:19 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
This is nothing to do with validation. The error says 'Unconvertable character'. So there is a character in the message tree that cannot be converted to the output CCSID.
A user trace would make this obvious. _________________ Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too. |
|
Back to top |
|
 |
mqsiuser |
Posted: Tue Mar 04, 2014 1:23 am Post subject: |
|
|
 Yatiri
Joined: 15 Apr 2008 Posts: 637 Location: Germany
|
@OP: Which CCSID do you use on the out-side ?
Look in the code of the flow, it is set at the beginning.
@Kimbert: If you use 1208 or 1200, then all characters can get converted/are captured/covered ?... or can this ("Unconvertable Character") still/also happen with Unicode? _________________ Just use REFERENCEs |
|
Back to top |
|
 |
kimbert |
Posted: Tue Mar 04, 2014 1:33 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
@mqsiuser: UTF-8, UTF-16 and UTF-32 are encodings of the entire Unicode character set. You will never get an 'Unconvertable character' error if the target encoding is one of these.
Older encodings like ASCII, EBCDIC, ISO8859 etc are all 'character sets' and they can only represent a subset of Unicode. The subset is different in each case. Unicode characters outside of their subset will produce an 'Unconvertable character' error. _________________ Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too. |
|
Back to top |
|
 |
akbardar |
Posted: Wed Mar 05, 2014 12:38 pm Post subject: |
|
|
Novice
Joined: 05 Apr 2006 Posts: 21 Location: New Haven, CT
|
Well guys, for your knowledge:
(0x03000000:NameValue):Text = '2019' (CHARACTER)
is a Right Quatation mark, and it cannot be translated from Unicode to codepage 819. And, that's wy Broker is throwing the message back to the SAP Adapter.
So; there is got to be way to send Right Quotation mark thru SAP Adapter.
Any Idea?
Regards
AkBar Dar _________________ AkBar Dar
IT Administrator |
|
Back to top |
|
 |
kimbert |
Posted: Wed Mar 05, 2014 1:50 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
The solution is obvious - choose an output code page that supports all possible characters. See my previous post for details. _________________ Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too. |
|
Back to top |
|
 |
akbardar |
Posted: Wed Mar 05, 2014 7:45 pm Post subject: |
|
|
Novice
Joined: 05 Apr 2006 Posts: 21 Location: New Haven, CT
|
So; where do set the encoding and Character set. can you please send the commands _________________ AkBar Dar
IT Administrator |
|
Back to top |
|
 |
kimbert |
Posted: Thu Mar 06, 2014 12:28 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
You only need to set the CodedCharSetId. In WMB and IIB 'Encoding' is about numbers, not text.
You set it in OutputRoot.Properties. _________________ Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too. |
|
Back to top |
|
 |
akbardar |
Posted: Fri Mar 07, 2014 7:44 am Post subject: |
|
|
Novice
Joined: 05 Apr 2006 Posts: 21 Location: New Haven, CT
|
I am setting the following after i copy input root to output root. Is encoding ok or should I keep it zero?
CALL CopyMessageHeaders();
CALL CopyEntireMessage();
SET OutputRoot.Properties.Encoding = 819;
SET OutputRoot.Properties.CodedCharSetId = 1208;
Regards,
AkBar Dar _________________ AkBar Dar
IT Administrator |
|
Back to top |
|
 |
|