Sap CRM Technical
Sap CRM Technical
Sap CRM Technical
locked and edited independently. Each Root Object is also an access object
but not vice versa.
Access Object: An access object is a special kind of object. It is not a root
object, but it can be accessed by its own ID. Therefore an access object can
be used to retrieve its dependent children. One can conclude that a root
object is also an access object.
Search Object: A Search Object is a defined search and provides root
objects or access object as the result set. One severe limitation of Search
Objects is that a search parameter can take only a single value or pattern
and use it to produce a match
Search Result Object : The result object of a search request is an associated access object at
the uppermost level of the hierarchy.
View Object: One can also define View Object .These node types represent
a named part of theobject model. They are read-only. When they are
requested, a hard-coded set of objects will be returned.
Abstract Object: In CRM 7.0 EhP1 we have Abstract Object.
One can define Abstract Object. The idea is to promote reuse of the modeled
data. An abstract object is defined in an object model just like any other
node type. There needs to be at least one real access or dependent object
inheriting from the abstract one.
Purpose of WD_USAGE_INITIALIZE?
a) Component binding is done to ensure that One Component is
available for use in another Component.
b) To achieve this the Component Controller method
WD_USAGE_INITIALIZE must contain the binding between the
context nodes of the used component and the current
component's Component controller.
c) Once the Nodes are binded the data can made available in the
used component from the current component.
11.
Purpose GET_V_XYZ, GET_P_XYZ, GET_I_XYZ, and GET_A_XYZ
methods? GET_V_XYZ a) This defines the content of drop down values, F4 Help etc.
b) GET_P_XYZ - This defines the property of attribute whether it's
drop down, text box, F4 help, check box etc.
c) GET_I_XYZ - This defines whether the attribute is editable or non
editable.
d) GET_A_XYZ - This is used to hide or display the attribute based
on the Switch ID.
12.
f) You can access SAP Notes both from the SAP Service Marketplace
and SAP Net - R/3 Frontend.
g)
h)
i)
j) The Note Assistant can automatically implement only SAP Notes
that have correction instructions.
k) Read the SAP Note carefully before you use the Note Assistant to
implement it. The SAP Note can contain prerequisites,
interactions, and references to postprocessing activities (making
changes to a table, for example) that you must take into
consideration when you implement it.
Steps to Install SAP Note
1. Go to transaction code SNOTE
2. Download SAP note
a. Click Goto Download SAP note
b. Enter note Number
c. Click Execute
3. Implement SAP Note
a. Select note and click Implement SAP Note icon
b. Request Click Create; Enter note Number and description
c. Take note of transport request no.
4. Test transport before migration
a. Notify requestor to verify changes before migrating to the next
environment
b. After thorough testing has been completed, release transport
c. Migrate transport to the other environments.
13.
AET
1. Application Enhancement
Tool also used to enhance
standard component with
custom field in Web UI level,
it is available from CRM
version 7.0
2. AET has made simpler to
add search helps, dropdown
boxes, currency and quantity
fields.
14.
15.
How to create drop down?
To provide dropdown for Search Query Fields directly goto
Implementation Class of the View n cal the method
a) Get_Dquery_Definitions and write the code in this method.
b) To provide dropdown for the flds other than Search Query Fldsin
CRM Web UI level firstof al v shuld get the
c) attributename,contextnode,view n component name to get these
details clk on any fld and press F2.
d) Notedown the Component name,Viewname,Context Node from
F2 popup and gotoTCodebsp_wd_cmpwb.
e) Giv the Component Name n clkdisplay.select the view which v
got from F2 popup n select the attribute.
f) To provide Dropdown for the Flds other than Search Query Flds
generate V Getter n P Getter method.
g) In P Getter using picklist v can get the values from the DB table
as dropdown n assign it to rv_value.
h) rv_value = cl_bsp_dlc_view_descriptor=>field_type_picklist.
i) Write the code in V Getter
j) rt_value is table type of bsp_wd_dropdown_table.
k) rt_value has 2 attributes key and value.
l) To access the method set_selection_table create an
objgr_ddlb_item_cat_group for the class cl_crm_uiu_ddlb n assign
m) it to rv_valuehelp_descriptor.
n) gr_ddlb_item_cat_group->set_selection_table(it_selection_table =
rt_value ).
o) rv_valuehelp_descriptor = gr_ddlb_item_cat_group.
16.
17.
if v want to provide F4 help for the custom fld which v added thru
AET giv the Search Help name (which v created in SE11)
Directly in web UI Level.
18.
19.
20.
21.
22.
23.
24.
Why we use iterator ? How can we move one entity to another
entity?
25.
26.
27.
28.
29.
a) The page attributes tab gives a list of all data parameters used
within the page and those that are transferred to the
successive pages.
b) A page attribute marked as automatic is automatically supplied
with a value from the calling URL or the navigation from
another page. However there must exist a parameter of the
same name with value in the URL or navigation interface.
c) Example of supplying a value using the navigation interface,
when there is an automatic attribute with nameFLIGHT in the
target page:
d) navigation->set_parameter( name = 'FLIGHT' value = "LH" ).
30.
31.
32.
33.
1. Explain CRM Architecture and explain MVC architecture where it will come in
2.
3.
4.
5.
6.
7.
8.
9.
crm architecture?
a. In CRM architecture we have 3 layers such as presentation layer,
business layer and DB layer.
b. PL: it is nothing but User Interface, it depends on mvc architecture
actual process takes place under
c. Presentation Layer.
d. Business Layer: it contain 2 layers BOL and GenIL.
e. BOL provide interface b/w DBL and PL, it is used to fetching data from
DB with the help of GenIL and it will send to model.
f. GenIL provides interface b/w DBL and BOL, it contains actual data. it
will fetch data from v
g. DBL: Permanent data stores under DBL.
h. *MVC Architecture comes under Presentation Layer.
i. Model : model takes request from controller, actual process takes place
in model.
j. it will get data from BOL and send it to view.
k. View: view is a place holder where we can display the output.
l. Controller: controller takes the request from the user and it will send to
model.
Purpose of GenIL?
a. GenIL provides interface b/w DBL and BOL, it contains actual data. it
will fetch data from DB with help of API's.
What is Filter BADI, Why we are using?
a. Filter BADI is used to provide default values. restrict implementation
based on the filter values.
In Web UI Level we have 2 check boxes, if we select one check box another
check box will get disable
how will do this scenario ?
We have 2 views A & B, A having field value 10, B having 2 fields. one of the
field value 20, if u add both 2 fields these value 30 should come as B view
another field. how we can do these scenario where we can write the code?
Do you aware of Action profile? What is Action profile? Why we are using,
purpose?
a. Yes. Action profile used to create follow up document based on status
of application.
b. It depends on post processing frame work. PPF provides sap
application with uniform interface for condition dependent generation
of action.
One Order table purpose, crmd_orderadm_h purpose?
a. It stores all the transactional data related to all application data such
as sales, marketing and services.
b. crmd_orderadm_h is a main table. it stores all the application related
data, it provides GUID for fetching Item data.
methods in view controller?
a. DO_CONFIG_DETERMINATION,
b. SET_VIEW_GROUP_CONTEXT,
c. DO_PREPARE_OUTPUT,
d. DO_VALIDATE_INPUT,
e. DO_FINISH_INPUT.
10. how we can read child object data?
a. get_related_entities method.
11. how we can add field to search view through AET? for that any code
requried to dispaly field in web ui level?
a. No code is required directly we can add through drop down list options.
12. We have 2 fields drop down list if u select 1st field value from drop down
list next field value should change how we can do this senario?
13. purpose of wd_usage_initialize/ how to bind two components?
a. Used to bind coco context nodes of two different components.
14. difference b/w cuco and coco?
a. cusomer controller (cuco) is used to share data b/w two different views.
b. component controller (coco)is used share data b/w two different
components.
15. In search view which classes you used and what purpose, where you used?
a. we have to use two classes in search view those are
b. view implementation class - cl_crm_bp_advsearch_controller,
c. context node implementation class - cl_bsp_wd_context_node_asp .
16. how to bind context nodes within a component?
a. context menu of context node we have option create binding.
17. how we can raise error messages in aet level?
a. We have class cl_bsp_wd_message_service in this class one method
call add_message for displaying error messages.
18. what is difference b/w window and view?
a. Window is container, it contains views.
b. View is place holder where we can display the data.
19. how we can create buttons in ovp?
a. through Do_PREPARE_OUTPUT.
20. Types of objects?
a. root object, access object, search object, search result object,
dependent object, dynamic search object.
21. Difference b/w crm_order_maintain & order_save?
a. crm_order_maintain is used to create new transactions and change
existing transactions.
b. order_save is BADI used to save changes which are done in
Application.
42. without using function module how we can get the data through bol
programing?
43. what is f4 help, how you can provide f4 help for particular field?
a. F4 help is used to provide possible values for particular field.
44. For which field we need to provide goto that specific view in that particular
field, generate get_v method inside that write code we have class providing
f4 help IF_BSP_WD_VALUEHELP_F4DESCR, Pass parameters context attribute
name and f4 attribute name.
45. how you add new field through AET?
47. If u transfer data from search view to ovp, in ovpi have field country for that
country field how we can provide default value?
Throughdo_int_context.
48. purpose of Inbound plug and outbound plug , how you can transfer data
through outbound plug?
a. Inbound plug is used to receving data.
b. outbound plug is used to sending data through navigation link.
49. what is navigation bar profile, T code for that ?
Navigation bar profile contails the logical structure for calling internal and
external applications from the CRM WEB CLIENT. It describes the navigation
bar of the user interface, and its structure is specifically designed for
individual business roles
50. purpose of window, view set and views. why we can't assign views to
window directly?
a. window is container, where we can assign view set and ovp , window
able to hold one at a time so we can't add multiple views one by one.
b. view set contain set of views to display in web ui level, vs able to hold
multiple views.
51. difference b/w AET and EEWB?
a. AET(application enhancement tool) is a enhancement tool which is
used to enhance standard component with custom field. which is
available in crm 7.0 .
b. EEWB(Easy Enhancement Workbench) is used to enhance standard
component which is available in before crm 7.0, here standard code
required to provide search help and dropdown list box.
52. purpose of GenILbol browser and GenIL model browser?
a. Genibol browser is a tool for visualizing the structure of object
models,which is used to display data using bol.
b. Genil model browser is used to display object models with their objects
and named relationships.
Open the Standard UI Component and click on the "Enhance Component" Tab and provide the Enhancement Set
information.
Step6.
Provide the Application Name.
Step7.
Provide the Repository Information.
Step8.
Click on Yes to create BSP application.
Step9.
Your Component is now Enhanced. To Enhance a View right click on the view.
Step10 .
As you can see the Z class which means that the View has been Enhanced.
ADDING FIELD :
9 Click CONTINUE and select the Processing. The processing that we select is the one on which we want the
Action to work on.
10 Click CONTINUE and Enter the Workflow Number that you want to assign with this Action.
.11 Click CONTINUE and Enter Action Description.
12 Click CONTINUE and assign Schedule Condition.
Select anyone that suits your requirement and proceed further.
13 Click CONTINUE and assign Start Condition.
.14 Click CONTINUE and Action Configuration is complete.
15 To assign Start Condition -> Go-to step 2.1.2 -> Click on Change Actions and Conditions -> Define Conditions.
62. Why you created custom generic component? Tell the procedure and
requirement you got?
Navigation Links:
e) This node is used to create the navigation from a source view to
one or more target views.
f) Outbound (Source) and Inbound (target) plugs are must to create
navigation links.
g) The name of the navigation link is required to execute a
navigation.
h) Navigation Request(hyper link)->Event handling of request>calling Outbound plug-> start navigation->processing inbound
plug.
Outbound and Inbound Plug:
c) Outbound Plug:It is used to send the data from current
component to the other component.
d) InoundPlug : It is used to receive the data from othercomponent
to the current component.
An Outbound Plug is linked with the Inbound plug in a navigational link.
b) The navigation link receives a unique name. Thus, a navigational
link describes a navigation path from the start to the target and
can be understood as a directed relationship.
73. What is the purpose of PFCG tcode?
Each authorization references an authorization object and defines one or more permissible
values (e.g. Display, Change, and Create) for each authorization field contained in the
authorization object.
*SAP
ORDER_SAVEBADIisusedatthetimeofsavingorder.
1stcalledCHECK_BEFORE_SAVEUsefulforcheckifthevaluesarefilledasexpected,orifanyobligatoryfieldisunfilled.
Ifyoulaunchtheexception,thedocumentwillbenotsavedgivinganopportunitytotheusertochangethedocumentagain.
2ndcalledPREPAREThemethodthatisusedtomanipulatedocumentdatabeforeitgetssaved.It'sisgoodtofillsomefields
automatically,basedonuser'sinputs.
3rdcalledCHANGE_BEFORE_UPDATEHereyoucannotanymoremanipulatethedocument.It'susedtodosomeextra
workwhilethedocumentisbeingsaved,suchasforexample,tolaunchanactionbyanalyzingsomecomplexvalidationsorsend
notificationsbyemailandsoon...
75. I want to add the SE38 report at web ui level? Tell the procedure?
76. How you navigate from search page to overview page? Tell the entire
procedure?
Steps:
1. Go to search component provide hyperlink for result attribute.
Result View->ContextNode->attibutes->select attribute(which user clicks)>rightclick->generate Get_p Method and write code.
2. If click attribute which we provided hyperlink it needs to trigger
for that create even hanler with name which we given in GET_P
CODE RV_VALUE.
Create Event name single selectionand click continue->double click and write
code.
3. Create outbound plug, Result View->Outbound plug>rightclich->crete->op_plug. Double click on Op_plug and
write code.
4. Go to Ovp Component->RRE->component interface->add
interface view
5. Add context node
6. Create inbound plug->main window->inboundplug->right
click->create
7. Go to search component->RRe->Create Component usage
8. Crete navigation link, RRE->navigation link->rightclick->create
9. Test Component go to Search Component->click on test
77. We have two business roles, for two business roles we assigned only one
navigation bar profile. Now some of the first business role is hide to the
second one. How you vil do?
78. Why you created search result view? How you fetch the code from search
view to result? Tell the code?
79. What are the fields available in right hand side for each attribute at UI
configuration level?
80. Is it possible to hide a label?
81. Why you created custom generic component? What is the requirement you
got?
82. If you add two fields it will display like : firstname
i. lastname
in UI Configuration but I want it
like firstname/lastname
83. I have an error in my document/application, you have to find out the where
the error exactly .How?
84. How you created popup?
1.
2.
Create the Z message class in se91 and add the message into the class with the
corresponding message number.
And go to
91. i have toolbar button on assignment block, if i click on that I will navigate to
other page? how?
92. If u transfer data from search view to ovp, in ovpi have field country for that
country field how we can provide default value?
93. without using function module how we can get the data through bol
programing?
94. Define SAP CRM ? Advantages of CRM?
95. What is genil?
It provides interface between BOL layer and database through API
96. What areBolentities?how can we access bol entities.
Go to question number 19
97. What is genil?types of classes in genil?types of genilentites?howmany r
there?explain(like root dependent object)
Go to question number 3
98. How we can create root and dependent entities in bol and genil:
Go to question number 59
101. How we can add custom component to standard component
Go to question number56
102. Difference between static and dynamic navigation
103. Have u worked on badi?howmanybadi u have worked?whyrequired?how u
achieved that req?
104. What is model and value table?
105. What is mvc ?explain interms component workbench?
106. What is page attribute?
107. Why do we use navigational link?inbound and outbound plug?
108. How we Can bind the data between views and components?need of
wd_usage_initialze?whywe bind?
109. Use of Get_p,get_v,get_i,get_a?
110. Diffrence between rfc and bapi?whatbapis u have used in real time?
BAPI stands for Business Application Programming Interface. It is a library of functions that are released to the public
as an interface into an existing SAP system from an external system.
RFC is the protocol used to call functions in an R/3 system by a caller external to R/3 or to call programs external to
R/3 from an R/3 system.
Go to question number 30
120. What is action profile?Have u worked on action profiles?what is
requirment?
Go to question number 85
a) I told BSP_WD_CMPWB used to see all these things but she asking for
other tcode.
b) I said dont know.
128. Tell me the procedure how you added link through transaction launcher?
129. Tell me the procedure to create buttons on assignment blocks?
130. Once we add button on assignment block, I have to navigate to other
when I click on it? How?
a) I said through navigation links is possible and I told the procedurefor me
also dont know the exact procedure but I tried.
131. Have you worked on BI?
132. Have you worked ABAP HR?
133. Have you worked on ECC ?if yes on which modules you worked?
a) Yes I worked on ABAP, in that MM & SD modules.
134. Do you configured any business roles?
135. Are you worked on ACTION Profiles?
136. I said yes then she asked tell how you configured? For that I told I just
involved in the BADI implantation part, configurations are take care by
security people. She said k and skipped for other question.
137. Do you know how to create logical links, assigning logical links in
navigation bar profile?
138. Do you know how to create f4 Help and drop down fields for a field right?
139. My end is over do you have any questions?
140. I asked I want know what is the tcode for seeing IMPL, CTXT, CN00,
inbound, outbound plugs ,.htm,other than what I said.
She replied as a crm consultant u dont know even that?
Then topic is diverted and ended.
151. What is the class of the OCA? How will configure that?
152. OCA already delete button is there row level deleted every thing is fine?
But client ask the delete in popup level how will do the requirement?
this class is the decision maker whether to fetch d data from d underlying layers r to
display d data directly on d view.
5 types
1.component controller
2. Custom controller
3.interface controller
4.window controller
5.view controller
Model : model contains context n context node classes. This context node is
responsible for linking the web UI fields to the underlying BOL layer. this linking is
known as binding.
View : view is nothing but a '.htm' page, which is responsible for displaying fields
on the webUI
types of views
1. Empty view.
2. Form view.
3. Table view.
4. Advanced search page.
Table view - Each attribute can hold multiple records.
Emp id (Attribute 1)
" holding multiple
records"
Emp name
Bhanu
Mahesh
Sudhakar
Address
Node:
model node- in context node class, base_entity(const)value should be there.So,it is
called as model node or else it is called as value node.