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 » namespace does not exist

Post new topic  Reply to topic Goto page Previous  1, 2
 namespace does not exist « View previous topic :: View next topic » 
Author Message
kimbert
PostPosted: Fri Jul 10, 2015 10:08 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5543
Location: Southampton

Have you added a Trace node and looked at the contents of the message tree that you are passing to ASBITSTREAM?

Have you taken that user trace yet? What did it say?

oh - and please do us all the favour of formatting your posts with code tags. It makes it so much more readable for those of us who are trying to help.
_________________
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
fjb_saper
PostPosted: Fri Jul 10, 2015 10:37 am    Post subject: Reply with quote

Grand High Poobah

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

bobbee wrote:
This is a three tier system of message flows. The first tier accepts messages from SAP, does verification and routs it to the proper mid-tier processing. In the validation step it sez,

Code:
If EDI_DC THEN
    .
ELSEIF EDI_DC40 THEN
    .
ELSE Throw exception
END IF.


We are pretty confident all the messages past the first tier are EDI_DC and EDI_DC40.
In fact, I know this message is EDI_DC because the rfc connector setup for my testing is v31h which is EDI_DC. When I get this piece of shit working I will expand and add the code for the EDI_DC40 message processing, what ever that may be.

OK I would have expected you to know a little bit more about IDOC processing. Just to make sure we're all on the same page.

The IDOC is the message
The EDI_DC / EDI_DC40 is the IDOC header and determines the IDOC message type.
The EDI_DD / EDI_DD40 carries the IDOC segments

bobbee wrote:
Now, back to the matter at hand. I have defined structures for both EDI_DC and EDI_DC40. These guys work in all the ESQL and Mapping nodes I have. This particular message is a custom format of an EDI_DC/EDI_DC40 message expected by the application. the applications that are receiving this message, although written in BROKER (External system. Are treating the message which is in DBCS and MBCS(s) as bytes. This message is also compressed which means there are length modifiers embedded in the message. All this needs to be converted from CHAR to BYTE parsing. I did try to do this in a mapping node but it became too complicated. It is much easier in ESQL. So while the form may not be the suggested. It is the direction. I am sure if I was doing this in a mapping node the suggestion would be to do it in ESQL.

So, I need to be able to extract the header which has an explicit length which the DFDL parser certainly knows about. Every attempt to get it to do this has failed. I could write a structure definition to define the particular groups to a single string and be done with it. Rather than take the easy, blunt method I am trying to use IIB features that one would expect there. So if ANYBODY has done this, let me know exactly what you did to get this to work. This is not something I have been working on for 30 minutes and game here to cry that I cannot get it to work. I and two other guys have been beating this for over a week. Something so simple is so complicated. Otherwise this is pure conjecture and I will have to revert to the BLUNT method.

So you need to extract the header which I understand the DFDL parser knows about.
Assumptions
  • The header is a substructure of the EDI_DC/EDI_DC40 structure
  • You have defined a container (message) in DFDL for this header (global element)
  • you have a DFDL message for which the only complex element is this header
  • You are not able to serialize the header once moved from the parsed source to the output tree (extracted)...


So I am going to ask what does the user debug trace show.
Why is it so important that the message for the header have no namespace... I would expect that the serialized blob couldn't care less about any namespace attached to the message.
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
bobbee
PostPosted: Fri Jul 10, 2015 11:31 am    Post subject: Reply with quote

Knight

Joined: 20 Sep 2001
Posts: 546
Location: Tampa

ahhhhh, now I see the problem in the thread. So, I was attempting to get this working. i kept getting a message HEADER-01 not defined to namespace ' '. (Something like that). I finally got rid of that message. Now I am back to what I have seen in the past. To describe this in COBOL I have:

Code:
01 EDI_DC_COMPRESSED
    05  HEADER-01
          10  yadda-1.........
          10  yadda-2.........
          10  yadda-3.........
          10  yadda-4.........
    05  Control-Data.
          10  yadda-5.........
          10  yadda-6.........
          10  yadda-7.........
          10  yadda-8.........
   05  Segments
          10  yadda-9.........
          10  yadda-A.........
          10  yadda-B.........
          10  yadda-C.........


SO. In all the code I have posted I am trying to extract the HEADER-01 group and place that as a bitstream in some variable. Whenever I try this I get HEADER_01, Control-Data and all the Segments which is a variable repeating array that can go to 999,999 segments. In this case it is 34 in my test message.

So, I want to say (paraphrasing here) DECLARE A BLOB = OutputRoot.DFDL.EDI_DC_COMPRESSED.Header_01 and only get Header_01 and it's children in a bitstream.

I know is does not really equal, but in COBOL, which I have not used in scatty-eight years. I would just say.

Code:
A = Header_01.


and A would contain the whole structure of HEADER-01.

I do appreciate the suggestions. I have been going back, implementing them and testing EACH AND EVERY ONE!! Really!! I am at a lost, I have been around the block enough times to know you guys may say something that, if not correct, may spark a thought to the right answer. You know Occam's razor, I believe I am overdoing it and the answer is REALLY simple. I am just missing it. Again................thanks!!!!

Also, sorry about the TAG thing, I have never used them and wouldn't know where to start. Next time I post code I will try. I see them up there.
Back to top
View user's profile Send private message Send e-mail AIM Address
fjb_saper
PostPosted: Fri Jul 10, 2015 10:40 pm    Post subject: Reply with quote

Grand High Poobah

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

OK so to put it really bland
Code:
OutputRoot.DFDL.nsx:somemessagetag.Header1 = InputRoot.DFDL.ns14:EDI_DC_COMPRESSED.ns14:EDI_DC_HEADER_01_COMP

And the DFDL parser should take care of serializing that bunch of data before writing to the queue...

Hope this gets you pointed into the right direction...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
bobbee
PostPosted: Sat Jul 11, 2015 3:44 am    Post subject: Reply with quote

Knight

Joined: 20 Sep 2001
Posts: 546
Location: Tampa

I think adding the HEADER as a global element and thinking about this all night while I lay awake, I came to the realization that somewhere along the line it was looking for a matching XSD. So thinking on the HEADER_01 as global i reverted to building the OutputRoot with the HEADER_01 reference only. That turned out good as that is what I got. One of my other problems was the consistent error of the lacking namespace. this is where I thought it was looking for an XSD to match against the message. So i used the one in hand and crossed my fingers. what ended up in headerCHAR was PERFECT.

The following code worked. I will try to embed it using TAGS. I don't want anyone loosing sleep trying to read my post. Thanks. The Global suggestion was good. My walking dead thinking was confirmed this am by the condescending 'really bland' suggestion this morning as I was going through my emails at 5AM. It's ok, I have thick skin and have also been in a position when dealing with an idiot.

Thanks. Hope this benefits someone else.

Code:

      IF InputRoot.MQRFH2.usr.iDOCType = 'EDI_DC' THEN
         CREATE LASTCHILD OF Environment DOMAIN('DFDL')
                PARSE(InputRoot.BLOB.BLOB CCSID 1208 ENCODING 273
             TYPE '{http://www.ibm.com/dfdl/SAP/IDoc/ALE}:EDI_DC_COMPRESSED');
      ELSE
         CREATE LASTCHILD OF Environment DOMAIN('DFDL')
                PARSE(InputRoot.BLOB.BLOB CCSID 1208 ENCODING 273
             TYPE '{http://www.ibm.com/dfdl/SAP/IDoc/ALE}:EDI_DC40_COMPRESSED');
      END IF;
      

   DECLARE parseOptions INTEGER FolderBitStream; 
        DECLARE headerBLOB BLOB;
        DECLARE headerCHAR CHAR;
        CREATE LASTCHILD OF OutputRoot DOMAIN('DFDL');
        Set OutputRoot.DFDL.ns14:EDI_DC_COMPRESSED.ns14:EDI_DC_HEADER_01_COMP = Environment.DFDL.ns14:EDI_DC_COMPRESSED.ns14:EDI_DC_HEADER_01_COMP;
         
        SET headerBLOB = ASBITSTREAM(OutputRoot.DFDL.ns14:EDI_DC_COMPRESSED.ns14:EDI_DC_HEADER_01_COMP
                            OPTIONS parseOptions
                            CCSID InputRoot.Properties.CodedCharSetId
                            ENCODING InputRoot.Properties.Encoding);

        SET headerCHAR = CAST(headerBLOB AS CHARACTER CCSID InputRoot.Properties.CodedCharSetId
                                         ENCODING InputRoot.Properties.Encoding);


Somewhere in MQSERIES.net is a post about DFDL not supporting 'FolderBitStream'. Find it and remove it. Guess it is my own fault as I should have looked at the date. But when a God speaks, you listen. (LOL) I was told by your pal and remaining authority, to use it. I knew I needed it but was at a loss to see a work around. I did try a final test without that option. It blew up.

NOTE:
I am on this project and typically I am a Solution Architect and I tell developers what to do. On this project I am both. So as always happens I am re-learning alot about concrete instead of blue prints. i don't know how many times I can say this......Thanks for your help. ALL.
Back to top
View user's profile Send private message Send e-mail AIM Address
fjb_saper
PostPosted: Sat Jul 11, 2015 7:50 am    Post subject: Reply with quote

Grand High Poobah

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

bobbee wrote:
My walking dead thinking was confirmed this am by the condescending 'really bland' suggestion this morning as I was going through my emails at 5AM. It's ok, I have thick skin and have also been in a position when dealing with an idiot.

Sorry but you're reading way more into the "condescending" as there was. It was in no way meant to be condescending... just bland as opposite to inspired... I just thought you'd come back and tell me you had tried it and why it wasn't working for you...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
smdavies99
PostPosted: Sat Jul 11, 2015 9:25 am    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

bobbee wrote:
So as always happens I am re-learning alot about concrete instead of blue prints.


And concrete without the correct ratios of Cement, Water and Sand/Aggregate is a disaster waiting to happen.

I've always found interfacing with SAP is a mixture of Black Magic, wishful thinking and Luck espcially with IDOCs.
I thought that SAP wanted to get rid of them years ago? Shows that it has been a long time since I used them.
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
bobbee
PostPosted: Sat Jul 11, 2015 9:31 am    Post subject: Reply with quote

Knight

Joined: 20 Sep 2001
Posts: 546
Location: Tampa

Ok, apologize, text is such an ineffective emotional conduit.

Actually yours, with kim's suggestion was the key. I miss having access to him. Hope he is doing well. I am happy that this finally put to bed. I am embarrassed to say it took me near 2 weeks to get this working. I was doing another million things, but.......

This remindss me of the base XSD for the compressed of the iDoc that this came from that was such a effort.

What did they say in the presentations. "Making the easy things easier and making the hard things easy." Words to die by. Again thanks, some drugs and I will sleep soundly tonight.

Back to top
View user's profile Send private message Send e-mail AIM Address
Display posts from previous:   
Post new topic  Reply to topic Goto page Previous  1, 2 Page 2 of 2

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » namespace does not exist
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.