IBM webMethods Hybrid Integration

IBM webMethods Hybrid Integration

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.


#TechXchangePresenter
 View Only
Expand all | Collapse all

Nested Classes as generated by .Net Wrapper

  • 1.  Nested Classes as generated by .Net Wrapper

    Posted Thu June 11, 2009 12:23 AM

    I have run into a slight problem where I have defined a group array in my Natural progam on the server side.
    In Visual Studio 2008 using VB.Net it will not allow me to address the class DetailData. I can however see OutputParm.LineCntA. but not OutputParm.DetailData

    Any suggestions will be appreciated.

    The code is as follows:
    1 MESSAGE_DATA Out /* out
    2 PROGRAM_ID (A8)
    2 DATE (A10)
    2 TIME (A10)
    2 USERDATA (A64) /* user defined
    2 RETURN_CODE (A1)
    2 MSG_NR (N4)
    2 MESSAGE (A65)
    /* Message Information
    1 INPUT_PARM
    2 NAME (A65)
    2 LIC_NO (A8)
    *
    1 OUTPUT_PARM
    2 LINE_CNT_A (A3)
    2 DETAIL_DATA (/1:50)
    3 NAME_TP (A8)
    3 NAME (A65)
    3 LIC_NO_A (A8)
    3 CITY (A25)
    3 STATUS (A10)
    3 LAST_NAME (A65)

    The .Net Wrapper generates the following Class with nested a nested Class.
    #region Groups for LIBRARY ‘LBRPCLIC’, PROGRAM ‘N69000L0’

    public class N69000l0
    {
    public class MessageData
    {
    [SendAs(IdlType.A, Length=8f, Id=0, Trim=false)]public StringBuilder programId ;
    [SendAs(IdlType.A, Length=10f, Id=1, Trim=false)]public StringBuilder date ;
    [SendAs(IdlType.A, Length=10f, Id=2, Trim=false)]public StringBuilder time ;
    [SendAs(IdlType.A, Length=64f, Id=3, Trim=false)]public StringBuilder userdata ;
    [SendAs(IdlType.A, Length=1f, Id=4, Trim=false)]public StringBuilder returnCode ;
    [SendAs(IdlType.N, preDecimal=4, postDecimal=0, Id=5)]public decimal msgNr;
    [SendAs(IdlType.A, Length=65f, Id=6, Trim=false)]public StringBuilder message ;
    }
    public class InputParm
    {
    [SendAs(IdlType.A, Length=65f, Id=0, Trim=false)]public StringBuilder name ;
    [SendAs(IdlType.A, Length=8f, Id=1, Trim=false)]public StringBuilder licNo ;
    }
    public class OutputParm
    {
    [SendAs(IdlType.A, Length=3f, Id=0, Trim=false)]public StringBuilder lineCntA ;
    [SendAs(IdlType.Group, Id=1, Dim=50f)]public DetailData detailData = (DetailData)Construction.GroupArray(typeof(DetailData), 50 , 0 , 0 );
    public class DetailData
    {
    [SendAs(IdlType.A, Length=8f, Id=0, Trim=false)]public StringBuilder nameTp ;
    [SendAs(IdlType.A, Length=65f, Id=1, Trim=false)]public StringBuilder name ;
    [SendAs(IdlType.A, Length=8f, Id=2, Trim=false)]public StringBuilder licNoA ;
    [SendAs(IdlType.A, Length=25f, Id=3, Trim=false)]public StringBuilder city ;
    [SendAs(IdlType.A, Length=10f, Id=4, Trim=false)]public StringBuilder status ;
    [SendAs(IdlType.A, Length=65f, Id=5, Trim=false)]public StringBuilder lastName ;
    }
    }
    }

    Thanks
    Hennie.

    +1 916 600 0789


    #Mainframe-Integration
    #webMethods
    #EntireX


  • 2.  RE: Nested Classes as generated by .Net Wrapper

    Posted Tue July 07, 2009 02:41 PM

    Hi Hennie,

    there are some special considerations with nested classes and VB.NET which is not case-sensitive and thus can run into name conflicts. To avoid this you can define a ‘Class name prefix for inner classes’ in the properties of the IDL file.

    Regards, Dietmar


    #Mainframe-Integration
    #EntireX
    #webMethods