Odata过滤器中的转换退出问题

2020-08-20 12:45发布

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

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


专家您好,

我目前在转换退出时遇到Odata过滤器的问题。

我从前端将Assetnumber作为ANLN1传递为'9'。在选择选项过滤器中也获得了相同的值。 当我尝试构建具有相同动态效果的过滤器时,由于ALPHA转换退出,它无法正常工作。 我已经尝试过在MPC_ EXT方法中显式设置它。

lo_property-> bind_data_element(iv_element_name ='Anln1')。

-property-> set_conversion_exit('ALPHA')。

这些都没有为我工作。 还有什么其他方法可以从过滤器接收转换后的值。

谢谢

维杰

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

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


专家您好,

我目前在转换退出时遇到Odata过滤器的问题。

我从前端将Assetnumber作为ANLN1传递为'9'。在选择选项过滤器中也获得了相同的值。 当我尝试构建具有相同动态效果的过滤器时,由于ALPHA转换退出,它无法正常工作。 我已经尝试过在MPC_ EXT方法中显式设置它。

lo_property-> bind_data_element(iv_element_name ='Anln1')。

-property-> set_conversion_exit('ALPHA')。

这些都没有为我工作。 还有什么其他方法可以从过滤器接收转换后的值。

谢谢

维杰

付费偷看设置
发送
8条回答
1楼 · 2020-08-20 13:14.采纳回答
安德烈·费舍尔我尝试创建VBAP实体并进行了测试 work.As 解决方法我重用了以下方法中的逻辑,并读取了实体的属性

/IWBEP/IF_MGW_REQ_FILTER〜CONVERT_SELECT_OPTION,/iwbep/cl_mgw_data_conv_util => convert_prop_inbound_with_ext并编写了自定义方法以进行自动转换,直到现在为止它能正常工作。

感谢,
维杰

樱桃小丸子0093
2楼-- · 2020-08-20 13:05

托马斯·尼采克 :,但这样的要求很常见,因为前端需要包含大量筛选器,这些条件会在不同选择查询的Where条件中使用,例如List报表中字段上的筛选器。我们需要根据 选择选项过滤器。

谢谢,
Vijay

悠然的二货
3楼-- · 2020-08-20 13:30

嗨,Vivay,

看着你的代码片段,我不确定你是否在这里错过了什么。

< p>如本博客所述

https://blogs.sap.com/2016/10/21/conversions-sap-gateway-foundation-part-1/

来自我的同事Thomas Nitschke ,您一定不要忘记设置参数 IV_BIND_CONVERSIONS,该参数已在SAP_GWFND 740 SP13和 更高。

 lo_property-> bind_element(

 iv_element_name ='ANLN1'

 

您还使用了小写的数据元素名称('Anln1')。

不确定是否有区别,但是我在这里使用大写语法,

表示" ANLN1"。

它也可以作为 设置要明确使用的转换

 lo_property-> set_conversion_exit('ALPHA')。

最好的问候,

安德烈

< u>

SAP小黑
4楼-- · 2020-08-20 13:22

您是正确的,在740中,参数

iv_bind_conversions类型abap_bool默认abap_false

尚不存在。 我只是在演示系统中进行了双重检查。

公共实例方法bind_data_element导入iv_element_name类型的字符串引发/iwbep/cx_mgw_med_exception
 文献资料
 将ddic数据元素绑定到属性

如果您使用了包含转换出口的数据元素,则绑定到自定义结构也应该起作用。

所以我不确定会发生什么

我建议您尝试使用DDIC导入

VBAP之类的标准结构的简单示例,看看它是否在那里工作。

我要打开支持通知单。

致谢,
Andre

hengyuye
5楼-- · 2020-08-20 13:06

我认为您已经找到了解决方案。 尽管转换对于键谓词和有效负载或多或少确实是开箱即用的,但是过滤器参数的处理并不是那么容易。 通常,转换出口被设计为处理单个值。 例如,过滤器表达式可能引用1 *这样的模式-现在考虑到1 *在进行ALPHA转换时可能意味着什么:1 *,01 *,001 *等,但是01A在其中不是有效值 那模式吧? 因此,过滤器表达式的转换以某种方式分离。 对于选择选项,系统提供了您已经提到的方法/IWBEP/IF_MGW_REQ_FILTER〜CONVERT_SELECT_OPTION。 对于特殊情况,必须实现自己的逻辑。

追夢秋陽
6楼-- · 2020-08-20 13:14

如何检索过滤器?

通过io_request_context对象,应调用转换出口。

当您通过参数IT_FILTER_SELECT_OPTIONS检索过滤器时,不会调用它们。

 lt_filter_select_options = io_tech_request_context-> get_filter()-> get_filter_select_options()。
能不能别闹
7楼-- · 2020-08-20 13:04
# p# Andre Fischer

感谢您的答复。我目前正在使用io_tech_request_context来获取过滤器的选择选项。 我们当前使用的是SAP_GWFND版本 740。

谢谢,
维杰(Vijay)

一周热门 更多>