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

Java 应用程序编程模型$filter操作,java,s4sdk,Java,S4sdk,在实现了DeepDive 12中的所有步骤之后,我一直在尝试使用$filter操作,就像正常的oData服务应该做的那样 ?$filter=BusinessPartnerCategory eq“abc” 但是,它不起作用。它总是返回相同的实体集。 我看过它的javadoc。似乎没有检索筛选器的方法。我看到有getTopOptionValue、getSkipOptionValue、getSelectProperties和getOrderByProperties 获得$fitler操作值的选项有哪

在实现了DeepDive 12中的所有步骤之后,我一直在尝试使用$filter操作,就像正常的oData服务应该做的那样

?$filter=BusinessPartnerCategory eq“abc”

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

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

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

最终业务伙伴名单=
新的DefaultBusinessPartnerService()
.getAllBusinessPartner()
.选择(业务伙伴。业务伙伴,
业务伙伴。姓氏,
业务伙伴。姓名,
业务伙伴是男,
商业伙伴是女性,
业务伙伴。创建日期)
.filter(BusinessPartner.BusinessPartner\u CATEGORY.eq(CATEGORY\u PERSON))
.orderBy(BusinessPartner.LAST_NAME,Order.ASC)
.execute();
构建可能包含多个筛选器的动态筛选器语句需要什么


谢谢

我也在这里附上了最初发布在博客上的答案。以防有人只看一眼Stackoverflow

目前,筛选在SAP云平台SDK中不可用,但在路线图中可用

是一种使用自定义查询选项在自定义处理程序中调用S/4HANA Cloud SDK的变通方法。提出像……这样的请求…。业务伙伴?$top=10和$skip=1以及业务伙伴eq 1和业务伙伴类别<1

然而,这是非常“黑客”,我不能推荐这种方法

致以最良好的祝愿

丹尼尔

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();