在我的DPC/DPC_EXT类中找不到if_sadl_gw_query_control〜set_query_options

2020-09-06 05:16发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我已按照以下文档中的步骤开发了基于CDS视图的ODATA服务。

根据参考数据源生成OData服务

现在,我正在尝试按照以下文档中提到的步骤阅读查询选项。

访问查询选项

但是,如上所述,在我的DPC/DPC_EXT类中找不到接口if_sadl_gw_query_control。

我在这里做错什么了吗? 任何建议都将非常有帮助。

谢谢

Ajith

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我已按照以下文档中的步骤开发了基于CDS视图的ODATA服务。

根据参考数据源生成OData服务

现在,我正在尝试按照以下文档中提到的步骤阅读查询选项。

访问查询选项

但是,如上所述,在我的DPC/DPC_EXT类中找不到接口if_sadl_gw_query_control。

我在这里做错什么了吗? 任何建议都将非常有帮助。

谢谢

Ajith

付费偷看设置
发送
2条回答
Nan4612
1楼-- · 2020-09-06 06:17

嗨Ajith,

如果创建或生成Odata服务作为参考数据源,则在DPC/DPC_EXT类中找不到if_sadl_gw_query_control〜set_query_options。 有一些方法可以处理OData中的查询,但是强烈建议不要这样做。

参考数据源的最佳做法:

1)修改CDS视图并在CDS中做所有事情

2)修改Fiori App,将参数传递给CDS视图(在这种情况下,无需在OData中进行修改,OData类将采用该参数并将其自动传递给CDS)

此致

Filip

SC_Yao
2楼-- · 2020-09-06 06:04

嗨Ajith和Filip,

我现在正在寻找完全相同的问题。 我有基于"参考数据源"的OData,并且需要在传递给SADL之前将过滤条件中的1个从"等于"更改为"包含模式"。 一位同事通过在* DPC_EXT中"克隆"请求并在传递给SADL之前更改请求数据来提供解决方案。 那很好。 如果SAP的某个人可以确定这是一种安全的方法,那就太好了。 如果没有提供,请提供更多详细信息,如何从前端实现类似的行为(我正在使用Smart Filterbar)

 METHOD zcfi_vendor_comp_get_entityset。


     数据:lo_tech_request_clone类型参考/iwbep/cl_mgw_request,
           lt_headers TYPE tihttpnvp,
           lr_request类型参考/iwbep/if_mgw_core_srv_runtime => ty_s_mgw_request_context。


     "由于我们需要调整请求,因此我们将创建一个"克隆"请求,并调整必要的内容
     "然后将其传递给SADL框架
     DATA(ls_request)= CAST/iwbep/cl_mgw_request(io_tech_request_context)-> get_request_details()。


     "对于付款方式,"选择标准"需要从"相等"调整为"包含"
     "意味着如果前端发送" eq A",我们需要更改为" cp * A *"
     将ls_request-technical_request-filter_select_options [property ='PAYMENT_METHODS']分配到FIELD-SYMBOL()。
     如果sy-subrc EQ 0。
       循环AT  -select_options ASSIGNING FIELD-SYMBOL()
           符号=" I"且选项=" EQ"。
          -option ='CP'。
          -low ='*'&&  -low &&'*'。
       结局。
     万一。


     获取ls_request的引用到lr_request中。
     DATA(lo_model_fw)= CAST/iwbep/if_mgw_odata_fw_model(CAST/iwbep/cl_mgw_dp_facade(me->/iwbep/if_mgw_conv_srv_runtime〜get_dp_facade()
                                                          )->/iwbep/if_mgw_dp_int_facade〜get_model())。


     lo_tech_request_clone =新#(ir_request_details = lr_request it_headers = lt_headers io_model = lo_model_fw)。


     "致电超级-让SADL进行选择
     呼叫方法super-> zcfi_vendor_comp_get_entityset
       出口
         iv_entity_name = iv_entity_name
         iv_entity_set_name = iv_entity_set_name
         iv_source_name = iv_source_name
         it_filter_select_options = it_filter_select_options
         is_paging = is_paging
         it_key_tab = it_key_tab
         it_navigation_path = it_navigation_path
         it_order = it_order
         iv_filter_string = iv_filter_string
         iv_search_string = iv_search_string
         io_tech_request_context = lo_tech_request_clone
       输入
         et_entityset = et_entityset
         es_response_context = es_response_context。


   终结法。
 

一周热门 更多>