Posted: Tue Nov 22, 2005 5:18 am Post subject: Remove logical fields when physically rendered
Novice
Joined: 22 Nov 2005 Posts: 10 Location: UK
I've got a flow that handles many different message types, parsing use the ESQL CREATE .. PARSE, basing message type on a field in the RFH2 header. That all works fine.
But as an enhancement what I would like to do now is be able to specify a different message set in the properties folder to be able to cause some of the logical fields to be removed (the message type would still have the same name). This would allow me to use the flow to deliver the same logical message to different applications but with some applications not receiving some of the information.
All of the messages are defined in the MRM. Its like I'd like to be able to specify the complex types as having Compositon=sequence and Validation=Closed++ with this option ensuring that the fields defined are present but any extra are dropped.
I'm thinking it can't be done at the render stage from what I've tried/read but wondered if anyone else had cracked it. It seems a basic thing to be able to do but I know that this doesn't always imply that it is. Because of the message naming standard I could do it in ESQL or XSLT for my current need. But walking down the structures in ESQL and testing names though easy will probably have some performance impact. I haven't done enough with XSLT to know whether it would have the same performance impact but I'd expect so. (Not being able to manage the XSLT deployment in the bar on the v5 we have here also puts me off that)
You won't be able to delete information from the physical message using message sets, that I know of.
If the bitstream doesn't match the model, then you will get runtime errors.
You can create different messages, some of which have "filler" type fields that represent the information you don't want. _________________ I am *not* the model of the modern major general.
What type of physical message are you using?
If you have CWF style (fixed length) messages then what you describe could be acheived by use of skip count.
With different message types skipping (and so not including in the logical message) some data.
The message type is coming in as CWF so I might be able to use a variation on that thanks.
To explain a little more just in case it suggests a better way...
An example where I might do this is on an account read service. I read back all details but some applications aren't to get account balance so I'd like to give them a message that omits this. If I could just control this through the MRM rather than ESQL it sounds easier to maintain to me. Just haven't found an easy way.
Since some apps might need all of the info I don't really want to skip any at the initial parse stage. From what you say though if I go through another render/parse with an artificial CWF layer I could then skip the data in some fields and by marking the fields as optional in XML that could work.
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