2020-09-06 05:16发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我已按照以下文档中的步骤开发了基于CDS视图的ODATA服务。
根据参考数据源生成OData服务
现在,我正在尝试按照以下文档中提到的步骤阅读查询选项。
访问查询选项
但是,如上所述,在我的DPC/DPC_EXT类中找不到接口if_sadl_gw_query_control。
我在这里做错什么了吗? 任何建议都将非常有帮助。
谢谢
Ajith
嗨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
嗨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。 终结法。
最多设置5个标签!
嗨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
嗨Ajith和Filip,
我现在正在寻找完全相同的问题。 我有基于"参考数据源"的OData,并且需要在传递给SADL之前将过滤条件中的1个从"等于"更改为"包含模式"。 一位同事通过在* DPC_EXT中"克隆"请求并在传递给SADL之前更改请求数据来提供解决方案。 那很好。 如果SAP的某个人可以确定这是一种安全的方法,那就太好了。 如果没有提供,请提供更多详细信息,如何从前端实现类似的行为(我正在使用Smart Filterbar)
一周热门 更多>