on 05-02-2011 12:13 PM
Dear Friends,
I am using CRM 2007 BBPCRM 600 SP5, CRMUIF 600 SP5.
I have doubt in service order.
In Webclient UI, Sold to party & Ship to party fields displayed only name ie. Company & partner name at header level.
[Component: BT116H_SRVO View: BT116H_SRVO/Details]. Is it possible to display partner id & name?
In item level (sales item list), the partner number of vendor plant also displayed company name & partner name....
So, i need all partner fileds should display partner number & name.
What i have to do?
Kindly, suggest me....
Thanks & Regards,
Rajagopal
Chennai - INDIA
Hi Rajagopal,
You need to redefine the get method of the correct Context Node Attribute.
Here is an example.
Component BT116H_SRVO.
View BT116H_SRVO/Details
Context Node BTPARTNERSET
Attribute SOLDTO_NAME
Within the method GET_SOLDTO_NAME the following coding is shown.
method get_soldto_name.
data lr_current type ref to if_bol_bo_property_access.
lr_current ?= me->get_partner_entity( ir_iterator = iterator
iv_pft = '0001' ).
value = cl_crm_uiu_bt_partner=>get_partner2( lr_current ).
endmethod.
This means that the value shown in the field is retrieved from the class cl_crm_uiu_bt_partner method get_partner2.
within that class and method you see indeed that the SAP standard reads first the name
METHOD get_partner2.
DATA:
lr_current TYPE REF TO cl_crm_bol_entity.
1/ Get the description
2/ If initial, get the number
CHECK ir_current IS BOUND.
lr_current ?= ir_current.
CHECK lr_current->alive( ) = abap_true.
TRY.
rv_value = lr_current->get_property_as_string( iv_attr_name = 'DESCRIPTION_NAME' ).
CHECK rv_value IS INITIAL.
rv_value = lr_current->get_property_as_string( iv_attr_name = 'PARTNER_NO' ).
CATCH cx_crm_cic_parameter_error.
ENDTRY.
ENDMETHOD.
What you need to do is via SE24 create a class zl_crm_uiu_bt_partner that has as superclass the cl_crm_uiu_bt_partner class.
Now within your class redefine the get_partner2 method and write the following.
METHOD get_partner2.
DATA:
lr_current TYPE REF TO cl_crm_bol_entity,
lv_value1 TYPE string,
lv_value2 TYPE string.
1/ Get the description
2/ If initial, get the number
CHECK ir_current IS BOUND.
lr_current ?= ir_current.
CHECK lr_current->alive( ) = abap_true.
TRY.
lv_value1 = lr_current->get_property_as_string( iv_attr_name = 'DESCRIPTION_NAME' ).
lv_value2 = lr_current->get_property_as_string( iv_attr_name = 'PARTNER_NO' ).
concatenate lv_value2 lv_value1 into rv_value separated by ' '.
CATCH cx_crm_cic_parameter_error.
ENDTRY.
ENDMETHOD.
Now redefine the GET_SOLDTO_NAME method and write:
method get_soldto_name.
data lr_current type ref to if_bol_bo_property_access.
lr_current ?= me->get_partner_entity( ir_iterator = iterator
iv_pft = '0001' ).
value = zl_crm_uiu_bt_partner=>get_partner2( lr_current ).
endmethod.
Do this for all places where you want to show that.
BUT take into account that this is really an intensive development as there are a lot of places where this method is called.
you could also consider a repair on the standard class...
Kind regards,
Micha
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
5 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.