IBM Support

PK77782: EGL debugger produces EGL0754E with EGL code defining Serial Rec ord with variable length

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Environment: Windows
    
    Product name: IBM? Rational? Business Developer
    
    Program Version    :  7.1.0.1
    Description.
    When running the EGL debugger and stepping through EGL code that
     defines the usage of a Serial Record with variable length it fa
    ils an error is produced if that record consists of Unicode vari
    ables.
    
    The usage of a Serial Record with variable length isn?t possible
     if that record consists of Unicode variables.
    When using char as variable type inside the serial record, the l
    ength needs to be the same amount of bytes (or smaller) then the
     length of the variable.
    
    If you use an amount of bytes that is smaller, the program goes
    into the OnException.
    In System Variables Syslib.currentException the following error
    is shown: (any: string) 'EGL0754E The record length item must co
    ntain a value that splits non-character data at item boundaries.
    EGL0002I The error occurred in the y4fn99 program processing the
     with_Error function.'
    
    The same error will be output from the generated Java produced b
    y the example code segment and this issue is not specific to deb
    ugger functionality it relates to language restriction developme
    nt have confirmed via: http://publib.boulder.ibm.com/infocenter/
    rbdhelp/v7r5m0/index.jsp?topic=/com.ibm.egl.lr.doc/topics/regl_d
    ata_file_length_item.html.
    
    However the actual generated COBOL code will include the variabl
    e length record which the COBOL implementation supports so the u
    ser finds he has to run the debugger with only a fixed length re
    cord and alter their code to generate as a variable length recor
    d.
    
    The user requests that the debugger should work with any stateme
    nts which are supported by the language which is being generated
    .
    
    Example code:
    record utfile1 type SerialRecord  {fileName = 'utfile1', lengthI
    tem = ut_Lgh1}
    // ---------------------
      01 txt   char(100);
    end
    
    function correct()
      wdybok.ut_Lgh1 = 4;
      set utfile1 empty;
      utfile1.txt = 'Gery';
    
      try
       add utfile1;
      onException
       SysLib.writeStdout('error utfile1') ;
      end
    
     end
    
    When using Unicode as variable type, you can only use the same a
    mount of bytes for the variable length.
    
    record utfile2 type SerialRecord  {fileName = 'utfile2', lengthI
    tem = ut_Lgh2}
    // ---------------------
      01 txt   unicode(50);
    end
    
    function with_Error();
      wdybok.ut_Lgh2 = 4;
      set utfile2 empty;
      utfile2.txt = 'Gery';
    
      try
       add utfile2;
      onException
       SysLib.writeStdout('error utfile2') ;
      end
    
     end
    

Local fix

Problem summary

  • EGL was throwing an exception during execution of an add
    statement, if it used a variable-length record, and the
    record's lengthItem indicated that the data ended in the
    middle of a field whose type was not char.  This happened in
    the EGL debugger and generated Java programs.
    

Problem conclusion

  • The operation is now allowed when the field is a char, hex,
    or unicode (but a unicode character may not be cut in half
    or the exception will still be thrown).
    

Temporary fix

Comments

APAR Information

  • APAR number

    PK77782

  • Reported component name

    RATL BUS DEV

  • Reported component ID

    5724S5000

  • Reported release

    710

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2008-12-19

  • Closed date

    2009-03-20

  • Last modified date

    2009-03-20

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    RATL BUS DEV

  • Fixed component ID

    5724S5000

Applicable component levels

  • R710 PSN

       UP

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSMQ79","label":"Rational Business Developer"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.1","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
20 March 2009