You are on page 1of 30

1.

2. Explain abt CRM architecture?


BLOCK DIAGRAM OF CRM ARCHITECTURE

The CRM architecture is divided into different layers are:


1.Presentation layer: Which provides the interaction area between
the users and crm application.
It display the response to the users according to their(user) request.
( like request -response model: it gives response back whatever user
click on the screen and/or do giving any input ). Here everything we
treated as pages( at browser window), and each page we call it as an
UI Component. Here every UI Component follows MVC architecture.
2.BOL Layer : It is a BOL(Business Object Layer) layer connected
between the Object Model and UI .It mapping the data from object
model to user interface. The BOL having the set of Classes and
Methods to perform the operations on the dada which is getting from
the Model Node of GENIL of an Object-Model into Buffer. In BOL the
buffering is used to stored the data, and perform the operations on the
data according to the user request.
3.GENIL Layer: The GENIL(Generic Interaction layer) take care the
data transfer from the BOL to API(application programming interface).
Here the Object Model contains the Genil components that are
organized in component sets. Actually the Genil contains the Genil
Objects.

4.API's: The API(Application Programming Interface) is nothing but a


software component, it lies between Genil and Database. API performs
the actions(operations) at Database level by getting the reqest from
the Genil. The operations are getting the data and/or modify the data
at Database.
5.DATABASE TABLES: These are the physical tables which contains
the actual data at database level.
3. what do you mean by MVC architecture?
a) Used to develop object-oriented User interfaces.
b) SAP CRM web client UI based on the MVC architecture.
c) Gives clear separation between layout, data maintenance and
program control into different components of an application.
d) Model unit contains the Context and context nodes that link the
data fields of the view to the BOL layer.
e) The view represents the presentation layer that requests the
data from model via controller and is responsible for the output
of this data in an HTTP response.
f) The controller handles the interaction logic between model and
view and it receives all keyboard inputs and mouse clicks from
the View.i.e.Http request from the view.
4. What is GENIL, types of genil entities, how many are there?
GenIL:It`
provides interface between BOL layer and Database
through APIs(Application Programming Interfaces).
Types of GenIL Entities
Root Object: A Root Object can be addressed via its unique key and can be

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

Dynamic Search Object: A search parameter in this case can also be


associated with a logical operator, such as greater than, less than, or in
between. As a result the match does not have to be a direct one.
For example,
ONEORDER(BOL Component Set) ->
BTOrder(Root Object) ->
BTAdminH(Access Object) ->
BTCustomerH(Dependent Object)

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.

* Model node : A Model node refers to a Genil Object of an object model


and represents a link between a screen element and object model.
- The name of an entity is maintained as an attribute 'BaseEntityName' of
the view context node class.
* Value node : A Value node doesn't have any reference to an object
model and can have any number of attributes with any data type.
5. Difference between Custom and component controller?
a) The main difference between custom and component controller
is the role which they play during data transfer.
b) Custom controller is used for data transfer across two views
within a component. For that you need to bind view context
nodes to custom controller through wizard.
- we get the instance by get_custom_controller method.
c) Component controller is used for data transfer across two
views in two different components. For this, we need to define
the component usage first and then bind the context nodes in

the method-WD_USAGE_INITIALIZE of the Component Controller


impl class.
- Component controller can act as custom controller aswell.
- There is an attribute called comp_controller, which is
component
controller instance.
6. Diff b/w Component Usage and Interface Controller?
a) Component Usage:It is used to access data from other UI
component to current UI component .It is only possible if there is
interface view in other UI component.
b) Interface Controller: The view in a component can be accessed to
other component through interface controller.
c) In interface controller add the context nodes of the component
controller to the Component user interface and then they are
visible to the other UI components.

7. Why we do navigation, outbound plug and inbound plug?


Navigation Links:
a) This node is used to create the navigation from a source view to
one or more target views.
b) Outbound (Source) and Inbound (target) plugs are must to create
navigation links.
c) The name of the navigation link is required to execute a
navigation.
d) Navigation Request(hyper link)->Event handling of request>calling Outbound plug-> start navigation->processing inbound
plug.
Outbound and Inbound Plug:
a) Outbound Plug: It is used to send the data from current
component to the other component.
b) Inbound Plug : 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.
a) 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.
8. Diff b/w Over view page and View set?
a) With the view set you can compose different views to one screen.
b) With the overview page you can display different components as
assigment blocks.

c) Configuration tab is there in Overview page but don't have View


Layout. In View Set Configuration tab is not there, but it have
View Layout.
9. What is use of Runtime Repository Editor(RRE)?
a. The runtime repository editor of the component workbench is the
tool which displays and maintains the Runtime Repository for a
Component.
b. Runtime repository is a tool for process and display the
Repository.xml file.
c. Each component has its own runtime repository file (means that
any component can be executed separately)
10.

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.

How we can Implement SAP Notes?


a) SAP Notes give you instructions on how to remove known errors
from SAP Systems. They include a description of the symptoms,
the cause of the error, and the SAP Release and Support Package
level in which the error occurs.
b) Depending on the type of error, an SAP Note may also include:
c) Workarounds
d) Descriptions of how to correct repository objects in the ABAP
workbench, known
as correction in structions
e) Links to Support Packages that solve the problem.

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.

Difference between EEWB and AET?(Anjali)


EEWB
1. Easy Enhancement
Workbench used to
enhance context menu
of standard component
with custom field in SAP
GUI level.
2. Using EEWB little
more complicated to
add search helps,
dropdown boxes,

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.

currency and quantity


fields
3. EEWB is required
under specific areas like
time dependent
customer tables for
business partners.
4.T code for creating
EEWB

14.

3. In AET, we can reuse


custom fields in other objects
which presents recreate the
same custom field it required
in any other objects
4.T code for creating CRM_UI

Use of AET's and how can we add F4 help through AET.

Used to enhance standart component with custom field , it reflect all


the areas BOL entities,Genil components and DB level.
Steps to add F4 help for field through AET.
a) Create search help in SE11 screen.
b) Open T code CRM_UI select where we want add new field
i. ex: Sales cycle -- opportunity-- double click on any one of
field --> here select in which view you want to add field
c) select configuration area(double click on view)
d) click on show enhancements(here will open possible
enhancement objects,select it)
e) click on Enable expert mode and BACK
f) click on Create New Field( field details screen will open)
g) In field details screen provide below things
h) Field ID
- ZZ<FN>
i) Field label - FN ( this name available in configuration level)
j) Data type
- (select any one)
k) Data element - ( give which we created at se11 screen)
l) Check table - (optional)
m) Search help - provide search help name as which we created at
SE11 screen level
n) BW Reporting - (optional)
o) R/3 adapter - (optional)
p) GO BACK and Save and Generate.
q) step-3 : These field will be available at all areas BOL entities,
Genil Components and DB level.
r) Go BACK( full screen) again open will see field having F4 help.

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.

How to create F4 help?

a) Goto Component Workbench select the view & context node


attribute for which u want to provide
b) F4 help.
c) RgtClk on the attribute & generate V Getter method.
d) Write the code in V Getter method Create an Object
rv_valuehelp_descriptor for the class
e) cl_bsp_wd_valuehelp_f4descr to access the methods of Interface
Class.
f) Populate the values to the parameters.
g) ls_map-context_attr = context node attribute name
h) ls_map-f4_attr
i) iv_help_id

= fld referring in Search Help.


= Search Help name (which v created in SE11)

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.

How to create 'Button' and what method used?


a) Select which View add button, Double click on View and click on
request processing drop down
b) Then right click on DO_PREPARE_OUTPUT METHOD
c) Select REDEFINE-->Code Paste
d) Double click on implementation Class--> Click Attribute tab
e) and give Internal table name(gt_button), Assiciative
type(CRMT_THTMLB_BUTTON_T)
f) Double click on View html-->code paste
g) Right Click on 'Event Handler'--> create Event Handler name as
'Delete'-->code paste
h) Test
i) we using this method--->DO_PREPARE_OUTPUT

19.

What is BOL programming?

20.

21.

22.

23.

a) BOL Programming helps you to transfer the data to WEB UI from


business object layer and vice versa.
What are BOL entities.How we can access?
a) These BOL Entities are kind of class instances with underlying
structures
b) (mapped to the database tables) . The data you enter on the
Web UI gets saved in
c) the database tables via BOL Entities or Objects. These BOL
entities are held by
d) Collection Wrappers. They are kind of containers or wrapper
classes in the context nodes.
e) The BOL entities will be of type CL_CRM_BOL_ENTITY.
f) So when you want to access data from a view, you write this
way...
g) If you are in a method of IMPL Class.... ( if you are at the context
node methods
h) Context Node name -> Collection Wrapper ->get_current( ).
Explain root objects and dependent objects?
a) Root objects: Directly accessible via a distinct key (like Header
GUID for
b) BTOrder) and can be independently locked and maintained.
c) Dependent object: Aggregated by a distinct root objects.
Locked and maintained
d) only via its root object.
How we can create root and dependent objects?
a) Root object is created through Simple object from Genil layer in
through SPRO
b) Dependent object Through GENIL_MODEL_EDITOR
Diff b/w Local and Global iterator?
a) Access BOL entities that are contained in a collection can access
through iterators.
b) Global - Any global iteration moves the focus, which is published
by the event FOCUS_CHANGED of the collection
c) Local - If you want to iterate on the collection without moving the
focus (and without triggering timeconsuming follow-up
processes) you can use local iteration. To do so, request an
iterator object from the collection and use this to iterate.

24.
Why we use iterator ? How can we move one entity to another
entity?

25.

a) Access BOL entities that are contained in a collection can access


through iterators.
b) You can access through Get_First and iterate through Get_next
methods.
What is use of Runtime Repository Editor(RRE)?
a) A tool that enables configurations and setting that need to made
during construction of the UI Component. All entries are made
by using the context menu (rtclk) in the edit mode and saved.
Framework saves the entry in the form of xml code, that is
used during loading of the component.

26.

27.

28.

29.

How we can bind data between views and components?


a) Bind the data between views using custom controllers.
b) Bind the data between components using component usage via
method wd_usage_initialize
c) Prerequisites : Component which you want to bind should have
the Interface view and context node in component interface.
Explain MVC in terms of Component Workbench?
a) Every view in component workbench have data , controller and
layout together to enable some functionality. Works on the MVC
Framework
Model,
View,
Controller,
that
enables
disconnection between the data and the layout. The controller
serves to put and retrieve data to/from the model and view
layout by interacting with BSP tags. The Model refers to the
CTXT, the Controller refers to the IMPL and the View or
ViewLayout refers to the .HTM, which contains the BSP code.
The .HTM may also contain any other code (javascript, activeX )
though not advisable unless absolutely required. BSP and ABAP
are the code of choice.
What is the use of related entities?
a) When generating BOL entities, we have to distinguish between
root object and generation of dependent object. Root objects
are creating through entity factory and dependent objects are
created through create_related_entity method for their parent
object.
b) Suppose if object is crated from parent object, then if you want to
access the dependent object through get_related_entity
method.
What is page attribute?

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.

what are events in CRM?


a) Check in tcodeTcode CRMV_EVENT
b) After_change
c) Before_change
d) Before_save
e) After_createetc
How do you see values in debugging?
a) Object Entity referring CL_CRM_BOL_ENTITY at runtime
b) Go to Container_Proxy attribute
c) And then go to Data_ref attribute
d) And then go to attribute_set
e) This displays the bol entity structure which is referring the object,
then click the structure
f) You can see values.
What is role configuration key?
a) Whenever you do your UI Configuration steps, you can choose to
save your changes
b) only for a specific role configuration key. Only users with a
Business Role assigned,
c) which has entered this Role Configuration key will see your
changes
How to enhance genil ?
a) EnahnceGenil, by inheriting the Genil class to custom class and
can redefine the same how ever we want.

Capgemini interview questions:

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.

Accenture interview Questions :22. Purpose of DO_INIT and DO_INIT_CONTEXT?


we assign default values to the context nodes and often, initialize various
attributes of the controller class.

23. What is purpose of get_A method?

a. used to enable and disable fields based on switch id.

24. me->typed_context->CN->collection_wrapper, here purpose of me and CN?

a. me refer gobal class which refers controller.


b. CN contain data.
25. In F4 help and Dropdown, how do you inform to system, user which field
select?
26. how can we raise error messages in GenIL level?
a. through class If_GenIL_Message_container.
27. In Quotation how search objects find?
28. how we can add custom component to Work center area?
a. through Navigation Bar Profile.
29. what is target id and logical link?
a. Target id refer the custom component, it will assign to logical link
through this we can display custom component in web ui level.
30. what is mean by defer class?
a. Define definition of class later.
31. Is there any changes in html code for buttons?
a. Yes.
32. what is component and what is model?
a. whatever application developed which can be tied up with Component.
33. what is CRMV_EVENTS? have you worked on CRMV_EVENTS?
a. It is built in tool given by SAP for handlng the functionality based on
event occur while processing the application out side of the component
level.
34. purpose of Transaction Launcher and navigation bar profile?
a. TL is used to display the application(URL links) in web ui level which
are not developed in web ui and component work bench level.
b. If we want to display custom component in work center area that we
can get through navigation bar profile.

CTS interview Questions type 1:


35. If we have two entities Header entity and Item entity, how we can read both
entities at a time?
a. we have one method call get_related_entities.
36. types of context nodes?
a. Model node and value node.
37. how we can read all entities at a time?
a. we can't read all entities at a time, possible to read one by one.
38. what is model where it is located?
a. model is located in RRE in work bench level, it is used load component
set.
39. how we can get data in context node level?
40. purpose of component usage and component interface?

Component Usage: it is used to access data from other ui component


to current ui component. It is only possible if there is interface view
in other ui component.
Component Interface: The view in a component can be accessed to
othr component through interface controller.
41. Purpose of crmd_orderadm_h, how we can get bp related data through one
order table?
CRMD_ORDERADM_H gives header details of a transaction number(like service
contract number, sales order number etc, th

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?

46. we have one of the field ZABC , how we can validate?


There is a DO_VALIDATE_INPUT method in View controller (IMPL) class. You could make use of this method for
validation. Redefine this method in order to validate the data of the whole context before it is transfered to the APIs.

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.

CTS interview Questions type 2:


53. What is one order framework?
The One Order Framework is defined as the Framwork to handle all the CRM One Order
Documents. Basically CRM One Order Documents are Sales Orders, Service Orders,
Activities, etc. They all have a common structure to handle the data.

54. What is post processing framework?


Actions in SAP CRM use the Basis Post Processing Framework (PPF) component [The Post
Processing Framework (PPF) is an SAP basic technology that is used in SAP CRM to schedule
and process actions and outputs with an application document (such as a contract or an activity).]
as the uniform interface for different processing methods.

55. How you created popup window?


1. Select which view attribute going to provide popup.
2. Create Get-p method for attribute.
3. Inside get-p method provide rt_value,pick list as field type,eventlink and on
click triggering events
4. Create attribute at view implementation class level such as if_bsp_wd_popup
5. Inside event, by using of class cl_thtmlb_util->get event info
6. Find the record whter user interacted collection wrapper by using find method
and passing import parameter as iv_inded.
7. Checking case value where asiv_column
8. Trigger pop up by calling create_pop method

9. Create popup methoe is interface view as zorm_ovp/maincomponent usage


= cu2
10.Set_on-close_event
11.Set_window_width method we can set width of popup window
12.Open method is to open pop up.,

56. How you added custom component to the web ui?


1. Created target Id for my component
2. Created Logical link
3. Created logical link group and assigned the logical link created above
4. Assigned logical link group to work center(SRV-HOME).
5 . In business role I have checked the check boxes ( menu , visible ) corresponding to the work center link group.

57. Why we inherit the parent class properties to child class?


Inheritance is the process by which object of one class acquire the properties of another
class.
Advantage of this property is reusability.
This means we can add additional features to an existing class with out modifying it.

58. What is CRM Events?


59. How do you enhance the standard component and how you add the field?
Step 1.
Open Transaction SM34 and enter View Cluster 'BSPWDVC_CMP_EXT' to create a new Enhancement Set.
Alternatively this can also be done via BSP_WD_CMPWB as shown below.
Step 2.
Add new Entries and enter the name and description.
Step 3.
Open Transaction sm30 and assign the just created Enhancement set for the Client in the view BSPWDV_EHSET_ASG.
Step 4.
Open the UI Component which needs to be enhanced, use BSP_WD_CMPWB to check whether the Enhancement Set
which has been just created exists by clicking on the F4 help.
Step 5.

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 :

60. How you provide dropdown through AET?


Prepare the Value Help Descriptor
Return the Value Help Descriptor
Trigger a Server Roundtrip After a Value is Selected
Provide a Dropdown Box for an Advanced Search
Create P Getter for Business Object Attribute

61. How do you configure the Action profiles?


1 Enter into any SAP-CRM Server and move to Transaction SPRO.
2 Press SAP Reference IMG -> Customer Relationship Management ->Basic Functions -> Actions -> Actions in
Transactions.
3 To create an Action Profile - Click onCREATE ACTIONS WITH WIZARD. First read the documentation.
4 Now Press the Execute Buttonto start creating an Action Profile.
5 Click CONTINUE. Enter the Details to create Action Profile.
6 Click CONTINUE. Enter the Details to create Action.
7 Click CONTINUE. Enter the Details to set Action.
8 Click CONTINUE. Enter the Details to Set Up Partner Determination.

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?

63. Why you created search result view?


64. What is order_savebadi? And what is the purpose of BADIs?
When the customer needs more functionality than the SAP
standard Program(Functionality)then we can add extra
functionality to standard SAP functionality through Badi. ,

65. How do you assign business role for you?


Business Role: The business role is the central object for controlling the
navigation bar, the logical link and the authorizations for users.
Steps to assign business role:
1. Go to IMG path: Customer Relationship Management>Business Roles->Define Business Roles ot to Transcation
CRMC_UI_PROFILE.
2. Pick a suitable role which you want to create a copy of and
note the PFCG role id
3. Go to transaction PFCG and create a Z copy of the standard
PFCG role
4. Once the PFCG role is created go to IMG path: Customer
Relationship Management->Business roles->Define business
roles and create a new business role with the above created
PFCG role(it is cconvenient to copy the standard role to Z
NAMe space and change the PFCG role id) save the changes
5. IMG PATH; Customer Relationshiip Management->Business
Roles->Define Organizational Assignment or Transcation
PPOMA_CRM
Users/Business Partners are assigned with in the
organizational model to a position
User/business partners can be assigned to multiple
positions
Each position can have exactly one business role
6. Double Click on the position, menu option Goto->detail Object>enchanced object description

7. Go to business role and click on create.


8. Maintain the business role

66. How do you enhance the search criteria?

67. What is purpose of do_prepare_output?


DO_PREPARE_OUTPUT method is triggered each time the view is prepared after each event.

68. What is do_init_context?

It is used for add default values

69. What is do_config_determinition?


70. What is the purpose of custom controller and component controller?
Custom Controller: It is used for data transfer across two views within a
component.
Component Controller: it is used for data transfer across two views in two
different components
71. How you provide default values for a field?
By using method DO_INT_CONTEXT

72. What is the purpose of navigation link? Is it possible to navigate without


inbound and outbound plugs?\ What is the purpose html code in a view?

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?

It is used to maintain the authorization profiles.

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.

74. How you display the messages in web ui?

By using function module crm_message_collect

*SAP

CRM Most useful BADIs (Updating)

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?

Select which view attribute going to provide popup.


Create Get-p method for attribute.
Inside get-p method provide rt_value,pick list as field type,eventlink and on
click triggering events
Create attribute at view implementation class level such as if_bsp_wd_popup
Inside event, by using of class cl_thtmlb_util->get event info
Find the record whter user interacted collection wrapper by using find method
and passing import parameter as iv_inded.
Checking case value where asiv_column
Trigger pop up by calling create_pop method
Create popup methoe is interface view as zorm_ovp/maincomponent usage
= cu2
Set_on-close_event

Set_window_width method we can set width of popup window


Open method is to open pop up.,

85. Tell Configuration of Action Profiles?


Go to que number 61.

86. How do you configure the business roles?


go to que number 65

87. How you display the messages in web ui?


Steps:

1.
2.

Create the Z message class in se91 and add the message into the class with the
corresponding message number.
And go to

88. We added custom component(search result view) in web ui level? Now we


have add some functionality to the the search event in search result view ?
will u enhance it or any other procedure?
89. What is redefinition concept?
90. How to transfer the data between two context nodes in the same view?
data: lr_entity type ref to cl_crm_bol_entity.
lr_entity ?= me->typed_context->(context_node name)->collection_wrapper->get_currrent( ).
lv_field_value = lr_entity->get_property_as_String( **pass the field name here ).

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:

99. Difference between model and value node


100. How to enhance standard component?

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.

111. What table u used?explain briefly?


112. How we can display buttons? in how many ways we can achieve to create
buttons? In which methods will write code?
Go to que number 17

113. In which module (like sales,service,marketing) u worked?


114. Why use iterators ?how we can move from one entity to another entity?
go to questionnumber 23.
115. How to add custom component to navigation bar profile?
go to question number 56.

116. How to add dropdown,f4help,tree?what are steps to follow?for which field


u made ?
Go to question number 14
117. Have you worked on middlware and bdocs?
118. Why we use get related entities?
If object is created from parent object, the if you want to access the
dependent object we use get_related _entity method
119. How do u see values in debugging?

Go to question number 30
120. What is action profile?Have u worked on action profiles?what is
requirment?
Go to question number 85

IBM interview Questions type 1:


121. Tell me about ur client? What is their business? How you got the work and
to whom you are going to submit?
a) Said about my client and their business then
b) I got the work from team lead in the form of functional spec, I have to
analyze the functional spec if I have any doubts I vil communicate vth the
functional consultant who sent the functional specification. Once I
understand I develop the technical spec, once my object completed I vil
do the unit test whether the application meeting the requirement or not. I
vil submit my work to my lead, he will send to quality people if every thing
is ok.
122. I want to add a field in IC Web client, how you do that tell the procedure?
a) By pressing f2 in IC webclient we get the technical details like component
name, view name, context node name etc. note them. Create a data
element in se11 according to the requirement. Now using the AET we are
going to add the field to icwebclient. Once field successfully added
through AET we have configure the field from avialblefileds to visible fiels,
to do that enhance the component and move the field. Now field available
in icweb client.
123. I have standard component with number of views, I want to enhance first
and fourth view only and some fields for that,how you do that? Tell the tcode
for that?
a) I told if the component is enhanced already with enhancement set, just go
to that views which we want to enhance ,in context menu of that view
have Enhance option select that ten view become customized and now by
using AET add the fields.
124. What is said is right but she dont want that. She expectingtcode to
enhance the component. .
125. What is the purpose of IMPL class?
a) IMPL class assingned controller in each view. By using methods and
attributes of the impl class we control the user requests, navigations,
event handlings of a view or a component.
126. We have inbound plug and outbound plug right, where we can see these
things in IMPL class?
a) I told we see those two in bottom of the tree structure of a view. But she
want in impl class.
127. We have IMPL, CTXT, CN00, inbound, outbound plugs and .htm right, in
which tcode we see all these things?

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.

GSS Software Solutions interview questions:141.


142.
143.
144.
145.
146.
147.
148.
149.
150.

What is the ABAP Enhancement?


What is the Badi,BAPI?
View Have 3 classes purpose of three classes?
Do u has work on Data migration & Data creation?
What is the Middleware setting? What about the Bdocs?
What is the Navigation bar profile? How wills configuration
what is the Transaction launcher? How will configure that?
What is the Action profile?
do u have faced the any issues in this project?
What is the window? How will check the views which are related same
view?

ATOS interview Questions:-

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?

153. What is the collection wrapper?


154. If u transfer data from search view to ovp I have field country for that
country for that country field how we can provide default values?
155. How will add the field in AET level?
==================================================
===================================
* Mahesh Class *

SAP CRM WEBUI ARCHITECTURE:

Controller- is a class wchich ends with '_impl'.

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

Form view - Each attribute holds single record.

Emp name: Bhanu

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.