EPIC-Web Ui Architecture
EPIC-Web Ui Architecture
EPIC-Web Ui Architecture
The different software layers are completely separated from each other. The separation allows
the connection of any business application via the BOL( Business Object Layer) layer,
GenIL( Generic interaction Layer) layer to the presentation layer.
Presentation Layer:
The Presentation layer of CRM Webclient UI is based on the CRM User Interface
Framework, which is the basis for the HTML pages running in the browser.
Business Layer:
The business layer of CRM Webclient UI consists of the following software layers:
Set_attr: sets the data which is given on the screen on to the Bol.
Get_i_attr: to enable or disable codes have to write in this method.
Get_p_attr: to write code for check box, radio buttons, pick lists, value search f4.
Get_v_attr: without get p method there is no get v method.
Use this to give values for attributes.
To give values to the pick list use get p and get v together.
Every attribute have this getter and setter methods.
Get_m_attr: this method changes the metadata.
Whenever youre changing the tables then only it is use full.
If you dont have the get and set methods then we can say that values stored in the database.
Context node class generated methods for attributes.
EEWB & AET
Both EEWB (Easy Enhancement Workbench) and AET (Application Enhancement Tools)
tools are used to add custom fields to any CRM object. Going back to history, EEWB was
provided by SAP from CRM 4.0 (I only started working from CRM 4, not sure if it existed
before) and was very handy tool to add new fields on CRM 4, 5. EEWB was mainly used by
developers as it still required some technical knowledge for adding fields. AET has taken the
wizard to next level by enabling to directly add fields on CRM UI. AET is quite easy to use
and was mainly designed with the idea to simplify adding of custom fields to any CRM
object. Any person with fair amount of CRM knowledge can use AET to add custom fields.
I like both of these tools and worked extensively of EEWB. Using EEWB, I added fields.
Then I created tables, tabstrips and included those custom fields on the Additional Data tab in
CRMD_ORDER. This was possible as we were still working on GUI and I could play around
in any way according to the requirement. We cant add tables using AET as of now. If SAP
can provide this option in the future releases, that would be great.
Below are few things that I want to highlight about these two tools.
1.
Any custom fields added using AET doesnt exist on Additional Data/Customer Fields Tab
on CRMD_ORDER. This is a bit strange and I really didnt understand why SAP didnt
provide this feature. I know SAP wants to drive CRM only through web UI. But still I would
like to have this feature of displaying custom fields added using AET on GUI as well. This is
the only concern that I have with AET.
2.
AET has made life much simpler if we want to add dropdown boxes, Search Helps,
Currency and Quantity fields. Using EEWB, it was a bit more complicated in having these
features.
3.
Using AET, we can reuse the custom fields in other objects. This is really cool thing which
prevents us to recreate the same custom field if required in any other object.
For now, Im enjoying AET more than EEWB. AET is future ahead for adding new fields.
Maybe AET will have the capability to add assignment blocks directly some day.
Application Enhancement Tool
The Application Enhancement Tool has been introduced to enhance CRM applications. You can use
the tool to search for enhancements, and to display, create, change, and delete enhancements.
Integration
You can enhance ERP business objects in the CRM WebClient UI. For more information, see
Customizing for Customer Relationship Management under Transactions Settings for ERP
Transactions Maintained via CRM
Prerequisites
Before you can use the Application Enhancement Tool, you need to define the package name,
generation prefix, and namespace for enhancements. You can make the necessary settings in
Customizing for Customer Relationship Management under UI Framework UI Framework
Definition
If you are not authorized to use the Application Enhancement Tool, you need a certain authorization
role.
Only the Z namespace is supported for BDocs. Within other namespaces, you will not be able to
generate enhancements that influence BDocs. This affects the enabling for CRM Mobile, and
enhancements for all Marketing objects.
Features
The Application Enhancement Tool is integrated in the UI Configuration Tool, and can be started in
this tool. The fields that you have added to an application are available in the UI configuration of
the corresponding UI component and view. You can make these new fields available on the user
interface by adding them to the view.
The Application Enhancement Tool offers the following main functions:
Creating custom fields
Defining dropdown list boxes for custom fields
Translating field labels and entries in dropdown list boxes
Assigning search helps and check tables to custom fields
Making new custom fields available in search criteria and/or result lists, Business Intelligence (BI)
reporting, R/3 Adapter, CRM Mobile, and CRM interactive reporting, which depends on the enhanced
business object
Using different data types, such as characters, dates, times, and numbers
Reusing fields in other business objects, if these business objects are based on the
same enhancement place
UI Configuration Tool
You can use the UI Configuration Tool to adapt the user interface of SAP CRM to your company's
specific requirements. You can access the UI Configuration Tool in SAP GUI and in the CRM
WebClient UI.
Integration
If you want to change field labels across multiple views, you can use the design layer to
consolidate the field changes. You define these settings in Customizing under Customer
Relationship Management
UI Framework
UI Framework Definition
Design Layer
If you want to change customer-specific fields that were created with the Easy Enhancement
Workbench (EEW), and are contained in views, you can do so by using the UI Configuration Tool in
the same way as with standard fields. You define your own fields in Customizing under Customer
Relationship Management
Features
The UI Configuration Tool in the CRM WebClient UI enables you to easily adjust pages and views to
your requirements.
General Features
The UI Configuration Tool in the CRM WebClient UI offers the following general features:
UI Configuration Access
You can enter the view configuration and fact sheet configuration in the CRM WebClient UI in the
following ways.
Via Logical Links in the Navigation Bar or from a Work Center Page
You can access the view configuration and fact sheet configuration in your system administrator
role. They way you access the view configuration and fact sheet configuration depends on your
Customizing:
By using logical links that belong to a direct link group in the navigation bar
By using logical links that belong to a work center, for example the Administration work center
These logical links are displayed on the second level of the corresponding work centers in the
navigation bar of your system administrator role.
By using logical links on a work center page
These logical links can be assigned to the Search content block on the work center page, for
example on the Administration work center page.
SAVE.
PROVIDE ROLE CONFIG KEY AS YOURE PROVIDED ROLE KEY.
SAVE.
WITH THIS YOUR ROLL KEY GENARATED.
ENHANCEMENTS TO STANDARD COMPONENT
TO ENHANCE STANDARD COMPONENT NOTHING BUT BSP APPLICATION NAME.
TO KNOW THE DETAILS OF STANDARD APPLICATION GO TO TRANSACTION WEB-UI.
SELECT REQUIRED SALES CYCLE THEN SELECT UR REQUIRED UI.
ON THAT UI PRESS F2 BUTTON.
ONE POPUP WILL APPEAR FROM THAT UI WE CAN GET COMPLETE DETAILS OF STANDARD
COMPONENT.
DETAILS LIKE STANDARD COMPONENT, OBJECT TYPE OR WE CAN SEE TECHNICAL INFORMATION AND
FUNCTIONAL INFORMATION.
STRUCTURAL INFORMATION MEANS THAT COMPONENT VIEW STRUCTURE.
Provide Description.
Click on Display.
Click on Enchance Component
Click on Yes .
Press Enter ( here Repository.xml will be created..).
Save in local Package or Your own Package.
Select Component Structure Browser
Go to views-> BT111H_OPPT/Details
Right Click BT111H_OPPT/Details then Select Enhance.
GO TO CRM_UI
->CHECK YOUR CUSTOMIZED DESCRIPTION FOR UR FIELD.
The Result will be.
View Creation:
1. Go to Component Structure Browser.
2. Select Views.
3. Right Click On View.
4. Select Create.
Step1: Create View
1. Start->Continue.
2. Define Name:
View Name: ZChandu.
3. Add Model Node->Continue.
4. Add Value Node-> Value Node: ZChandu.
Key.
STEP1
1. Go to Component Structure Browser.
2. Go to Our View ( Foreg: TestView ).
3. Go to View Structure->Request Processing->DO_PREPARE_OUTPUT
4. Right Click DO_PREPARE_OUTPUT-> Select Redefine.
5. Write the Code
Provide Below Details in Implementation Class
Attributes
1. GT_TOOLBAR_BUTTONS Instance Public Type CRMT_THTMLB_BUTTON_T.
2. GT_VIEW_BUTTONS Instance Public Type CRMT_THTMLB_BUTTON_T.
Code in DO_PREPARE_OUTPUT
method DO_PREPARE_OUTPUT.
CALL METHOD SUPER->DO_PREPARE_OUTPUT
EXPORTING
IV_FIRST_TIME = IV_FIRST_TIME.
DATA : WA_BUTTON TYPE CRMT_THTMLB_BUTTON.
DATA : V_FLG TYPE boolean.
REFRESH: GT_TOOLBAR_BUTTONS,GT_VIEW_BUTTONS.
WA_BUTTON-ID = 'EDIT LIST'.
WA_BUTTON-TEXT = 'EDIT LIST'.
WA_BUTTON-ON_CLICK = 'EDITLIST'.
V_FLG = VIEW_GROUP_CONTEXT->IS_VIEW_IN_DISPLAY_MODE( ME ).
IF V_FLG = ABAP_TRUE.
WA_BUTTON-ENABLED = 'X'.
ELSE.
WA_BUTTON-ENABLED =''.
ENDIF.
APPEND WA_BUTTON TO GT_TOOLBAR_BUTTONS.
CLEAR WA_BUTTON.
WA_BUTTON-ID = 'INSERT'.
WA_BUTTON-TEXT = 'INSERT'.
WA_BUTTON-ON_CLICK = 'NEW'.
WA_BUTTON-ENABLED = 'X'.
APPEND WA_BUTTON TO GT_VIEW_BUTTONS.
CLEAR WA_BUTTON.
WA_BUTTON-ID = 'DELETE'.
*WA_BUTTON-TEXT = 'INSERT'.
WA_BUTTON-ON_CLICK = 'DEL'.
WA_BUTTON-ENABLED = 'X'.
WA_BUTTON-TYPE = CL_THTMLB_UTIL=>GC_ICON_DELETE.
APPEND WA_BUTTON TO GT_VIEW_BUTTONS.
CLEAR WA_BUTTON.
endmethod.
Go to .htm for adding code for Display Buttons
1. Go to SE80.
2. Go to TagBrowser->Bsp Extensions->chtmlb-> <chtmlb:configTable>->actions.
Drag actions to .htm inside <chtmlb:configTable >
and write the code like: actions = "<%= CONTROLLER->GT_VIEW_BUTTONS %>"
4. Go to TagBrowser->Bsp Extensions-> <thtmlb:areaFrameSetter>->toolbar
Buttons.
Drag <thtmlb:areaFrameSetter> above <chtmlb:configTable>
And Drag maxButtonNumber and toolbarButtons in between
<thtmlb:areaFrameSetter>
The code like below.
<thtmlb:areaFrameSetter
maxButtonNumber = "2"
toolbarButtons = "<%= CONTROLLER->GT_TOOLBAR_BUTTONS %>"/>
The Complete .htm code will be like below.
<%@page language="abap" %>
<%@extension name="thtmlb" prefix="thtmlb" %>
<%@extension name="chtmlb" prefix="chtmlb" %>
<%@extension name="bsp" prefix="bsp" %>
<thtmlb:areaFrameSetter
maxButtonNumber = "2"
toolbarButtons = "<%= CONTROLLER->GT_TOOLBAR_BUTTONS %>"/>
IV_DATA_REF = WA_LINE.
TYPED_CONTEXT->TESTNODE->COLLECTION_WRAPPER->ADD( LR_VALUE_NO
DE ).
endmethod.
Select GET_V_LEADTYPE.
4. Double Click on GET_V_LEADTYPE ->select yes.
Write Below code in GET_V_LEADTYPE method
method GET_V_LEADTYPE.
DATA: LR_DDLB TYPE REF TO CL_CRM_UIU_DDLB,
IT_DDLB TYPE BSP_WD_DROPDOWN_TABLE,
WA_DDLB TYPE BSP_WD_DROPDOWN_LINE.
CREATE OBJECT LR_DDLB
EXPORTING
IV_SOURCE_TYPE = 'T'.
APPEND INITIAL LINE TO IT_DDLB.
WA_DDLB-KEY = '11'.
WA_DDLB-VALUE = 'TYPE1'.
APPEND WA_DDLB TO IT_DDLB.
WA_DDLB-KEY = '12'.
WA_DDLB-VALUE = 'TYPE2'.
APPEND WA_DDLB TO IT_DDLB.
WA_DDLB-KEY = '13'.
WA_DDLB-VALUE = 'TYPE3'.
APPEND WA_DDLB TO IT_DDLB.
CALL METHOD LR_DDLB->SET_SELECTION_TABLE
EXPORTING
IT_SELECTION_TABLE = IT_DDLB.
* LR_DDLB->SET_SELECTION_TABLE( EXPORTING IT_SELECTION_TABLE = IT
_DDLB ).
RV_VALUEHELP_DESCRIPTOR ?= LR_DDLB.
endmethod.
STEP3
1. Go to Component Structure Browser.
2. Go to Our view (for eg: ZCHANDUBSP/TESTVIEW).
3. Go to Context->Contex Nodes->TestNode->Attributes-> LEADTARGET ->
Select GET_I_LEADTARGET.
4. Double Click on GET_I_LEADTARGET.
method EH_ONOPP_TYPE_SELECTED.
DATA: LR_EVENT TYPE REF TO CL_HTMLB_EVENT_SELECTION,
LR_COL TYPE REF TO IF_BOL_BO_COL,
LR_ITR TYPE REF TO IF_BOL_BO_COL_ITERATOR,
LR_ENTITY TYPE REF TO IF_BOL_BO_PROPERTY_ACCESS,
LR_CORE TYPE REF TO CL_CRM_BOL_CORE,
LR_MSG TYPE REF TO CL_CRM_GENIL_GLOBAL_MESS_CONT,
V_INDEX TYPE I.
LR_CORE = CL_CRM_BOL_CORE=>GET_INSTANCE( ).
CALL METHOD LR_CORE->GET_GLOBAL_MESSAGE_CONT
RECEIVING
RV_RESULT = LR_MSG.
LR_EVENT ?= HTMLB_EVENT_EX.
CALL METHOD CL_THTMLB_UTIL=>GET_EVENT_INFO
EXPORTING
IV_EVENT = HTMLB_EVENT_EX
IMPORTING
EV_INDEX = V_INDEX.
LR_COL ?= TYPED_CONTEXT->TESTNODE->COLLECTION_WRAPPER.
LR_ITR ?= LR_COL->GET_ITERATOR( ).
LR_ENTITY ?= LR_ITR->GET_FIRST( ).
WHILE LR_ENTITY IS BOUND.
IF LR_ENTITY->GET_PROPERTY_AS_STRING( IV_ATTR_NAME = 'LEADTYPE' )
= LR_EVENT->SELECTION AND SY-INDEX NE V_INDEX.
*
*
*
*
*
*
*
*
*
*
*
IV_MSG_V1
= LR_EVENT->SELECTION
IV_MSG_V2
=
IV_MSG_V3
=
IV_MSG_V4
=
IV_SHOW_ONLY_ONCE = 'X'
IV_MSG_LEVEL
= '1'.
ENDIF.
LR_ENTITY ?= LR_ITR->GET_NEXT( ).
ENDWHILE.
endmethod.
EXPORTING
IV_TITLE
= 'DEPENDANCY CONFIRMATION'
IV_TEXT
= 'DEPENDANCY EXIST. DO YOU WANTO TO CANCEL'
IV_BTNCOMBINATION = IF_BSP_WD_WINDOW_MANAGER=>CO_BTNCOMB_
YESNOCANCEL
*
IV_CUSTOMBUTTONS =
RECEIVING
RV_RESULT
= GR_CONF_POPUP.
CALL METHOD GR_CONF_POPUP->SET_ON_CLOSE_EVENT
EXPORTING
IV_VIEW = ME
IV_EVENT_NAME = 'CONF_POP_CLOSED'.
GR_CONF_POPUP->OPEN( ).
ENDIF.
Code for Event Handler CONF_POP_CLOSED.
1. Go to Component Structure Browser.
2. Go to Our view (for eg: ZCHANDUBSP/TESTVIEW).
3. Go to EventHanlder.->Right Click->Create
Provide Event Name as: CONF_POP_CLOSED ->enter
4. Double Click On method EH_ CONF_POP_CLOSED.
Write the Below Code in EH_CONF_POP_CLOSED.
method EH_ONCONF_POP_CLOSED.
DATA: V_PLUG TYPE SEOCMPNAME,
LR_ENTITY TYPE REF TO IF_BOL_BO_PROPERTY_ACCESS.
V_PLUG = GR_CONF_POPUP->GET_FIRED_OUTBOUND_PLUG( ).
IF V_PLUG = 'YES'.
LR_ENTITY ?= TYPED_CONTEXT->TESTNODE->COLLECTION_WRAPPER
-> FIND( IV_INDEX = V_INDEX ).
LR_ENTITY->
SET_PROPERTY_AS_STRING( IV_ATTR_NAME = 'LEADTARGET' IV_VALUE = '').
LR_ENTITY->
SET_PROPERTY_AS_STRING( IV_ATTR_NAME = 'PARTNER' IV_VALUE = '').
ENDIF.
endmethod.
STEP1:
1. Go to Component Structure Browser.
2. Go to CustomController
3. Select Any CustomeController( for eg: BT111H_OPPT/OpptDetailsCuCo ).
4. Right Click on above Customcontrol.
5. select Enhance.( after enhancing your zclass of impl & contx wil be created).
6. Go to Context->ContexNode->Right Click on Context Node->Select Create.
ContextNode Creation
=====================
1. Start
2. Define ContextNode.
Provide Name: OpptCn.
Select ValueNode RadioButton.
Continue.
3. Add Value.
Add AbapDictionaryType
Provide DDIC Structure: ZDemo_Cus_lead.
Continue.
4. Create Links to CustomController->Continue.
5. Complete.
Save Details
STEP2:
1. Go to VIEWS From Component Structure Browser.
2. Go to Context->Context Node->select your ContextNode->Right Click On
Context Node( OpptCn) ->Select Create Binding.
3. Provide Following Details:
BspApplication
: BT111H_OPPT.
ControllerType
: CustomController.
CustomController
: OpptDetailsCuCo.do
TargetContextNode : OpptCn.
STEP3:
1. Go To Componet Structure Browser->Views.
2. Enhance BT111H_OPPT/OpportunityOVViewSet.
3. Double Click on BT111H_OPPT/OpportunityOVViewSet.
4. Go to EventHandler.
5. Select EH_ONSAVE.
6. Right Click EH_ONSAVE and Redefine.
Write the Following Code in EH_ONSAVE
method EH_ONSAVE.
CALL METHOD SUPER->EH_ONSAVE
EXPORTING
HTMLB_EVENT = HTMLB_EVENT
HTMLB_EVENT_EX = HTMLB_EVENT_EX.
DATA: LR_CUCO TYPE REF TO ZL_BT111H_O_OPPTDETAILSCU_IMPL,
(the above class is whatever we enhanced in CustomContoller.).
LR_COL TYPE REF TO IF_BOL_BO_COL,
LR_ITR TYPE REF TO IF_BOL_BO_COL_ITERATOR,
IT_DATA TYPE STANDARD TABLE OF ZDEMO_CUS_LEAD,
LR_ENTITY TYPE REF TO IF_BOL_BO_PROPERTY_ACCESS,
LR_BTADMINH TYPE REF TO CL_CRM_BOL_ENTITY,
WA_DATA TYPE ZDEMO_CUS_LEAD.
LR_CUCO ?= GET_CUSTOM_CONTROLLER( CONTROLLER_ID = 'BT111H_OPPT/O
pptDetailsCuCo' ).
LR_BTADMINH ?= TYPED_CONTEXT->BTADMINH->COLLECTION_WRAPPER>GET_CURRENT( ).
WA_DATA-LEADGUID = LR_BTADMINH->GET_PROPERTY_AS_STRING( IV_ATTR
_NAME = 'GUID' ).
LR_COL ?= LR_CUCO->ZTYPED_CONTEXT->OPPTCN->COLLECTION_WRAPPER.
LR_ITR ?= LR_COL->GET_ITERATOR( ).
LR_ENTITY ?= LR_ITR->GET_FIRST( ).
WHILE LR_ENTITY IS BOUND.
LR_ENTITY->GET_PROPERTIES( IMPORTING ES_ATTRIBUTES = WA_DATA ).
APPEND WA_DATA TO IT_DATA.
LR_ENTITY ?= LR_ITR->GET_NEXT( ).
ENDWHILE.
MODIFY ZDEMO_CUS_LEAD FROM TABLE IT_DATA.
Endmethod.
SEARCHING BASED ON LEADTYPE ( EH_ONSEARCH )
STEP1 (Create New Enhancement Set for Search Component).
1. Go to Transaction: BSP_WD_CMPWB.
2. Provide Component as BT111S_OPPT .
( Because it is the search component for BT111H_OPPT).
Provide Component
: BT111S_OPPT
Provide Enhancement Set
: ZSearch.
Click On Create.
Provide Short Text.
3. Click Display for Created Enhancement.
4. Click on Enhancement Componenet.
5. Provide Enhancement Set: ZSearch.
6. Provide Bsp Application: ZSearchBsp ->Enter->yes->Enter.
7. Save Enhancement.
Step2.
1. Go to Componenet Structure Browser.
2. Right Click on BT111S_OPPT/Search->Select Enhance.
3. Double Click on BT111S_OPPT.
4. Go to ViewStructure->Event Handler->Select EH_ONSEARCH ->Right Click
Select Redefine.
5. Double Click on EH_ONSEARCH.
6. Go to Change Mode.
7. Write the Code.
Provide Below Details in Implementation Class
1. Attributes:
GT_ORIGINAL_SEARCH_CRITERIA Instance Attribute public
Type GENILT_SELECTION_PARAMETER_TAB
2. Methods:
1. SAVE_UI_SEARCH_CRITERIA
Parameters: IR_QS importing Type Ref To CL_CRM_BOL_DQUERY_SERVICE
2. RESTORE_UI_SEARCH_CRITERIA
Parameters: IR_QS importing Type Ref To CL_CRM_BOL_DQUERY_SERVICE
method EH_ONSEARCH.
DATA: LR_QS TYPE REF TO CL_CRM_BOL_DQUERY_SERVICE,
LR_SEL_COL TYPE REF TO IF_BOL_BO_COL,
LR_ENTITY TYPE REF TO IF_BOL_BO_PROPERTY_ACCESS,
WA_PARAM TYPE GENILT_SELECTION_PARAMETER,
IT_DATA TYPE STANDARD TABLE OF ZDEMO_CUS_LEAD,
IT_SEL_TYPE TYPE STANDARD TABLE OF SELOPTTAB,
WA_SEL TYPE SELOPTTAB,
WA_DATA TYPE ZDEMO_CUS_LEAD,
LV_LOW TYPE STRING.
LR_QS ?= TYPED_CONTEXT->SEARCH->COLLECTION_WRAPPER>GET_CURRENT( ).
SAVE_UI_SEARCH_CRITERIA( IR_QS = LR_QS ).
LR_SEL_COL ?= LR_QS->GET_SELECTION_PARAMS( ).
LR_ENTITY ?= LR_SEL_COL->GET_FIRST( ).
WHILE LR_ENTITY IS BOUND.
LR_ENTITY->GET_PROPERTIES( IMPORTING ES_ATTRIBUTES = WA_PARAM
).
IF WA_PARAM-ATTR_NAME = 'LEADTYPE'.
MOVE-CORRESPONDING WA_PARAM TO WA_SEL.
APPEND WA_SEL TO IT_SEL_TYPE.
ENDIF.
LR_ENTITY ?= LR_SEL_COL->GET_NEXT( ).
ENDWHILE.
SELECT * FROM ZDEMO_CUS_LEAD INTO TABLE IT_DATA
WHERE LEADTYPE IN IT_SEL_TYPE.
LOOP AT IT_DATA INTO WA_DATA.
LV_LOW = WA_DATA-LEADID.
CALL METHOD LR_QS->ADD_SELECTION_PARAM
EXPORTING
IV_ATTR_NAME = 'OBJECT_ID'
IV_SIGN
= 'I'
IV_OPTION = 'EQ'
IV_LOW
= LV_LOW.
ENDLOOP.
CALL METHOD SUPER->EH_ONSEARCH
EXPORTING
HTMLB_EVENT = HTMLB_EVENT
HTMLB_EVENT_EX = HTMLB_EVENT_EX.
RESTORE_UI_SEARCH_CRITERIA( EXPORTING IR_QS = LR_QS ).
endmethod.
The Code for Below two Methods SAVE_UI_SEARCH_CRITERIA &
RESTORE_UI_SEARCH_CRITERIA available In Repository Information System
(SE15).
SAVE_UI_SEARCH_CRITERIA code.
method SAVE_UI_SEARCH_CRITERIA.
DATA: lr_selparam_col TYPE REF TO if_bol_bo_col.
CALL METHOD ir_qs->get_selection_params
RECEIVING
rv_result = lr_selparam_col.
DATA: lv_iterator TYPE REF TO if_bol_bo_col_iterator,
lv_param TYPE REF TO if_bol_bo_property_access.
DATA: ls_selection TYPE genilt_selection_parameter.
REFRESH gt_original_search_criteria.
TRY.
lv_iterator = lr_selparam_col->get_iterator( ).
lv_param = lv_iterator->get_first( ).
WHILE lv_param IS BOUND.
*
Get the attributes out
lv_param-> get_properties( IMPORTING es_attributes = ls_selection ).
* save in global instance varialbe for later reuse.
APPEND ls_selection TO gt_original_search_criteria.
*
Get all the entitys from the collection
lv_param = lv_iterator->get_next( ).
ENDWHILE.
CATCH cx_sy_ref_is_initial.
"#EC NO_HANDLER
ENDTRY.
endmethod.
RESTORE_UI_SEARCH_CRITERIA code.
method RESTORE_UI_SEARCH_CRITERIA.
DATA: col TYPE REF TO if_bol_bo_col.
FIELD-SYMBOLS: <ls_selection_parameters> TYPE genilt_selection_parameter.
col = ir_qs->get_selection_params( ).
* clear the selection parameter collection....
CALL METHOD col->clear .
LOOP AT gt_original_search_criteria ASSIGNING <ls_selection_parameters>.
* to have the original UI selection param table for the search
CALL METHOD ir_qs->add_selection_param
EXPORTING
iv_attr_name = <ls_selection_parameters>-attr_name
iv_sign
= <ls_selection_parameters>-sign
iv_option = <ls_selection_parameters>-option
iv_low
= <ls_selection_parameters>-low
iv_high
= <ls_selection_parameters>-high.
ENDLOOP.
endmethod.
step 3:
------1. click on continue
2. provide extension title : zeewb_extvicky->continu
3. under business transaction types select CRM Opportunity->continue
4. provide field label : Test EEWBvicky
5. Data type
: character string
6. field length
: 20->continue
7. Enable header check box
8. sub object
: adminstration header(use f4)
9. continue
10. Enable search check box->continue
11. complete
12. click on CRM_BTX_ADD_NEW_FIELDS we can see all the details of customization.
step 4:
-------
1.
2.
3.
4.
5.
: zkyrcomp
: component18
: Zcl_Demo_Genil
: Zdemo_object
: Zdemo_model
: rootobj
: A (f4)( root object )
: zkyr (user defined structure)
Save
Object name
: searchobj
Onjectkind
: G (f4)( dynamic search object )
Attr structure
: zkyr (user defined structure)
Root object
: Rootobj
Result object name : resultobj
Save
Object name
: Resultobj
Onjectkind
: E(f4) (search result object
Attr structure
: zkyr (user defined structure)
Rootobject
: Rootobj
Save.
CREATE ENTRIES IN MODEL TABLE:
Copy the table from standard BP component
Goto se11
Database table : CRMC_MODEL_BUIL
Copy
To Test Model:
Select tcode : Genil_Model_Browser
Provide component set : Zcompset
We can check our attributes under root object,search resut object and dynamic
search objects
Component Creation:
Component : Zcus_component18
Create
Window name : mainwindow
Save
Goto runtime repository editor
Select change mode
Right click on models
Add model
Component set : Zcompset
Save
Right click on views
Create view
Continue
Name : searchview
Continue
Add model node
Model nodes : searchcn
Bol entity
: searchobj(f4)
Continue
Add model attributes
Select required fields->enter
Continue
Continue
Continue
Select empty view
Save
Select configuration
Continue
Continue
Select configuration and select tableview
Move the field from available to display.
Save.
ADDING VIEW TO VIEWSET:
Right click on view
Create view set
Name : searchviewset
Line : 2
Col : 1
Viewarea : searchviewarea
Row
:1
Col
:1
Rowspan : 1
Colspan : 1
Viewarea : result view
Row
:2
Col
:1
Rowspan : 1
Colspan : 1
Continue
Goto runtime repository editor system
Select change mode
Goto view set
Right click on searchview view area
Add view
View : searchview
Save
Goto view set
Right click on searchview view area
Add view
View : searchview
Save
ADDING VIEWSET TO WINDOW:
Right click on window
Add window
View : searchviewset
Save
Test the viewset is available or added or not
Component : zcus_component18
Test.
ADDING BUTTONS TO CUSTOM COMPONENT:
Goto se80
wa_ddlb-value = 'Type2'.
append wa_ddlb to wa_result-ddlb_options.
wa_ddlb-key = '13'.
wa_ddlb-value = 'Type3'.
append wa_ddlb to wa_result-ddlb_options.
modify rt_result from wa_result index v_index.
endif.
endmethod.
GENIL CLASS IMPLEMENTATION:
In our genil class redefine the method get_dynamic_query_result.
UNDO REDEFINE THE GET_DYNAMIC_QUERY_RESULT IN GENIL CLASS
CREATED.
THEN WE CAN SEE EMPTY METHOD GET_DYNAMIC_QUERY_RESULT WITH
OUT CODE.
AGAIN REDEFINE THE GET_DYNAMIC_QUERY_RESULT.
Becoz when I click on search button to get the data we to implement the above method.
method IF_GENIL_APPL_INTLAY~GET_DYNAMIC_QUERY_RESULT.
Continue
Add modelnode
Modelnode : resultcuco
Bol entity : resultobj
Continue
Select required fields
Continue
Continue
Continue
Complete
Bind the result view context node with custom controller node
Goto context node
Right click on resultcn
Create bind
Controller type : custom controller
Custom controller : searchresultcuco
Target : resultcuco
SEARCH EVENT HANDLER CREATION
Create SEARCHBTN EVENT HANDLER IN SEARCHVIEW
method EH_ONSEARCHBTN.
data : lr_qs type ref to cl_crm_bol_dquery_service,
lr_result_col type ref to IF_BOL_ENTITY_COL,
lr_cuco type ref to ZL_ZCUSTOM__SRCUCO_IMPL ,
lr_col type ref to if_bol_bo_col.
lr_qs ?= typed_context->searchcn->collection_wrapper->get_current( ).
lr_result_col ?= lr_qs->get_query_result( ).
lr_cuco ?= get_custom_controller( controller_id = 'ZCUSTOM_COMP11/SRCUCO' ).
*lr_col ?= lr_cuco->typed_context->resultcuco->collection_wrapper.
lr_cuco->typed_context->resultcuco->collection_wrapper->clear( ).
lr_cuco->typed_context->resultcuco->collection_wrapper->add_collection( lr_result_col ).
endmethod.
WHEN 'COPYOCA'.
ENDCASE.
IN EVENT HANDLER WE HAVE TO WRITE CODE FOR DELETEOCA AND
COPYOCA.
REPORT ZDEMO_BOL_CHANGE.
data : lr_core type ref to cl_crm_bol_core,
lr_factory type ref to CL_CRM_BOL_ENTITY_FACTORY,
lr_btorder type ref to cl_crm_bol_entity,
lr_btadminh type ref to cl_crm_bol_entity,
lr_btpartnerset type ref to cl_crm_bol_entity,
lr_btpartner type ref to cl_crm_bol_entity,
lr_tx type ref to IF_BOL_TRANSACTION_CONTEXT,
it_param type CRMT_NAME_VALUE_PAIR_TAB,
wa_param type CRMT_NAME_VALUE_PAIR,
v_id type string.
lr_core = cl_crm_bol_core=>get_instance( ).
lr_core->load_component_set( IV_COMPONENT_SET_NAME = 'ONEORDER' ).
*loop at it itab into wa
TRY.
CALL METHOD LR_CORE->GET_ROOT_ENTITY
EXPORTING
IV_OBJECT_NAME = 'BTOrder'
IV_OBJECT_GUID = 'E244DDB061A884F19B5A001517354D1C'
RECEIVING
RV_RESULT = lr_btorder .
CATCH CX_CRM_GENIL_MODEL_ERROR .
ENDTRY.
TRY.
CALL METHOD LR_BTORDER->GET_RELATED_ENTITY
EXPORTING
IV_RELATION_NAME = 'BTOrderHeader'
* IV_MODE
= NORMAL
RECEIVING
RV_RESULT
= lr_btadminh.
CATCH CX_CRM_GENIL_MODEL_ERROR .
ENDTRY.
*if lr_btadminh is not bound.
*
* endif.
lr_btadminh->set_property_as_string( iv_attr_name = 'DESCRIPTION'
iv_value = 'Test BOL Change' ). "wa-description
lr_core->modify( ).
lr_tx = lr_btorder->get_transaction( ).
if lr_tx->save( ) = abap_true.
lr_tx->commit( ).
v_id = lr_btadminh->get_property_as_string( iv_attr_name = 'OBJECT_ID' ).
else.
lr_tx->rollback( ).
endif.
write v_id.
ALV REPORT
REPORT ZDEMO_BOL_REPORT.
data : lr_core type ref to cl_crm_bol_core,
lr_factory type ref to CL_CRM_BOL_ENTITY_FACTORY,
lr_btorder type ref to cl_crm_bol_entity,
lr_btadminh type ref to cl_crm_bol_entity,
lr_tx = lr_btorder->get_transaction( ).
if lr_tx->save( ) = abap_true.
lr_tx->commit( ).
v_id = lr_btadminh->get_property_as_string( iv_attr_name = 'OBJECT_ID' ).
else.
lr_tx->rollback( ).
endif.write v_id.
UPLOAD
REPORT ZDEMO_BOL_UPLOAD.
data : lr_core type ref to cl_crm_bol_core,
lr_factory type ref to CL_CRM_BOL_ENTITY_FACTORY,
lr_btorder type ref to cl_crm_bol_entity,
lr_btadminh type ref to cl_crm_bol_entity,
lr_btpartnerset type ref to cl_crm_bol_entity,
lr_btpartner type ref to cl_crm_bol_entity,
lr_tx type ref to IF_BOL_TRANSACTION_CONTEXT,
it_param type CRMT_NAME_VALUE_PAIR_TAB,
wa_param type CRMT_NAME_VALUE_PAIR,
v_id type string.
lr_core = cl_crm_bol_core=>get_instance( ).
lr_core->load_component_set( IV_COMPONENT_SET_NAME = 'ONEORDER' ).
*loop at it itab into wa
CALL METHOD LR_CORE->GET_ENTITY_FACTORY
EXPORTING
IV_ENTITY_NAME = 'BTOrder'
RECEIVING
RV_RESULT = lr_factory.
wa_param-name = 'OBJECT_TYPE'.
wa_param-value = 'BUS2000111'.
append wa_param to it_param.
wa_param-name = 'PROCESS_TYPE'.
wa_param-value = 'OPFS'.
append wa_param to it_param.
lr_tx = lr_btorder->get_transaction( ).
if lr_tx->save( ) = abap_true.
lr_tx->commit( ).
v_id = lr_btadminh->get_property_as_string( iv_attr_name = 'OBJECT_ID' ).
else.
lr_tx->rollback( ).
endif.
write v_id.
BDOC'S
Creating a BDoc
Procedure
...
1.
From the SAP menu, choose Architecture and
Technology Middleware Development Meta Object Modeling BDoc Modeler.
The CRM BDoc Modeler Personal Filter screen appears.
2.
Choose Execute.
6.
In the BDoc Class group box, select the Synchronization (Write) field.
7.
In the Mobile Application Processing Type group box, select the Standard field.
In the Segment name field, type ZGESEGO1 as the name for the segment.
4.
In the Description field, type Geographical information (countries and continents) as
a short description for the segment.
5.
Choose Save.
Result
You have added the segment to the BDoc. You can continue with Mapping the BDoc
Segment to the Table.
Continuing in the BDoc Segment work area, choose the Mappings tab.
2.
3.
4.
Choose the Segment Overview tab and choose the Direct Map pushbutton.
In the Mapped Tables list, select the row containing your table, ZGE01.
6.
The fields from the ZGE01 table appear in the Segment Fields table.
7.
8.
Choose Execute.
9.
Choose the Mappings tab and select the Update Map field.
10.
In the same line as the SFAGE01 field appears, select the Key field.
12.
Choose Save.
Result
You have mapped the BDoc segment to the table. You can continue with Adding the BDoc
Parameters.
In the Business Documents window, double click on the BDoc you created.
2.
3.
The parameter matches the information contained in the GUID entry from the Consolidated
Database table.
4.
In the Data Element field, type SMO_GUID.
This matches the information contained in the Field type field of the GUID entry in the
Consolidated Database table.
5.
Choose Save.
Result
You have added the BDoc Parameters. You can continue with Adding the Where Clause.
3.
pushbutton.
Make sure that the Operator column does not contain a value.
6.
Choose Save.
Result
You have created the Where clause. You can continue with Activating the BDoc.
Choose the Check pushbutton to ensure that the BDoc does not contain any errors.
If errors occur, rectify them in the BDoc, and test the changes again. For more information
about the BDoc Modeler, see CRM Business Document Modeler.
2.
Result
You have activated the BDoc. Continue with Mapping the BDoc to the Site Type.
Continuing with the BDoc Modeler, choose Goto Site Type Mapping.
Choose Maintain.
The View for BDoc type/Site type mappings: Overview screen appears.
4.
5.
Choose Save.
Choose Execute.
6.
In the BDoc Class group box, select the Synchronization (Write) field.
7.
In the Mobile Application Processing Type group box, select the Standard field.
Choose Save.
Result
You have added the segment to the BDoc. You can continue with Mapping the Query BDoc
Segment to the Table.
2.
3.
4.
Choose the Segment Overview tab and choose the Direct Map pushbutton.
In the Mapped Tables list, select the row containing your table, ZGE01.
6.
The fields from the ZGE01 table appear in the Segment Fields table.
7.
8.
Choose Execute.
9.
Choose the Mappings tab and select the Update Map field.
10.
11.
In the same line as the SFAGE01 field appears, select the Key field.
12.
Choose Save.
Result
You have mapped the BDoc segment to the table. You can continue with Activating the
Query BDoc.
Choose the Check pushbutton to ensure that the BDoc does not contain any errors.
If errors occur, rectify them in the BDoc, and test the changes again. For more information
about the BDoc Modeler, see CRM Business Document Modeler.
2.
Choose the Activate pushbutton to activate your new BDoc.
Result
You have activated the BDoc. You can continue with the Replication Modeling process.
Replication Modeling
Purpose
You need to create a replication object so that the new fields are available for the appropriate
end users in the Mobile Sales application. For more information about the Administration
Console, see The Administration Console.
Process Flow
The following diagram depicts this process by machine and software. The process steps
follow.
...
1.
2.
Create a site.
3.
Create a publication.
4.
Create a subscription.
5.
Create an employee.
6.
7.
8.
Subscribe to a publication.
9.
Result
You have created a replication object and completed the setup requirements for recipients.
Continue with ASCII Adapter Customization and Flow Generation.
2.
Choose Architecture and
Technology Middleware Administration Administration Console.
The Administrative Console Object Navigator screen appears.
3.
In the Object type dropdown box, select Replication objects, then
choose Object Create.
The Replication Object Wizard starts.
4.
Choose Continue.
5.
6.
In the BDoc Type field, type or select ZGEBDOC01_WRITE, the name of the BDoc
you created, and then select the Bulk field.
7.
In the Short ID field, type ZGE as a short identifier for this replication object, and then
choose Continue.
8.
Choose Complete.
Result
You have created a replication object. You can continue with Creating a Site.
Creating a Site
Procedure
...
1.
2.
From the SAP menu screen, choose Architecture and
Technology Middleware Administration Administration Console.
7.
9.
In the Transfer Group field, select MESSAGES ONLY TRANSFER GROUP, then
choose Continue.
10.
Choose Save.
Result
You have created a site. You can continue with Creating a Publication.
Creating a Publication
Procedure
...
1.
Continuing with the Administration Console, in the Object type dropdown box,
select Publications, then choose Object Create.
The Publication Wizard starts.
2.
Choose Continue.
3.
In the Publication Name field, type GEOGRAPHYas the name for the Publication.
4.
Select the Bulk field, and then in the Replication Object table, select the replication
object, ZGEBDOC01_WRITE.
5.
6.
Choose Complete.
Result
You have created a Publication. You can continue with Creating a Subscription.
Creating a Subscription
Procedure
...
1.
Continuing with the Administration Console, in the Object type dropdown box,
select Subscriptions, then choose Object Create.
The Subscription Wizard starts.
2.
Choose Continue.
3.
In the Subscription Name field, type a name for the Subscription you want to create, for
example, GEOGRAPHY BY CONTINENT (EU), then choose Continue.
4.
5.
6.
Choose the Assign pushbutton to assign the Site you just created, Geo Test.
7.
Choose Complete.
8.
Result
You have created a subscription and assigned it to a site. You can continue with Creating an
Employee.
Creating an Employee
Procedure
...
1.
Log on to the CRM server, if you do not already have it running.
2.
From the SAP Easy Access menu, choose Master Data Business Partner Maintain
Business Partner.
The Process Business Partners screen appears.
3.
Choose Business Partner Create Person.
The Create Person screen appears.
4.
5.
In the Language field, enter a language for the employee, then press Enter.
6.
Choose Create.
In the First name field, type the first name of the employee.
8.
In the Last name field, type the last name of the employee.
9.
In the Country field, type or select the country code for the employee.
10.
In the Telephone field, type the telephone number for the employee.
11.
Choose Save.
12.
Result
You have created an employee. You can continue with Creating a Logon and Password for the
Employee.
In the Object Type dropdown box, select Employee, then choose Display Objects.
3.
Select the Employee you just created from the list by double clicking on the name.
In the Password field, type the appropriate password for the user.
7.
In the Confirmation Password field, type the password again, then choose Save.
...
Result
You have completed creating a logon and password for the Employee. You can continue
with Assigning an Employee to a Site.
In the Dependent information group box on the Assigned Sites tab, choose Assign.
3.
4.
Choose Save.
Result
You have assigned the employee to the site. You can continue with Subscribing to a
Publication.
Subscribing to a Publication
Procedure
...
1.
Continuing with the Administration Console, choose Object Display <-> Change.
2.
On the Assigned Subscriptions tab in the Dependent information group box,
choose Assign.
3.
4.
Choose Save.
5.
Result
You have subscribed to a publication. You can continue with Creating a Table in the IDES
Database.
In the Application server field, type the system number for the server.
Locate this information using SAPlogon by choosing the Server pushbutton, then selecting
the system you want to use in the System Id field. The server number is provided in
the Message Server field.
5.
In the System Number field, type the system number for the server you have identified.
Locate this information in the SAPlogon by choosing the Properties pushbutton. The
information is provided in the System Number field of the Properties dialog box.
6.
In the Client field, add the number of the system client that you want to access.
7.
In the Language field, type the two-letter code for the appropriate system language. For
example, type en.
8.
In the Login Parameters group box in the Login field, type <youruserid>.
9.
...
1.
2.
3.
Transport Metadata.
4.
5.
6.
Result
You have downloaded the new object and started the flow process. You can continue
with Create the Mobile Sales Application.
5.
In the Object Name field, type ZGEBDOC01_DO as the name of the object to be
downloaded. The name must be unique.
6.
7.
8.
On the Initial Flow Contents tab in the Source site type field, select R/3.
9.
10.
11.
12.
Choose Back.
13.
14.
15.
16.
In the Filter option field, select Filter in source and target database.
17.
18.
19.
20.
21.
22.
Choose Yes.
The new information generates.
23.
Result
You have defined the download object for the ASCII Adapter. You can continue with Starting
the Delta Download.
Transporting Metadata
Procedure
...
1.
Select Architecture and Technology Middleware Development Transport MetaData.
The Transport of Industry Specific Objects screen appears.
2.
3.
Choose Execute.
In the Destination field, select XYZ (the three-character name of your CRM server.)
4.
5.
Choose Connect.
Select ZGE01.
7.
Make sure that the Execute directly on database IDES field is selected.
8.
Choose Generate.
In the Destination filed, select XYZ (the three-character name of your CRM server.)
11.
12.
Choose Connect.
A list of BDocs appears.
13.
14.
Choose Generate.
The metadata and stored procedures generate. The Message Description window contains the
message, Metadata Generation Completed when the process ends.
Result
You have generated the metadata and stored procedures. You can continue with Assigning a
Site to a Laptop (Activating extraction).
From the Available free sites list, select Geo Test, then choose Assign.
Result
You have activated the extraction of the new object. You can continue with Starting the Flow
Process.
1.
From the Start menu, choose Programs SAP CRM Mobile Mobile Client
Administration Tools ConnTrans.
The ConnTrans screen appears.
2.
3.
Choose Synchronize.
Result
You have started the flow. You can continue with the Create the Mobile Sales
Application process.
...
1.
2.
3.
4.
5.
6.
7.
8.
Create an application.
9.
10.
Result
You can start the application.
Choose Start Programs SAP CRM Mobile SAP Mobile Application Studio to start the
i.
ii.
iii.
iv.
Choose Login.
If you want to edit development objects, you can either select an existing change list, or create a
new change list.
To create a new change list, use this procedure.
In the Changelist field, type the name for your change list.
Choose OK.
Choose OK.
4.
In the Generation settings list box, verify that the paths for generation of runtime files and
access to the BDoc repository are accurate. Use the following table to check the path data.
5.
Generation option
Path
C:\Program Files\sap\Mobile\ars\
C:\Program
Files\sap\Mobile\app\vba_dlls_msa\
UI Generation
C:\Program
Files\sap\Mobile\framework\GenApps\
<None>
UI Template
C:\Program
Files\sap\Mobile\framework\Templates\
UI Modeler Layout
C:\Program
Files\sap\Mobile\framework\uimodeler\
i.
6.
ii.
iii.
Result
You have configured the Mobile Application Studio. You can continue with Creating a
Business Object.
If you are working in the baseline version, you will receive a message instructing you to
create a change list. Create the change list and continue with step 3.
If you have turned the wizard function off, then you must create the new business object
manually.
3.
4.
This allows the business object to be mapped to a Write BDoc, which writes data to the IDES
database at runtime.
5.
In the Read BDoc and Write BDoc fields, select ZGE01, the name of the BDoc you
created in the BDoc Modeler.
6.
In the BDoc Segment field, select ZGE01SEG. the segment you created for the BDoc.
7.
In the BDoc Parameter field, select the parameter that you specified as the primary key
in the BDoc Modeler.
8.
Choose Next.
9.
Choose the Segment Field names from the BDoc for which you want to add a property.
10.
In the Property field, type the name you want for the property.
Use the segment field which you assigned to the business object.
11.
Choose Next.
12.
Choose Finish.
The Business Object Wizard creates the business object and closes, then the Business
Object screen appears.
Result
You have created the business object. You can continue with Creating a Business Query.
Choose
File
New
Business Queries
3.
4.
In the BDoc Segment field, select the segment you created for the BDoc.
5.
In the Contained BO field, select Z_ROOM3BO, the business object that you created.
6.
Choose Next.
7.
Choose the Segment Field names from the BDoc for which you want to add a property.
8.
In the Property field, type the name you want for the property.
NOTE
Use the segment field that you assigned to the business object.
9.
Choose Next.
Result
You have created the business query. You can continue with Creating a Detail Tile.
Choose Next.
3.
4.
In the Caption field, type the name for the tile which appears in the application.
5.
In the Name filed, type a new name for the tile, if desired, then choose Next.
6.
Choose the appropriate Properties for the tile, then choose Next.
7.
In the Available Data Sources list box, select Z_ROOM3BO, then choose Add.
8.
Choose Finish.
The Tile Wizard creates the tile object and closes, then the Tile screen appears in the work
area.
9.
In the tile work area, make changes to the appearance of the tile.
10.
Choose Save.
11.
Choose Next.
3.
4.
In the Caption field, type the name for the tile which you want to appear in the
application.
5.
In the Name filed, type a new name for the tile, if desired, then choose Next.
6.
Choose Navigate between records for the tile properties, then choose Next.
7.
In the Available Data Sources list box, select Z_ROOM3BQ, then choose Add.
8.
Choose Finish.
The Tile Wizard creates the tile object and closes, then the Tile screen appears in the work
area.
9.
In the tile work area, make changes to the appearance of the tile.
10.
Choose Save.
11.
Choose Next.
3.
Select Standard Tile Set, if it is not already selected, then choose Next.
4.
In the Caption field, type the name of the tile set that you want to appear in the
application.
5.
In the Name field, change the name of the tile set, if you want to, then choose Next.
6.
In the Active tiles list box, expand the Detail Tiles folder.
7.
In the Available Tiles list box, select and drag the tile you created and drop it in the Free
Cell area.
8.
Expand the tile to fill the entire area, then choose Next.
9.
Select the appropriate properties for this tile set, then choose Next.
10.
Establish a connection between the tile and the tile set, then choose Next.
11.
Review the selections you made for the tile set, then choose Finish.
The Tile Set Wizard creates the tile set and closes, then the Tile Set screen appears in the work
area.
12.
Choose Save.
13.
1.
3.
Select and drag the new tile set and drop it in the Tile Set Containers pane in the Business
Component window.
4.
In the Business Anchors pane, click the Business Anchors folder with the secondary mouse
6.
In the Properties window, select the appropriate information for these fields.
1.
a.
2.
b.
7.
In the Tile Set pane, select and drag the tile set anchor and drop it on to the new business
anchor.
The tile set anchor becomes the child of the business component anchor.
8.
In the Business Anchors pane, select the child (tile set) anchor.
9.
3.
a.
4.
b.
10.
In the Tile Set pane, select the Tile Set Container node.
11.
In the Properties window, select the appropriate information for these fields.
5.
a.
6.
b.
Creating an Application
Use
For testing purposes, we recommend that you create a new application or to delete all other
business components from the existing application you choose. This ensures that the Mobile
Application Studio uses only your BDocs and does not depend on whether or not the latest
MSA BDocs exist in the Middleware. It also reduces generation times.
Procedure
...
1.
From the UI Modeler window, click the Applications folder with the secondary mouse
button, and choose New.
The application work area appears.
2.
From the UI Modeler window, select and drag the business component you created and
drop it in the Business Containers pane.
3.
Choose Save.
4.
Result
You have created the application. You can continue with Releasing the Changes.
The Changelist Browser window appears on the right side of your screen.
2.
3.
Click the change list on which you are working with the secondary mouse button, and
choose Release.
The Workbench dialog box appears.
4.
If the attachment of R/3 transport orders is enabled, the ChangeManagement dialog box appears.
Use this procedure to continue.
7.
a.
Choose OK.
8.
b.
9.
c.
10.
d.
11.
e.
Choose Save.
If you are not able to release the change list, you can continue with the generation of the
application. The Mobile Application Studio uses the active change list as its default.
Result
You have released the changes. You can continue with Generating the Application.
In the Select Settings for Generation group box, select the Generate Recursively field.
6.
In the Project Name field, select the appropriate project to which this application belongs.
7.
The application generation begins. If any errors occur during generation, they appear on the
screen. You can open the Generation Log file to check the cause for the errors.
Result
You have generated the application. You can continue with Starting the Application.
This path is the default. If you changed the path, then you will need to adjust these
instructions accordingly.
3.
Choose OK.
Result
You have completed the CRM Mobile Sales table integration.
BDOCS
BDOC IS NOTHING BUT BUSSINESS DOC ,IT IS USED TO TRANSFER THE
DATA FROM ECC TO CRM AND VICEVERSA USING MIDDLE WARE TECHNILOGY.
DELTA LOAD : WHEN EVER MODIFYING THE DAT A IN THE DATA BASE
WE NEED DELTA LOAD.WHEN WE PERFORM DELTA LOAD OPTION WE
SHOULD REMOVE INITIAL LOAD OPTION. BUT WITHOUT INITIAL LOAD WE
CANT PERFORM DELTA LOAD.
IF I SEND A BDOC FROM CRM TO ECC THAT BDOC SHOULD NOT A IDOC.
BY USING SMQR T CODE DEREGISTER THE QUEUE AND FIND THE ERROR
BY DEBUGGING IN SYSTEM GENARATED CODE.IF QUEUE IS RIGISTARD
DEBUGGING NOT ALLOWED.SYMBOLS FOR REGISTATION AND
DEREGISTRATION :R & U
GO TO WORK BENCH .
SET.
VIEWS.
GO TO SE24.
PROVIDE CONTExT NODECLASS NAME AND CHANGE THE NAME OF THE CONTEXT
COPY THE CODE FROM THAT AND PASTE IT IN ZCLASS OF CTXT-> IN THAT CODE
CHANGE THE CLASS_NAME AS ZL------CN00.
STEP:2
2)GET_V_ZZFLD000006.
VISIBILITY:PUBLIC FOR BOTH METHODS.
COPY THE PARAMETERS OF(PRESS CTRL+Y AND CTRL+C) GET_P AND GET_V
COPY THE CODE FORM CUSTOM VIEW(ZEPIC_APPL/EPIC)->CONTEXTCLASS>CONTEXTNODECLASS->ATTRIBUTES-> GET_P METHOD OF ATTRIBUTES( LEAD_TYPE
CODE).
method GET_P_ZZFLD000006.
CASE IV_PROPERTY.
WHEN IF_BSP_WD_MODEL_SETTER_GETTER=>FP_FIELDTYPE.
RV_VALUE = CL_BSP_DLC_VIEW_DESCRIPTOR=>FIELD_TYPE_INPUT.
ENDCASE.
endmethod.
method GET_V_ZZFLD000006.
CREATE OBJECT RV_VALUEHELP_DESCRIPTOR TYPE CL_BSP_WD_VALUEHELP_NAVDESC
R
EXPORTING
IV_OUTBOUND_PLUG = 'OP_TOCUSTOM'.(FROM OUTBOUND PLUG)
endmethod.
SAVE AND ACTIVATE.
STEP:3
CLICK ON DISPLAY.
SAVE RRE.
STEP:4
GO TO WORKBENCH->ENTER STANDARD COMPONENT-> (BT111H_OPPT) WITH
ENHANCEMENT SET.
DISPLAY.
PROVIDE
CUSTOM).
NAME: CUCUSTOMCOMP)
IV_TITLE
RECEIVING
RV_RESULT
endmethod.
STEP:5
CLICK ->CREATE.
NOW WIZARD WILL OPEN
IN THAT STEPS:
NAME: RESULTCOCO
PROVIDE BOL ENTITY:RESULT OBJ->CONTINUE
MODEL ATRRINUTES->SELECT +ICON -> SELECT ID,TYPE,TARGET,BP->CONTINUE.
CONTINUE->TILL COMPLETE.
RESULT COCO)->SAVE.
GOTO COMPONENT STRUCTURE BROWSER->EXPAND VIEWS->SELECT RESULT VIEW>DOUBLE CLICK ON THAT->GO TO EVENT HANDLER->DOUBLE CLICK ON EH_SELECT ->
ADD THE BELOW CODE.
method EH_ONSELECT.
*CALL METHOD SUPER->EH_ONSELECT
* EXPORTING
*
HTMLB_EVENT
= HTMLB_EVENT
HTMLB_EVENT_EX = HTMLB_EVENT_EX.
data: lv_event TYPE REF TO cl_htmlb_event_tableview.
lv_event ?= htmlb_event.
me->typed_context->resultcn->eh_on_row_selection(
iv_htmlb_event
= lv_event
iv_htmlb_event_ex = htmlb_event_ex ).
data:lr_entity type ref to if_bol_bo_property_access,
v_index type i,
SAVE .
STEP:6
MAIN WINDOW.
SELECT OUTBOUND PLUG->RIGHTCLICK ON THAT->CREATE(PROVIDE:TOOPPT).
STEP:7
GO TO STANDARD COMPONENT(BT111H_OPPT)
method EH_ONCUSTOM_POPUP_CLOSED.
* Added by wizard: Handler for event 'custom_popup_closed'
check gr_custom_popup->get_fired_outbound_plug( ) is not initial.
data:lr_cn type ref to cl_bsp_wd_context_node,
lr_btadminh type ref to if_bol_bo_property_access,
lr_entity type ref to if_bol_bo_property_access,
v_type type string.
lr_cn ?= gr_custom_popup->get_context_node( iv_cnode_name = 'resultcoco').
lr_entity ?= lr_cn->collection_wrapper->get_current( ).
v_type = lr_entity->get_property_as_string( iv_attr_name = 'oppt_type' ).
lr_btadminh ?= typed_context->btadminh->collection_wrapper->get_current( ).
lr_btadminh->set_property_as_string( iv_attr_name = 'ZZFLD000006' IV_VALUE = V_TYPE ).
endmethod.
SAVE AND ACTIVATE.
STEP:8
FROMOPPT).
method IP_FROMOPPT.
check iv_collection is BOUND.
data : lr_entity type ref to cl_crm_bol_entity,
lr_viewset type ref to ZL_ZCUSRJ_SEARCHRESULTVIE_IMPL ,("VEIWSET CONTROLLER
CLASS)
lr_search type ref to ZL_ZCUSRJ_SEARCHVIEW_IMPL ,("SEARCH VIEW CONTROLLER
CLASS).
lr_qs type ref to cl_crm_bol_dquery_service,
v_type type string.
lr_entity ?= iv_collection->get_first( ).
while lr_entity is bound.
if lr_entity->get_name( ) = 'BTAdminH'.
v_type = lr_entity->get_property_as_string( iv_attr_name = 'ZZFLD000006' ).("AET FIELD
ATRRIBUTE NAME).
endif.
lr_entity ?= iv_collection->get_next( ).
endwhile.
lr_viewset ?= get_subcontroller_by_viewname( iv_viewname = 'ZCUSRJ/searchresultviewset' ).
("ZCUSRJ:VIEWS->COPY THE VIEWSET NAME)
lr_search ?= lr_viewset->get_subcontroller_by_viewname( iv_viewname = 'ZCUSRJ/searchview' ).
("ZCUSRJ:VIEWS->COPY THE SEEARCH VIEW NAME).
lr_qs ?= lr_search->typed_context->searchcn->collection_wrapper->get_current( ).("CHANGE
TYPED_CONTEXT VISIBILITY TO PUBLIC FROM PROTECTED IN SUPER CLASS).
CALL METHOD LR_QS->ADD_SELECTION_PARAM
EXPORTING
IV_ATTR_NAME = 'OPPT_TYPE'
IV_SIGN
IV_OPTION
IV_LOW
= 'I'
= 'EQ'
= v_type.
endmethod.
SAVE AND ACTIVATE.
SEE THE RESULT WITH ENHANCEMENTSET IN SM30. CHECK IN WEBUI.PRESS F4 ON THE
AET FIELD.