1 回答

TA貢獻1790條經驗 獲得超9個贊
因為我的建議對你有用。讓我將評論改寫為答案。
不幸的是,無法過濾SAP OData V2 服務端點的擴展實體?;赝瞬呗允侵苯硬樵儗嶓w集合 ( leaf ) 中的“已過濾”項目并運行額外的 OData 請求以遍歷到您的原始實體 ( root )。
在您的情況下,我建議直接查詢, 以通過AddressIdAddressEmailAddress解析BusinessPartnerAddress。下一步是通過businessPartner字段來解析,例如BusinessPartner
public List<BusinessPartner> getBusinessPartnersByEmail(
@Nonnull BusinessPartnerService service,
@Nonnull String email
)
throws ODataException
{
List<AddressEmailAddress> emailAddresses = service
.getAllAddressEmailAddress()
.filter(AddressEmailAddress.SEARCH_EMAIL_ADDRESS.eq(email))
.execute();
List<BusinessPartnerAddress> addresses = new LinkedList<>();
for( AddressEmailAddress emailAddress : emailAddresses ) {
addresses.addAll(
service
.getAllBusinessPartnerAddress()
.filter(BusinessPartnerAddress.ADDRESS_ID.eq(emailAddress.getAddressID()))
.execute());
}
List<BusinessPartner> businessPartners = new LinkedList<>();
for( BusinessPartnerAddress address : addresses ) {
businessPartners.add(service.getBusinessPartnerByKey(address.getBusinessPartner()).execute());
}
return businessPartners;
}
添加回答
舉報