cancel
Showing results for 
Search instead for 
Did you mean: 

Help in understanding navigation flow

Former Member
0 Kudos

hello-

I started to learn Web UI and I need help in understanding the flow. I am searcing for an account by giving First Name from ICCMP_BP_SEARCH/BuPaSearchB2B which is taking me to ICCMP_BP_DETAIL/BuPaDetailB2B.

I am trying to figure out the following:

1. Where is the input processed - to see the values in debug mode of the search criteria that is given

2. where is the query/logic to get the data from backend - query.

Could you help me in understanding the flow?

regards-

Rajiv

Accepted Solutions (1)

Accepted Solutions (1)

praveen_kumar194
Active Contributor
0 Kudos

hi the logic will be processed in the event handler for search button. all the buttons on web ui screen will be associated to the event handler methods.

go to the ICCMP_BP_SEARCH/BuPaSearchB2B (transaction BSP_WD_CMPWB). when you double click on the view, you can find event handlers right side. here according to th button name (general practice is that if button name is SEARCH , then event handler name will be eh_onsearch). find it. inside this logic will be written.

generally when you search, in the event handler, they take (lr_query example )instance of class cl_crm_bol_dquery_service, and they fire the method

  get_query_result( ).

or they take the instance like

  me->typed_context->search->collection_wrapper->get_current( ) into lr_query. this particular line will give the current selection criteria give by user into lr_query.

if you want to see the values. place a external break point here in the event handler. once lr_query got assinged any instance. then double click on it. in the displayed value list, double click on

SELECTION_PARAM_COL and  again on  ENTITY_LIST. entity_list is collection of all your selection parameters. you can see entries like this (O:316*\CLASS-POOL=CL_CRM_BOL_DQUERY_SERVICE\CLASS=LCL_SELECTION_PARAM}). just double click again , in the displayed list again doublie click on PARAMETER_DATA->{A:21*\TYPE=GENILT_SELECTION_PARAMETER}. double click on last entry, you will see the values entered by the user.

hope it helps you. 

Former Member
0 Kudos

Hello Praveen-

thank you very much for the detailed explanation.Yes, this certainly helped me.

I am debugging the application by placing the external break point in the following methods:

EH_SEARCH , DO_HANDLE_INPUT, FIRE_QUERY   of ICCMP_BP_SEARCH/BuPaSearchB2B

and DO_PREPARE_OUTPUT of ICCMP_BP_DETAIL/BuPaDetailB2B.

My understanding is - getting the search criteria, making a query and getting results is happening in ICCMP_BP_SEARCH  and the display part is handled in ICCMP_BP_DETAIL.

Could you please correct me if my understanding is wrong?

Thanks-

Rajiv

praveen_kumar194
Active Contributor
0 Kudos

hi rajeev,

yes, you are understanding is right.

general procedure is

suppose you have two views say search and result in the same component. then there will be two context nodes for first view search say - contextnode1(search) - contextnode2(result).

there will be one contextnode3(result) for the second RESULT view.

the secodn context node contextnode2, will be bound to custom controller context node(we will create same context node strcture for custom controller as well )

again we bind , contextnode result form RESULT view to the custom controller.

what we do is, when search is executed, we set the results to this results context node in the SEARCH view.  so data will be flown like below

SEARCHVIEW(results contextnode  )->customer controller(result context node)->(RESULTview(result context node).

if we use differenet component, then binding takes place in component controllers context nodes. i would suggest to search for basic documents in SDN.

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Rajiv,

If you really want to see how data is getting picked up then there are certain classes which actually reads data from backend for dynamic queries. For instance, All BP related dynamic queries have READ method in classes & the classes are maintained in View 'CRMV_OBJ_BUIL' . Similiarly, for all business transactions ( BT ) Query  class have a set pattern for determining the desired query result class.

Regards,

Ravi

Former Member
0 Kudos

Hello Praveen & Ravi-

thank oyu for your replies and it helps me.

Regards-Rajiv