应用程序编程模型$ filter操作

时间:2018-07-23 23:30:20

标签: java s4sdk

在完成了深潜12的所有步骤之后,我一直在尝试像正常的oData服务一样使用$ filter操作。

Deep Dive 12

https://baseurl/odata/v2/CrudService/BusinessPartner?$ filter = BusinessPartnerCategory eq'abc'。

但是,它不起作用。它总是返回相同的实体集。 我看过它的javadoc。似乎没有检索过滤器的方法。我看到有getTopOptionValue,getSkipOptionValue,getSelectProperties和getOrderByProperties。

获取$ fitler操作值的选项有哪些?

另一件事是深度学习4。我看到过滤器是硬编码的。

Deep dive 4

final List<BusinessPartner> businessPartners =
                    new DefaultBusinessPartnerService()
                            .getAllBusinessPartner()
                            .select(BusinessPartner.BUSINESS_PARTNER,
                                    BusinessPartner.LAST_NAME,
                                    BusinessPartner.FIRST_NAME,
                                    BusinessPartner.IS_MALE,
                                    BusinessPartner.IS_FEMALE,
                                    BusinessPartner.CREATION_DATE)
                            .filter(BusinessPartner.BUSINESS_PARTNER_CATEGORY.eq(CATEGORY_PERSON))
                            .orderBy(BusinessPartner.LAST_NAME, Order.ASC)
                            .execute();

我需要构建一个可能包含多个过滤器的动态过滤器语句吗?

谢谢

1 个答案:

答案 0 :(得分:1)

我还包括最初在博客文章中发布的答案。万一有人只看一下Stackoverflow。

当前过滤在SAP Cloud Platform SDK中不可用,但在路线图上。

Here是使用自定义查询选项在自定义处理程序中调用S / 4HANA Cloud SDK的一种解决方法。发出类似...的请求。 BusinessPartner?$ top = 10&$ skip = 1&BusinessPartner eq 1&BusinessPartnerCategory <1

但是,这非常“棘手”,我不推荐这种方法。

最好的问候,

丹尼尔