|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
XML Payload transform to COBOL Copybook |
« View previous topic :: View next topic » |
Author |
Message
|
dmw1986 |
Posted: Wed Sep 24, 2008 6:55 am Post subject: XML Payload transform to COBOL Copybook |
|
|
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 |
|
 |
kimbert |
Posted: Wed Sep 24, 2008 10:36 am Post subject: |
|
|
 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 |
|
 |
Bill.Matthews |
Posted: Wed Sep 24, 2008 3:35 pm Post subject: |
|
|
 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 |
|
 |
dmw1986 |
Posted: Thu Sep 25, 2008 5:28 am Post subject: |
|
|
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 |
|
 |
dmw1986 |
Posted: Thu Sep 25, 2008 5:35 am Post subject: |
|
|
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 |
|
 |
Bill.Matthews |
Posted: Thu Sep 25, 2008 7:20 am Post subject: |
|
|
 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 |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|