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 » XML Payload transform to COBOL Copybook

Post new topic  Reply to topic
 XML Payload transform to COBOL Copybook « View previous topic :: View next topic » 
Author Message
dmw1986
PostPosted: Wed Sep 24, 2008 6:55 am    Post subject: XML Payload transform to COBOL Copybook Reply with quote

Apprentice

Joined: 24 Sep 2008
Posts: 35

Hey all, new here. I am transforming a XML message that has a payload to a COBOL Copybook. I am thinking i'll need two compute statements to do this. In that first one i basically mapped the "payload" to the schema. That worked, then in the second i'm going from xml schema to COBOL copybook.. I keep getting this error on the second compute..

Quote:
<?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server</faultcode><faultstring>BIP3113E: Exception detected in message flow WarrantFlow.SOAP Input (broker WBRK61_DEFAULT_BROKER) </faultstring><detail><Text>BIP2230E: Error detected whilst processing a message in node 'WarrantFlow.FileOutput'. : F:\build\S000_P\src\DataFlowEngine\TemplateNodes\ImbOutputTemplateNode.cpp: 306: ImbOutputTemplateNode::processMessageAssemblyToFailure: ComIbmFileOutputNode: WarrantFlow#FCMComposite_1_9
BIP5286E: Writing errors have occurred. : F:\build\S000_P\src\MTI\MTIforBroker\MtiImbParser2\MtiImbParser.cpp: 1865: MtiImbParser::refreshBitStreamFromElements - 9 par: ComIbmSOAPInputNode: WarrantFlow#FCMComposite_1_1
BIP5167E: A Custom Wire Format error occurred during the parsing or writing of message ''msg_CJ37CI80WPQDATA''. : F:\build\S000_P\src\cpi\pwf\cwf\cwfworker.cpp: 428: CWFWorker::write: :
BIP5350E: There was a Custom Wire Format error when writing the message ''msg_CJ37CI80WPQDATA''. : F:\build\S000_P\src\cpi\pwf\cwf\cwfmessage.cpp: 618: CMessage::write: :
BIP5344E: Custom Wire Format output: There is a mismatch between the logical definition and the message tree. : F:\build\S000_P\src\cpi\pwf\cwf\cwfcontext.cpp: 326: CContext::CheckDefaultValue: : </Text></detail></soapenv:Fault></soapenv:Body></soapenv:Envelop


Here is my first compute..

Quote:
-- This file contains ESQL generated from a msgmap mapping file

CREATE COMPUTE MODULE PayloadToXML

CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN

DECLARE xsd NAMESPACE 'http://www.w3.org/2001/XMLSchema';
DECLARE soap NAMESPACE 'http://schemas.xmlsoap.org/wsdl/soap/';
DECLARE tns NAMESPACE 'http://exchanges.mo.gov/Warrant/1.0';
DECLARE ns NAMESPACE 'http://schemas.xmlsoap.org/soap/encoding/';
DECLARE tns1 NAMESPACE 'http://schemas.xmlsoap.org/wsdl/';
DECLARE i NAMESPACE 'http://niem.gov/niem/appinfo/2.0';
DECLARE j NAMESPACE 'http://niem.gov/niem/domains/jxdm/4.0';
DECLARE mo_warrant NAMESPACE 'http://exchanges.courts.mo.gov/warrant/1.0';
DECLARE nc NAMESPACE 'http://niem.gov/niem/niem-core/2.0';
DECLARE s NAMESPACE 'http://niem.gov/niem/structures/2.0';
DECLARE niem_xsd NAMESPACE 'http://niem.gov/niem/proxy/xsd/2.0';
DECLARE twpdes NAMESPACE 'http://niem.gov/niem/twpdes/2.0';
DECLARE ansi_d20 NAMESPACE 'http://niem.gov/niem/ansi_d20/2.0';
DECLARE usps NAMESPACE 'http://niem.gov/niem/usps_states/2.0';
DECLARE iso_639_3 NAMESPACE 'http://niem.gov/niem/iso_639-3/2.0';
DECLARE fbi NAMESPACE 'http://niem.gov/niem/fbi/2.0';
SET OutputRoot.Properties.MessageSet = 'WarrantSchemaMessageSet';
SET OutputRoot.Properties.MessageType = '{http://exchanges.courts.mo.gov/warrant/1.0}:Warrant';
SET OutputRoot.Properties.MessageFormat = 'XML1';
SET OutputRoot.Properties.Encoding = InputRoot.Properties.Encoding;
SET OutputRoot.Properties.CodedCharSetId = InputRoot.Properties.CodedCharSetId;
SET OutputRoot.Properties.Transactional = InputRoot.Properties.Transactional;
SET OutputRoot.Properties.Persistence = InputRoot.Properties.Persistence;
SET OutputRoot.Properties.CreationTime = InputRoot.Properties.CreationTime;
SET OutputRoot.Properties.ExpirationTime = InputRoot.Properties.ExpirationTime;
SET OutputRoot.Properties.Priority = InputRoot.Properties.Priority;
SET OutputRoot.Properties.ReplyIdentifier = InputRoot.Properties.ReplyIdentifier;
SET OutputRoot.Properties.ReplyProtocol = InputRoot.Properties.ReplyProtocol;
SET OutputRoot.Properties.Topic = InputRoot.Properties.Topic;
SET OutputRoot.Properties.ContentType = InputRoot.Properties.ContentType;
SET OutputRoot.Properties.IdentitySourceType = InputRoot.Properties.IdentitySourceType;
SET OutputRoot.Properties.IdentitySourceToken = InputRoot.Properties.IdentitySourceToken;
SET OutputRoot.Properties.IdentitySourcePassword = InputRoot.Properties.IdentitySourcePassword;
SET OutputRoot.Properties.IdentitySourceIssuedBy = InputRoot.Properties.IdentitySourceIssuedBy;
SET OutputRoot.Properties.IdentityMappedType = InputRoot.Properties.IdentityMappedType;
SET OutputRoot.Properties.IdentityMappedToken = InputRoot.Properties.IdentityMappedToken;
SET OutputRoot.Properties.IdentityMappedPassword = InputRoot.Properties.IdentityMappedPassword;
SET OutputRoot.Properties.IdentityMappedIssuedBy = InputRoot.Properties.IdentityMappedIssuedBy;

SET OutputRoot.XMLNSC.j:Warrant = InputRoot.XMLNSC.tns:InitiateWarrantRequest.tns:Payload.mo_warrant:Warrant;

RETURN TRUE;
END;

END MODULE;


And the second compute with just one element mapped as a test..

Quote:
-- This file contains ESQL generated from a msgmap mapping file

CREATE COMPUTE MODULE XMLToCOBOL

CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN

DECLARE xsd NAMESPACE 'http://www.w3.org/2001/XMLSchema';
DECLARE i NAMESPACE 'http://niem.gov/niem/appinfo/2.0';
DECLARE j NAMESPACE 'http://niem.gov/niem/domains/jxdm/4.0';
DECLARE mo_warrant NAMESPACE 'http://exchanges.courts.mo.gov/warrant/1.0';
DECLARE nc NAMESPACE 'http://niem.gov/niem/niem-core/2.0';
DECLARE s NAMESPACE 'http://niem.gov/niem/structures/2.0';
DECLARE niem_xsd NAMESPACE 'http://niem.gov/niem/proxy/xsd/2.0';
DECLARE twpdes NAMESPACE 'http://niem.gov/niem/twpdes/2.0';
DECLARE ansi_d20 NAMESPACE 'http://niem.gov/niem/ansi_d20/2.0';
DECLARE usps NAMESPACE 'http://niem.gov/niem/usps_states/2.0';
DECLARE iso_639_3 NAMESPACE 'http://niem.gov/niem/iso_639-3/2.0';
DECLARE fbi NAMESPACE 'http://niem.gov/niem/fbi/2.0';
SET OutputRoot.Properties.MessageSet = 'WarrantCopyBook';
SET OutputRoot.Properties.MessageType = '{}:msg_CJ37CI80WPQDATA';
SET OutputRoot.Properties.MessageFormat = 'Binary1';
SET OutputRoot.Properties.Encoding = InputRoot.Properties.Encoding;
SET OutputRoot.Properties.CodedCharSetId = InputRoot.Properties.CodedCharSetId;
SET OutputRoot.Properties.Transactional = InputRoot.Properties.Transactional;
SET OutputRoot.Properties.Persistence = InputRoot.Properties.Persistence;
SET OutputRoot.Properties.CreationTime = InputRoot.Properties.CreationTime;
SET OutputRoot.Properties.ExpirationTime = InputRoot.Properties.ExpirationTime;
SET OutputRoot.Properties.Priority = InputRoot.Properties.Priority;
SET OutputRoot.Properties.ReplyIdentifier = InputRoot.Properties.ReplyIdentifier;
SET OutputRoot.Properties.ReplyProtocol = InputRoot.Properties.ReplyProtocol;
SET OutputRoot.Properties.Topic = InputRoot.Properties.Topic;
SET OutputRoot.Properties.ContentType = InputRoot.Properties.ContentType;
SET OutputRoot.Properties.IdentitySourceType = InputRoot.Properties.IdentitySourceType;
SET OutputRoot.Properties.IdentitySourceToken = InputRoot.Properties.IdentitySourceToken;
SET OutputRoot.Properties.IdentitySourcePassword = InputRoot.Properties.IdentitySourcePassword;
SET OutputRoot.Properties.IdentitySourceIssuedBy = InputRoot.Properties.IdentitySourceIssuedBy;
SET OutputRoot.Properties.IdentityMappedType = InputRoot.Properties.IdentityMappedType;
SET OutputRoot.Properties.IdentityMappedToken = InputRoot.Properties.IdentityMappedToken;
SET OutputRoot.Properties.IdentityMappedPassword = InputRoot.Properties.IdentityMappedPassword;
SET OutputRoot.Properties.IdentityMappedIssuedBy = InputRoot.Properties.IdentityMappedIssuedBy;

SET OutputRoot.MRM.CJ37CI80_WARRANTS_FIELDS.CJ37CI80_BOND_AMOUNT = InputRoot.XMLNSC.mo_warrant:Warrant.j:ArrestWarrant.j:WarrantAppearanceBail.j:BailSetAmount;

RETURN TRUE;
END;

END MODULE;
Back to top
View user's profile Send private message
kimbert
PostPosted: Wed Sep 24, 2008 10:36 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

Quote:
just one element mapped as a test.
That might well be the problem. The CWF parser is trying to write a message, and does not have all the information in the message definition. It refuses to write an invalid message ( one which could not be parsed by another application using the same copybook ). So it throws an error.
Solution is to map all of the fields in the message definition.
Back to top
View user's profile Send private message
Bill.Matthews
PostPosted: Wed Sep 24, 2008 3:35 pm    Post subject: Reply with quote

Master

Joined: 23 Sep 2003
Posts: 232
Location: IBM (Retired)

I also have some questions for you to consider:

1. Why did you not use the provided procedure to copy the headers?

Depending on your MQ release & level you do not have to have an MQMD - but, for the moment, that is not your problem since the MRM parser is throwing an exception - because the output message is not fully populated.

2. If you had used the procedure to copy the headers - or at least did a Set OutputRoot.Properties = InputRoot.Properties; - then all that would be needed is to set the MessageSte, Type and Format fields.

3. Why have you done a double transformation of the message? That is also extra work that is not needed.

4. Have you reviewed any of the Message Broker performance documents - available as SupportPacs and also available on the IBM DeveloperWorks website? One item that you will find is that it is not a good practice to have two Compute nodes wired together when one would do the job.

5. When dealing with a Fixed Format message, defined via MRM, you must "build" each field in the message. This can be done by having an associated "INITIAL VALUE" (to use the COBOL term) associated with some fields so that the MRM parser will fill them in ...

BUT - you must build those fields. - That is what Kimbert is telling you.

6. As a final suggestion, when a NAMESPACE definition is needed by multiple Compute nodes (and/or FIlter nodes) - if you put those definitions at the top of the ESQL file (before the CREATE COMPUTE MODULE ...) then they only have to be defined once. That makes it much easier to avoid minor typing errors.

Good Luck
Bill
_________________
Bill Matthews
Back to top
View user's profile Send private message
dmw1986
PostPosted: Thu Sep 25, 2008 5:28 am    Post subject: Reply with quote

Apprentice

Joined: 24 Sep 2008
Posts: 35

Bill.Matthews wrote:
I also have some questions for you to consider:

1. Why did you not use the provided procedure to copy the headers?

Depending on your MQ release & level you do not have to have an MQMD - but, for the moment, that is not your problem since the MRM parser is throwing an exception - because the output message is not fully populated.

I actually used the Map to ESQL plugin to build that ESQL then modified it.. Do I have to map every element in order to even test it? Theres probably 100+ in that cobol copybook..

2. If you had used the procedure to copy the headers - or at least did a Set OutputRoot.Properties = InputRoot.Properties; - then all that would be needed is to set the MessageSte, Type and Format fields.
Like i stated on my previous answer thats the way the ESQL plugin built it, i've literally only had the product 2 weeks, very very new to using it, kind of going on the fly.

3. Why have you done a double transformation of the message? That is also extra work that is not needed.
Could you explain how I could do this in one compute? again very new to the product..

4. Have you reviewed any of the Message Broker performance documents - available as SupportPacs and also available on the IBM DeveloperWorks website? One item that you will find is that it is not a good practice to have two Compute nodes wired together when one would do the job.
Have not but i will definately check them out.. thanks

5. When dealing with a Fixed Format message, defined via MRM, you must "build" each field in the message. This can be done by having an associated "INITIAL VALUE" (to use the COBOL term) associated with some fields so that the MRM parser will fill them in ...

BUT - you must build those fields. - That is what Kimbert is telling you.
So with my cobol include having 100+ elements do i have not map each one? There not all required, maybe only 25-30 are required by this process. what do i do in that instance? Can anyone give me a sample of how to go about this?

6. As a final suggestion, when a NAMESPACE definition is needed by multiple Compute nodes (and/or FIlter nodes) - if you put those definitions at the top of the ESQL file (before the CREATE COMPUTE MODULE ...) then they only have to be defined once. That makes it much easier to avoid minor typing errors.
good to know!

Good Luck
Bill
Back to top
View user's profile Send private message
dmw1986
PostPosted: Thu Sep 25, 2008 5:35 am    Post subject: Reply with quote

Apprentice

Joined: 24 Sep 2008
Posts: 35

Maybe with will give you an example on what this process is doing..

Its coming in as a webservice like this..
Quote:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://exchanges.mo.gov/Warrant/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<tns:InitiateWarrantRequest>
<tns:WarrantHeader>
<tns:MessageKey>MessageKey</tns:MessageKey>
<tns:CourtORI>CourtORI</tns:CourtORI>
<tns:LawEnforcementORI>LawEnforcementORI</tns:LawEnforcementORI>
<tns:CourtCaseId>CourtCaseId</tns:CourtCaseId>
<tns:WarrantNumber>WarrantNumber</tns:WarrantNumber>
</tns:WarrantHeader>
<tns:Payload/>
</tns:InitiateWarrantRequest>
</soapenv:Body>
</soapenv:Envelope>

Now inside payload tag will be another whole XML document with <Warrant> as its beginning and ending tag.. heres an example..
Quote:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://exchanges.mo.gov/Warrant/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<tns:InitiateWarrantRequest>
<tns:WarrantHeader>
<tns:SourceORI>SourceORI</tns:SourceORI>
<tns:DestinationORI>DestinationORI</tns:DestinationORI>
<tns:MessageID>MessageID</tns:MessageID>
<tns:ReferenceMessageId>ReferenceMessageId</tns:ReferenceMessageId>
</tns:WarrantHeader>
<tns:Payload>
<mowarrant:Warrant xsi:schemaLocation="http://exchanges.courts.mo.gov/warrant/1.0 Warrant.xsd" xmlns:mowarrant="http://exchanges.courts.mo.gov/warrant/1.0" xmlns:j="http://niem.gov/niem/domains/jxdm/4.0" xmlns:nc="http://niem.gov/niem/niem-core/2.0" xmlns:s="http://niem.gov/niem/structures/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<nc:Case>
<nc:CaseTrackingID>String</nc:CaseTrackingID>
</nc:Case>
<j:ArrestWarrant>
<nc:ActivityIdentification>
<nc:IdentificationID>String</nc:IdentificationID>
</nc:ActivityIdentification>
<j:CourtOrderIssuingCourt>
<j:OrganizationCategoryNCICORIAgencyCode>token</j:OrganizationCategoryNCICORIAgencyCode>
</j:CourtOrderIssuingCourt>
<j:CourtOrderIssuingDate>
<nc:Date>2001-01-01</nc:Date>
</j:CourtOrderIssuingDate>
<j:CourtOrderRecallDate>
<nc:Date>2001-01-01</nc:Date>
</j:CourtOrderRecallDate>
<j:CourtOrderRecallReasonText>String</j:CourtOrderRecallReasonText>
<j:WarrantAppearanceBail>
<j:BailConditionDescriptionText>String</j:BailConditionDescriptionText>
<j:BailSetAmount>0.0</j:BailSetAmount>
</j:WarrantAppearanceBail>
<j:WarrantExtraditionLimitationCode>1</j:WarrantExtraditionLimitationCode>
<j:WarrantExtraditionLimitationText>String</j:WarrantExtraditionLimitationText>
<j:WarrantLevelText>String</j:WarrantLevelText>
</j:ArrestWarrant>
<j:Offense>
<nc:ActivityIdentification>
<nc:IdentificationID>String</nc:IdentificationID>
</nc:ActivityIdentification>
<nc:IncidentLocation>
<nc:LocationAddress>
<nc:StructuredAddress>
<nc:LocationCityName>String</nc:LocationCityName>
<nc:LocationCountyName>String</nc:LocationCountyName>
<nc:LocationStateUSPostalServiceCode>token</nc:LocationStateUSPostalServiceCode>
</nc:StructuredAddress>
</nc:LocationAddress>
</nc:IncidentLocation>
</j:Offense>
<j:PersonCharge>
<j:ChargeNCICCode>token</j:ChargeNCICCode>
</j:PersonCharge>
<mowarrant:Person s:id="P1">
<nc:PersonAlternateName>
<nc:PersonGivenName>String</nc:PersonGivenName>
<nc:PersonMiddleName>String</nc:PersonMiddleName>
<nc:PersonSurName>String</nc:PersonSurName>
</nc:PersonAlternateName>
<nc:PersonBirthDate>
<nc:Date>2001-01-01</nc:Date>
</nc:PersonBirthDate>
<nc:PersonEthnicityCode>token</nc:PersonEthnicityCode>
<nc:PersonEyeColorCode>token</nc:PersonEyeColorCode>
<nc:PersonHairColorCode>token</nc:PersonHairColorCode>
<nc:PersonHeightMeasure>
<nc:MeasureText>String</nc:MeasureText>
</nc:PersonHeightMeasure>
<nc:PersonName>
<nc:PersonGivenName>String</nc:PersonGivenName>
<nc:PersonMiddleName>String</nc:PersonMiddleName>
<nc:PersonSurName>String</nc:PersonSurName>
<nc:PersonNameSuffixText>String</nc:PersonNameSuffixText>
</nc:PersonName>
<nc:PersonOtherIdentification>
<nc:IdentificationID>String</nc:IdentificationID>
<j:PersonIDCategoryCode>PI</j:PersonIDCategoryCode>
</nc:PersonOtherIdentification>
<nc:PersonSexCode>token</nc:PersonSexCode>
<nc:PersonSSNIdentification>
<nc:IdentificationID>String</nc:IdentificationID>
</nc:PersonSSNIdentification>
<nc:PersonStateIdentification>
<nc:IdentificationID>String</nc:IdentificationID>
</nc:PersonStateIdentification>
<nc:PersonWeightMeasure>
<nc:MeasureText>String</nc:MeasureText>
</nc:PersonWeightMeasure>
<j:PersonAugmentation>
<nc:DriverLicense>
<nc:DriverLicenseIdentification>
<nc:IdentificationID>String</nc:IdentificationID>
<nc:IdentificationExpirationDate>
<nc:Year>2001</nc:Year>
</nc:IdentificationExpirationDate>
<nc:IdentificationSourceText>String</nc:IdentificationSourceText>
</nc:DriverLicenseIdentification>
</nc:DriverLicense>
<j:PersonBirthPlaceCode>token</j:PersonBirthPlaceCode>
<j:PersonFBIIdentification>
<nc:IdentificationID>String</nc:IdentificationID>
</j:PersonFBIIdentification>
</j:PersonAugmentation>
</mowarrant:Person>
<nc:ContactInformation s:id="C1">
<mowarrant:ContactAddress>
<nc:AddressDeliveryPointID>String</nc:AddressDeliveryPointID>
<nc:LocationStreet>
<nc:StreetFullText>String</nc:StreetFullText>
</nc:LocationStreet>
<nc:LocationCityName>String</nc:LocationCityName>
<mowarrant:CountyCode>String</mowarrant:CountyCode>
<nc:LocationStateUSPostalServiceCode>String</nc:LocationStateUSPostalServiceCode>
<mowarrant:AddressTypeCode>String</mowarrant:AddressTypeCode>
</mowarrant:ContactAddress>
</nc:ContactInformation>
<nc:contact admin>
<nc:PersonReference s:ref="P1"/>
<nc:ContactInformationReference s:ref="C1"/>
</nc:contact admin>
</mowarrant:Warrant>
</tns:Payload>
</tns:InitiateWarrantRequest>
</soapenv:Body>
</soapenv:Envelope>

So i was thinking i was going to have to map that "warrant payload" to a schema then from that to the cobol copybook... Does this all make sense?

If you all need any more info to help me please ask, i'm stuck..[/quote]
Back to top
View user's profile Send private message
Bill.Matthews
PostPosted: Thu Sep 25, 2008 7:20 am    Post subject: Reply with quote

Master

Joined: 23 Sep 2003
Posts: 232
Location: IBM (Retired)

Quote:
I actually used the Map to ESQL plugin to build that ESQL then modified it.. Do I have to map every element in order to even test it? Theres probably 100+ in that cobol copybook..


I understand. That plugin was released just before I retired so I did not have time to play with it.

Quote:
So with my cobol include having 100+ elements do i have not map each one? There not all required, maybe only 25-30 are required by this process. what do i do in that instance? Can anyone give me a sample of how to go about this?


Lets discuss these, as well as other points.

If I assume that your Cobol copybook does not make use of a DEFAULT VALUE = on the field definitions, then yes, you must map all 100+ elements.

I'll also make a guess that you have two XSDs, one for the soap request and one for the payload. Since the Mapping node needs a way to know the logical and physical structure, an ideal situation would be to have a single XSD and thus a single message set. While there are other potential solutions, for now - keep things simple.


One point that I forgot to mention: When building the output for Cobol, you must build it in the same physical sequence as the output msg structure. When using the Mapping node, it will do this for you.

Since you are starting from a WebService request, .. and, I assume that you are also using the SoapExtract node to remove the Soap Envelope since I don't see that in your sample.. you will not have an MQMD - which you will need if you are planning on sending the transformed message to your CICS (or IMS) backend - and get an answer back.

Do some searching on MQSeries.net for CREATE and MQMD for some better examples.

I also strongly suggest that you look at the samples that come with Message Broker since some of them will give you specific guidance.

There is another resource that you should investigate - the IBM developerWorks website for Message Broker. Again, lots of examples - from fairly simple to fairly detailed.

For example - this is a simple one (no sample code)
http://www-128.ibm.com/developerworks/webservices/library/ws-soa-msgbroker/

Start here http://www-128.ibm.com/developerworks/websphere/zones/businessintegration/wmb.html - this is a great place to bookmark since it also links to other resources.

The Mapping node does allow you to right click on each field in the output side and create a default value .. so take the time and do that.

Take a look at the plugin that allows to to create/modify/delete message Headers - (I don't remember its name) - that is an easy way to add a MQMD to the output.

My advice - experiment, study, research - and have fun.

Cheers
Bill[/list]
_________________
Bill Matthews
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 » XML Payload transform to COBOL Copybook
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.