如何创建自己的SAP CRM产品主数据search scenario

Created by Jerry Wang, last modified on Oct 03, 2016

Technically it is possible to create your own search scenario, filter class and search tool, and put your custom search logic there. Then write another report to trigger search implemented by your own search scenario:

(1) Create your filter class with interface IF_COM_PRSEARCHFILTER.

Put your own filter logic in method FILTER. It will be called by your own search tool.
Define which search criteria will be relevant for your filter. In my example since I need to re-implement search by object description, so I make short text set type as relevant criteria.

(2) Create your own search tool with interface IF_COM_PRSEARCHTOOL.

Implement method RELEVANT_CRITERIA which has the same logic as your own filter class.

Implement method GETLIST_ACTIVE. Put your optimized solution in this method.

(3) Create your search scenario class with super class CL_COM_PRSEARCHSCENARIO_BASE.
Redefine DETERMINE_STANDARD_TOOL.
Just specify your own search tool and filter class in this method.

  CREATE OBJECT lr_tool TYPE ZCL_NEW_SEARCH_TOOL_AFTER_OPT.
  ei_tool = lr_tool.
  CREATE OBJECT lr_filter TYPE ZCL_NEW_FILTER_AFTER_OPT.
  INSERT lr_filter INTO TABLE et_filter.

(4) [Optional] integrate your own search in PREPARE_DB_RANGE_SEARCH ( standard code change necessary )

(5) Since currently we do not need to integrate the new search via end-to-end way, we simply write a report to trigger search which will use our own search:
This FM will not be used by UI search, so when you are comparing your search performance with standard search, please also trigger standard search via this report, too.

ls_option-frgtype_id = 'COMM_PR_SHTEXT'.
ls_option-attribute  = 'SHORT_TEXT'.
ls_option-sign       = 'I'.
ls_option-option     = 'EQ'.
ls_option-low        = 'object mass created of 200124'.
ls_option-high       = space.
INSERT ls_option INTO TABLE lt_option.
CALL FUNCTION 'COM_PRODUCT_GETLIST_API'
  EXPORTING
    it_gen_sel_options = lt_option
    iv_scenario        = 'ZCL_NEW_SCENARIO_AFTER_OPT'
  IMPORTING
    et_product         = lt_product
    et_bapireturn      = lt_return

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

汪子熙 CSDN认证博客专家 前端框架 Node.js SAP
Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。14 多年的 SAP 产品开发生涯,Jerry 曾经先后参与 SAP Business ByDesign,SAP CRM,SAP Cloud for Customer,SAP S/4HANA,SAP Commerce Cloud(电商云)等标准产品的研发工作。
相关推荐
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页
实付 49.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值