I've created a project with CAP NG where I'm using the VDM to extract BusinessPartners from the ES5 backend located here https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/.
I imported the EDMX successfully and also the classes are generated with VDM.
However if I try to get the methods from BusinessPartner class, many "set" methods are not exposed, as you can see from this picture:
If I try to manually create the BusinessPartner entities like in this piece of code:
@On(event = CdsService.EVENT_READ, entity = "CatalogService.BusinessPartner")
public void getBusinessPartners(CdsReadEventContext context) {
log.info("Entering " + getClass().getSimpleName() + ":getBusinessPartners");
System.out.println("Entering " + getClass().getSimpleName() + ":getBusinessPartners");
// Get name of destination for ECC
final String DESTINATION_HEADER_KEY = "es5";
final Map<Object, Map<String, Object>> result = new HashMap<>();
try {
HttpDestination dest = DestinationAccessor.getDestination(DESTINATION_HEADER_KEY).asHttp();
final List<BusinessPartner> businessPartners = new DefaultGWSAMPLEBASICService().getAllBusinessPartner()
.top(5).executeRequest(dest);
final List<cds.gen.catalogservice.BusinessPartner> capBusinessPartners = new ArrayList<>();
int i = 0;
for (final BusinessPartner bp : businessPartners) {
final cds.gen.catalogservice.BusinessPartner capBusinessPartner = com.sap.cds.Struct
.create(cds.gen.catalogservice.BusinessPartner.class);
i = i + 1;
capBusinessPartner.setBusinessPartnerID("010000000" + i);
capBusinessPartner.setCompanyName("SAP");
capBusinessPartner.setEmailAddress("info@acme.com");
capBusinessPartner.setPhoneNumber("474848848");
// capBusinessPartner.setBusinessPartnerID(bp.);
// capBusinessPartner.setFirstName(s4BusinessPartner.getFirstName());
// capBusinessPartner.setSurname(s4BusinessPartner.getLastName());
// capBusinessPartner.setId(s4BusinessPartner.getBusinessPartner());
// capBusinessPartner.setSourceDestination(destinationName);
capBusinessPartners.add(capBusinessPartner);
}
capBusinessPartners.forEach(capBusinessPartner -> {
result.put(capBusinessPartner.getBusinessPartnerID(), capBusinessPartner);
});
} catch (Exception e) {
log.info(e.getMessage());
System.out.println(e.getMessage());
}
context.setResult(result.values());
}
they are simply not retrieve. I just get a blank page:
My project is here https://github.com/simfer/myspringbootapp and I'm using SAP Business Application Studio on Trial Landscape.
Simmaco