我正在尝试创建一个业务合作伙伴,包括一个客户、一个客户销售区和一个拥有sales的客户公司。
下面是我创建业务伙伴vdm的方式:
final CustomerSalesArea customerSalesArea = CustomerSalesArea.builder()
.salesOrganization("YOD1")
.distributionChannel("Y2")
.division("Z1")
.currency("EUR")
.customerAccountAssignmentGroup("01")
.customerPaymentTerms("0001")
.customerPricingProcedure("Y1")
.incotermsClassification("FH")
.itemOrderProbabilityInPercent("100")
.orderCombinationIsAllowed(true)
.customerAccountGroup("CUST")
.build();
final CustomerCompany company = CustomerCompany.builder()
.companyCode("YOD1")
.reconciliationAccount("0012100000")
.customerAccountGroup("CUST")
.build();
final Customer customer = Customer.builder()
.customerSalesArea(customerSalesArea)
.customerCompany(company)
.build();
final BusinessPartner businessPartner = BusinessPartner.builder()
.firstName(oxidBusinessPartner.getFirstName())
.middleName(oxidBusinessPartner.getMiddleName())
.lastName(oxidBusinessPartner.getLastName())
.businessPartnerCategory("1")
.correspondenceLanguage("DE")
.businessPartnerIDByExtSystem(oxidBusinessPartner.getCustomerId())
.customer(customer)
.build();
final BusinessPartnerRole businessPartnerRole1 = BusinessPartnerRole.builder()
.businessPartnerRole("FLCU00")
.build();
final BusinessPartnerRole businessPartnerRole2 = BusinessPartnerRole.builder()
.businessPartnerRole("FLCU01")
.build();
businessPartner.addBusinessPartnerRole(businessPartnerRole1);
businessPartner.addBusinessPartnerRole(businessPartnerRole2);
final AddressEmailAddress emailAddress = AddressEmailAddress.builder()
.emailAddress(oxidBusinessPartner.getEmail())
.build();
for (PostalAddress address : oxidBusinessPartner.getPostalAddresses()) {
final BusinessPartnerAddress businessPartnerAddress = BusinessPartnerAddress.builder()
.country(address.getCountry())
.cityName(address.getCity())
.postalCode(address.getZipCode())
.county(address.getRegion())
.emailAddress(emailAddress)
.build();
businessPartner.addBusinessPartnerAddress(businessPartnerAddress);
}现在,我能够成功地用DefaultBusinessPartnerService创建这个业务伙伴。但是,由于没有创建Customer,实际的深度插入似乎无法正常工作。
我可以通过使用to_Customer展开查询to_Customer API来确认这一点,后者返回null。然而,BusinessPartnerRole上的深度插入却如预期的那样工作。
我在这里错过了什么?是否存在某种依赖,比如我首先需要创建一个BusinessPartner,然后创建一个Customer (我绝不是S4/HANA方面的专家)?但是,SAP没有提供创建Customer的方法,api.sap.com也没有。
发布于 2019-09-08 15:46:02
如果我让客户“空”,那么如果我只做Customer customer = Customer.builder().build();并将它附加到业务伙伴,客户实体就会被创建。然后,我使用OData服务器、/A_CustomerCompany和/A_CustomerSalesArea分别创建这些实体,一切都按预期工作。
https://stackoverflow.com/questions/57759156
复制相似问题