1

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

深潜 12

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

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

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

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

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

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

谢谢

4

1 回答 1

1

我还包括最初发布在博文上的答案。以防万一有人只看一下 Stackoverflow。

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

是使用自定义查询选项在自定义处理程序中调用 S/4HANA Cloud SDK 的解决方法。提出一个请求,例如……。BusinessPartner?$top=10&$skip=1&BusinessPartner eq 1&BusinessPartnerCategory < 1

然而,这非常“hacky”,我不能推荐这种方法。

此致,

丹尼尔

于 2018-07-25T11:08:01.557 回答