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 » IIB 9.0.0.2 BLOB to XML with datatypes

Post new topic  Reply to topic
 IIB 9.0.0.2 BLOB to XML with datatypes « View previous topic :: View next topic » 
Author Message
ChiefBrody
PostPosted: Wed Mar 18, 2015 5:16 am    Post subject: IIB 9.0.0.2 BLOB to XML with datatypes Reply with quote

Newbie

Joined: 18 Mar 2015
Posts: 3

Hi,

we mostly use the IIB 9.0.0.2 to communicate between C/S-systems and the IBM mainframe. Sometimes we run into the problem that we get characters from the C/S-system like "ě", that can't be mapped to EBCDIC 1141 and vice versa.
We have now designed our own CCSID that maps these characters to harmless codepoints ("ě" => "e"). This works fine for single string-fields but not for xml-messages in complete.

First approach:

Our plan was to make a BLOB from the incoming SOAP- or XML-message with our self designed CCSID an then to "reparse" the "cleaned" BLOB to an XML. This also works, but unfortunately the datatypes get lost. The resulting XML has only character fields.

Here's the code I tried in a compute node where validation is set to "value and content":


DECLARE options INTEGER BITOR (RootBitStream, ValidateContentAndValue, ValidateException);

DECLARE cleanedBLOB BLOB ASBITSTREAM(InputRoot.XMLNSC, InputRoot.Properties.Encoding, SelfDesignedCCSID, , , , options);

CREATE LASTCHILD OF Environment DOMAIN('XMLNSC') PARSE(cleanedBLOB, InputRoot.Properties.Encoding, InputRoot.Properties.CodedCharSetId, , , , options);

I tried this also with the SOAP-parser with the same result.

Is there a way to use the schema information from the wsdl that is present within the application? Most forum posts I've found deal with message set names, but I do not use MRM in IIB 9.0.0.2 as suggested by IBM itself.

Second approach:

We tried to use our self designed CCSID after the mapping, at the point where we make a BLOB from the mapped DFDL-message with the ASBITSTREAM function. This results in the following error:

ParserException
File:CHARACTER:F:\build\slot1\S900_P\src\MTI\MTIforBroker\DfdlParser\ImbDFDLErrorHandler.cpp
Line:INTEGER:313
Function:CHARACTER:ImbDFDLErrorHandler::handleSerializerErrors
Type:CHARACTER:ComIbmSOAPInputNode
Name:CHARACTER:MyFlow#FCMComposite_1_1
Label:CHARACTER:MyFlow.SOAP Input
Catalog:CHARACTER:BIPmsgs
Severity:INTEGER:3
Number:INTEGER:5832
Text:CHARACTER:An error occurred whilst serializing with DFDL
Insert
Type:INTEGER:5
Text:CHARACTER:CTDV1110E: CTDV1110E : DFDL-Eigenschaft 'encoding' muss ein gültiger IANA-Zeichensatz oder eine gültige ID des codierten Zeichensatzes oder ein Ausdruck sein, der eine der folgenden Möglichkeiten zurückgibt: Codierung '1151'. 痰⥗.
Insert
Type:INTEGER:5
Text:CHARACTER:/DFDL/REQUEST/HEADER/OPERATION


Any ideas?

Thanx
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Wed Mar 18, 2015 5:29 am    Post subject: Reply with quote

Grand High Poobah

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

So you're using a German code page and probably receiving eastern European stuff. Why not keep it in UTF-8 ? Is your MF set to a specific width in bytes? You would then have to check that the width in characters does not exceed the max width in bytes...

Anyways this is the trouble you will always run into when you try to move from a multi-byte character code to a single byte character code...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
ChiefBrody
PostPosted: Wed Mar 18, 2015 11:49 pm    Post subject: Reply with quote

Newbie

Joined: 18 Mar 2015
Posts: 3

Yes, the EBCDIC-CCSID 1141 is for Germany and Austria (extended 273 with € sign). As far as I know there is no EBCDIC-CCSID for eastern European countries. There is a international one, but it does not include all the critical characters.

And yes, we receive eastern European stuff, because our C/S-systems are running all over Europe for many years and the developers never thought of the mainframe backend, so we not only receive critical data but allready have it stored on databases ... It's a fact we have to deal with.

Well, the MF of course is capable to deal with multi-byte character codes but are actually running more than 6000 modules are not.

So is there a solution to get a XML-message from a BLOB that includes alle the datatypes corresonding to a xml schema?
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Thu Mar 19, 2015 5:08 am    Post subject: Reply with quote

Grand High Poobah

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

ChiefBrody wrote:
Yes, the EBCDIC-CCSID 1141 is for Germany and Austria (extended 273 with € sign). As far as I know there is no EBCDIC-CCSID for eastern European countries. There is a international one, but it does not include all the critical characters.

And yes, we receive eastern European stuff, because our C/S-systems are running all over Europe for many years and the developers never thought of the mainframe backend, so we not only receive critical data but allready have it stored on databases ... It's a fact we have to deal with.

Well, the MF of course is capable to deal with multi-byte character codes but are actually running more than 6000 modules are not.

So is there a solution to get a XML-message from a BLOB that includes alle the datatypes corresponding to a xml schema?


Thanks for your precision, but your question is completely twisted and specious. The datatype you are referring to is text. The text comes from eastern European countries and has characters that do not translate into your CCSID of choice. This is not about booleans or number formatting.
You will just have to live with the fact. And do some research, I believe there do exist some EBCDIC CCSIDs for Slavic countries and such that would potentially cover your needs... Now you may not have those character sets installed on your MF... That is a different story...
Have fun
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
ChiefBrody
PostPosted: Thu Mar 19, 2015 12:18 pm    Post subject: Reply with quote

Newbie

Joined: 18 Mar 2015
Posts: 3

Sorry, but the question that I've posted got out of focus. Any discussion about the capabilities of our mainframe or possible EBCDIC-CCSIDs doesn't help me.

My question was, if it's possible to get a schema validated xml with correct datatypes from a BLOB? If you don't know an answer - no problem.

Anyway, today we found a solution/workaround for our problem, that does exactly what we want.

Thanx for your efforts.
Back to top
View user's profile Send private message
kimbert
PostPosted: Thu Mar 19, 2015 1:44 pm    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

Quote:
today we found a solution/workaround for our problem, that does exactly what we want
Would you mind sharing the details for the benefit of others who visit this forum?
_________________
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
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » IIB 9.0.0.2 BLOB to XML with datatypes
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.