7 Replies Latest reply: May 15, 2012 6:06 PM by Jon Sapora RSS

Table View with Multiple Context Nodes

roman glass
Currently Being Moderated

I want to create a table-view consisting of an object composition, e.g. multiple business objects. The chtml:configCellerator -tag supports just one context node which corresponds to just one business object.

 

How do you create a table composed by different objects, i.e. BTAdminH and BTAdminI ?

 

Edited by: romanglass on May 18, 2010 4:07 PM

  • Re: Table View with Multiple Context Nodes
    ArunKumar Balakrishnan
    Currently Being Moderated

    Hi,

     

    This can be done by adding BTAdminI as N-times dependent context node to BTAdminH.

     

    Standard development, Trade Promotions search result has this structure. You can check it in component TPMOE

    view 'AdvancedSearchResult'.

     

    Regards,

    Arun Kumar

    • Re: Table View with Multiple Context Nodes
      roman glass
      Currently Being Moderated

      Thanks, this looks good to me. Is there a way to generate the dependent nodes and the correct class inheritance by the wizard, or performing any other helpful wizardry?

       

      Otherwise I would just change the implementation of the context node implementation class which is on top of the hierarchy, redefine the methods accordingly and feed the table-tag with an extra iterator.

      • Re: Table View with Multiple Context Nodes
        ArunKumar Balakrishnan
        Currently Being Moderated

        Hi,

         

        I would suggest to create a new component and not to disturb the standard ones. Because the super class of the header context node (BTAdminH in your case) must be inherited from CL_BSP_WD_CONTEXT_NODE_DTV - Deep table view.

         

        The dependent nodes must be passed to return parameter rt_result of method GET_SUB_CNODE_DEFINITIONS.

         

        This cant be done via wizard. I just tried to replicate your scenario. Below are the steps,

         

        1. create a view with context node BTADMINH as tableview. Then change the super class of the context node to   CL_BSP_WD_CONTEXT_NODE_DTV.

        2. Add another context node BTADMINI and mark it as dependent to BTADMINH.

        3. Now change the super class of context node BTADMINI to CL_BSP_WD_CONTEXT_NODE_TV  (Table View).

        4. Redefine method GET_SUB_CNODE_DEFINITIONS in context node BTADMINH.

         

        In the view layout you should use cellerator and pass an iterator with interface IF_THTMLB_CELLERATOR_ITERATOR. The interface has a method RENDER_DEPENDANT_OBJECTS which returns the table of dependant objects.

         

         

        Regards,

        Arun

         

        Edited by: Arun Kumar on May 19, 2010 1:01 PM

        • Re: Table View with Multiple Context Nodes
          roman glass
          Currently Being Moderated

          Hi,

           

          your receipt is quite nice, thank you. I would never dare to change the standard.

           

          There is only one problem left:

           

          I can't get the items for the dependent nodes. If I check for the entities, they are set correctly, it is only that instead of the items there is a "No result found"-message.

           

          While debugging the application I noticed that no row is expanded, e.g. gt_expanded_rows is empty. I've just copied the parameters from your example. Do you have any hints for this situation? Maybe this is a common error?

           

          Thanks a lot

           

          Roman

        • Re: Table View with Multiple Context Nodes
          Jon Sapora
          Currently Being Moderated

          Arun,

           

          That's an interesting discussion on using CL_BSP_WD_CONTEXT_NODE_DTV.

           

          I have attempted to use this subclass for the following:

           

          I have an XML doc which is TRANSFORMED to a deep structure and then parts of this deep structure  need to be displayed in customised BSP Views. The problem that I have is that we have NO BOL object so I'm having to use VALUE_NODES, although I'm beginning to despair.

           

          Foolishly I attempted to build the context in the same fashion as the deep structure, but, the attributes are not being defined other than in the root context, despite the entries in the IF_BSP_MODEL~INIT or the GET_TABLE_LINE_SAMPLE methods. I have the correct entries in the get_sub_cnode_definitions method for all contexts.

           

          Is there an easier way do you know. I need to reference the deep structure contents via the context and update/display on screen via specific UI design.

           

          Any suggestions would be greatly appreciated.

           

          Jon Sapora.

Actions