Groovy accessor to another entity

version adf 11.1.2.2.0. i want to access another EO's attribute.
i create two EOs(Employee and Department). and create an association (departId) accesor: Dept , Emp.
the Groovy Expr in SalaryLoc of EmployeeEO is Dept.max("LocationId").
but it always show that Dept is null. i can;t use method and get property from null.
pls help.
thx

I created a youtube video on how to do it. It does use a java method, but it is similar to what you get from groovy. Viewing this will at least help you understand how it works.
http://www.youtube.com/watch?v=-UzUaYWE9xQ&feature=plcp
Stuart

Similar Messages

  • EJB 3.0 question - saving an entity bean containing another entity bean

    Hi,
    First, I want to store an entity bean. Secondly, I want to store another entity bean - containing the first entity bean.
    I have the following code in a session bean for this:
    public void saveFeedScheduling(FeedScheduling feedScheduling, FeedSource feedSource) {
    FeedSource feeds = em.merge(feedSource);
    em.flush();
    feedScheduling.setFeedSource(feeds);
    FeedScheduling feedSched = em.merge(feedScheduling);
    em.flush();
    This seems to work fine - still, is this the proper way to do it?

    Hello,
    This kind of parameter can be specified using the relationship annotation.
    I'm not 100% sure, but, lok at the "cascade element".
    Regards,
    Sebastien Degardin

  • Capturing Entity information called from another Entity

    Hi All,
    How do I capture information of a Entity in another Entity.
    Assume we have to collect the children names, and type of toys each child have (if any)
    i.e.
    Properties File
    Entity: Children
    Relationship: 1-Many {Global - Children}
    w/ Attributes:
    Name {Text}
    The Child has Toy(s) {Boolean}
    Entity: Toy
    Relationship: 1-Many {Children-Toy}
    w/ Attribute:
    Name of Toy {Text}
    this is the rule base so far, I can see that i've not really set out the relationships correctly, could anyone please advise.
    Rule Base
    *The addtional toy information is gathered if*
    The information on children who have toys or
    The information on children who are not fortunate to have toys
    *The information on children who have toys if*
    For at least one of a Children, The Child has Toy(s)) and
    ExistsScope(a children)
         for(a toy, name of toy is known)
    *The information on children who are not fortunate to have toys if*
    ForAll(a Children, Th Child has not Toy(s) ) cheers
    Edited by: user9015745 on Jun 21, 2011 3:57 AM

    You should vary the logic to your meet your requirements. For example:
    the interview is complete if
    . ForAllScope(the children)
    .. either
    ... both
    .... the child has toys; and
    .... Forall(the child's toys, the name of the toy is known)
    .. or
    ... the child does not have toys
    You can adjust the above logic to suit your specific needs. For example, do you require the number of toys be at least 1 when the child has toys, or is it OK for a child to have toy's but not list any specific instances of toys?, can more than one toy of the same child have the same name?, etc.
    Not to confuse things, but you could drive a more efficient interview by determining "the child has a toy" and/or "the child has toys" and/or "the child has at least 1 toy" based on the number of toys specified for each child (i.e. whether 0, 1 or more toys were associated with each child).

  • Eliminate to another Entity

    I need to eliminate an amount using another Entity, different from the one being consolidated.
    I tried to write the following code:
    Hs.Con("A#159999001.E#" & srICP & ".I#" & Entity & ".V#[Elimination], strPCon, "")
    Where srICP is a variable storing the ICP Member and Entity is a variable storing the Entity being consolidated.
    Problem is, the rule isn't writing any value in the POV detailed above.
    Is it possible to do that? If so, how can I do it?
    Thanks in advance,
    Carlos

    Hi Carlos,
    I have used such a rule in the past and based on my mistakes my question if you have tested that your variables (srICP,Entity,strPCon) are populated correctly.
    Additionally, I would suggest for testing purposed to populate the comments of the rules. This might help you to identify some issues..
    Regards,
    Thanos

  • Accessors exposed in entity object

    Hi, I came from JPA world and I am suited to use relathionship field (old CMR ) in entity class.
    Now I am working with ADF EntityObject (EO) and I found equivalent concept as Accessors in Association component.
    Then ,starting from my EntityOne I create 2 associations :+
    the first one to many to EntityTwo, and the second one to one to EntityThre.
    After I have created a ViewObject based on EntityOne and I expected to have in DataControl iterator related to ViewObjet :
    one field pointing to EntytyThre(one to one) and a sub iterator of collection of EntityTwo elements (one to many), but I don't understand why I don't see any of two in DataControl .
    My intention was to have a link navigation on ADF page to navigate separately to Table of EntityTwo element and a Link to navigate to related EntityThree object.
    Can someone help me ?
    Edited by: Kronos72it on Sep 27, 2012 3:21 PM

    Kronos72it wrote:
    Yes, I make a ViewObject based on EntitOne wich is the root entity .
    Are you maning to create VieweObject also for EntityTwo and EntityThree and after make ViewLink between all ViewObject ?- Yes.
    If it is true, then associations between entity object doesn't influence iterator exposed on DC ? - Quite so.
    then what are utility of associations on EO ?https://blogs.oracle.com/smuenchadf/entry/what_are_entity_associations_g

  • Many to Many Subgrids - pouplate one relationship based on another entity's relationship

    Say I have 'entity1' and 'entity2' and both have many to many relationships with 'entity3.'
    Entity 1 has a many to many subgrid.  We're going to get rid of entity 1 and replace it with entity 2.
    We need entity 2 to have the same subgrid values that entity1 used to have.   Entity 2 for now is unpopulated in its many to many relationship.
    How could we achieve this other than manual data entry? 
    -If I could somehow export the data into xml format and reimport it that would work, but advanced find isn't an option.
    -I don't believe workflows are an option.
    One workaround I'm thinking of is to populate a mult-line text field using javascript.  Then I could xfer the field and run another javascript to grab the values.   Or maybe use rest services to avoid having to xfer.  But these still require
    me to open each entity and frankly the development time will be high enough that I might as well just do them by hand.

    Hello
    You could write a console application using (C#) to update/create your entity 2 objects.
    https://msdn.microsoft.com/en-us/library/gg334754.aspx
    Retrieve your entity 1 objects, create your entity 2 objects based on the entity 1 values. Associate your entity 2 with your entity 3 (N-N Relation).
    https://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.messages.associaterequest.aspx
    Hope this gives you a start,
    Kind Regards

  • Fetching Data from Another Entity (Lookup) - Done in 4.0 and needs to be done in 2013

    We have a situation where we need to grab associated fields from a filtered lookup.  We're willing to use javascript in conjunction with with either odata, soap or fetchxml.  The goal is to bring in numbers from a custom entity and then fill in
    fields to do mathematical calculations.
    Basically on change of a lookup, you grab data, put it on the form, then perform the calculations.
    Here is how the code used to work.  How would you achieve the objective in 2013?
    function Literature1_onchange()
    if (crmForm.all.ftgbase_literature1id.DataValue != null)
       crmForm.all.ftgbase_quantity1.DataValue = 11;
       crmForm.all.ftgbase_total1.DataValue = null;
       var idToFetch = crmForm.all.ftgbase_literature1id.DataValue[0].id+
       //Create AJAX request
       var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
       xmlhttp.onreadystatechange = function() {
           //A value of 4 indicates that the response has been returned
    successfully
           if (xmlhttp.readyState == 4) {
               strXML = xmlhttp.responseText;
               var bundleQty = ReturnValueFromXML
    (strXML,'BundleQuantity');
               var maxQty = ReturnValueFromXML(strXML,'MaxOrderQty');
               if (maxQty != null && maxQty != "null"){
                   crmForm.all.ftgbase_litmax1.DataValue = parseInt
    (maxQty) ;
               }else{
                   crmForm.all.ftgbase_litmax1.DataValue = null;
               if (bundleQty != null && bundleQty != "null"){
                   crmForm.all.ftgbase_bundlequantity1.DataValue =
    parseInt(bundleQty) ;
               }else{
                   crmForm.all.ftgbase_bundlequantity1.DataValue = null;
       GetRecordXML(xmlhttp, UserInfo._orgId, 'GetLiterature', idToFetch,
    'GetLiterature', idToFetch );
    else
       crmForm.all.ftgbase_bundlequantity1.DataValue = null;
       crmForm.all.ftgbase_total1.DataValue = null;
       crmForm.all.ftgbase_quantity1.DataValue = 11;
    We're willing to either get a method working similar to this or go another route, but not a fetchxml grid, we need to preserve historical data.

    Hi,
    To Retrieve from other entity and populate the fields, for example on entering the account name in opportunity form the fields from account form like Sector, Region can be retrieved and can be auto populated in opportunity form using Odata as follows.
    Call the function getAccountDetails in onchange event of Companyname. Do not forget to add Jquery
    and Json in libraries.
    function getAccountDetails() {
        var companyName = Xrm.Page.getAttribute("customerid").getValue();
        if ((companyName != null)) {
            var companyNameValue = companyName[0].name;
            var companyNameID = companyName[0].id;
            var serverUrl = Xrm.Page.context.getServerUrl();
            //The XRM OData end-point
            var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
            var odataSetName = "AccountSet";
            var odataSelect = serverUrl + ODATA_ENDPOINT + "/" + odataSetName + "(guid'" + companyNameID + "')";
            //alert(odataSelect);
            $.ajax({
                type: "GET",
                contentType: "application/json; charset=utf-8",
                datatype: "json",
                url: odataSelect,
                beforeSend: function (XMLHttpRequest) { XMLHttpRequest.setRequestHeader("Accept", "application/json"); },
                success: function (data, textStatus, XmlHttpRequest) {
                    var result_account = data.d;
                    var name;
                    var Id;
                    var entityType;
                    //replace the fields with the fields on your entity
                    Xrm.Page.getAttribute("new_sector").setValue(result_account.new_Sector.Value);
                    Xrm.Page.getAttribute("new_region").setValue(result_account.new_Region.Value);                     
                error: function (XmlHttpRequest, textStatus, errorThrown) { alert('OData Select Failed: ' + odataSelect); }
    Also as another option if you donot wat the java script then you can go for a workflow to poplate, please refer this link:  https://www.powerobjects.com/blog/2013/11/25/retrieving-data-from-a-related-entity-crm-2013/
    Reference: link
    Regards, Rekha.J

  • How insert into another entity object

    Hi ,
    i hope find the solution for this case
    i am using jdeveloper 11.2
    and i have two entity object based on two table as follow
    1 - DocTransaction entity
    Attributes ( id , createdOn, createdBy ,modifiedOn,modifiedBy , docStatus-- default = 1-- , EmpId )
    2- transHistory entity
    Attributes ( id , transId--FK-- , Transdate, TransBy ,ToEmp , docStatus , docAction )
    when inserting row in DocTrasaction it will insert row in transHistory and when update docStatus in DocTransaction it will insert row with updated status in transHistory and so on ( every DML in first entity ocure will insert it in first entity )
    the problem is when docStatus updated after 7 days from creation with value (2 or 5 ) i want the row inserted in second entity with docStatus = 3 not ( 2 or 5 )
    and if docStatus in first entity not updated within 7 days then automatically change its status to 3
    my incomplete code in DocTrasactionImpl as follow
    *protected void doDML(int operation, TransactionEvent e)  {*
    super.doDML(operation, e);
    *if (operation == DML_INSERT) {*
    EntityDefImpl secDef = TranshistoryImpl.getDefinitionObject();
    TranshistoryImpl insert = (TranshistoryImpl)secDef.createInstance2(getDBTransaction(), null);
    insert.setTransId(this.getId().getSequenceNumber());
    insert.setTransBy(this.getCreatedBy());
    insert.setToEmp(this.getEmpId());
    insert.setDocStatus(this.getDocStatus());
    insert.setTransStatus(new Number(1));       // transaction still open
    *if (operation == DML_UPDATE) {*
    *// insert into history when update the status by user to 2 or 5 before 7 days from created the task*
    Date today = new Date();
    Long dateDiff =(today.dateValue().getTime())-(getCreatedOn().dateValue().getTime());
    Boolean checkBefore=( (this.getDocStatus().intValue() == 2 && dateDiff <=7 )||( this.getDocStatus().intValue() == 5 && dateDiff<=7)) ; // change status before 7 days
    Boolean checkAfter=( (this.getDocStatus().intValue() == 2 && dateDiff > 7 )||( this.getDocStatus().intValue() == 5 && dateDiff > 7)); // change status after 7 days
    if  ( checkBefore )      // update by user
    EntityDefImpl secDef = TranshistoryImpl.getDefinitionObject();
    TranshistoryImpl insert = (TranshistoryImpl)secDef.createInstance2(getDBTransaction(), null);
    insert.setTransId(this.getId().getSequenceNumber());
    insert.setTransBy(this.getModifiedBy());
    insert.setToEmp(this.getEmpId());
    insert.setDocStatus(this.getDocStatus());
    insert.setTransStatus(new Number(2)); //close transaction
    else  if  (checkAfter )  // update by user
    EntityDefImpl secDef = TranshistoryImpl.getDefinitionObject();
    TranshistoryImpl insert = (TranshistoryImpl)secDef.createInstance2(getDBTransaction(), null);
    insert.setTransId(this.getId().getSequenceNumber());
    insert.setTransBy(this.getModifiedBy());
    insert.setToEmp(this.getEmpId());
    insert.setDocStatus(new Number(3));//رد متأخر
    insert.setTransStatus(new Number(2));// close transaction
    this code not working will and also how can i update the docStatus automatic after 7 days from value 1 to 3
    thank you
    }

    What is not working, your logic when to create/update or new EO rows itself are not getting updated or created ?
    Amit

  • Is it safe to use equals on BC entities?

    Hello,
    I have an entity with two accessors to another entity. I need to check whether both accessors "point" to the same entity. Is it safe to use:
      // in employee entity
      if (getDept1().equals(getDept2()) {
      }Will accessors always point to the same entity instance when the corresponding db table row's foreign keys pair point to the same row in master table?
    Rado

    Apple encourages you to disable java (not javascript) on OS X Leopard because it's currently causing problems with websites which exploit that bug the outdated java versions have, to control your computer, that is a trojan.
    It isn't an updated java version for 10.5. I have got the same problem so I am thinking in buying a 10.6 OS X version which currently has an updated security 'patch' for java.

  • Change one entity bean query, errors pop up in another... why?

    In my application I have the following entity bean:
    @Entity
    @Table(name = "ventureprofile")
    @SecondaryTable(name = "venture")
    @NamedQueries( {       
            @NamedQuery(name = "Ventureprofile.findByVentureprofileid", query = "SELECT v FROM Ventureprofile v WHERE v.ventureprofileid = :ventureprofileid"),
            @NamedQuery(name = "Ventureprofile.findByVentureid", query = "SELECT v FROM Ventureprofile v WHERE v.ventureid = :ventureid"),
            @NamedQuery(name = "Ventureprofile.findByLogoimagelocation", query = "SELECT v FROM Ventureprofile v WHERE v.logoimagelocation = :logoimagelocation"),
            @NamedQuery(name = "Ventureprofile.findByVisible", query = "SELECT v FROM Ventureprofile v WHERE v.visible = :visible ORDER BY v.venturename")
            //@NamedQuery(name = "Ventureprofile.findByVisibleRange", query = "SELECT v FROM Ventureprofile v WHERE v.visible = :visible ORDER BY v.venturename OFFSET 1 LIMIT 2")
    public class Ventureprofile implements Serializable {
        @GeneratedValue(strategy=GenerationType.AUTO, generator="Ventureprofile.ventureprofileid.seq")
        @SequenceGenerator(name="Ventureprofile.ventureprofileid.seq", sequenceName="ventureprofile_ventureprofileid_seq", allocationSize=1) 
        @Column(name = "ventureprofileid", nullable = false)
        private BigInteger ventureprofileid;
        @Id
        @JoinColumn(name = "ventureid", referencedColumnName = "ventureid")
        private long ventureid;  
        @Lob
        @Column(name = "venturesummary")
        private String venturesummary;
        @Column(name = "logoimagelocation")
        private String logoimagelocation;
        @Column(name = "visible", nullable = false)
        private char visible;
        @Column(table = "venture", name = "venturename", insertable=false)
        private String venturename;
    ...and another entity bean:
    @Entity
    @Table(name = "venturelink")
    @NamedQueries( {
            @NamedQuery(name = "Venturelink.findByVenturelinkid", query = "SELECT v FROM Venturelink v WHERE v.venturelinkid = :venturelinkid"),
            @NamedQuery(name = "Venturelink.findByVentureprofileid", query = "SELECT v FROM Venturelink v WHERE v.ventureprofileid = :ventureprofileid"),
            @NamedQuery(name = "Venturelink.findByLinkurl", query = "SELECT v FROM Venturelink v WHERE v.linkurl = :linkurl"),
            @NamedQuery(name = "Venturelink.findByLinkname", query = "SELECT v FROM Venturelink v WHERE v.linkname = :linkname")
    public class Venturelink implements Serializable {
        @Id
        @GeneratedValue(strategy=GenerationType.AUTO, generator="Venturelink.venturelinkid.seq")
        @SequenceGenerator(name="Venturelink.venturelinkid.seq", sequenceName="venturelink_venturelinkid_seq", allocationSize=1)  
        @Column(name = "venturelinkid", nullable = false)
        private BigInteger venturelinkid;
        @Column(name = "ventureprofileid", nullable = false)
        private long ventureprofileid;
        @Column(name = "linkurl", nullable = false)
        private String linkurl;
        @Column(name = "linkname", nullable = false)
        private String linkname;
    ...    If I uncomment the last NamedQuery ~
    @NamedQuery(name = "Ventureprofile.findByVisibleRange", query = "SELECT v FROM Ventureprofile v WHERE v.visible = :visible ORDER BY v.venturename OFFSET 1 LIMIT 2")I experience the following runtime error:
    javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
            java.rmi.RemoteException: null; nested exception is:
            java.lang.IllegalArgumentException: NamedQuery of name: Venturelink.findByVentureprofileid not found.Container: Glassfish
    Database: Postgres
    OS: WinXP sp2
    Persistence provider: Toplink
    Note that I am not altering 'Venturelink', I am only altering 'Ventureprofile', however errors are manifesting themselves in 'Venturelink'.
    I have heard a rumor that 'OFFSET' and 'LIMIT' are not supported by the majority of persistence providers, but that would be a ridiculous situation... unless the majority of persistence providers lazy-load results when they are pulled from a result set. Is that the case?
    Regardless, this is making me guess what is going on behind the scenes. So, at some point during runtime, is all of my EJB query code getting munged together? And then whatever interprets them into SQL is giving up as soon as it finds a query it doesn't like? That's what this smells like, at least...
    Typically, I find weird errors like this crop up when I'm doing something stupid that a system wasn't designed to handle. So I'd really appreciate it if someone would set me straight.

    Solution, via Doug Clarke at the TopLink forums:
    2. JPA's query language does not support OFFSET and LIMIT. Instead JPA offers setFirstResult(int) and setMaxResult(int) on the Query object. In TopLink this generally translates to JDBC calls of similar names.
    (Thanks Doug!)
    so yeah... unless somebody knows otherwise and I'm wrong (often the case), looks like things choke across multiple entity beans as soon as one malformed query is found. Not good.

  • How to get an ID for an Entity in ADF

    Hi,
    I am trying to write a simple swing form with ADF and here is my point:
    1- Senario
    I have three fields, ID, LastName and FirstName on the form. The ID
    is disabled and it must get its value from the application when we
    want to insert a new record. I do not want to use insert triggers or
    sequence generators or stored procedures, So i have to read the max id
    and increment it by one from inside the application.
    2- Questions
    - Where is the appropriate position for getting the max Id? Entity
    object? View Object? Application Module or Swing form?
    - ADF gives us the create() method in Entity object and it defines
    it for having initial values for attributes, like what i need, but the
    question is how do i have to read the max id from inside this method?
    Do i have to execute a select statement? if so how? do i have to
    define another view object wich reads the max id? and in this case,
    how do i have to access this view object from inside another Entity
    Object? Is it generaly OK to access a view object from inside an
    Entity object?
    Best Regards,
    Alireza Vali

    Alireza,
    This is a really, really, really, really, really (really) really bad idea.
    Using the max(id) + 1 trick:
    1). WILL get you duplicates (think what happens when two people do this at roughly the same time.
    2). Is horrible for scalability in general
    3). If you use table locking to get around issue #1 is truly atrociously horrible for scalability.
    [url http://forums.oracle.com/forums/thread.jspa?messageID=1901057]here is a previous discussion on this topic.
    [url http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:3379873654938]here is an AskTom article on this topic (note the title of that post is "Locking Problems" - should give you a hint as to whether this is a great idea or not).
    Sorry for refusing to answer your question directly, but the best answer is here:
    I do not want to use insert triggers or
    sequence generators or stored procedures, yes, you do So i have to read the max id
    and increment it by one from inside the application. no you don't
    This is a really bad idea.
    Best,
    john

  • Composite Primary Key in M:N CMP Entity Bean Relationship

    Dear Sir/Madam,
         We are creating an Enterprise Application for our institute using EJB 2.0 specifiactions. In the course of developement, we are facing a problem in writing the CMP Entity Beans with EJB Relationships.
         We are having many to many relationship between two beans such that the primary key of one Entity Bean (let's call it A), serves as the foreign key of another Entity Bean (let's call it B). Further, this primary key of A as foreign key in B, participates in the composite key of B.
         The EJB Specifications require that the primary key field(s) of any bean (B, in our case) declared in the Primary Key class should be the subset of the 'cmp-field' declared in the deployment descriptor for that bean. As I said earlier, we have many to many relationship at play. Hence, we require to keep the foerign key in the 'cmr-field' in lieu of 'cmp-field'. In short, the component of primary key is in 'cmr-field' while, it is needed in both 'cmp-field' and 'cmr-field'. That's perfect from Database point of view but illogical from CMP Entity Bean's view.
         How can we write the deployment descriptor for such a CMP (BMP is working fine for above scenario) Entity Bean? Also, how can we write the Primary Key class? The problem is not just to find the solution, but find under the hood of EJB 2.0 specifications.
         Please help.

    I think you should realise that it would not be convenient to use CMP for everything. It is difficult to define complex relations using CMP. Mostly BMP os preferd since it gives the flexibility for the bean developer.
    Regards
    xH4x0r

  • Error while testing the created entity service

    Hi
    I have an error  "access forbidden.please login again" while testing the entity service  in the service browser.Please help.
    Regards
    ms.

    Hi,
    I think this is not a problem from your end.  You please check for another entity service. If you get the same error then this is the problem from server side. If possible please restart the server and try it again.
    Thanks
    Chandan

  • Finder method in container-managed entity bean

    Finder method of a container entity bean is taking the primary key class object of another entity bean. How to map this in the xml descriptor file weblogic-cmp-rdbms.xml for this type of beans.
    I am trying to deploy the jasmine computer store of Mastering EJB by EdRoman.
    I couldn't write the deployment file weblogic-cmp-rdbms.xml for Order Entity bean which uses CustomerPK as an argument in its finder method.
    Please tell me how to write this. I am trying on weblogic 5.1
    Thanx in advance
    Srivatsa

    hello,
    in container managed persistence, you specify on your xml file the name of your table. so the primary key you want to use have to be a foreign key in your table. otherwise i don't think that you can use a container managed persistence.
    Najib.

  • CAF DB Update for CAF Entity Service from Web Dynpro

    Hi all,
    I have created an entity service in CAF called “Contacts’ which contains the following attributes.
    phoneNo
    cellNo
    emailID.
    Another entity service called "Person" is created. This contains the following attributes.
    personId
    personName
    personAddr
    contactsRef. (Cardinality -> 0..n , Relational Type -> Composition)
    That means Contacts entity service is used within Person entity service. Now it is working fine within CAF service browser. Now the Web Dynpro DC of CAF application is used within another custom Web Dynpro DC project. I want to store data from Web Dynpro.
    Within the context of component controller of  Web Dynpro the structure is like
    APerson
         |_ personId
         |_ personName
         |_ personAddr
         |_ contactsRef       
                    |_ phoneNo (Under contactsRef)
                    |_ cellNo (Under contactsRef)
                    |_ emailID (Under contactsRef)
    So I have written the following code within web dynpro custom method.
    APerson person = PersonServiceProxy.create();
    java.util.List ls = new ArrayList();
    for(int i=0; i<4;i++)
    AContacts contact = ContactsServiceProxy.create();
    contact.setCellNo("9092130156");
    contact.setEmailID("[email protected]");
    contact.setPhoneNo("432258");
    contact.getAspect().sendChanges();
    ls.add(contact);
    person.setRelatedModelObjects("contactsRef",ls);
    person.setPersonID("9999");
    person.setPersonName("xyz");
    person.setPersonAddr("ABC, KOL");
    wdContext.nodeAPerson().bind(person);
    person.getAspect().sendChanges();
    CAFServiceFactory.getServiceFacade(idendityDefinition.class);
    After saving the data from Web Dynpro I am trying to test it from CAF service browser. But I am getting only the parent row. I mean only the value of personId, personName and personAddr fields which I have stored from Web Dynpro. But no value is coming within the table for Contacts entity service for composition relation.
    Could anybody help me how can I solve my problem?
    Thanks & Regards
    Chandan
    Message was edited by:
            Chandan Jash

    Hi Chandan,
    Can you do person.getRelatedModelObjects() and get the contact object, to check whether it is null, also check in the CAF DB whether the data you entered is present.
      I am not sure the code is actually adding the contact model object to person.
    Go thru this SDN Blog on usage of the CMI API's, there is a link for CMI documentation in it which might help you get the right code for adding the contact object.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/cef4f43e-0d01-0010-db84-ede25c874115.
    award points if  info is helpful
    Regards,
    Anish

Maybe you are looking for