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 » Using a DFDL to output CWF or TDS - is it possible

Post new topic  Reply to topic
 Using a DFDL to output CWF or TDS - is it possible « View previous topic :: View next topic » 
Author Message
aspre1b
PostPosted: Wed Oct 31, 2012 7:41 am    Post subject: Using a DFDL to output CWF or TDS - is it possible Reply with quote

Voyager

Joined: 05 Jul 2007
Posts: 78
Location: Coventry, UK

Sorry if this is an easy one but I have a question about the DFDL parser in Broker 8. The message set appears to be deprecated in Broker 8, although you can enable message set editing in the preferences. Does this mean if I wish to output in different formats (CWF, TDS, etc) I can now use DFDL? I can certainly parse a message using DFDL but I'm having trouble deciding how to output it in different formats as the physical properties aren't there.

I wish to rewrite a Broker 6.1/7 test app in Broker 8 using DFDL:
Input -> Cobol copybook - parser - DFDL
Compute -> set message format to XML1,CWF1 and TDS1
Output -> 3 propagated messages

Do you have to create seperate DFDL for each output format or am I barking up the wrong tree.

Broker v8.0.0
Windows Server 2003 R2
Back to top
View user's profile Send private message
aspre1b
PostPosted: Wed Oct 31, 2012 8:12 am    Post subject: Reply with quote

Voyager

Joined: 05 Jul 2007
Posts: 78
Location: Coventry, UK

I would like to actually output two messages from a single DFDL

similar to:
SET OutputRoot.Properties.MessageFormat = 'CWF1'
PROPAGATE DELETE NONE;
SET OutputRoot.Properties.MessageFormat = 'TDS1'
PROPAGATE DELETE NONE;

I'm guessing I'm barking up the wrong tree as I suspect a DFDL is used to map only a single message type and I should be creating multiple DFDL's for each format.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Wed Oct 31, 2012 8:19 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

You would create, I believe, two separate messages that have different physical characteristics. You could then decide on whether or not you wanted to put those into two separate DFDL files or not.

You can potentially achieve the same effect as using TDS vs CWF by using different Data Format Reference files, and then the only difference between the two messages is which Data Format Reference is used for the defaults for each message.
Back to top
View user's profile Send private message
kimbert
PostPosted: Wed Oct 31, 2012 9:30 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

Good question. Please excuse me while I say a lot of things that you already know, because future readers who encounter this thread may need the info.

Yes, DFDL is the replacement for the MRM CWF/TDS facilities that were provided in v6/v7. MRM continues to be supported and will be for a very long time, but DFDL is the future direction. In almost all cases DFDL is easier to work with, has more powerful facilities for parsing and writing, and executes faster.

MRM XML has been effectively deprecated for new flows since v7.0. Please don't use it. XMLNSC is the only XML domain that you should be using.

The flow that you are migrating is a test flow. That's important to note, because it is doing something that is quite rare. Most flows translate from between a single physical format and XML. Hardly anyone needs to map between two different physical formats that have exactly the same logical structure.
For this reason. DFDL does not have any equivalent of the 'Physical format' feature of MRM. There is simply no compelling need for it. But if you want to do it, then you can create two DFDL xsds with the same internal structure and do something like this:
Code:
SET OutputRoot.DFDL.secondRootName = InputRoot.DFDL.firstRootName


Quote:
I'm guessing I'm barking up the wrong tree as I suspect a DFDL is used to map only a single message type and I should be creating multiple DFDL's for each format.
Correct.
Back to top
View user's profile Send private message
aspre1b
PostPosted: Mon Nov 05, 2012 4:54 am    Post subject: Reply with quote

Voyager

Joined: 05 Jul 2007
Posts: 78
Location: Coventry, UK

@kimbert and @mqjeff - many thanks. I got the sample running importing the same copybook twice and creating two message models, altering each to reflect destination physical format.
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 » Using a DFDL to output CWF or TDS - is it possible
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.