Author |
Message
|
manojsu |
Posted: Thu Nov 24, 2011 6:15 am Post subject: WMB v6.1 - Line Feed Error |
|
|
Centurion
Joined: 19 Jul 2006 Posts: 147 Location: Bangalore
|
Hi,
When i am trying to add the carriage return X'0A and assigning the same to a variable to get a line feed, get a conversion error..
Review other error messages to find the cause of the errors.
2011-11-24 14:09:01.602040 5476 ParserException BIP5447S: Tagged/Delimited String Format (TDS) writing error while writing message ''/ADDACS_File/Heade
r/EndOfLine''
See following errors for more details.
2011-11-24 14:09:01.602047 5476 ConversionException BIP5522E: Common Parser Interface: Internal error accessing PWFData object. Diagnostic information:
'Logical type not equal to string'.
An error occurred while accessing the data of an element.
This is an internal error. Please contact your IBM support center.
2011-11-24 14:09:01.480273 5476 UserTrace BIP2537I: Node 'CLRING_EPG_ICBS.Map_AUDDIS_To_ADDACS': Executing statement ''SET OutputRoot.MRM.Header.End
OfLine = X'0a';'' at ('.CLRING_AUDDIS_TO_ADDACS.Main', '29.3').
2011-11-24 14:09:01.480296 5476 UserTrace BIP2566I: Node 'CLRING_EPG_ICBS.Map_AUDDIS_To_ADDACS': Assigning value ''X'0a''' to field / variable '
'OutputRoot.MRM.Header.EndOfLine''.
It was working fine for wmb v6, but after migration it fails.
Any advise. |
|
Back to top |
|
 |
kimbert |
Posted: Thu Nov 24, 2011 6:37 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
It was working fine for wmb v6, but after migration it fails. |
It may be a regression, or maybe v6.1 has tightened up the rules for assignments. Your ESQL is assigning a BLOB to OutputRoot.MRM.Header.EndOfLine.
What is the declared type of OutputRoot.MRM.Header.EndOfLine ? ( check in the message definition file if you're not sure ). |
|
Back to top |
|
 |
manojsu |
Posted: Thu Nov 24, 2011 6:41 am Post subject: |
|
|
Centurion
Joined: 19 Jul 2006 Posts: 147 Location: Bangalore
|
EndofLine is String as defined in the message set |
|
Back to top |
|
 |
kimbert |
Posted: Thu Nov 24, 2011 6:55 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
So you are assigning a BLOB to a string without casting it to the correct data type. Try something like this ( not tested ):
Code: |
DECLARE linefeed CHARACTER CAST X'0a' AS CHARACTER;
SET OutputRoot.MRM.Header.EndOfLine = linefeed; |
btw - if you have a message set then why are you using ESQL to add the linefeed. That's what the Group Terminator is for ( or the delimiter, if you prefer ). |
|
Back to top |
|
 |
manojsu |
Posted: Thu Nov 24, 2011 7:19 am Post subject: |
|
|
Centurion
Joined: 19 Jul 2006 Posts: 147 Location: Bangalore
|
we have to add a line feed on certain conditions..
I did try the logic mentioned, but all the data came in a single line, and in place where i expected a line feed the X'0a character was printed.
code written was -
DECLARE linefeed CHARACTER CAST (X'0a' AS CHARACTER);
SET OutputRoot.MRM.Header.EndOfLine = linefeed; |
|
Back to top |
|
 |
kimbert |
Posted: Thu Nov 24, 2011 2:48 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
all the data came in a single line, and in place where i expected a line feed the X'0a character was printed. |
I suspect that your output data is OK.
What are you using to view the output data? Some editors ( especially on Windows ) do not display the LF ( 0x0A ) character as a line break. |
|
Back to top |
|
 |
manojsu |
Posted: Fri Nov 25, 2011 1:16 am Post subject: |
|
|
Centurion
Joined: 19 Jul 2006 Posts: 147 Location: Bangalore
|
Yes, i have checked in the hex editor, the values comes out as 58 27 30 61 27..
But have managed to fix it using group terminators.
Also have a doubt, has anything changed in the way wmb 6.1 handles hexadecimal values..
in case we want to use Line Feeds and Carriage returns.. |
|
Back to top |
|
 |
kimbert |
Posted: Fri Nov 25, 2011 2:14 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
the values comes out as 58 27 30 61 27.. |
So the value in the output message was not 'the X'0a character'. It was the *string* '0a'. Please try harder to be accurate.
You could easily have fixed this by searching for other posts on this forum and then correcting my ESQL. But...
Quote: |
have managed to fix it using group terminators. |
Good. That's how it should have been done in the first place |
|
Back to top |
|
 |
manojsu |
Posted: Fri Nov 25, 2011 3:27 am Post subject: |
|
|
Centurion
Joined: 19 Jul 2006 Posts: 147 Location: Bangalore
|
|
Back to top |
|
 |
|