在"文本"类型的"用户"字段上的B1 hana服务层odata查询过滤器

2020-09-08 10:44发布

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

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


嗨,

我们已向OITM添加了一个"文本"类型的用户字段(即非字母数字)。 我们需要在odata查询中使用此字段。 我们必须使用文本,因为数据通常长于256。

在hana studio中,我们可以执行以下操作,并通过按以下方式投射"文本"字段来获得正确的结果。

从OITM
中选择" ItemCode",其中cast(" U_JC1BOM"为nvarchar(4000))='; ItemId:Z300; Quantity:1; ItemId:Z405; Quantity:1; ItemId:Z506T; 数量:1;项目编号:Z7MFX12;数量:1'

如果没有" cast",则由于类型冲突而失败。


我们需要一种获取结果的方法,调用服务层。 我们尝试了以下方法,但都失败了。

1。 失败

https://hanab1vm2:50000/b1s/v1/Items()?$ select = ItemCode,U_JC1BOM&$ filter = U_JC1BOM eq'ItemId:Z300; Quantity:1; ItemId:Z405; Quantity:1; ItemId:Z506T ;数量:1;项目编号:Z7MFX12;数量:1'

2。 失败

https://hanab1vm2:50000/b1s/v1/Items()?$ select = ItemCode,U_JC1BOM&$ filter = cast(U_JC1BOM,Edm.String)eq'ItemId:Z300; Quantity:1; ItemId:Z405; 数量:1;项目编号:Z506T;数量:1;项目编号:Z7MFX12;数量:1'

3。 失败

https://hanab1vm2:50000/b1s/v1/Items()?$ select = ItemCode,U_JC1BOM&$ filter = cast(U_JC1BOM,nvarchar(4000))eq'ItemId:Z300; Quantity:1; ItemId:Z405 ; Quantity:1; ItemId:Z506T; Quantity:1; ItemId:Z7MFX12; Quantity:1'

问题是我们如何对"文本"类型的用户字段进行数据过滤?

感谢您的帮助。

梅尔


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

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


嗨,

我们已向OITM添加了一个"文本"类型的用户字段(即非字母数字)。 我们需要在odata查询中使用此字段。 我们必须使用文本,因为数据通常长于256。

在hana studio中,我们可以执行以下操作,并通过按以下方式投射"文本"字段来获得正确的结果。

从OITM
中选择" ItemCode",其中cast(" U_JC1BOM"为nvarchar(4000))='; ItemId:Z300; Quantity:1; ItemId:Z405; Quantity:1; ItemId:Z506T; 数量:1;项目编号:Z7MFX12;数量:1'

如果没有" cast",则由于类型冲突而失败。


我们需要一种获取结果的方法,调用服务层。 我们尝试了以下方法,但都失败了。

1。 失败

https://hanab1vm2:50000/b1s/v1/Items()?$ select = ItemCode,U_JC1BOM&$ filter = U_JC1BOM eq'ItemId:Z300; Quantity:1; ItemId:Z405; Quantity:1; ItemId:Z506T ;数量:1;项目编号:Z7MFX12;数量:1'

2。 失败

https://hanab1vm2:50000/b1s/v1/Items()?$ select = ItemCode,U_JC1BOM&$ filter = cast(U_JC1BOM,Edm.String)eq'ItemId:Z300; Quantity:1; ItemId:Z405; 数量:1;项目编号:Z506T;数量:1;项目编号:Z7MFX12;数量:1'

3。 失败

https://hanab1vm2:50000/b1s/v1/Items()?$ select = ItemCode,U_JC1BOM&$ filter = cast(U_JC1BOM,nvarchar(4000))eq'ItemId:Z300; Quantity:1; ItemId:Z405 ; Quantity:1; ItemId:Z506T; Quantity:1; ItemId:Z7MFX12; Quantity:1'

问题是我们如何对"文本"类型的用户字段进行数据过滤?

感谢您的帮助。

梅尔


付费偷看设置
发送
1条回答
95年老男孩
1楼 · 2020-09-08 11:34.采纳回答

嗯,我终于自己弄清楚了答案。 我只需要在$ filter/

中使用" startswith"

以下是任何人需要的示例:

https://hanab1vm2:50000/b1s/v1/Items()?$ select = ItemCode&$ filter = startswith(U_JC1BOM,'ItemId:Z300; Quantity:1; ItemId:Z405; Quantity:1; ItemId:Z506T ; Quantity:1; ItemId:Z7MFX12; Quantity:1')

一周热门 更多>