Author |
Message
|
pottas |
Posted: Tue May 09, 2006 3:57 am Post subject: Creating idoc Message Sets with .h import files |
|
|
 Disciple
Joined: 27 Oct 2005 Posts: 185 Location: South Africa
|
Guys,
I have a problem creating Message Set definitions using .h files.
I get the following exception: 'Message Id not in CWF File'.
These are the steps I follow:
Create a Message Set Project:
1. Physical Format: CWF
Create a Message Definition File:
1. Message Definition Source: C Header File
2. I select my .c header file
3. I select my Message set I just created
4. I import and check all the structures
5. Padding Char for string: SPACE
In my flow, I use a ResetContentDescriptor to select the message definition I just created.
Then I create a bar file with the Msg Set and the flow and deploy it to my execution group.
...and this is where I get the mentioned error. I googled the error and searched on this site - found nothing.
...so now I desperately require assistance
any help will be greatly appreciated.
Thanks
pottas |
|
Back to top |
|
 |
kimbert |
Posted: Tue May 09, 2006 4:56 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Your error is BIP5180 (it's always worth quoting the error number). This is what BIP5180 says:
Quote: |
The CWF parser or writer has received an unknown message type identifier in the message properties.
The specified message set ('&3') does not contain a message type with this identifier.
Previous errors will supply the message set name and the message type identifier.
- Check that the supplied message identifier is correct
- Check that the supplied message set identifier is correct
- Check that the message set contains a message type with the specified identifier. |
So have you performed these checks? |
|
Back to top |
|
 |
dsriksha |
Posted: Tue May 09, 2006 5:05 am Post subject: |
|
|
 Voyager
Joined: 27 Feb 2005 Posts: 95
|
As par as I know and as Kimbert said this is a problem with MessageType. Enter correct Message Type in RCD. |
|
Back to top |
|
 |
pottas |
Posted: Tue May 09, 2006 6:06 am Post subject: |
|
|
 Disciple
Joined: 27 Oct 2005 Posts: 185 Location: South Africa
|
Apologies for not giving the error number... my bad...
Thanks for the replies. I checked everything and can confirm that it is fine.
The funny thing is - I am busy with a migration project from 2.1 --> 6 and even with the migrated idoc Message Sets, the same error occurs.
We did some investigation around it and this is what we found. Here's an extract of 2 trace files:
Trace File1 (This one fails):
Code: |
(0x01000000):DD = (
(0x03000000):segnam = 'E2EDL22 '
(0x03000000):mandt2 = '100'
(0x03000000):docnum2 = '0060000002283214'
(0x03000000):segnum = '000002'
(0x03000000):psgnum = '000001'
(0x03000000):hlevel = '03'
(0x01000000):sdatatag = (
(0x01000021):MRM =
|
Trace File2 (This one works):
Code: |
(0x01000000):DD = (
(0x03000000):segnam = 'E2EDL22AAAAAAAAAAAAAAAAAAAAAAA'
(0x03000000):mandt2 = '100'
(0x03000000):docnum2 = '0060000002283214'
(0x03000000):segnum = '000002'
(0x03000000):psgnum = '000001'
(0x03000000):hlevel = '03'
(0x01000000):sdatatag = (
(0x01000021):MRM = (
(0x0300000B):vstel_bez = 'Unifoods SACCA shipping point '
(0x0300000B):vkorg_bez = 'Foods Local '
(0x0300000B):lstel_bez = ' '
(0x0300000B):vkbur_bez = ' '
(0x0300000B):lgnum_bez = ' '
(0x0300000B):inco1_bez = ' '
(0x0300000B):route_bez = 'Finished Goods 24 hour route '
(0x0300000B):vsbed_bez = 'Truck '
(0x0300000B):traty_bez = ' '
(0x0300000B):pad775 = ' '
)
)
)
|
...if the physical CWF message name is 'E2EDL22', then using trace file 1 the idoc parser seems to look for:
Code: |
segnam = 'E2EDL22 ' |
where the segment name includes the spaces. In the Toolkit the message name cannot be defined with spaces.
With Trace file 2 we renamed the Physical message and it worked fine.
A bug perhaps where the parser should actually be looking for a segment name EXCLUDING the spaces? (As far as I know this is how it worked in 2.1.)
Any ideas / suggestions / fixes?
Thanks in advance |
|
Back to top |
|
 |
pottas |
Posted: Tue May 09, 2006 11:12 pm Post subject: |
|
|
 Disciple
Joined: 27 Oct 2005 Posts: 185 Location: South Africa
|
In addition to my previous posting, I've had a look at the fixes in support pack 6.0.0.1:
Code: |
IC47696 BIP5180E WHEN PARSING WITH THE IDOC DOMAIN |
I also worked through the error description for IC47696:
http://www-1.ibm.com/support/docview.wss?uid=isg1IC47696
...and I can confirm we are on fixpack 6.0.0.1
So I suspect it wasn't fixed...
Okay, so my question is: Are there anyone out there that tried parsing idocs with the latest fixpack loaded on broker 6? |
|
Back to top |
|
 |
shanson |
Posted: Wed May 10, 2006 3:14 am Post subject: |
|
|
 Partisan
Joined: 17 Oct 2003 Posts: 344 Location: IBM Hursley
|
The problem you are describing is exactly that described by the APAR and fixed in runtime 6.0.0.1. Are you sure that your broker is at 6.0.0.1 and not just your toolkit? Toolkit 6.0.0.1 was released a couple of months ahead of runtime 6.0.0.1.
If your broker is definitely at 6.0.0.1 then please raise a PMR. |
|
Back to top |
|
 |
pottas |
Posted: Wed May 10, 2006 4:03 am Post subject: |
|
|
 Disciple
Joined: 27 Oct 2005 Posts: 185 Location: South Africa
|
shanson,
Thanks for the reply.
We have found the link to the Message Broker fixpack. You were right... we only installed the fixpack for the toolkit. Please excuse my ignorance, but I thought we were fine with only the toolkit fixpack. We are busy downloading the Broker Fixpack.
Will keep you updated.
Thanks again
pottas |
|
Back to top |
|
 |
pottas |
Posted: Mon May 15, 2006 4:01 am Post subject: |
|
|
 Disciple
Joined: 27 Oct 2005 Posts: 185 Location: South Africa
|
Ok, I've loaded fixpack 6.0.0.1 for my Broker and I can successfully parse an IDOC message - thanks shanson!
...but I have another question - and since it is related to this post, I'll keep it here instead of starting a new thread.
I have a .h file that I need to create a message definition from. When I create my message definition, it creates messages for me with an 'msg_' prefix. This is not quite right.
The alternative is to create the definition without selecting the imported structures (step 4 in the 'New Message Set Definition' in the wizard). This will then create all my Types and no Messages in the .mxsd. I will have to create the messages manually then.
Please correct me if I'm wrong. ...or if I am missing something - maybe there's a better way.
Thanks in advance
pottas |
|
Back to top |
|
 |
shanson |
Posted: Mon May 15, 2006 5:00 am Post subject: |
|
|
 Partisan
Joined: 17 Oct 2003 Posts: 344 Location: IBM Hursley
|
There are several things to take care of when importing a C header file exported from SAP. Take a look at help topic "Building the message model for the IDOC parser" (ac20030_). It guides you through the process and also refers you to supportpac IA0F which contains a Perl script that pre-processes the C header into a suitable form. It:
1) Removes some preprocessor directives
2) Translates Char to char
3) Pads the structure to the correct fixed size
There's two other steps you need to do yourself:
4) Rename the message from msg_xxx to XXX
5) Rename any field called compl (this is a C++ reserved word!)
We are looking into enhancing the C importer to do all of this automatically, but that won't be until a future release. If this is something you would like to see, please raise an official WebSphere requirement to give it added weight. |
|
Back to top |
|
 |
|