重用CL_CRM_QUERYAUI_RUN_BTIL实现order search
Created by Jerry Wang on Mar 20, 2014
如果需要使用代码实现下面的search 功能:
我们可以使用如下代码,通过重用BOL 层的query来实现搜索。
DATA: lo_core TYPE REF TO cl_crm_bol_core,lo_collection TYPE REF TO if_bol_entity_col,lv_query_name TYPE crmt_ext_obj_name,lt_selection_parameter TYPE genilt_selection_parameter_tab,ls_selection_parameter TYPE genilt_selection_parameter,ls_query_parameters TYPE genilt_query_parameters.ls_selection_parameter-attr_name = 'MAINCATEGORY'. ls_selection_parameter-option = 'EQ'. ls_selection_parameter-sign = 'I'. ls_selection_parameter-low = 'SRVO'. APPEND ls_selection_parameter TO lt_selection_parameter.ls_selection_parameter-attr_name = 'POSTING_DATE'. ls_selection_parameter-option = 'BT'. ls_selection_parameter-sign = 'I'. ls_selection_parameter-low = '20140318'. ls_selection_parameter-high = '20140320'. APPEND ls_selection_parameter TO lt_selection_parameter.ls_query_parameters-max_hits = 1. lv_query_name = 'BTAdvQueryAUI'.lo_core = cl_crm_bol_core=>get_instance( ). lo_core->load_component_set( 'BT' ).lo_collection = lo_core->dquery(iv_query_name = lv_query_nameit_selection_parameters = lt_selection_parameteris_query_parameters = ls_query_parameters ).当然我们也可以更深入一层,重用Genil layer的实现代码来执行搜索:代码如下:DATA: lo_tool TYPE REF TO zcl_crm_queryaui_run_btil.DATA: lt_parameter TYPE crmt_name_value_pair_tab,ls_parameter LIKE LINE OF lt_parameter,lt_sel_para TYPE genilt_selection_parameter_tab,ls_sel_para LIKE LINE OF lt_sel_para.ls_parameter-name = 'MAINCATEGORY'. ls_parameter-value = 'SRVO'. APPEND ls_parameter TO lt_parameter.ls_parameter-name = 'POSTING_DATE'. ls_parameter-value = '20140318'. APPEND ls_parameter TO lt_parameter.ls_sel_para-attr_name = 'MAINCATEGORY'. ls_sel_para-sign = 'I'. ls_sel_para-option = 'EQ'. ls_sel_para-low = 'SRVO'. APPEND ls_sel_para TO lt_sel_para.ls_sel_para-attr_name = 'POSTING_DATE'. ls_sel_para-sign = 'I'. ls_sel_para-option = 'BT'. ls_sel_para-low = '20140318'. ls_sel_para-high = '20140320'. APPEND ls_sel_para TO lt_sel_para.CREATE OBJECT lo_tool EXPORTING iv_objname = 'BTAdvQueryAUI'.lo_tool->read( i_param_tab = lt_parameterit_selection_parameters = lt_sel_paraiv_advanced_search = abap_true ).DATA(result) = lo_tool->get( ).
这里的zcl_crm_queryaui_run_btil是一个新的class,继承自cl_crm_queryaui_run_btil。继承的原因是我们需要使用GET_RESULT_LIST和READ_BUSINESS_TRANSACTIONS这两个protected方法。sub class的代码如下:
class ZCL_CRM_QUERYAUI_RUN_BTIL definitionpublicinheriting from CL_CRM_QUERYAUI_RUN_BTILfinalcreate public .public section.methods READimporting!I_PARAM_TAB type CRMT_NAME_VALUE_PAIR_TAB optional!IT_SELECTION_PARAMETERS type GENILT_SELECTION_PARAMETER_TAB optional!IV_ADVANCED_SEARCH type CRMT_BOOLEAN default ABAP_FALSE .methods GETimporting!IT_PARAMETERS type CRMT_NAME_VALUE_PAIR_TAB optionalreturningvalue(RR_RESULT_LIST) type ref to CRMT_REPORT_LOCATORLIST_TA . protected section.methods GET_RESULT_LISTredefinition .methods READ_BUSINESS_TRANSACTIONSredefinition . private section. ENDCLASS.CLASS ZCL_CRM_QUERYAUI_RUN_BTIL IMPLEMENTATION.* <SIGNATURE>---------------------------------------------------------------------------------------+ * | Instance Public Method ZCL_CRM_QUERYAUI_RUN_BTIL->GET * +-------------------------------------------------------------------------------------------------+ * | [--->] IT_PARAMETERS TYPE CRMT_NAME_VALUE_PAIR_TAB(optional) * | [<-()] RR_RESULT_LIST TYPE REF TO CRMT_REPORT_LOCATORLIST_TA * +--------------------------------------------------------------------------------------</SIGNATURE>method GET. CALL METHOD me->GET_RESULT_LISTEXPORTINGit_parameters = it_parametersRECEIVINGRR_RESULT_LIST = rr_result_list.endmethod.* <SIGNATURE>---------------------------------------------------------------------------------------+ * | Instance Protected Method ZCL_CRM_QUERYAUI_RUN_BTIL->GET_RESULT_LIST * +-------------------------------------------------------------------------------------------------+ * | [--->] IT_PARAMETERS TYPE CRMT_NAME_VALUE_PAIR_TAB(optional) * | [<-()] RR_RESULT_LIST TYPE REF TO CRMT_REPORT_LOCATORLIST_TA * +--------------------------------------------------------------------------------------</SIGNATURE>method GET_RESULT_LIST. CALL METHOD SUPER->GET_RESULT_LISTEXPORTINGit_parameters = it_parametersRECEIVINGRR_RESULT_LIST = rr_result_list.endmethod.* <SIGNATURE>---------------------------------------------------------------------------------------+ * | Instance Public Method ZCL_CRM_QUERYAUI_RUN_BTIL->READ * +-------------------------------------------------------------------------------------------------+ * | [--->] I_PARAM_TAB TYPE CRMT_NAME_VALUE_PAIR_TAB(optional) * | [--->] IT_SELECTION_PARAMETERS TYPE GENILT_SELECTION_PARAMETER_TAB(optional) * | [--->] IV_ADVANCED_SEARCH TYPE CRMT_BOOLEAN (default =ABAP_FALSE) * +--------------------------------------------------------------------------------------</SIGNATURE>method READ. CALL METHOD me->READ_BUSINESS_TRANSACTIONSEXPORTINGi_param_tab = i_param_tabit_selection_parameters = it_selection_parametersiv_advanced_search = iv_advanced_search.endmethod.* <SIGNATURE>---------------------------------------------------------------------------------------+ * | Instance Protected Method ZCL_CRM_QUERYAUI_RUN_BTIL->READ_BUSINESS_TRANSACTIONS * +-------------------------------------------------------------------------------------------------+ * | [--->] I_PARAM_TAB TYPE CRMT_NAME_VALUE_PAIR_TAB(optional) * | [--->] IT_SELECTION_PARAMETERS TYPE GENILT_SELECTION_PARAMETER_TAB(optional) * | [--->] IV_ADVANCED_SEARCH TYPE CRMT_BOOLEAN (default =ABAP_FALSE) * +--------------------------------------------------------------------------------------</SIGNATURE>method READ_BUSINESS_TRANSACTIONS. CALL METHOD SUPER->READ_BUSINESS_TRANSACTIONSEXPORTINGi_param_tab = i_param_tabit_selection_parameters = it_selection_parametersiv_advanced_search = iv_advanced_search.endmethod. ENDCLASS.
重用CL_CRM_QUERYAUI_RUN_BTIL实现order search相关推荐
- One order search by guid uuid
The detail page keeps loading forever is because the response of this odata request never returns: h ...
- One order search的框架代码里,硬编码了要去取Interaction object相关的数据
One order search的框架代码里,硬编码了要去取Interaction object相关的数据,见下图214行方法:get_io_info:里面有个开关: 这个开关的配置地址: 我把这个功 ...
- One order search dynamic sql statement生成位置
line 30负责根据ui传入的search parameter生成动态的sql statement example1: 所以我们得知One order的search,最终是通过OPEN SQL到如下 ...
- SAP CRM Service Order search Tool
Created by Jerry Wang, last modified on Mar 21, 2014 这个工具能够根据UI 上的search条件( Main Category和Created on ...
- CRM One Order search max hit实现原理讨论
One Order的setting应该不起作用,这里需要的是Fiori Personalize的setting,如果没有,程序会把One Order的Max Hit设成1000: 大概看了一下cust ...
- IC Order search 的debugging关键点
Created by Jerry Wang, last modified on Mar 20, 2014 UI输入: 对于不同的search参数有不同的处理: 执行sql语句: 执行结果: 要获取更多 ...
- One order search dynamic SQL build logic
Created by Jerry Wang, last modified on Jul 24, 2015 使用传入的search tab构造SQL: 取得逻辑操作符: 依次处理search tab里传 ...
- Magento Order Search使用api查询订单
Magento1.6版本中已经集成了订单的查询功能,不过早期的版本要实现订单查询还得花点心思.网上也有对应的插件就是了,hellokeykey的 订单查询插件,不过要 50刀,感觉贵了点,不过一分钱一 ...
- how CRM One Order search by contact name work in the past
最新文章
- Android开发之使用Preferences设计软件设置界面(源代码分享)
- elasticsearch分组统计,取最大值、最小值、求和
- vba vbscript.regexp加载dll错误_[原]排错实战——拯救加载调试符号失败的IDA
- 如何开通实时计算 Flink 版?
- 每天一道LeetCode-----为二叉树增加next节点,指向同一层的下一个节点
- ChildWindow在Open时旋转出现
- mysql千万级数据量根据索引优化查询速度
- 3d激光雷达开发(icp匹配)
- 【简报】帮助你免费制作单页面个人网站
- 关闭浏览器后Session失效原因分析
- javascript 闭包理解总结
- VUE3中使用粒子特效
- JavaWeb - 小米商城网 - 项目启动
- python微信机器人之小i
- 量子计算机 叉院,清华团队首次实现量子GAN 准确率98.8%
- 基于Nodejs+vue开发实现高校学院网站系统
- python定义单位矩阵_单位矩阵与正则矩阵NumPy/Python的高效Kronecker积
- hihoCoder - 1633(2017北京icpc现场赛-G题)
- 对于公司裁员和转型的无力吐槽
- python 占位符(百分号方式、Format 方式)
热门文章
- Extjs 4.2 MVC+ThreeJs学习笔记(二)一个简单的ThreeJS场景
- python fork 守护进程
- 封装CopyFileEx函数,实现文件复制中的暂停,控速,获取进度。
- 谈谈新手如何学习PHP^_^【转】
- 创建自定义验证控件(1)
- 向seaborn传递matplotlib绘图参数,精细地控制seaborn输出图形
- python质数n以内_用Python寻找前n个质数
- 基于 abapGit 和 abaplint 的 ABAP 持续集成的一个例子
- SAP Spartacus 的延迟加载 Lazy load 设计原理
- SAP成都研究院小伙伴们开发的一个SAP C4C POC - 通过名片扫描的方式录入联系人数据到系统