Mapping object attributes to ArrayField widget

Is there a way to specify get/set methods for fields within an
ArrayField widget instead of public attributes of the mapped type?
We are trying to enforce strict encapsulation of our data objects, but
it seems that the only way to display our data objects in an ArrayField
widget is to bind each field in the ArrayField to a PUBLIC attribute of
our object. I was hopeful that the virtual attribute would take care of
this but apparently, the virtual attributes can only access public
attributes on our class.
An obvious solution to this is to retrieve the private attributes of our
objects via their Get methods and then manually adding them to the
ArrayField widget, but this seems to be a lot of wasted processing.
Any thought would be greatly appreciated. Send replies directly to me at
[email protected]
Thanks,
Van

Hi,
Refer your suggestion
Confirm that
4. The datatype for the field is same as the data type of the vo attribute.
This is what I need to Solve.The datatypes are not similar
I want to show Students Number in the table column
DataType for the field in the Table is selected as "Number"
In the View Object there is no datatype called "Number".So, I selcted "Integer".
Now, how can I show VO attribute of type "Integer" in a table column of type "Number"..
thanks,
Gowtam

Similar Messages

  • Unable to map/get Attributes with import of LDIF Object Class

    Hi All,
    We are trying to take import of Customized Object Class and Attributes into OID through LDIF.
    LDIF import command is:
    ./ldapadd -p 3060 -h myhost -D "cn=orcladmin" -w Ac123456 -f xyzObjClass.ldif
    LDIF contents are:
    dn: cn=subSchemaSubentry
    changetype: modify
    add: objectclasses
    objectclasses: ( 1.3.6.1.4.1.1436.2.46 NAME 'ProviderObjClass' SUP ( organizationalPerson $ person $ top ) STRUCTURAL MAY ( attr1 $ attr2 ) )
    Note: attr1 and attr2 are already imported into OID.
    Result: We are able to create Object Class and also able to inherit Super Class. But we are not able to map the attributes to our Object Class.
    Can anybody help me in importing ?
    Thanks & Regards,
    Newbie

    Again, I don't work with Java and you should ask Java-related question in Flex (or Java) forum.
    Java or not - you need to package your server side language specific object into something that AS understands (text, XML, AMF object) and load this data into AS via, perhaps, URLLoader. Or you can open socket. Then you parse this data with AS3 code in SWF.

  • Re: Sorting in ArrayField widget.

    Hi,
    If you need a little sample about sorting Arrays or Listviews you can find
    one on http://perso.club-internet.fr/dnguyen/
    It shows how to use a QuickSort generic class (the source code of that class
    is not delivered, but you can find a quicksort sample class at forte.com) :
    - Sub-class the class
    - Overwrite DoSortExpLow and DoSortExpSup
    - In your user class, call QuickSort(Self.SortArray, 1,
    Self.SortArray.Items, pcol, Self.SortListMode) where SortArray is the Array
    to sort, pCol is a parameter that defines the column and SortListMode
    defines if you want an ascending or descending sort.
    Hope this helps,
    Daniel Nguyen
    Freelance Forte Consultant
    Url : http://perso.club-internet.fr/dnguyen/
    David Foote a écrit:
    There is a more flexible solution with less code duplication that has
    worked well for us.
    Create a class SortService with a method with the following signature:
    Sort(list:Array of Object, stategy:ComparisonStrategy):Array of Object
    create a class called ComparisonStrategy with a method with the
    following signature:
    Compare(a:Object,b:Object):integer
    For each class that needs to be sorted, define a new
    ComparisonStrategy sub-class that overrides the Compare()
    method. Inside the overridden Compare() method, cast a and b to the
    correct class and compare them by whatever criteria is appropriate.
    If a>b return 1, if a=b return zero, if a<b return -1. Inside the
    SortService.Sort() method, call strategy.Compare(a=object1,b=object2)
    each time you need to compare two objects.
    This is quite similar to the C-library's implementation of the qsort
    function:
    void qsort( void *base, size_t num, size_t width, int (__cdecl
    compare )(const void elem1, const void *elem2 ) );
    compare( (void *) elem1, (void *) elem2 );
    It is also a good use of the Strategy design pattern. The one method,
    Sort(), will now sort any list of objects for which you pass in an
    appropriate ComparisonStrategy sub-class. The objects to be sorted do
    not have to implement any extra interface or inherit from any
    particular class. If you are interested and need more help I can
    probably lay my hands on some source.
    P.S. This sort should be applied to the data array not the
    arrayfield.
    David N. Foote
    ----Original Message Follows----
    What you need is a set of sort methods, one for each basic data type
    and a wrapper method which discovers the data type of the column to be
    sorted and calls the appropriate Sort method.
    Create a group of sort methods depending on the data type
    e.g..
    sortInt( p_Arr : Array of Object, Col : integer ),
    SortString( p_Arr : Array of Object, Col : integer ) ,
    SortYour4GLObject( p_Arr : Array of Object, Col : integer ) etc.
    Then create a wrapper method called Sort( p_Arr : Array of Object,
    Col :
    integer ).
    In this method, look at p_Arr[Col].ClassName to find out the datatype
    and appropriately call the method which sorts that data type
    i.e..,
    SortInt() if ClassName is qqsp_integer,
    SortString() if ClassName is qqsp_string
    SortYour4GLObject() if ClassName is Your4GLClass etc.
    In each of the sort method, implement the sort algorithm on the
    p_Arr[ Col ] values.
    Good luck,
    Ajith Kallambella. M
    Fort&eacute; Systems Engineer,
    International Business Corporation.
    -----Original Message-----
    From: Savory, Mark [mailto:[email protected]]
    Sent: Thursday, March 11, 1999 9:54 AM
    To: 'Kapil Tyagi'; '[email protected]'
    Subject: RE: Sorting in ArrayField widget.
    Kapil,
    Since you can't inherit from Array, you can create a helper for
    sorting
    arrays in general. Some helper class would have a method called:
    SomeHelperClass.Sort(list: Array of SomeInterface, column : int):Array
    of
    SomeInterface. The SomeInterface interface would have a virtual
    method
    called:
    SomeInterface.GetColumn(col:int):DataValue. All your classes that
    would be
    in an array to sort would have to implement the SomeInterface
    interface.
    Implementing the GetColumn method would require that your class
    attributes
    inherit from DataValue(TextData, DoubleData, IntegerData, etc.) or the
    GetColumn method could do a conversion. The SomeHelperClass.Sort
    method
    could then sort the appropriate column of the array.
    Mark Savory
    GTE Gov. Sys.
    -----Original Message-----
    From: Kapil Tyagi [mailto:[email protected]]
    Sent: Thursday, March 11, 1999 4:02 AM
    To: '[email protected]'
    Subject: Sorting in ArrayField widget.
    Hi,
    We are using ArrayField widget. Forte does not provide any in-built
    sorting
    facility
    in ArrayField as it does in ListView.
    Is there an easy way to do that?
    If we implement our own sorting algorithm then how do we make it
    generic
    method
    for different arrays.
    We can use GetChildInCell to fetch the values generically, but it
    works only
    for
    visible rows.
    Any pointers in this direction are appreciated.
    Kapil Tyagi
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:http://pinehurst.sageit.com/listarchive/>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:http://pinehurst.sageit.com/listarchive/>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:http://pinehurst.sageit.com/listarchive/>
    Get Free Email and Do More On The Web. Visit http://www.msn.com
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>-
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    Hi,
    If you need a little sample about sorting Arrays or Listviews you can find
    one on http://perso.club-internet.fr/dnguyen/
    It shows how to use a QuickSort generic class (the source code of that class
    is not delivered, but you can find a quicksort sample class at forte.com) :
    - Sub-class the class
    - Overwrite DoSortExpLow and DoSortExpSup
    - In your user class, call QuickSort(Self.SortArray, 1,
    Self.SortArray.Items, pcol, Self.SortListMode) where SortArray is the Array
    to sort, pCol is a parameter that defines the column and SortListMode
    defines if you want an ascending or descending sort.
    Hope this helps,
    Daniel Nguyen
    Freelance Forte Consultant
    Url : http://perso.club-internet.fr/dnguyen/
    David Foote a &eacute;crit:
    There is a more flexible solution with less code duplication that has
    worked well for us.
    Create a class SortService with a method with the following signature:
    Sort(list:Array of Object, stategy:ComparisonStrategy):Array of Object
    create a class called ComparisonStrategy with a method with the
    following signature:
    Compare(a:Object,b:Object):integer
    For each class that needs to be sorted, define a new
    ComparisonStrategy sub-class that overrides the Compare()
    method. Inside the overridden Compare() method, cast a and b to the
    correct class and compare them by whatever criteria is appropriate.
    If a>b return 1, if a=b return zero, if a<b return -1. Inside the
    SortService.Sort() method, call strategy.Compare(a=object1,b=object2)
    each time you need to compare two objects.
    This is quite similar to the C-library's implementation of the qsort
    function:
    void qsort( void *base, size_t num, size_t width, int (__cdecl
    compare )(const void elem1, const void *elem2 ) );
    compare( (void *) elem1, (void *) elem2 );
    It is also a good use of the Strategy design pattern. The one method,
    Sort(), will now sort any list of objects for which you pass in an
    appropriate ComparisonStrategy sub-class. The objects to be sorted do
    not have to implement any extra interface or inherit from any
    particular class. If you are interested and need more help I can
    probably lay my hands on some source.
    P.S. This sort should be applied to the data array not the
    arrayfield.
    David N. Foote
    ----Original Message Follows----
    What you need is a set of sort methods, one for each basic data type
    and a wrapper method which discovers the data type of the column to be
    sorted and calls the appropriate Sort method.
    Create a group of sort methods depending on the data type
    e.g..
    sortInt( p_Arr : Array of Object, Col : integer ),
    SortString( p_Arr : Array of Object, Col : integer ) ,
    SortYour4GLObject( p_Arr : Array of Object, Col : integer ) etc.
    Then create a wrapper method called Sort( p_Arr : Array of Object,
    Col :
    integer ).
    In this method, look at p_Arr[Col].ClassName to find out the datatype
    and appropriately call the method which sorts that data type
    i.e..,
    SortInt() if ClassName is qqsp_integer,
    SortString() if ClassName is qqsp_string
    SortYour4GLObject() if ClassName is Your4GLClass etc.
    In each of the sort method, implement the sort algorithm on the
    p_Arr[ Col ] values.
    Good luck,
    Ajith Kallambella. M
    Fort&eacute; Systems Engineer,
    International Business Corporation.
    -----Original Message-----
    From: Savory, Mark [mailto:[email protected]]
    Sent: Thursday, March 11, 1999 9:54 AM
    To: 'Kapil Tyagi'; '[email protected]'
    Subject: RE: Sorting in ArrayField widget.
    Kapil,
    Since you can't inherit from Array, you can create a helper for
    sorting
    arrays in general. Some helper class would have a method called:
    SomeHelperClass.Sort(list: Array of SomeInterface, column : int):Array
    of
    SomeInterface. The SomeInterface interface would have a virtual
    method
    called:
    SomeInterface.GetColumn(col:int):DataValue. All your classes that
    would be
    in an array to sort would have to implement the SomeInterface
    interface.
    Implementing the GetColumn method would require that your class
    attributes
    inherit from DataValue(TextData, DoubleData, IntegerData, etc.) or the
    GetColumn method could do a conversion. The SomeHelperClass.Sort
    method
    could then sort the appropriate column of the array.
    Mark Savory
    GTE Gov. Sys.
    -----Original Message-----
    From: Kapil Tyagi [mailto:[email protected]]
    Sent: Thursday, March 11, 1999 4:02 AM
    To: '[email protected]'
    Subject: Sorting in ArrayField widget.
    Hi,
    We are using ArrayField widget. Forte does not provide any in-built
    sorting
    facility
    in ArrayField as it does in ListView.
    Is there an easy way to do that?
    If we implement our own sorting algorithm then how do we make it
    generic
    method
    for different arrays.
    We can use GetChildInCell to fetch the values generically, but it
    works only
    for
    visible rows.
    Any pointers in this direction are appreciated.
    Kapil Tyagi
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:http://pinehurst.sageit.com/listarchive/>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:http://pinehurst.sageit.com/listarchive/>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:http://pinehurst.sageit.com/listarchive/>
    Get Free Email and Do More On The Web. Visit http://www.msn.com
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>-
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

  • Sorting in ArrayField widget.

    Hi,
    We are using ArrayField widget. Forte does not provide any in-built sorting facility
    in ArrayField as it does in ListView.
    Is there an easy way to do that?
    If we implement our own sorting algorithm then how do we make it generic method
    for different arrays.
    We can use GetChildInCell to fetch the values generically, but it works only for
    visible rows.
    Any pointers in this direction are appreciated.
    Kapil Tyagi
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    Hi,
    I would be interested in how the objects are sorted i.e. on which attribute the objects will get sorted.
    On runtime only it will be known that on which attribute the objects is to be sorted. The problem is compounded further because the data type of attributes is also different.
    Thanks for all your replies. I have designed/written a generic reusable code for sorting in an ArrayField widget. On double clicking the column title the array gets sorted on the corresponding column.
    Thanks and regards
    Kapil Tyagi
    From: David Foote[SMTP:[email protected]]
    Reply To: David Foote
    Sent: Tuesday, April 13, 1999 12:55 PM
    To: [email protected]
    Subject: RE: Sorting in ArrayField widget.
    There is a more flexible solution with less code duplication that has
    worked well for us.
    Create a class SortService with a method with the following signature:
    Sort(list:Array of Object, stategy:ComparisonStrategy):Array of Object
    create a class called ComparisonStrategy with a method with the
    following signature:
    Compare(a:Object,b:Object):integer
    For each class that needs to be sorted, define a new
    ComparisonStrategy sub-class that overrides the Compare()
    method. Inside the overridden Compare() method, cast a and b to the
    correct class and compare them by whatever criteria is appropriate.
    If a>b return 1, if a=b return zero, if a<b return -1. Inside the
    SortService.Sort() method, call strategy.Compare(a=object1,b=object2)
    each time you need to compare two objects.
    This is quite similar to the C-library's implementation of the qsort
    function:
    void qsort( void *base, size_t num, size_t width, int (__cdecl
    compare )(const void elem1, const void *elem2 ) );
    compare( (void *) elem1, (void *) elem2 );
    It is also a good use of the Strategy design pattern. The one method,
    Sort(), will now sort any list of objects for which you pass in an
    appropriate ComparisonStrategy sub-class. The objects to be sorted do
    not have to implement any extra interface or inherit from any
    particular class. If you are interested and need more help I can
    probably lay my hands on some source.
    P.S. This sort should be applied to the data array not the
    arrayfield.
    David N. Foote
    ----Original Message Follows----
    What you need is a set of sort methods, one for each basic data type
    and a wrapper method which discovers the data type of the column to be
    sorted and calls the appropriate Sort method.
    Create a group of sort methods depending on the data type
    e.g..
    sortInt( p_Arr : Array of Object, Col : integer ),
    SortString( p_Arr : Array of Object, Col : integer ) ,
    SortYour4GLObject( p_Arr : Array of Object, Col : integer ) etc.
    Then create a wrapper method called Sort( p_Arr : Array of Object,
    Col :
    integer ).
    In this method, look at p_Arr[Col].ClassName to find out the datatype
    and appropriately call the method which sorts that data type
    i.e..,
    SortInt() if ClassName is qqsp_integer,
    SortString() if ClassName is qqsp_string
    SortYour4GLObject() if ClassName is Your4GLClass etc.
    In each of the sort method, implement the sort algorithm on the
    p_Arr[ Col ] values.
    Good luck,
    Ajith Kallambella. M
    Fort&eacute; Systems Engineer,
    International Business Corporation.
    -----Original Message-----
    From: Savory, Mark [mailto:[email protected]]
    Sent: Thursday, March 11, 1999 9:54 AM
    To: 'Kapil Tyagi'; '[email protected]'
    Subject: RE: Sorting in ArrayField widget.
    Kapil,
    Since you can't inherit from Array, you can create a helper for
    sorting
    arrays in general. Some helper class would have a method called:
    SomeHelperClass.Sort(list: Array of SomeInterface, column : int):Array
    of
    SomeInterface. The SomeInterface interface would have a virtual
    method
    called:
    SomeInterface.GetColumn(col:int):DataValue. All your classes that
    would be
    in an array to sort would have to implement the SomeInterface
    interface.
    Implementing the GetColumn method would require that your class
    attributes
    inherit from DataValue(TextData, DoubleData, IntegerData, etc.) or the
    GetColumn method could do a conversion. The SomeHelperClass.Sort
    method
    could then sort the appropriate column of the array.
    Mark Savory
    GTE Gov. Sys.
    -----Original Message-----
    From: Kapil Tyagi [mailto:[email protected]]
    Sent: Thursday, March 11, 1999 4:02 AM
    To: '[email protected]'
    Subject: Sorting in ArrayField widget.
    Hi,
    We are using ArrayField widget. Forte does not provide any in-built
    sorting
    facility
    in ArrayField as it does in ListView.
    Is there an easy way to do that?
    If we implement our own sorting algorithm then how do we make it
    generic
    method
    for different arrays.
    We can use GetChildInCell to fetch the values generically, but it
    works only
    for
    visible rows.
    Any pointers in this direction are appreciated.
    Kapil Tyagi
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:http://pinehurst.sageit.com/listarchive/>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:http://pinehurst.sageit.com/listarchive/>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:http://pinehurst.sageit.com/listarchive/>
    Get Free Email and Do More On The Web. Visit http://www.msn.com
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

  • Mapping private attribute in workbench

    Hi,
    The mappingworkbench will not generate a toplink-deployment-descriptor.xml for directly mapped attributes that have accessibility private. Other comments in this forum and weblinks that date from Webgain-Toplink describe that this should be possible.
    So my questions are:
    - where can I find current toplink documentation that describes how to map private attributes?
    - how can I get around the fact that the mapping workbench does not accept methods with private accessibility?
    Thanks for your insights,
    Joost de Vries
    Nederland

    Hi Donald,
    First; what I want to do is create a 'value object' [cf. Fowler], that is: a java object that can be given values for its attributes at creation time, but not afterwards.
    So the way I try to accomplish that is by making the mutator (set-method) private.
    This is how to recreate the situation: I have a working mapping. I change the set method of an attribute to private. I restart jDeveloper (*), I generate the toplink-deployment-descriptor.xml. The generation fails with the message 'Method setDjiNummer(Integer i) has private access in class org.myOrg.MyClass'.
    Sincerely,
    Joost de Vries
    Nederland
    (*) by the way: is there a better way to make sure the Toplink Workbench sees changes made to java classes?

  • How to reference the Parent view Object attribute in Child View object

    Hi , I have the requirememt to generate Tree like struture to display Salary from joining date to retirement date in yearly form.I have writtent two Pl/SQL function to return parent node and child nodes(based on selected year).
    1.First function --> Input paramter (employee id, retirement date , joining date) --> return parent node row with start_date and end_date
    2. 2nd function --> input paarmter(employee id, startDate, end_date) --> return child node based on selected parent node i.e. start date and end date
    I have created two ADF view object based on two function return
    Parent Node --> select * from Table( EUPS.FN_GET_CONTR_SAL_BY_YR(employeeId,retirement Date, dateOf joining)) ;
    Child Node --> select * FROM TABLE( EUPS.FN_GET_CONTR_SAL_FOR_YEAR( employeId,startDate, endDate) ) based on selected parent node.
    I am giving binding variable as input for 2nd function (child node) . I don't know how to reference the binding variable value in child view from parent view.
    Like I have to refernce employeId,startDate, endDate values in 2nd function from parent view object. some thing like parentNode.selectedStart_date parentNode.employeeId.
    I know we can achive this writing the code in backing bean.But i want to know how can we refernce parent view object attribute values in child view object using Groovy or otherway?
    I will appreciate your help.
    Thanks

    I have two view com.ContractualSalaryByYearlyView for Parent Node and com.ContractualSalaryByYearlyView for child Node.
    I have created view link(ContractualSalYearlyByYearViewLink) betweem two view by giving common field empId, stDate , endDate.(below is the view link xml file).
    I tried give the binding attribute values using parent object reference like below in com.ContractualSalaryByYearlyView xml file but getting error
    Variable ContractualSalaryByYearlyView not recognized.I think i am using groovy expression.
    Thanks for quick response.
    com.ContractualSalaryByYearlyView xml
    <ViewObject
    <DesignTime>
    <Attr Name="_isExpertMode" Value="true"/>
    </DesignTime>
    <Variable
    Name="empId"
    Kind="where"
    Type="java.lang.Integer">
    <TransientExpression><![CDATA[adf.object.ContractualSalaryByYearlyView.EmpId]]></TransientExpression>
    </Variable>
    ContractualSalYearlyByYearViewLink.xml file
    <ViewLinkDefEnd
    Name="ContractualSalaryByYearlyView"
    Cardinality="1"
    Owner="com.ContractualSalaryByYearlyView"
    Source="true">
    <DesignTime>
    <Attr Name="_finderName" Value="ContractualSalaryByYearlyView"/>
    <Attr Name="_isUpdateable" Value="true"/>
    </DesignTime>
    <AttrArray Name="Attributes">
    <Item
    Value="com.ContractualSalaryByYearlyView.EmpId"/>
    <Item
    Value="com.ContractualSalaryByYearlyView.StDate"/>
    <Item
    Value="com.ContractualSalaryByYearlyView.EndDate"/>
    </AttrArray>
    </ViewLinkDefEnd>
    <ViewLinkDefEnd
    Name="ContractualSalaryForYearView"
    Cardinality="-1"
    Owner="com.ContractualSalaryForYearView">
    <DesignTime>
    <Attr Name="_finderName" Value="ContractualSalaryForYearView"/>
    <Attr Name="_isUpdateable" Value="true"/>
    </DesignTime>
    <AttrArray Name="Attributes">
    <Item
    Value="com.ContractualSalaryForYearView.EmpId"/>
    <Item
    Value="com.ContractualSalaryForYearView.StDate"/>
    <Item
    Value="com.ContractualSalaryForYearView.EndDate"/>
    </AttrArray>
    </ViewLinkDefEnd>

  • Interface mapping Object does not exist in runtime cache

    I am getting the following error after importing IR into our test system (PI7.0 SP10).
    Interface mapping Object ID 19C3AC9D13B03787AEEB85169D0B6900 Software Component 8C51B2209F3C11DB94CEEB180DDF0074 does not exist in runtime cache Exception of class CX_XMS_SYSERR_MAPPING
    You want to execute interface mapping Object ID 19C3AC9D13B03787AEEB85169D0B6900 Software Component 8C51B2209F3C11DB94CEEB180DDF0074 .     However,the data of this interface mapping is missing in the runtime cache. Activate the interface mapping in the Integration Repository.
    I cannot change the mapping and reactivate - as this cannot be changed.
    I have run SXI_Cache, Cleared SLD caches on IR and ID and run cacherefresh=full, but no luck!
    The mapping is there and I can test it in the IR.
    Any thoughts?

    I had this problem today, maybe this helps someone when searching about this (at least this is the first hit at a very big search engine when searching for interface mapping does not exist...)
    I have a RFC => PI => File scenario. I was aware that this would need to be asynchronous so I set up the message interface (service interface for PI > 7.0) as asynchronous inbound. This is the file receiver part of the interface.
    Hints on the error: Audit Log in message details of RWB showed a line like this: RFC adapter received sRFC for ZMY_FM from <sender SID>/<sender client>. Attempting to send message synchronously. This of course could not work as file is asynchronous by default.
    Bottom line however was, to make the call of the sender RFC asynchronous by using "in background task" like so:
    CALL FUNCTION 'ZMY_FM'
       IN BACKGROUND TASK
       DESTINATION 'PI_DEST'
       EXPORTING
         t_file = lt_file.
    COMMIT WORK.
    Don't forget the commit work here.
    Hope this helps.
    Cheers
    Jens

  • Problem to access the object attribute in a code

    Hi guys,
    I need to pass the attribute of a business object to class.Below is the code but its throwing an error 'There is no component ZYBTT in l_bus2000116'.Since the business object conatins the attribute but its throwing an error.Could any one throw some light on the below code -
    data: l_BUS2000116 type swc_object,
          Z_BRF_Function_name TYPE FDT_UUID.
    swc_get_element ac_container 'Z_Quotation' l_BUS2000116.
    swc_get_element ac_container 'Z_BRF_Function_name' Z_BRF_Function_name.
    CALL METHOD ZYCLOTO_AGENTDTMT_BRF=>ZYOTOM_GET_AGENT_IDS_SING_LEV
      EXPORTING
        IM_FUNCTION_ID  = Z_BRF_Function_name
        IM_BTT          = l_BUS2000116-ZYBTT
       IM_COMPL_CAT    =
       IM_COUNTRY_CODE = ZYCOUNTRY
        IM_LEAD_BRAND   = l_BUS2000116-leadbrand
        IM_RISK_LEVEL   = l_BUS2000116-ZYRISKLEVEL
        IM_SALES_ORG    = l_BUS2000116-ZYsalesorg
        IM_TCV          = l_BUS2000116-ZYTCV.
    IMPORTING
       EX_FULL_NAME    =
       EX_RETURN       =

    Hi,
    Is ZYBTT a new attribute? Have you changed the status of the attribute to implemented or released (in SWO1: Edit -> Change release status)?
    And actually I think that your syntax is wrong too (BOR world is different compared to classes). If you want to use an attribute, I think that the syntax should be something like this:
    SWC_GET_PROPERTY <Object> <Attribute> <AttributeValue>.
    Read more here:
    http://help.sap.com/saphelp_nw04/helpdata/en/c5/e4acef453d11d189430000e829fbbd/content.htm
    Regards,
    Karri

  • Mapping objects

    hi expects,
    can any body tell me about mapping objects .and what is use of message mapping,java mapping ,xslt mapping,abap mapping.
                                                                             thank you

    Hi Rohit,
      XI provides 3 standard ways of interface mapping between source and target.
         1)Graphical mapping
         2)Java mapping
         3)XSLT mapping
    Two more additional mapping types can be activated in XI by making changes to the exchange profile. Those two mappings are
         1)ABAP mapping
         2)XSLT mapping with ABAP Extensions
          Graphical mapping is a common approach followed by everyone for generating desired target structure. It involves simple drag-n-drop to correlate respective nodes (fields) from source and target structure. It hardly involves coding. (Exception – User defined functions).   But sometimes with graphical mapping it is difficult to produce required output. For example … text/html output, namespace change, sorting or grouping of records etc. A person comfortable with Object Oriented ABAP can go for ABAP mapping instead. One can also think of Java mapping as another option but it is a bit complex and required knowledge of Java. In such cases, XSLT mapping can be the best approach to meet the requirements.
    A few example cases in which an XSLT mapping can be used:-
    1)When the required output is other than XML like Text, Html or XHTML (html displayed as XML )
    2)When default namespace coming from graphical mapping is not required or is to be changed as per requirements.
    3)When data is to be filtered based on certain fields (considering File as source)
    4)When data is to be sorted based on certain field (considering File as source)
    5)When data is to be grouped based on certain field (considering File as source)
    >>>Advantages of using XSLT mapping
    1)XSLT program itself defines its own target structure.
    2)XSLT programs can be imported into SAP XI. Message mapping step can be avoided. One can directly go for interface mapping once message interfaces are created and mapping is imported.
    3)XSLT provides use of number of standard XPath functions that can replaces graphical mapping involving user defined java functions easily.
    4)File content conversion at receiver side can be avoided in case of text or html output.
    5)Multiple occurrences of node within tree (source XML) can be handled easily.  
    6)XSLT can be used in combination with graphical mapping.
    7)Multi-mapping is also possible using xslt.
    8)XSLT can be used with ABAP and JAVA Extensions.
    >>>Disadvantages of using XSLT mapping
    1)Resultant XML payload can not be viewed in SXMB_MONI if not in XML format (for service packs < SP14).
    2)Interface mapping testing does not show proper error description. So errors in XSLT programs are difficult to trace in XI but can be easily identified outside XI using browser.
    3)XSLT mapping requires more memory than mapping classes generated in Java.
    4)XSLT program become lengthier as source structure fields grows in numbers.
    5)XSLT program sometimes become complex to meet desired functionality.
    6)Some XSL functions are dependent on version of browser.
    Regards,
    Prasanthi.

  • Problem when mapping  model attribute to dropdownbyindex

    HI
    I am mapping model attribute ( this is mapped to Model field of RFC ) to DropDownbyIndex.
    Once i call BAPI the executed list of values populates into dropdown but it doesn't show first value, instead it puts one extra space in dropdown ( 1 blank by default + 1), when we try to select this blank value it gives error.
    Pl help me solving this issue
    Thanks!

    Hi Ravindra,
    It might be write the all code in BAPI side only.
    After writing the bapi code u can retrive thru only DropdownbyIndex.
    What ever u created means Cusomecontroller or component controller in init() method u created BAPI instance and send input to the BAPI.
    When you setting the paramaeters in init() megtod
    U can do like this.
    bapi input = nwe bapi();
    input.setparametername("firstparameter displaying onthedropdownbox");
    for example
    input.setDoc_type("orders");
    add like this.
    Hope this will help
    nageswara.

  • Mapping UME attribute problem

    Hi all,
    I'm using EP SP16 with a MSADS flat hierarchy datasource.
    I've mapped the attribute "pwdLastSet" in the configuration file but when I list the "attributeNames" of my user, it doesn't exist.
    This mapping is no different than previous mapping I've mapped such as extensionAttribute, company, dn and others all done successfully.
    Can't "pwdLastSet" be mapped?
    Amit

    hie could u please paste the xml configuration file here. Also the attribute pwdLastSet is a read only attribute from ADS.

  • Problems with User Defines Mapping Objects - Dynamic Configuration

    We have a mapping object that takes data passed in from R3 and does an HTTP Post to another system using a URL and file name that is passed from the header record. We had a consultant set this up for us last year and in creating the new one we just pretty much copied what he did. The problem is, it is not working for us. We have the url and file name, we pass it to the user defined code that is supposed to pass it to the url and file name in the configuration. The java code looks like this:
    public String getPcurlOut(String pcurl,Container container){
    String ourSourceFileName = "START";
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    if (conf != null) {
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","Directory");
    conf.put(key, pcurl + ".xml");
    ourSourceFileName = conf.get(key);
    } else {
    ourSourceFileName = "conf == null";
    Basically we want to pass a url and file name to our communication channel based on values that come from our file in R3
    It is almost exactly like the one that works. Can anyone help with this?
    Thanks
    Mike
    Message was edited by:
            Michael Curtis

    Hi Michael
    <i>Basically we want to pass a url and file name to our communication channel based on values that come <b>from our file in R3</b></i>
    --> This means you have file as a sender adapter.
    Check adapter specific message properties in sender adapter.
    Please refer this blog , it is really worth.
    /people/michal.krawczyk2/blog/2005/11/10/xi-the-same-filename-from-a-sender-to-a-receiver-file-adapter--sp14
    Also
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","Directory")
    Try writing this as
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","<b>FileName</b>")
    Regards

  • Interface Mapping Object - No class definition found

    Hi
    I have created a simple Interface Mapping in the Integration Repo. When i try to TEST the interface mapping i get class not found errors.See the stacktrace below.
    LinkageError at JavaMapping.load(): Could not load class: com/sap/xi/tf/_PO_MAPPING_
      - java.lang.NoClassDefFoundError: Illegal name: com/sap/xi/tf/_PO_MAPPING_
    Looks like some standard sap packages are missing from the CLASSPATH. Anyidea where it has to be specified ?
    PO_MAPPING is the message mapping object i have created and the test is successful for this object.However when i reference it in Interface Mapping , i get the above errors.
    I suppose XI generates Java Code when i create these objects and the mappings.Any idea where the JVM seems to reference these packages and How to rectify it ?
    Thanks
    Saravana

    Hi,
    Please check whether you have applied note 755302.
    - Sreekanth

  • Interface mapping Object _Doesn't exist in RuntimeCache_Error_SXMB_MONI

    Hi  EXperts ,
    Issue in XI --Dev System
    I have an simple IDOC  (DESADV.DELVRY03) ->Flat File Scenario . Mapping is done as per the Line of Business requirements .
    I have tested mapping and  I get the response as expected.
    We released the IDOC (Outbound Processing ) in SAP R/3 , but I get the mapping error in SXMB_MONI.
    Error:
    SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="MAPPING">NO_MAPPINGPROGRAM_FOUND</SAP:Code>
      <SAP:P1>Object ID 61CFAE955F1A345ABEA3081C92818052 Software Component C31B3EB0F7B811DFC3F3ECDD0AE005A3</SAP:P1>
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Interface mapping Object ID 61CFAE955F1A345ABEA3081C92818052 Software Component C31B3EB0F7B811DFC3F3ECDD0AE005A3 does not exist in runtime cache</SAP:Stack>
    Activtaed the Interfcae mapping and refeshed the  configurtaion Object :  Interface , Receiver Determination.Noticed  that we have error in Cache Notifictaion --Design Part . The Configuration --Cache update is fine.
    I have raised the Ticket to resolve this error.
    But as this was high proirity task to be delivered,how can i try fixing this issue myself . I have tried couple of times, creating new interface mapping , activating , referring new interface mapping in : Interface , Reciever Determination but nothing fix this issue.
    Please provide me inputs.
    Thanks,
    Vara

    Thanks to all of your for your support .
    Yes as Udo said , I  did reassign the Interface mapping in : Interface Determintaion / Reciever Determination and activated .
    Buta s this isuse was in Development System , and I reliased that there was mismatch of Password entered for : PIAPPLUSER --pipeline user  and Cache Error  with SLD  in Design . Configurtaion / SLD .
    Raised ticket for Cache Error which got solved . Resetting password of PI service user also worked .
    Release new IDOC in WE19(--outbound DESADV.DELVRY03) and it was successfully processed  to File(xml).
    Best Regards,
    Varalakshmi

  • XI Configuration Design questions with multi-mapping message mapping object

    Hello,
    I'm having trouble designing a particular scenario for multi-mapping.  Currently i'm working with a Vendor create and change.  BPM is not being used.
    This is what i need:
    I need a CREMDM04 to turn into one or multiple ADRMAS/CREMAS IDocs and potentially a CLFMAS IDoc based on the values in the inbound CREMDM04 IDoc.
    This is what i currently have:
    A CREMDM04 inbound idoc is multi-mapped to a CREMDM03 (1...9999), another CREMDM03 (0...9999), and a CLFMAS01 (0...9999).  At a minimum only the first CREMDM03 IDoc will be created and at a maximum all three will be created.  The parameters on creating the second CREMDM03 IDoc and the CLFMAS01 IDoc are based on the values in the inbound CREMDM04 IDoc, whereas the first CREMDM03 IDoc will always be created and the values will just be converted/mapped from the inbound CREMDM04 IDoc.  This multi-mapping is currently set-up via a graphical message map and works successfully in the test-tab of the mapping object.  It has a main message and has sub-messages which are the IDocs.  I’m mapping the CREMDM04 to a CREMDM03 to then map it through an ABAP-Class and then to an XSL where the CREMDM03 inbound structure is expected to split into ADRMAS and CREMAS Outbound IDocs for Vendor Create/Change in the remote R/3 systems.
    After the graphical map we have a necessary ABAP Class call that calls a BAPI to the remote system.  This ABAP Class must come after the graphical map since the parameter for the BAPI is based on a converted value from the graphical multi-map.
    After the ABAP Class call there is finally an XSL message split the CREMDM IDoc into an ADRMAS and CREMAS IDoc.  There need to be two interface mappings (one per ADRMAS and CREMAS) since the ABAP classes and XSLs are specific to the ADRMAS and CREMAS.
    The CLFMAS IDoc can go directly to the remote system, but since it’s within this one multi-map, I’m not sure if is possible?  I’m not sure if it will fail once it tries entering the XSL mapping (this is the standard CREMDM message split offered from SAP).
    There are three interface mapping scenarios I can think of, but cannot get to work:
    CREMDM04 to ADRMAS02
    CREMDM04 to CREMAS03
    CREMDM04 to CLFMAS01
    Currently I have the Interface Mapping structured as follows:  (I cannot get this to activate as it appears it does not work)
    Multi-Mapping ==> ABAP Class Call ==> Standard XSL Message Split
    How should i design the interface mapping objects and the configuration objects for this scenario?
    Any help is appreciated and I definitely will reward points (no need to include it in your response).

    Hi,
    I suggest you may use multiple steps interface mapping. It's composited with 3 message mappings as step by step.
    Mapping 1: One to one mapping. For the output schema, use a composition schema which includes those 3 IDOCs you want.
    Mappign 2: ABAP Mapping. I am not sure the ABAP class you mentioned is an ABAP mapping or not. If it does, That's ok. If not,
    call that ABAP class in your ABAP mapping and do corresponding change for your message. Return back the same structure as output.
    Mapping 3: One to multiple mapping to split the message.
    So basically as interface mapping, it's one to multiple mapping. And internally, you have 3 steps to realize the mapping.
    And as my experience, for both one to multiple message mapping & multiple steps interface mapping, it works well in my project. And
    in ID, you have to configure it via "advance" function in receiver determination or interface determination.
    Let me know if any confusion.
    Thanks
    Nick

Maybe you are looking for

  • ABAP Proxy call gets stuck in qRFC

    When I execute my program to trigger an ABAP proxy, the program executes successfully, but then no message appears in the Integration Engine. I have discovered that every time the program is executed, it ends up with an entry in the qRFC of the sendi

  • IMessage is confused green vs blue

    I have an iPhone 5 and recently upgraded to iOS 8.0.2. I have some group conversations with iPhone users that are now forcing me to send Green messages. I have the same people in other groups conversations where Blue messages are being sent. In all c

  • IPhoto: thumbnails, links, originals

    Photo thumbnails do not distinguiish which are originals and which are links to originals.  If one inadvertantly deletes and original, the thumbnail still looks fine but I know or no way of recreating an original from one.  Two questions:  1 How does

  • How can I limit number of responses to my class registration?

    Hi guys, I am running few class registration, each class can take 100 students max. So I would like the web registration form stop taking more entries once 100 people responded attendance. How can I achieve that thanks.

  • SG300-28 SRW2024-K9-EU LACP Issue,

    HI, I am facing issue with relating to Link Aggregation (LACP), here with i have Discuss the details below, I am tring to make the Two etherchannel setup with using Two SG300-28 Switches connected eachother, (As a stated given Diagram) For ex, (Vlan-