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 » SAP Passthrough Idoc

Post new topic  Reply to topic
 SAP Passthrough Idoc « View previous topic :: View next topic » 
Author Message
sammy_910
PostPosted: Mon Oct 10, 2011 8:25 am    Post subject: SAP Passthrough Idoc Reply with quote

Apprentice

Joined: 16 Dec 2010
Posts: 33

Hi,

I am trying to build 2 messageflows,one with ALE passthrough and the other one which would process a specific Idoc.

SAP ALE Passthrough - Processes all Inbound idocs and sends the message in BLOB format to a specific queue.

Idoc Specific flow - Would process the BLOB message against a message set discovered by the adapter wizard with an MQInput node as the starting point.

The problem is - I can see the message in BLOB format but when the message is getting parsed against the DataObject domain with the messageSet specified the data field is null.

Could anyone please help me out on this?
Back to top
View user's profile Send private message
mqjeff
PostPosted: Mon Oct 10, 2011 8:37 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

http://www-01.ibm.com/support/docview.wss?&uid=swg21177321
Back to top
View user's profile Send private message
marko.pitkanen
PostPosted: Mon Oct 10, 2011 10:14 am    Post subject: Reply with quote

Chevalier

Joined: 23 Jul 2008
Posts: 440
Location: Jamsa, Finland

Hi,

Set parsing time immediate so you can see the DataObject and it's structure at the debug perspective or trace -node.

--
Marko
Back to top
View user's profile Send private message Visit poster's website
whydieanut
PostPosted: Fri Oct 14, 2011 12:11 am    Post subject: Reply with quote

Disciple

Joined: 02 Apr 2010
Posts: 186

See if this helps:

http://www.mqseries.net/phpBB2/viewtopic.php?t=53828&view=next&sid=b0b5d85ad872841833aab5e2087387ee

http://www.mqseries.net/phpBB2/viewtopic.php?t=58262
Back to top
View user's profile Send private message
sammy_910
PostPosted: Mon Oct 17, 2011 12:49 am    Post subject: Reply with quote

Apprentice

Joined: 16 Dec 2010
Posts: 33

@whydieanut : Tried both the ways....but none seems to work...

The problem is when I try to get the same Idoc with the same messageset using ALE mode...the data comes fine.
When when I put to a queue and browse it again in a new flow..the DataObject seems to be null.
Back to top
View user's profile Send private message
whydieanut
PostPosted: Mon Oct 17, 2011 1:03 am    Post subject: Reply with quote

Disciple

Joined: 02 Apr 2010
Posts: 186

My point was that the same Message Set doesn't seem to work for both cases (Normal ALE and Passthrough ALE).

Have a look at the Message in the queue, created by the Passthrough Adapter Flow.
It should be in human readable form like this:

Code:

EDI_DC40  1300000000000202         


Set the Message format to 'SAP ALE IDoc' on the MQ Input Node of the second flow.
Back to top
View user's profile Send private message
sammy_910
PostPosted: Mon Oct 17, 2011 8:14 am    Post subject: Reply with quote

Apprentice

Joined: 16 Dec 2010
Posts: 33

I tried all of that :

The first flow has the following code :

SET InputLocalEnvironment = null;
DECLARE Idoctype CHARACTER;

DECLARE xsiNameSpace CHARACTER;


SET xsiNameSpace = 'http://www.ibm.com/xmlns/prod/websphere/j2ca/sap/sapgenericidocobject';
DECLARE xsi NAMESPACE xsiNameSpace;

CREATE LASTCHILD OF OutputRoot DOMAIN 'BLOB';

-- Use IDOC Type to populate MQ Queue Name

SET OutputRoot.BLOB.BLOB = CAST(InputRoot.DataObject.xsi:SapGenericIDocObject.IDocStreamData as BLOB);

SET OutputRoot.Properties.MessageSet = '';
SET OutputRoot.Properties.MessageType = '';
SET OutputRoot.Properties.MessageFormat = '';

SET Idoctype = InputRoot.DataObject.xsi:SapGenericIDocObject.IDocType;

SET OutputLocalEnvironment = NULL;

SET OutputLocalEnvironment.Destination.MQ.DestinationData[1].queueName= InputRoot.DataObject.xsi:SapGenericIDocObject.IDocType;

And the second flow starts with an MQInput noe with Message Domain set as DataObject and Message Format set as SAP ALE Idoc.

Still with no luck!!!
Back to top
View user's profile Send private message
smdavies99
PostPosted: Mon Oct 17, 2011 8:26 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.

What is the Exception being thrown in the second flow?
What does the output message look like when views using something like RFHUTIL?

hint,
Please put your code inside 'Code' tags. Doing this makes it a lot easier to read and follow.
_________________
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
sammy_910
PostPosted: Tue Oct 18, 2011 1:15 am    Post subject: Reply with quote

Apprentice

Joined: 16 Dec 2010
Posts: 33

@smdavies99,

There is no exceptionlist,Only the DataObject tree is blank when it passes through the MQInput node in the second flow.

A part of the message which is input to the MQInput node looks like this:

Code:
00000000 <NS1:SapOrders05 xmlns:NS1="http
00000032 ://www.ibm.com/xmlns/prod/websph
00000064 ere/j2ca/sap/saporders05"><SAPTr
00000096 ansactionID>AC13AE1000024E95733A
00000128 7706</SAPTransactionID><SapOrder
00000160 s05IDocBO><SapIDocControlRecord>
00000192 <ReceiverPort>A000000365</Receiv
00000224 erPort><PartnerTypeOfSender>LS</
00000256 PartnerTypeOfSender><PartnerFunc


Any hints ??[/quote]
Back to top
View user's profile Send private message
smdavies99
PostPosted: Tue Oct 18, 2011 2:57 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.

So you are reading A BLOB message with the MQINput Node.

What are you trying to do with it then?

You can view the 'xml' structure of the message using RFHUTIL...
_________________
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
sammy_910
PostPosted: Tue Oct 18, 2011 3:11 am    Post subject: Reply with quote

Apprentice

Joined: 16 Dec 2010
Posts: 33

Hi smdavies99,

Actually the first flow is the generic Idoc routing flow in which I convert the Idoc data to BLOB and send it to a queue.

In the secong flow ,the MQInput node reads the message from the queue and parses it against a messageset which has been discovered by the adapter wizard.The message domain is set as DataObject and message Format as SAP ALE Idoc in this MQInput node.

The only problem is that the BLOB message is not getting parsed due to which my DataObject tree is null.
Back to top
View user's profile Send private message
smdavies99
PostPosted: Tue Oct 18, 2011 4: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.

Where are you trying to do the parse?
Where are you trying to set the message domain?

did you configure the message set in the MQInput Node. A little tip here, is to set the Domain to XMLNSC. We don't really bother with setting the domain to DataObject in any of our SAP work.
From your dump above, the data is XML structured.

I can't help wondering if you are getting a little confused.

In the WMQ world (ie, data on a queue), everything is a BLOB. WMQ does not care if it is XML, Gobbledegook or even Krypton formatted. It is just the payload.
When yo read the message with thr MQInput node, you have a number of options for the message domain. One is BLOB and the payload is then passed 'as is'. Another is XMLNSC. You can apply your message model at this time. you could also do validation.
_________________
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
sammy_910
PostPosted: Tue Oct 18, 2011 5:43 am    Post subject: Reply with quote

Apprentice

Joined: 16 Dec 2010
Posts: 33

Strange but True ....

Just to close the thread....On setting the parse timing to "Immediate" in my MQInput node solved the entire issue.

Thanks a lot to smdavies99 and others for their valuable inputs.
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 » SAP Passthrough Idoc
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.