Skip to Content

Hi,

This simple blog talks about creating a Master-Details-Detail kind of a scenario using a Custom BO. Simply put, If you need to have multiple levels of details nested within one another, you would need to create this sort of a structure. A typical example from a standard C4C scenario would be in an Opportunity, where you create an Opportunity(Master), it has details of Items, and each Item in turn can have its own Revenue Schedule

To do this in a custom BO, you would need to create a structure like that with nested nodes.

Below is an example that I used from another Question on SCN that was posted by Ognian Kalaydjiev, wherein:

The main BO was “Multiple Languages”.

1 For each language there would be an instance created(Level 1 node),

2          and for each such instance, there would be certain characteristics maintained (Level 2 node.. [1,n]),

3                    for each such characteristic there would be multiple values possible (level 3 node [1,n])

4                              and for each such value there would be multiple descriptions(level 4 node [1,n])

import AP.Common.GDT as apCommonGDT;

businessobject MultipleLang

{

       [Label(“Identification”)] [AlternativeKey] element ID:ID;

       [Label(” Name”)] element IdName:LANGUAGEINDEPENDENT_MEDIUM_Description;   

               node Characterictis[1,n]

               { 

                   [Label(“Characterictis ID”)] [AlternativeKey] element CharID:ID;

                            [Label(“Characterictis Name”)] element Name:LANGUAGEINDEPENDENT_MEDIUM_Description;

                          node Value[1,n]

                            { 

                                   [Label(“Value”)] element Value:LANGUAGEINDEPENDENT_MEDIUM_Description; 

                                   node ValueDescr[1,n]

                                   {

                                   [Label(“Value Desc”)] element Value:LANGUAGEINDEPENDENT_MEDIUM_Description;

                                   }

                             } 

              }

}


What we want in the UI is something like the following with multiple lists, and the values displayed in each list is dependent on the selection in the previous list(s)

/wp-content/uploads/2016/01/2_874800.png


To create a TI for this structure where for the main language that the TI opens for, the subsequent nodes’ information is displayed on selection from the table, what is required is the following:


1. TI Data Model with bindings to respective BO elements from the BO structure

/wp-content/uploads/2016/01/1_874799.png


2. Check the Data Loading Propery of the Data List in the Data Model


For the first list/node with [1..n], the Data Loading property wouldnt appear

/wp-content/uploads/2016/01/3_874801.png

3. For all the lists below this level, the Data Loading Property is by default Lazy, implying that the Field is only read for the parent lead selected data. This is anyways good for performance as well

/wp-content/uploads/2016/01/4_874814.png

/wp-content/uploads/2016/01/4_874814.png

That’s It !! Based on the data you create, you would find the Master-Detail-Detail created and displayed based on the individual selections made in the different lists

Cheers !!

Vinita

To report this post you need to login first.

1 Comment

You must be Logged on to comment or reply to a post.

  1. Jayant Saini

    Hi Vinita,

    In the second node i.e. “value” in this blog, when I am trying to create an add row event handler, I am getting a dump.

    Can you suggest any way to avoid it?

    Thanks,

    Jay

    (0) 

Leave a Reply