我知道我正在重新打开一个旧的(使用 SAP Cloud SDK 对扩展实体执行过滤器),但那是不久前的事了,它引用了用于使用 S/4 HANA 服务的 API 的 Java 版本。
我正在针对 SuccessFactors OData API 测试 API 的 Javascript 版本,它确实能够对扩展实体执行过滤器,如下所示:
<API_HOST>/odata/v2/PerPerson?$filter=personalInfoNav/firstName eq 'MARCO'&$expand=personalInfoNav&$select=personalInfoNav/firstName, personalInfoNav/lastName&$top=20
翻译成 SDK,它将是(TypeScript):
const personList: Array<PerPerson> =
await PerPerson.requestBuilder().getAll().top(20)
.select(
PerPerson.DATE_OF_BIRTH,
PerPerson.PERSONAL_INFO_NAV.select(
PerPersonal.PERSON_ID_EXTERNAL,
PerPersonal.FIRST_NAME,
PerPersonal.LAST_NAME,
PerPersonal.GENDER
)
).filter(PerPersonal.FIRST_NAME.equals('MARCO'))
.execute({ destinationName: this.configService.get<string>('ACTIVE_DESTINATION') });
但是此代码无法编译,因为过滤器函数的类型不兼容,这里需要“PerPerson”类型而不是“PerPersonal”。我无法找到任何关于此的信息。
考虑到普通的 OData 查询可以完美运行,任何人都能够完成这项工作吗?