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 » Need Help on Message Set

Post new topic  Reply to topic
 Need Help on Message Set « View previous topic :: View next topic » 
Author Message
GuptaVineet
PostPosted: Tue Jul 19, 2011 12:04 pm    Post subject: Need Help on Message Set Reply with quote

Newbie

Joined: 19 Jul 2011
Posts: 7

Hi

i need help for creating Message Set for following pattern of the data

data1data2

***Start repeat 1 ***

obj1data3data4
obj2data3data4

***End repeat 1 ***
***Start repeat 2 ***

obj1data5
obj2data5
***End repeat 2***

I am using Message Broker 7.0. I am able to specify lengths of MRM-TDS structure but not able to handle ***Start repeat 1*** and ***Start repeat 2***

Can you please help me in this

Thanks
Back to top
View user's profile Send private message
Vitor
PostPosted: Tue Jul 19, 2011 12:14 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

What does the message set you've currently got look like? How does it react to the input data? What solutions have you already tried that haven't worked (so we don't waste time suggesting those)?

Better information, better advice.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
GuptaVineet
PostPosted: Tue Jul 19, 2011 12:32 pm    Post subject: Reply with quote

Newbie

Joined: 19 Jul 2011
Posts: 7

I have tried adding TDS physical format to the message set and define length of each of the data element and then where i specified repeating structure i tried to define it by tag ***START Repeat 1*** and repeating element identifier as <CR><LF> but at FileInput node, it throws following exception CHARACTER:ImbRecoverableException caught from worker->initializeParse/setFIHandler.
Back to top
View user's profile Send private message
kimbert
PostPosted: Wed Jul 20, 2011 5:33 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

Either describe your data format and message set in detail, or else take a debug-level user trace and go through the TDS output line by line.
Back to top
View user's profile Send private message
GuptaVineet
PostPosted: Wed Jul 20, 2011 12:37 pm    Post subject: Reply with quote

Newbie

Joined: 19 Jul 2011
Posts: 7

Hi,

This is real data

Field Posn. Length

Plant code 1 4

Date of Extract 5 8

Time of Extract 13 8



Line 2

Static Text: **START PO HEADER**



Line 3 -> Line 2+nn (nn is number of PO header)

Field Posn. Length Formatting

Order Number 1 12 Left Aligned

Material Number 13 18 Left Aligned

Batch Number 31 10 Left Aligned

Description 41 40 Left Aligned

Legacy Material Number 81 18 Left Aligned

Quantity 99 13 Right Aligned

Unit of Measure 112 3 Left Aligned



Line nn+3

Static Text: **END PO HEADER**



Line nn+4

Static Text: **START PO LINE**



Line nn+5 -> nn+4+mm (mm - number of PO Lines)

Field Posn. Length Formatting

Order Number 1 12 Left Aligned

Allocated Batch 13 10 Left Aligned



Line nn+5+mm

Static Text: **END PO LINE**



Example Message:



US0620110715093822

**START PO HEADER**

Order01 H1234567890 A12345 Test Material Description for order 1 Legacy1 1234.56LTR

Order02 H2342342342 F2342342 This is something else. 1000KG

Order03 F2342 Order03 Material F2343 Description Old Mat Number 1000KG

**END PO HEADER**

**START PO LINE**

Order01Batch1

Order01Batch2

Order03Batch3

**END PO LINE**



I hope now you can understand my problem.

Actually, Now, I try to solve this problem using CWF now and it seems i reached very near to the solution, The only thing, when i specified the repeating instance, I cannot specify repeating reference.
How to calculate repeat reference between two tags

Thanks
Back to top
View user's profile Send private message
kimbert
PostPosted: Thu Jul 21, 2011 11:09 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

Edited to make it readable:

This is real data
Code:
Line 1
Field Posn. Length
Plant code 1 4
Date of Extract 5 8
Time of Extract 13 8

Line 2
Static Text: **START PO HEADER**

Line 3 -> Line 2+nn (nn is number of PO header)
Field Posn. Length Formatting
Order Number 1 12 Left Aligned
Material Number 13 18 Left Aligned
Batch Number 31 10 Left Aligned
Description 41 40 Left Aligned
Legacy Material Number 81 18 Left Aligned
Quantity 99 13 Right Aligned
Unit of Measure 112 3 Left Aligned

Line nn+3
Static Text: **END PO HEADER**

Line nn+4
Static Text: **START PO LINE**

Line nn+5 -> nn+4+mm (mm - number of PO Lines)
Field Posn. Length Formatting
Order Number 1 12 Left Aligned
Allocated Batch 13 10 Left Aligned

Line nn+5+mm
Static Text: **END PO LINE**

Example Message:
Code:
US0620110715093822
**START PO HEADER**
Order01 H1234567890 A12345 Test Material Description for order 1 Legacy1 1234.56LTR
Order02 H2342342342 F2342342 This is something else. 1000KG
Order03 F2342 Order03 Material F2343 Description Old Mat Number 1000KG
**END PO HEADER**
**START PO LINE**
Order01Batch1
Order01Batch2
Order03Batch3
**END PO LINE**


Next time you post data or XML, please use [c o d e] tags.

Thanks
Back to top
View user's profile Send private message
kimbert
PostPosted: Thu Jul 21, 2011 12:36 pm    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

You need to use TDS, not CWF. CWF is for fixed-format data like COBOL or C records. This format is not easy to model correctly - if you need some hints just ask.
Back to top
View user's profile Send private message
GuptaVineet
PostPosted: Mon Jul 25, 2011 10:03 am    Post subject: Reply with quote

Newbie

Joined: 19 Jul 2011
Posts: 7

@ Jedi: thanks a lot for converting my post into readable format.

@All: Also, I tried TDS message set, But i am getting error: "Missing a group indicator for complex type or group

Code:


<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="PO" type="PurchaseOrder">
    <xsd:annotation>
      <xsd:appinfo source="WMQI_APPINFO">
        <MRMessage messageDefinition="/0/PO;XSDElementDeclaration$MRObject"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  <xsd:complexType name="PurchaseOrder">
    <xsd:sequence maxOccurs="1" minOccurs="1">
      <xsd:element name="PlantCode" type="xsd:string">
        <xsd:annotation>
          <xsd:appinfo source="WMQI_APPINFO">
            <tdsElemRep length="4" lengthUnits="Bytes" messageSetDefaultRep="Text5" precision="-1"/>
            <cwfInclRep messageSetDefaultRep="CWF1">
              <cwfSimpleRep encodingNull="NullLogicalValue" mrLengthEncoding="fixedLength" paddingCharacter="NUL" stringJustification="leftJustify" typeName="MRCWFStringRep" width="4"/>
            </cwfInclRep>
          </xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ExtractDate" type="xsd:date">
        <xsd:annotation>
          <xsd:appinfo source="WMQI_APPINFO">
            <tdsElemRep format="yyyyMMdd" length="8" lengthUnits="Bytes" messageSetDefaultRep="Text5" paddingCharacter="SPACE" precision="-1"/>
            <cwfInclRep messageSetDefaultRep="CWF1">
              <cwfSimpleRep format="yyyyMMdd" typeName="MRCWFDateTimeRep">
                <MRCWFStringRep_MRCWFSimpleTD encodingNull="NullPadFill" mrLengthEncoding="fixedLength" paddingCharacter="NUL" stringJustification="leftJustify" width="8"/>
              </cwfSimpleRep>
            </cwfInclRep>
            <xmlInclRep format="yyyyMMdd" messageSetDefaultRep="XML1"/>
          </xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ExtractTime" type="xsd:time">
        <xsd:annotation>
          <xsd:appinfo source="WMQI_APPINFO">
            <tdsElemRep format="HHmmss" length="6" lengthUnits="Bytes" messageSetDefaultRep="Text5" paddingCharacter="SPACE" precision="-1"/>
            <cwfInclRep messageSetDefaultRep="CWF1">
              <cwfSimpleRep format="HHmmss" typeName="MRCWFDateTimeRep">
                <MRCWFStringRep_MRCWFSimpleTD encodingNull="NullPadFill" mrLengthEncoding="fixedLength" paddingCharacter="NUL" stringJustification="leftJustify" width="6"/>
              </cwfSimpleRep>
            </cwfInclRep>
            <xmlInclRep format="HHmmss" messageSetDefaultRep="XML1"/>
          </xsd:appinfo>
        </xsd:annotation>
      </xsd:element>
            <xsd:sequence>
        <xsd:annotation>
          <xsd:appinfo source="WMQI_APPINFO">
            <tdsStructRep dataElementSeparation="FixedLength" delimiter="&lt;CR&gt;&lt;LF&gt;" groupIndicator="**START PO HEADER**" groupTerminator="**END PO HEADER**" messageSetDefaultRep="Text5"/>
            <cwfInclRep messageSetDefaultRep="CWF1" skipCountTrailing="0">
              <cwfSimpleRep/>
            </cwfInclRep>
            <tdsInclRep dataPattern="" messageSetDefaultRep="Text5"/>
          </xsd:appinfo>
        </xsd:annotation>
        <xsd:element maxOccurs="unbounded" name="orderHeader">
          <xsd:annotation>
            <xsd:appinfo source="WMQI_APPINFO">
              <cwfInclRep messageSetDefaultRep="CWF1" skipCountLeading="2" skipCountTrailing="0">
                <cwfSimpleRep/>
              </cwfInclRep>
            </xsd:appinfo>
          </xsd:annotation>
          <xsd:complexType>
            <xsd:sequence maxOccurs="1" minOccurs="1">
              <xsd:element name="orderNumber" type="xsd:string">
                <xsd:annotation>
                  <xsd:appinfo source="WMQI_APPINFO">
                    <tdsElemRep length="12" lengthUnits="Bytes" messageSetDefaultRep="Text5" precision="-1"/>
                    <cwfInclRep messageSetDefaultRep="CWF1">
                      <cwfSimpleRep encodingNull="NullLogicalValue" mrLengthEncoding="fixedLength" paddingCharacter="NUL" stringJustification="leftJustify" typeName="MRCWFStringRep" width="12"/>
                    </cwfInclRep>
                  </xsd:appinfo>
                </xsd:annotation>
              </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
        </xsd:sequence>
  </xsd:complexType>
</xsd:schema>


Message looks like

Code:


US0620110715093822
**START PO HEADER**
Order01     H1234567890      A12345    Test Material Description for order 1   Legacy1                 1234.56LTR
Order02     H2342342342      F2342342  This is something else.                                            1000KG
Order03     F2342            Order03   Material F2343 Description              Old Mat Number             1000KG
**END PO HEADER**




Can you tell me what exactly i am doing wrong...
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Mon Jul 25, 2011 10:35 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

GuptaVineet wrote:
Can you tell me what exactly i am doing wrong...


Have you attended the training?

http://www-304.ibm.com/jct03001c/services/learning/ites.wss/us/en?pageType=course_description&courseCode=WM663

Vitor says: Training .... !!
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
kimbert
PostPosted: Mon Jul 25, 2011 12:23 pm    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

First, you need to decide what the structure of your message tree will look like. I think it should look like this:
Code:
FirstLine
    plantCode
    extractDate
    extractTime
POHeader
    order
        orderNumber
        materialNumber

BatchAllocations
    batch
        orderNumber
        allocatedBatch


Then you need to create a message definition for that logical structure. The key points are:
Code:

- You *must* use TDS. CWF will not work. Trust me on this.
- FirstLine has a complex type with
   dataElementSeparation='Fixed Length'
- POHeader has a complex type with
   dataElementSeparation='All elements delimited'
        delimiter='<CR><LF>'
        Group Indicator='**START PO HEADER** '
        Group Terminator='**END PO HEADER** '
- within POHeader, the 'order' element has a complex type with
        dataElementSeparation='All elements delimited'
        delimiter='<CR><LF>'
- the 'order' element has minOccurs=1, maxOccurs='unbounded'

...and the BatchAllocations structure follows the same pattern. I'll let you work out the details.

Two final points:
a) if it doesn't work ( and it probably will not work first time ) then disconnect the debugger and take a debug-level user trace. Then read the TDS entries in the trace to work out what went wrong.
b) if you post another question, first do a), then quote all error messages in full, and quote any relevant entries from the user trace.

You may have noticed that there is no 'repeat reference' in my proposed message model. That's because TDS can work out how many repeats there are by looking for the Group Terminator.
Back to top
View user's profile Send private message
GuptaVineet
PostPosted: Thu Jul 28, 2011 7:20 am    Post subject: Reply with quote

Newbie

Joined: 19 Jul 2011
Posts: 7

@ Kimbert, Thanks a lot. It works with TDS but after Changing it to Fixed length and then using <CR><LF> at the end of Group Start indicator
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 » Need Help on Message Set
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.