Beruflich Dokumente
Kultur Dokumente
目录
1.POWL 程序对应 Feeder Class 查找方法 ...................................... 2
5.创建潜在供应商页面增强 ........................................................... 18
6.策略采购-战略货源-回应和中标界面 增强 .............................. 26
.在页面上右键—技术帮助
.进入下一页面 找到 applid
.增强位置
类:/SAPSRM/CL_CLL_POWLT_BUPA_PSUP
方法: SET_MT_SELCRITERIA
.效果
.源码
ENHANCEMENT 1 ZEH002_CHANGE_CATTXT. "active version
*删除原数据
DELETE mt_selcriteria WHERE selname EQ /sapsrm/if_cll_powl_c
=>gc_bupa_selcrit_category_id.
*新增参数
* CATEGORY_ID (Category ID) (Select option, no Interval, Multi
select)
CLEAR ls_selcrit.
ls_selcrit-
selname = /sapsrm/if_cll_powl_c=>gc_bupa_selcrit_ca
tegory_id.
ls_selcrit-
kind = /sapsrm/if_cll_powl_c=>gc_select_option.
ls_selcrit-
selopt_type = /sapsrm/if_cll_powl_c=>gc_selop_multisel.
ls_selcrit-
ref_table = /sapsrm/if_cll_powl_c=>gc_bupa_searchstru
cture_r.
ls_selcrit-
ref_field = /sapsrm/if_cll_powl_c=>gc_bupa_search_cr_
category_psp.
ls_selcrit-crittext = 'Product Category'(037).
ls_selcrit-tooltip = 'Product Category'(037).
ls_selcrit-allow_admin_change = abap_true.
ls_selcrit-quicksearch_crit = abap_true.
IF sy-langu = '1'.
CLEAR ls_selcrit.
ls_selcrit-selname = 'MATERIAL_TYPE'.
ls_selcrit-
kind = /sapsrm/if_cll_powl_c=>gc_select_option.
ls_selcrit-
selopt_type = /sapsrm/if_cll_powl_c=>gc_selop_multisel.
ls_selcrit-
ref_table = /sapsrm/if_cll_powl_c=>gc_bupa_searchstru
cture_r.
ls_selcrit-ref_field = 'MATERIAL_TYPE'.
ls_selcrit-crittext = '物料类别'.
ls_selcrit-tooltip = '物料类别'.
ls_selcrit-allow_admin_change = abap_true.
ls_selcrit-quicksearch_crit = abap_true.
ls_selcrit-OVS_HANDLER_NAME = 'ZCL_OVS_CATEGORY'.
3.供应商预选界面 变更显示列表数据显示/新增字段 增强
.增强位置
变更列表数据&字段赋值
类:/SAPSRM/CL_CLL_POWLT_BUPA_PSUP
方法:EXECUTE_SEARCH
方法中位置
.增强结构
查询条件结构:/SAPSRM/S_SEARCH_FIELDS_BUPA
显示结果列表结构:/SAPSRM/S_POWL_RESULT_PSUP
.效果
.源码
ENHANCEMENT 1 ZEH_SUPPLIER_SET_VALUE. "active version
*SET VALUE
TYPES:BEGIN OF ty_data,
land1 TYPE t005u-land1,
BLAND TYPE t005u-BLAND,
LANDX50 TYPE t005t-LANDX50,
BEZEI TYPE t005u-BEZEI,
END OF ty_data.
select *
from ZTCOMMCODE
into table lt_ztcommcode1
for all entries in et_search_result_bupa
where partner = et_search_result_bupa-partner.
SELECT *
INTO TABLE lt_country
FROM t005t
FOR ALL ENTRIES IN et_search_result_bupa
WHERE t005t~land1 = et_search_result_bupa-country
AND t005t~spras = sy-langu.
SELECT t005t~land1
t005u~bland
t005t~LANDX50
t005u~BEZEI
INTO TABLE lt_data
FROM t005t
INNER JOIN t005u on t005t~land1 = t005u~land1 AND t005t~spr
as = t005u~SPRAS
FOR ALL ENTRIES IN et_search_result_bupa[]
WHERE t005t~land1 = et_search_result_bupa-country
AND t005u~bland = et_search_result_bupa-region
AND t005t~spras = sy-langu.
ENDIF.
* 更改调查表状态
read table lt_ros_bp_pc_survey into lw_ROS_BP_PC_SURVEY
with key partner_guid = es_result-partner_guid.
IF sy-subrc = 0.
"获取域文本
lv_domname = '/SAPSRM/SUCO_QSTN_STATUS'.
lv_domvalue = lw_ROS_BP_PC_SURVEY-EMAIL_STATUS.
"获取文本
CALL METHOD y_cl_wd_tool=>get_domvalues
EXPORTING
iv_domname = lv_domname
iv_domvalue = lv_domvalue
iv_langu = sy-langu
RECEIVING
rv_ddtext = lv_ddtext.
lw_ROS_BP_PC_SURVEY-EMAIL_STATUS = lv_ddtext.
es_result-qstatus_text = lw_ROS_BP_PC_SURVEY-
EMAIL_STATUS.
ENDIF.
IF lt_sel_mt is initial.
MODIFY et_search_result_bupa FROM es_result transporti
ng LANDX50 BEZEI QSTATUS_TEXT ZCOMCAT.
ENDIF.
ENDLOOP.
ENDENHANCEMENT.
.新增字段 增强位置
类 :
/SAPSRM/CL_CLL_POWLT_BUPA_PSUP->/SAPSRM/CL_CLL_POWL_BO_BUPA->
/SAPSRM/CL_CLL_POWL_BASE
方法: IF_POWL_FEEDER~GET_FIELD_CATALOG
.效果
.源码
ENHANCEMENT 1 ZEH055_RFXS_ADD_FIELDS. "active version
*报价界面新增字段
DATA:lw_fieldcat_rfx TYPE powl_fieldcat_sty.
"DM/IDM
lw_fieldcat_rfx-colid = 'ZZDMIDM'.
lw_fieldcat_rfx-colpos = 3.
lw_fieldcat_rfx-display_type = 'TV'.
lw_fieldcat_rfx-col_visible = 'X'.
lw_fieldcat_rfx-allow_filter = 'X'.
lw_fieldcat_rfx-allow_sort = 'X'.
lw_fieldcat_rfx-enabled = 'X'.
INSERT lw_fieldcat_rfx INTO TABLE mt_fieldcat.
CLEAR:lw_fieldcat_rfx.
"E-Office PR
lw_fieldcat_rfx-colid = 'ZZEOFPR'.
lw_fieldcat_rfx-colpos = 3.
lw_fieldcat_rfx-display_type = 'TV'.
lw_fieldcat_rfx-col_visible = 'X'.
lw_fieldcat_rfx-allow_filter = 'X'.
lw_fieldcat_rfx-allow_sort = 'X'.
lw_fieldcat_rfx-enabled = 'X'.
INSERT lw_fieldcat_rfx INTO TABLE mt_fieldcat.
CLEAR:lw_fieldcat_rfx.
"Status
lw_fieldcat_rfx-colid = 'ZAPRSTATUS'.
lw_fieldcat_rfx-colpos = 4.
lw_fieldcat_rfx-display_type = 'TV'.
lw_fieldcat_rfx-col_visible = 'X'.
lw_fieldcat_rfx-allow_filter = 'X'.
lw_fieldcat_rfx-allow_sort = 'X'.
lw_fieldcat_rfx-enabled = 'X'.
INSERT lw_fieldcat_rfx INTO TABLE mt_fieldcat.
CLEAR:lw_fieldcat_rfx.
"ERFQFORM ID
lw_fieldcat_rfx-colid = 'EFORMID'.
lw_fieldcat_rfx-colpos = 4.
lw_fieldcat_rfx-display_type = 'TV'.
lw_fieldcat_rfx-col_visible = 'X'.
lw_fieldcat_rfx-allow_filter = 'X'.
lw_fieldcat_rfx-allow_sort = 'X'.
lw_fieldcat_rfx-enabled = 'X'.
INSERT lw_fieldcat_rfx INTO TABLE mt_fieldcat.
CLEAR:lw_fieldcat_rfx.
ENDENHANCEMENT.
ENHANCEMENT 2 ZEH_SUPPLIER. "active version
* add field
DATA:lw_fieldcat TYPE powl_fieldcat_sty.
CLEAR lw_fieldcat.
lw_fieldcat-colid = 'LANDX50'.
lw_fieldcat-COLPOS = 7.
lw_fieldcat-display_type = 'TV'.
lw_fieldcat-col_visible = 'X'.
lw_fieldcat-allow_filter = 'X'.
lw_fieldcat-allow_sort = 'X'.
lw_fieldcat-enabled = 'X'.
INSERT lw_fieldcat INTO TABLE mt_fieldcat .
lw_fieldcat-colid = 'BEZEI'.
lw_fieldcat-COLPOS = 9.
lw_fieldcat-display_type = 'TV'.
lw_fieldcat-col_visible = 'X'.
lw_fieldcat-allow_filter = 'X'.
lw_fieldcat-allow_sort = 'X'.
lw_fieldcat-enabled = 'X'.
INSERT lw_fieldcat INTO TABLE mt_fieldcat .
lw_fieldcat-colid = 'ZCOMCAT'.
lw_fieldcat-COLPOS = 5.
lw_fieldcat-display_type = 'TV'.
lw_fieldcat-col_visible = 'X'.
lw_fieldcat-allow_filter = 'X'.
lw_fieldcat-allow_sort = 'X'.
lw_fieldcat-enabled = 'X'.
ENDENHANCEMENT.
4.显示潜在供应商页面 重置调查问卷地址 增强
.增强位置
类:/SAPSRM/CL_SUCO_QSTNR_HELPER
方法:QSTNR_URL_GET
.效果
.源码
ENHANCEMENT 1 ZEH002_LINK_TO_QUEST. "active version
DATA:lv_vurl TYPE string,
lv_client TYPE sy-mandt,
lv_vlangu TYPE string,
lv_partner_guid TYPE string,
gv_url TYPE char1024,
lv_app_name TYPE string,
lv_in_protocol TYPE string,
lv_wd_url TYPE string,
lv_wd_url1 TYPE string,
lt_tihttpnvp TYPE tihttpnvp,
lw_tihttpnvp LIKE LINE OF lt_tihttpnvp.
*获取潜在供应商状态
"获取 Partner_GUID
CLEAR:lw_pa_guid-partner_guid.
SELECT SINGLE partner_guid INTO lw_pa_guid-partner_guid
FROM ros_bp_pc_survey
WHERE RECIPIENT_GUID EQ iv_publishing_guid.
"获取 Partner
CLEAR:lw_but000-partner.
SELECT SINGLE partner INTO lw_but000-partner
FROM but000
WHERE partner_guid EQ lw_pa_guid-partner_guid.
CLEAR:lv_status,ls_set_status_info.
READ TABLE lt_set_status_info into ls_set_status_info INDE
X 1.
IF sy-subrc eq 0.
lv_status = ls_set_status_info-status_id.
ENDIF.
"获取 Protocol/IP/Port
CLEAR:ls_httpurlloc.
SELECT SINGLE *
INTO ls_httpurlloc
FROM httpurlloc.
*设定参数值
lv_app_name = 'YRSR_APP_SUP_REG'.
lv_in_protocol = ls_httpurlloc-protocol.
lv_host = ls_httpurlloc-host.
lv_port = ls_httpurlloc-port.
IF sy-langu EQ '1'.
lv_vlangu = 'ZH'.
ENDIF.
IF sy-langu EQ 'E'.
lv_vlangu = 'EN'.
ENDIF.
"Client
lw_tihttpnvp-name = 'sap-client'.
lw_tihttpnvp-value = sy-mandt.
APPEND lw_tihttpnvp TO lt_tihttpnvp.
CLEAR lw_tihttpnvp.
"Language
lw_tihttpnvp-name = 'sap-language'.
lw_tihttpnvp-value = lv_langu.
APPEND lw_tihttpnvp TO lt_tihttpnvp.
CLEAR lw_tihttpnvp.
"Config
lw_tihttpnvp-name = 'sap-wd-configId'.
lw_tihttpnvp-value = 'ZSRM002'.
APPEND lw_tihttpnvp TO lt_tihttpnvp.
CLEAR lw_tihttpnvp.
"PARTNER_GUID
lw_tihttpnvp-name = 'PARTNER_GUID'.
lw_tihttpnvp-value = iv_publishing_guid.
APPEND lw_tihttpnvp TO lt_tihttpnvp.
CLEAR lw_tihttpnvp.
"User
lw_tihttpnvp-name = 'PI_USRID'.
lw_tihttpnvp-value = sy-uname.
APPEND lw_tihttpnvp TO lt_tihttpnvp.
CLEAR lw_tihttpnvp.
"Status
lw_tihttpnvp-name = 'PI_STATUS'.
lw_tihttpnvp-value = lv_status.
APPEND lw_tihttpnvp TO lt_tihttpnvp.
CLEAR lw_tihttpnvp.
"重新生成 URL
CALL METHOD cl_wd_utilities=>construct_wd_url
EXPORTING
application_name = lv_app_name
in_host = lv_host
in_port = lv_port
in_protocol = lv_in_protocol
in_parameters = lt_tihttpnvp
IMPORTING
out_absolute_url = lv_wd_url.
IF sy-subrc = 0.
ev_qstnr_url = lv_wd_url.
ELSE.
RAISE error_get_url.
ENDIF.
ENDENHANCEMENT.
5.创建潜在供应商页面增强
.a.通讯部分:电话号码、传真号码长度限定和有效性限定
.b.一般公司信息&复制公司数据部分:语言限定
.c.产品类别限定
增强位置:
类:/SAPSRM/CL_PDO_AO_BP_POT_SUPPL
方法: CHECK_MANDATORY_FIELDS
.源码
*$*$-Start: (1)-----------------------------------------------
----------------------------------$*$*
ENHANCEMENT 1 ZEH001_CHECK_FIX_TEL. "active version
*校验 FAX&TEL No 只允许输入 24 位(数字/-)
data:ls_pdo_tel2 TYPE /sapsrm/s_pdo_bp_tel_no,
ls_message2 TYPE bbp_pds_messages,
lt_messages2 TYPE bbpt_pd_messages,
lt_pdo_tel2 TYPE STANDARD TABLE OF /sapsrm/s_
pdo_bp_tel_no,
lt_pdo_fax2 TYPE /sapsrm/t_pdo_bp_fax_no,
ls_pdo_fax2 LIKE LINE OF lt_pdo_fax2,
mo_pdo_bp_addr_list2 TYPE REF TO /sapsrm/if_pdo_mo_bp_
addr_list,
mo_pdo_cont_pers2 TYPE REF TO /sapsrm/if_pdo_mo_bp_
cont_pers,
lv_fax TYPE string,
lv_tel TYPE string.
CLEAR:lv_fax,lv_tel,lt_messages2.
IF lv_tel CO '0123456789-'.
ELSE.
ls_message2-
msgty = /sapsrm/if_pdo_constants_gen_c=>gc_msgty_e.
ls_message2-msgid = 'ZSRM'.
ls_message2-msgno = 131.
ls_message2-field_name = 'TELEPHONE'.
ls_message2-set_guid = ls_pdo_tel2-guid .
ls_message2-set_type = 'BT'.
APPEND ls_message2 TO lt_messages2.
CLEAR:ls_message2.
ENDIF.
ENDIF.
mo_pdo_bp_addr_list2->/sapsrm/if_pdo_do_bp_addr_det~ge
t_fax_numbers(
IMPORTING et_fax_numbers
= lt_pdo_fax2
CHANGING co_message_handler = co
_message_handler ).
IF lv_fax CO '0123456789-'.
ELSE.
ls_message2-
msgty = /sapsrm/if_pdo_constants_gen_c=>gc_msgty_e.
ls_message2-msgid = 'ZSRM'.
ls_message2-msgno = 134.
ls_message2-field_name = 'FAX'.
ls_message2-set_guid = ls_pdo_fax2-guid .
ls_message2-set_type = 'BA'.
APPEND ls_message2 TO lt_messages2.
CLEAR:ls_message2.
ENDIF.
ENDIF.
ENDIF.
me->/sapsrm/if_pdo_ao_bp_bis_base~get_cont_pers_mo(
IMPORTING eo_cont_pers_mo = mo_pdo_cont_pers2
CHANGING co_message_handler = co_message_handler ).
IF lv_tel CO '0123456789-'.
ELSE.
ls_message2-
msgty = /sapsrm/if_pdo_constants_gen_c=>gc_msgty_e.
ls_message2-msgid = 'ZSRM'.
ls_message2-msgno = 132.
ls_message2-field_name = 'TELEPHONE'.
ls_message2-set_guid = ls_pdo_tel2-guid .
ls_message2-set_type = 'BTCP'.
APPEND ls_message2 TO lt_messages2.
CLEAR:ls_message2.
ENDIF.
ENDIF.
*3.提示消息
IF lt_messages2 is not INITIAL.
/sapsrm/cl_pdo_msg=>/sapsrm/if_pdo_msg_provider~add_mess
age_static(
EXPORTING
it_messages = lt_messages2
CHANGING
co_message_handler = co_message_handler ).
ENDIF.
ENDENHANCEMENT.
ENHANCEMENT 1 ZEH001_CHECK_LANGU. "active version
*自注册界面只支持中文或者英文 即 ZH/EN 1/E
DATA:mo_pdo_cont_pers1 TYPE REF TO /sapsrm/if_pdo_mo_bp_co
nt_pers,
ls_pdo_cnp1 TYPE /sapsrm/s_pdo_bp_cp_basic_data,
lt_messages1 TYPE bbpt_pd_messages,
ls_message1 TYPE bbp_pds_messages.
me->/sapsrm/if_pdo_ao_bp_bis_base~get_cont_pers_mo(
IMPORTING eo_cont_pers_mo = mo_pdo_cont_pers1
CHANGING co_message_handler = co_message_handler ).
"get data
mo_pdo_cont_pers1->get_basic_data( IMPORTING es_basic_da
ta = ls_pdo_cnp1
CHANGING co_message_handler
= co_message_handler ).
ENDENHANCEMENT.
ENHANCEMENT 1 ZEH002_CHECK_CATEGORY. "active version
IF lt_buff_prod_cats is INITIAL.
CLEAR ls_message_p.
ls_message_p-
msgty = /sapsrm/if_pdo_constants_gen_c=>gc_msgty_e.
ls_message_p-msgid = 'ZSRM'."'/SAPSRM/PDO_MO_BP'.
ls_message_p-msgno = 066.
ls_message_p-field_name = 'PROD_CATEGORY_TEXT'.
* ls_message_p-set_guid = ls_pdo_bp_company_data-guid .
ls_message_p-set_type = 'BCPB'.
APPEND ls_message_p TO lt_messages_p.
elseif lines( lt_buff_prod_cats ) gt 1.
CLEAR ls_message_p.
ls_message_p-
msgty = /sapsrm/if_pdo_constants_gen_c=>gc_msgty_e.
ls_message_p-msgid = 'ZSRM'."'/SAPSRM/PDO_MO_BP'.
ls_message_p-msgno = 065.
ls_message_p-field_name = 'PROD_CATEGORY_TEXT'.
* ls_message_p-set_guid = ls_pdo_bp_company_data-guid .
ls_message_p-set_type = 'BCPB'.
APPEND ls_message_p TO lt_messages_p.
ENDIF.
/sapsrm/cl_pdo_msg=>/sapsrm/if_pdo_msg_provider~add_mess
age_static(
EXPORTING
it_messages = lt_messages_p
CHANGING
co_message_handler = co_message_handler ).
ENDIF.
ENDENHANCEMENT.
在该方法的最后位置设置
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""$"$\SE:(2) Class /SAPSRM/CL_PDO
_AO_BP_POT_SUPPL, Method CHECK_MANDATORY_FIELDS, End
A
*$*$-Start: (2)-----------------------------------------------
----------------------------------$*$*
ENHANCEMENT 2 ZEH001_CHECK_FIX_TEL. "active version
*校验 Fax/Tel No 设置标识
IF lt_messages2 is not INITIAL.
ev_error_exists = abap_true.
ENDIF.
ENDENHANCEMENT.
ENHANCEMENT 2 ZEH001_CHECK_LANGU. "active version
*设置标识
IF lt_messages1 is not INITIAL.
ev_error_exists = abap_true.
ENDIF.
ENDENHANCEMENT.
ENHANCEMENT 2 ZEH002_CHECK_CATEGORY. "active version
**校验 提供的产品类型 只能选择一种类型
CALL METHOD mo_buffer->get_product_categories
CHANGING
ct_prod_cat_info = lt_buff_prod_cats.
IF lines( lt_buff_prod_cats ) ne 1.
ev_error_exists = abap_true.
ENDIF.
ENDENHANCEMENT.
*$*$-End: (2)-----------------------------------------------
----------------------------------$*$*
6.策略采购-战略货源-回应和中标界面 增强
.a.界面按钮增强
.b.界面字段增强
.增强位置:
a 项目的说明
.在界面上右键—技术帮助
.组件选项卡
.获取组件名称和配置 ID
.se80 进入相应组件
.在此配置中增强按钮即可
.增强效果显示
.按钮事件响应
位置:类:/SAPSRM/CL_CH_WD_MAP_IDENT_BEV
方法:/SAPSRM/IF_CLL_IDENT_MAPPER~HANDLE_EVENT
.源码
该方法最前面
*$*$-Start: (1)----------------------------------------------
-----------------------------------$*$*
ENHANCEMENT 4 ZEH055_RFQ_APPROVAL. "active version
*EDIT 操作后 若报错 则页面为 DISPLAY 模式
DATA:lo_ident_mapper1 TYPE REF TO /sapsrm/if_cll_dofm_bev_h_id,
lo_pdo1 TYPE REF TO /sapsrm/if_pdo_ao_bev,
ls_pdo_bev_h_id1 TYPE /sapsrm/s_pdo_bev_h_id,
lx_pdo_abort1 TYPE REF TO /sapsrm/cx_pdo_abor
t,
lx_pdo_no_authorizatio1 TYPE REF TO /sapsrm/cx_pdo_no_a
uthorizatio,
lv_aprstatus1 TYPE ZAPPSTATUS,
ls_mesg1 TYPE /sapsrm/s_ch_wd_messages,
lt_bid_item type table of BBP_PDS_BID_ITEM_D,
ls_bid_item type BBP_PDS_BID_ITEM_D,
lt_bid_header_rel type table of BBP_PDS_HREL,
ls_bid_header_rel type BBP_PDS_HREL,
lt_quot_status type table of BBP_PDS_STATUS,
ls_quot_status type BBP_PDS_STATUS,
lv_matnr type xfeld,
ls_rfx_header type BBP_PDS_BID_HEADER_D,
lv_accept type i,
ls_status type ztstatus,
lv_erfqstatus type char20,
lv_stat_eformid type char40.
mo_ao_mapper ?= mo_task_container->get_aom_bev( ).
TRY.
lo_pdo1 ?= mo_pdo_xo.
* Get bid comparison data from PDO
CALL METHOD lo_pdo1->get_header_id
IMPORTING
es_pdo_bev_h_id = ls_pdo_bev_h_id1
CHANGING
co_message_handler = mo_pdo_message_consumer.
CATCH /sapsrm/cx_pdo_no_authorizatio INTO lx_pdo_no_author
izatio1.
mo_cll_message_handler->add_exception( io_pdo_error_exce
ption = lx_pdo_no_authorizatio1 ).
CATCH /sapsrm/cx_pdo_abort INTO lx_pdo_abort1.
mo_cll_message_handler->set_abort( io_pdo_abort_exceptio
n = lx_pdo_abort1 ).
ENDTRY.
IF io_event->mv_event_id eq cl_fpm_event=>gc_event_refresh.
clear ls_status.
SELECT SINGLE *
INTO ls_status
FROM ztstatus
WHERE guid EQ ls_pdo_bev_h_id1-guid.
IF io_event->mv_event_id EQ /sapsrm/if_cll_mapper_c=>gc_even
t_award.
CLEAR:lv_aprstatus1.
SELECT SINGLE aprstatus
INTO lv_aprstatus1
FROM ztstatus
WHERE guid EQ ls_pdo_bev_h_id1-guid.
"审批中 不能再次修改
IF lv_aprstatus1 EQ 'RUNNING'.
ls_mesg1-msgty = y_cl_wd_shared_data=>gc_s_msg_type-
type_e.
ls_mesg1-msgid = y_cl_wd_shared_data=>gc_s_msg_class-
zsrm.
ls_mesg1-msgno = '120'.
"审批完成 不能再次修改
IF lv_aprstatus1 EQ 'COMPLETED'.
ls_mesg1-msgty = y_cl_wd_shared_data=>gc_s_msg_type-
type_e.
ls_mesg1-msgid = y_cl_wd_shared_data=>gc_s_msg_class-
zsrm.
ls_mesg1-msgno = '121'.
"已提交 MRO 审批
IF lv_aprstatus1 eq 'MROING'.
ls_mesg1-msgty = y_cl_wd_shared_data=>gc_s_msg_type-
type_e.
ls_mesg1-msgid = y_cl_wd_shared_data=>gc_s_msg_class-
zsrm.
ls_mesg1-msgno = '154'.
IF sy-langu = '1'.
ls_mesg1-MSGV1 = '已导入 MRO,不能再次修改'.
else.
ls_mesg1-
MSGV1 = 'You can not award again when MRO Imported'.
ENDIF.
CALL METHOD mo_cll_message_handler->add_message
EXPORTING
is_message = ls_mesg1.
RETURN.
ENDIF.
endif.
ENDENHANCEMENT.
该方法末尾
ENHANCEMENT 1 ZEH055_RFQ_APPROVAL. "active version
*数据对象声明
DATA:ls_bid_header TYPE BBP_PDS_BID_HEADER_D,
ls_return TYPE ZTSUP_RETURN,
lt_back_item TYPE TABLE OF ZSEOFFICE_PR_BACK,
lt_message TYPE table of ZSECCMESSAGE,
ls_message type zseccmessage,
ls_url TYPE FPM_S_LAUNCH_URL,
lv_guid TYPE CRMT_OBJECT_GUID,
lt_params TYPE APB_LPD_T_PARAMS,
ls_params TYPE APB_LPD_S_PARAMS,
lv_url TYPE STRING,
ls_constant TYPE ZTAB_CONSTANT,
lt_ztresponse type table of ztresponse,
ls_ztresponse TYPE ZTRESPONSE,
ls_ztstatus TYPE ztstatus,
lv_aprstatus TYPE ZAPPSTATUS,
lt_zteofficeurl TYPE TABLE OF zteofficeurl,
ls_zteofficeurl TYPE zteofficeurl,
lt_BBP_PDS_HREL type table of BBP_PDS_HREL,
ls_BBP_PDS_HREL type BBP_PDS_HREL,
lt_BBP_PDS_STATUS type table of BBP_PDS_STATUS,
ls_BBP_PDS_STATUS type BBP_PDS_STATUS.
data: lt_enq type table of seqg3.
CASE io_event->mv_event_id.
"SRM055 报价审批接口 :Submit to E-office
WHEN 'E_OFFICE'.
"首先校验是否处于流程审批中
CLEAR:lv_aprstatus.
SELECT SINGLE aprstatus
INTO lv_aprstatus
FROM ztstatus
where guid EQ ls_pdo_bev_h_id-guid.
"审批中 不能再次提交
IF lv_aprstatus EQ 'RUNNING'.
ls_mesg-msgty = y_cl_wd_shared_data=>gc_s_msg_type-
type_e.
ls_mesg-msgid = y_cl_wd_shared_data=>gc_s_msg_class-
zsrm.
ls_mesg-msgno = '120'.
"审批完成 不能再次提交
IF lv_aprstatus EQ 'COMPLETED'.
ls_mesg-msgty = y_cl_wd_shared_data=>gc_s_msg_type-
type_e.
ls_mesg-msgid = y_cl_wd_shared_data=>gc_s_msg_class-
zsrm.
ls_mesg-msgno = '121'.
"GUID
lv_guid = ls_pdo_bev_h_id-guid.
"加锁
CALL FUNCTION 'ENQUEUE_EZTSTATUS'
EXPORTING
mode_ztstatus = 'E'
client = sy-mandt
guid = lv_guid.
"解锁
CALL FUNCTION 'DEQUEUE_EZTSTATUS'
EXPORTING
mode_ztstatus = 'E'
client = sy-mandt
guid = lv_guid.
"获取 BDID/IP&Port/Page
CLEAR:ls_constant.
SELECT SINGLE value1 value2 value3
INTO (ls_constant-value1,ls_constant-
value2,ls_constant-value3)
FROM ztab_constant
WHERE mainkey EQ 'ZSRM001'
AND seckey EQ 'ERFQ'.
"设置参数
ls_params-key = 'GUID'.
ls_params-value = lv_guid.
APPEND ls_params to lt_params.
CLEAR ls_params.
ls_params-key = 'BDID'.
ls_params-value = ls_constant-value1.
APPEND ls_params to lt_params.
CLEAR ls_params.
" 弹 出 E-Office 界
面 "URL:'http://10.0.2.25:8888/WFForm/RFQApplication/Index.aspx
?BDID=4CF310F636194639BCF0928AD3EFD656'.
ls_url-parameter = lt_params.
ls_url-url = lv_url.
CALL METHOD y_cl_wd_tool=>navigate_externalurl
EXPORTING
is_url_fields = ls_url.
lo_ident_mapper->action_refresh( ).
IF sy-subrc EQ 0.
ls_mesg-msgty = y_cl_wd_shared_data=>gc_s_msg_type-
type_e.
ls_mesg-msgid = y_cl_wd_shared_data=>gc_s_msg_class-
zsrm.
ls_mesg-msgno = '146'.
"2.其次校验是否处于流程审批中
CLEAR:lv_aprstatus.
SELECT SINGLE aprstatus
INTO lv_aprstatus
FROM ztstatus
WHERE guid EQ ls_pdo_bev_h_id-guid
AND aprstatus EQ 'COMPLETED'.
IF sy-subrc NE 0.
ls_mesg-msgty = y_cl_wd_shared_data=>gc_s_msg_type-
type_e.
ls_mesg-msgid = y_cl_wd_shared_data=>gc_s_msg_class-
zsrm.
ls_mesg-msgno = '123'.
clear lt_message.
call function 'ZFM_UPDATE_ECCINFO'
exporting
i_object_id = lv_object_id
tables
etmessage = lt_message.
lo_ident_mapper->action_refresh( ).
"消息提示
IF lt_message is not INITIAL.
LOOP AT lt_message into ls_message.
ls_mesg-msgty = ls_message-type.
ls_mesg-
msgid = y_cl_wd_shared_data=>gc_s_msg_class-zsrm.
ls_mesg-msgno = '002'.
ls_mesg-msgv1 = ls_message-message.
ls_mesg-msgv2 = ls_message-message+50(50).
IF ls_zteofficeurl is initial.
ls_mesg1-
msgty = y_cl_wd_shared_data=>gc_s_msg_type-type_e.
ls_mesg1-
msgid = y_cl_wd_shared_data=>gc_s_msg_class-zsrm.
ls_mesg1-msgno = '154'.
IF sy-langu = '1'.
ls_mesg1-MSGV1 = '此 RFx 不允许打开 PR'.
else.
ls_mesg1-MSGV1 = 'You can not open e-office PR'.
ENDIF.
CALL METHOD mo_cll_message_handler->add_message
EXPORTING
is_message = ls_mesg1.
RETURN.
ENDIF.
CLEAR:ls_ztresponse.
SELECT SINGLE *
INTO ls_ztresponse
FROM ztresponse
WHERE guid EQ ls_pdo_bev_h_id-guid
and zzreason ne space.
"打开相关的 E-Office 界面
IF ls_ztresponse is not INITIAL and ls_zteofficeurl i
s not initial.
CLEAR:ls_url.
ls_url-url = ls_zteofficeurl-zzeprurl.
CALL METHOD y_cl_wd_tool=>navigate_externalurl
EXPORTING
is_url_fields = ls_url.
IF lv_trans_mode = 'EDIT'.
CALL METHOD lo_ident_mapper->confirm_change( lv_tr
ans_mode ).
lo_ident_mapper->change( ).
ENDIF.
ELSE.
ls_mesg-msgty = y_cl_wd_shared_data=>gc_s_msg_type-
type_e.
ls_mesg-msgid = y_cl_wd_shared_data=>gc_s_msg_class-
zsrm.
ls_mesg-msgno = '102'.
clear lt_enq.
call function 'ENQUE_READ'
exporting
gclient = sy-mandt
gname = 'RSTABLE'
garg = 'ZTRESPONSE*'
guname = sy-uname
* IMPORTING
* NUMBER =
* SUBRC =
tables
enq = lt_enq.
lo_ident_mapper->action_refresh( ).
ls_mesg-msgty = 'S'.
ls_mesg-
msgid = y_cl_wd_shared_data=>gc_s_msg_class-zsrm.
ls_mesg-msgno = '154'.
ls_mesg-msgv1 = '授标已取消'.
else.
lo_ident_mapper->action_refresh( ).
ls_mesg-msgty = 'S'.
ls_mesg-
msgid = y_cl_wd_shared_data=>gc_s_msg_class-zsrm.
ls_mesg-msgno = '154'.
ls_mesg-msgv1 = 'Award Canceled'.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
else.
IF sy-langu = '1'.
ls_mesg-msgty = 'E'.
ls_mesg-msgid = y_cl_wd_shared_data=>gc_s_msg_class-
zsrm.
ls_mesg-msgno = '154'.
ls_mesg-msgv1 = '无法取消授标'.
ENDCASE.
ENDENHANCEMENT.
b 项目的说明
效果显示
增强位置:
类:/SAPSRM/CL_CH_WD_MAP_IDENT_BEV
方法:设置字段:INIT_IDR_FIELDS
字段赋值:/SAPSRM/IF_CLL_IDENT_MAPPER~GET_FIELD_DATA
源码:
b1 新增字段
ENHANCEMENT 2 ZEH055_RFQ_APPROVAL. "active version
*新增 E-Office Approval Status
CONSTANTS:
lc_eoapp_status TYPE string VALUE 'APRSTATUS',
lv_descr_en TYPE string VALUE 'Follow-on Status',
lv_descr_zh TYPE string VALUE '后续状态',
lc_eformid TYPE string VALUE 'EFORMID',
lv_iddescr TYPE string VALUE 'eRFQ FORM ID'.
IF lv_bo_type EQ /sapsrm/if_pdo_obj_types_c=>gc_pdo_biddingd
oc.
ls_idr_field-field_name = lc_eoapp_status.
IF sy-langu EQ 'E'.
ls_idr_field-field_label = lv_descr_en.
ls_idr_field-field_tooltip = lv_descr_en.
ls_idr_field-field_label_tooltip = lv_descr_en.
ELSEIF sy-langu EQ '1'.
ls_idr_field-field_label = lv_descr_zh.
ls_idr_field-field_tooltip = lv_descr_zh.
ls_idr_field-field_label_tooltip = lv_descr_zh.
ENDIF.
ls_idr_field-is_metadata_handled = abap_false.
APPEND ls_idr_field TO mt_idr_fields.
CLEAR:ls_idr_field.
ls_idr_field-field_name = lc_eformid.
ls_idr_field-field_label = lv_iddescr.
ls_idr_field-field_tooltip = lv_iddescr.
ls_idr_field-field_label_tooltip = lv_iddescr.
ls_idr_field-is_metadata_handled = abap_false.
APPEND ls_idr_field TO mt_idr_fields.
CLEAR:ls_idr_field.
ENDIF.
ENDENHANCEMENT.
b2.字段赋值
ENHANCEMENT 3 ZEH055_RFQ_APPROVAL. "active version
*给 E-Office Approval Status 赋值
DATA:ls_ztatus TYPE ztstatus,
lv_domname TYPE dd07l-domname VALUE 'ZDAPPSTATUS',
lv_domvalue TYPE string,
lv_ddtext TYPE ddtext.
"获取状态
CLEAR:ls_ztatus.
SELECT SINGLE * INTO ls_ztatus
FROM ztstatus
WHERE guid EQ ls_cll_bev_h_id-guid.
IF lv_bo_type EQ /sapsrm/if_pdo_obj_types_c=>gc_pdo_biddingd
oc.
"获取文本
IF ls_ztatus-aprstatus IS NOT INITIAL.
CLEAR:lv_domvalue,lv_ddtext.
lv_domvalue = ls_ztatus-aprstatus.
CALL METHOD y_cl_wd_tool=>get_domvalues
EXPORTING
iv_domname = lv_domname
iv_domvalue = lv_domvalue
iv_langu = sy-langu
RECEIVING
rv_ddtext = lv_ddtext.
ls_cll_bev_h_id-aprstatus = lv_ddtext.
ELSE.
ls_cll_bev_h_id-aprstatus = ls_ztatus-aprstatus.
ENDIF.
ls_cll_bev_h_id-eformid = ls_ztatus-eformid.
ENDIF.
ms_cll_bev_h_id = ls_cll_bev_h_id.
GET REFERENCE OF ms_cll_bev_h_id INTO rr_field_data.
ENDENHANCEMENT.
位置:
类&方法:
新增字段位置
/SAPSRM/CL_CLL_POWLT_RFQ-->
/SAPSRM/CL_CLL_POWL_BASE:IF_POWL_FEEDER~GET_FIELD_CATALOG
赋值位置
/SAPSRM/CL_CLL_POWL_BO_RFQEXECUTE_SEARCH
新增字段结构: /SAPSRM/S_POWL_RESULT_BID
/SAPSRM/S_SEARCH_RESULT_BID
.效果
.源码
新增字段
ENHANCEMENT 1 ZEH055_RFXS_ADD_FIELDS. "active version
*报价界面新增字段
DATA:lw_fieldcat_rfx TYPE powl_fieldcat_sty.
"DM/IDM
lw_fieldcat_rfx-colid = 'ZZDMIDM'.
lw_fieldcat_rfx-colpos = 3.
lw_fieldcat_rfx-display_type = 'TV'.
lw_fieldcat_rfx-col_visible = 'X'.
lw_fieldcat_rfx-allow_filter = 'X'.
lw_fieldcat_rfx-allow_sort = 'X'.
lw_fieldcat_rfx-enabled = 'X'.
INSERT lw_fieldcat_rfx INTO TABLE mt_fieldcat.
CLEAR:lw_fieldcat_rfx.
"E-Office PR
lw_fieldcat_rfx-colid = 'ZZEOFPR'.
lw_fieldcat_rfx-colpos = 3.
lw_fieldcat_rfx-display_type = 'TV'.
lw_fieldcat_rfx-col_visible = 'X'.
lw_fieldcat_rfx-allow_filter = 'X'.
lw_fieldcat_rfx-allow_sort = 'X'.
lw_fieldcat_rfx-enabled = 'X'.
INSERT lw_fieldcat_rfx INTO TABLE mt_fieldcat.
CLEAR:lw_fieldcat_rfx.
"Status
lw_fieldcat_rfx-colid = 'ZAPRSTATUS'.
lw_fieldcat_rfx-colpos = 4.
lw_fieldcat_rfx-display_type = 'TV'.
lw_fieldcat_rfx-col_visible = 'X'.
lw_fieldcat_rfx-allow_filter = 'X'.
lw_fieldcat_rfx-allow_sort = 'X'.
lw_fieldcat_rfx-enabled = 'X'.
INSERT lw_fieldcat_rfx INTO TABLE mt_fieldcat.
CLEAR:lw_fieldcat_rfx.
"ERFQFORM ID
lw_fieldcat_rfx-colid = 'EFORMID'.
lw_fieldcat_rfx-colpos = 4.
lw_fieldcat_rfx-display_type = 'TV'.
lw_fieldcat_rfx-col_visible = 'X'.
lw_fieldcat_rfx-allow_filter = 'X'.
lw_fieldcat_rfx-allow_sort = 'X'.
lw_fieldcat_rfx-enabled = 'X'.
INSERT lw_fieldcat_rfx INTO TABLE mt_fieldcat.
CLEAR:lw_fieldcat_rfx.
ENDENHANCEMENT.
.字段赋值
ENHANCEMENT 1 ZEH055_RFXS_ADD_FIELDS2. "active version
*获取新增字段的值
types: begin of ty_status,
lv_stat TYPE ZAPPSTATUS,
lv_EFORMID type ZEFORMID,
end of ty_status.
select single *
from bbp_pdhsc
into ls_header
where guid = iv_line_guid.
"E-Office PR
es_search_result_line-zzeofpr = ls_header-zzeofpr.
"Status
CLEAR:ls_status1.
SELECT SINGLE APRSTATUS as lv_stat eformid as lv_EFORMID
INTO ls_status1
FROM ztstatus
WHERE guid EQ iv_line_guid.
es_search_result_line-zaprstatus = lv_ddtext.
ELSE.
es_search_result_line-zaprstatus = ls_status1-lv_stat.
ENDIF.
"E-Office Form ID
IF ls_status1-lv_eformid is not initial.
es_search_result_line-eformid = ls_status1-lv_eformid.
ENDIF.
ENDENHANCEMENT.
.增强后效果
.增强实施过程
Se80->BSP Application:SRMSUS->Controller->Order 之下
. detail_view.sub 对应类 CL_SUS_C_ORDER_DETAIL_VIEW
方法:DO_REQUEST
增强位置
源码:(末尾添加)
ENHANCEMENT 1 ZEH042_ADD_RETPO. "active version
*显示采购订单界面 项目概览中新增退货项目字段
DATA:lw_tabdef LIKE LINE OF ct_tabdef,
ls_tabdef LIKE LINE OF ct_tabdef,
ls_tabdef1 LIKE LINE OF ct_tabdef,
lt_tabdef TYPE BBP_T_SUS_TABDEF,
lv_row TYPE BBP_SUS_POS_IN_ROW.
IF <lf_po_header_d> IS ASSIGNED.
*判断是否已经新增字段 RETPO
READ TABLE ct_tabdef TRANSPORTING NO FIELDS WITH KEY columnna
me = 'RETPO'.
IF sy-subrc EQ 0.
"判断是否已经新增字段 ELIKZ
READ TABLE ct_tabdef TRANSPORTING NO FIELDS WITH KEY colum
nname = 'ELIKZ'.
IF sy-subrc EQ 0.
RETURN.
ENDIF.
ELSE.
*获取最大 pos_in_row
CLEAR:lt_tabdef,lv_row.
lt_tabdef = ct_tabdef.
SORT lt_tabdef BY pos_in_row DESCENDING.
READ TABLE lt_tabdef INTO ls_tabdef1 INDEX 1.
IF sy-subrc EQ 0.
lv_row = ls_tabdef1-pos_in_row.
CLEAR:ls_tabdef1.
ENDIF.
*复制一行 重新赋值
READ TABLE ct_tabdef INTO ls_tabdef INDEX 1.
IF sy-subrc EQ 0.
lw_tabdef = ls_tabdef.
CLEAR:ls_tabdef.
ENDIF.
lw_tabdef-columnname = 'RETPO'.
lw_tabdef-action_id = space.
lw_tabdef-col_type = 'TEXTVIEW'.
lw_tabdef-pos_in_row = lv_row + 1.
lw_tabdef-pos_in_col = '1'.
lw_tabdef-otr_alias = 'ZSRM/ZRETPO'.
APPEND lw_tabdef to ct_tabdef.
CLEAR:lw_tabdef.
ENDIF.
*新增字段 ELIKZ
READ TABLE ct_tabdef TRANSPORTING NO FIELDS WITH KEY columnnam
e = 'ELIKZ'.
IF sy-subrc EQ 0.
RETURN.
ELSE.
*获取最大 pos_in_row
CLEAR:lt_tabdef,lv_row.
lt_tabdef = ct_tabdef.
SORT lt_tabdef BY pos_in_row DESCENDING.
READ TABLE lt_tabdef INTO ls_tabdef1 INDEX 1.
IF sy-subrc EQ 0.
lv_row = ls_tabdef1-pos_in_row.
CLEAR:ls_tabdef1.
ENDIF.
*复制一行 重新赋值
READ TABLE ct_tabdef INTO ls_tabdef INDEX 1.
IF sy-subrc EQ 0.
lw_tabdef = ls_tabdef.
CLEAR:ls_tabdef.
ENDIF.
lw_tabdef-columnname = 'ELIKZ'.
lw_tabdef-action_id = space.
lw_tabdef-col_type = 'TEXTVIEW'.
lw_tabdef-pos_in_row = lv_row + 1.
lw_tabdef-pos_in_col = '1'.
lw_tabdef-otr_alias = 'ZSRM/ELIKZ'.
APPEND lw_tabdef to ct_tabdef.
CLEAR:lw_tabdef.
ENDIF.
ENDIF.
ENDENHANCEMENT.
字段赋值
类:cl_sus_m_order_detail
方法:PREPARE_ITEMS_FOR_UI
源码:
*$*$-Start: (1)-----------------------------------------------
----------------------------------$*$*
ENHANCEMENT 2 ZEH042_ADD_RETPO. "active version
*给新增的字段 RETPO 赋值
TYPES:BEGIN OF ty_retpo,
ebeln TYPE ebeln,
ebelp TYPE ebelp,
retpo TYPE zeretpo,
elikz type zeelikz,
END OF ty_retpo.
*设定新增字段 RETPO/ELIKZ 的值
LOOP AT me->pt_items_po ASSIGNING <lf_item_po>.
CLEAR:lv_ebeln,lv_ebelp.
lv_ebeln = <lf_item_po>-src_object_id.
lv_ebelp = <lf_item_po>-src_itm_id.
ENDENHANCEMENT.
IF iv_price_field_name EQ 'TOTAL_VALUE'.
RETURN.
ELSE.
*获取最大 pos_in_row
CLEAR:lt_tabdef,lv_row.
lt_tabdef = ct_tabdef.
SORT lt_tabdef BY pos_in_row DESCENDING.
READ TABLE lt_tabdef INTO ls_tabdef1 INDEX 1.
IF sy-subrc EQ 0.
lv_row = ls_tabdef1-pos_in_row.
CLEAR:ls_tabdef1.
ENDIF.
*复制一行 重新赋值
READ TABLE ct_tabdef INTO ls_tabdef INDEX 1.
IF sy-subrc EQ 0.
lw_tabdef = ls_tabdef.
CLEAR:ls_tabdef.
ENDIF.
lw_tabdef-columnname = 'RETPO'.
lw_tabdef-action_id = space.
lw_tabdef-col_type = 'TEXTVIEW'.
lw_tabdef-pos_in_row = lv_row + 1.
lw_tabdef-pos_in_col = '1'.
lw_tabdef-otr_alias = 'ZSRM/ZRETPO'.
APPEND lw_tabdef to ct_tabdef.
lw_tabdef-columnname = 'ELIKZ'.
lw_tabdef-action_id = space.
lw_tabdef-col_type = 'TEXTVIEW'.
lw_tabdef-pos_in_row = lv_row + 2.
lw_tabdef-pos_in_col = '1'.
lw_tabdef-otr_alias = 'ZSRM/ELIKZ'.
APPEND lw_tabdef to ct_tabdef.
CLEAR:lw_tabdef.
ENDIF.
ENDENHANCEMENT.
字段赋值
cl_sus_m_order_resp_detail->PREPARE_ITEMS_FOR_UI
源码:
ENHANCEMENT 1 ZEH042_SET_RETPCO_DATA. "active version
*给新增的字段 RETPO/ELIKZ 赋值
TYPES:BEGIN OF ty_retpo,
ebeln TYPE ebeln,
ebelp TYPE ebelp,
retpo TYPE zeretpo,
elikz TYPE zeelikz,
END OF ty_retpo.
*设定新增字段 RETPO 的值
LOOP AT me->pt_items_pco ASSIGNING <lf_item_pco>.
CLEAR:lv_ebeln,lv_ebelp.
lv_ebeln = <ls_header_pco>-src_object_id.
lv_ebelp = <lf_item_pco>-number_ext.
ENDENHANCEMENT.
在 类
cl_sus_m_order_detail->IF_SUS_DOCUMENT_DETAIL~POPULATE_ITEM_DE
TAIL 中赋值
源码:
ENHANCEMENT 3 ZEH042_ADD_RETPO. "active version
*点击具体的行项目 查看具体行项目信息时 设定 RETPO/ELIKZ 值
data:lw_pt_item_po type BBP_PDS_SUSPO_UI_ITEM_D.
*给新增的字段 RETPO 赋值
TYPES:BEGIN OF ty_retpo,
ebeln TYPE ebeln,
ebelp TYPE ebelp,
retpo TYPE zeretpo,
elikz TYPE zeelikz,
END OF ty_retpo.
ENDENHANCEMENT.
赋值位置:
cl_sus_m_order_resp_detail->IF_SUS_DOCUMENT_DETAIL~POPULATE_IT
EM_DETAIL
源码:
ENHANCEMENT 2 ZEH042_SET_RETPCO_DATA. "active version
*修改状态下 进入某个具体的行项目时 进行设定 RETPO/ELIKZ 的值
*给新增的字段 RETPO 赋值
TYPES:BEGIN OF ty_retpo,
ebeln TYPE ebeln,
ebelp TYPE ebelp,
retpo TYPE zeretpo,
elikz TYPE zeelikz,
END OF ty_retpo.
*设定新增字段 RETPO 的值
LOOP AT me->pt_item_pco ASSIGNING <lf_item_pco>.
CLEAR:lv_ebeln,lv_ebelp.
lv_ebeln = ls_header_pco-src_object_id.
lv_ebelp = <lf_item_pco>-number_ext.
ENDENHANCEMENT.