问题描述
我已经使用CAP NG创建了一个项目,在该项目中,我正在使用VDM从位于https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/的ES5后端中提取BusinessPartners。 我成功导入了EDMX,并且这些类是通过VDM生成的。 但是,如果我尝试从BusinessPartner类中获取方法,则不会显示许多“设置”方法,如您从此图可以看到的:
如果我尝试像这段代码中那样手动创建BusinessPartner实体,则:
@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());
}
它们根本无法检索。我只得到一个空白页: 我的项目在https://github.com/simfer/myspringbootapp,并且在Trial Landscape上使用SAP Business Application Studio。
Simmaco
解决方法
您需要依赖Lombok。 Cloud SDK业务合作伙伴的吸气剂是由Lombok注释@Getter
生成的。添加依赖项as described here。
要使其在您的IDE中可见,您通常需要一个插件,如Alex在其答案中指出的那样。
,不幸的是,Cloud SDK生成器生成的代码依赖于Lombok注释及其处理。在我们放松依赖关系之前,您将需要在您的VS Code实例中添加“ Lombok”:
-
在左侧面板中,单击
Open VSX Registry
,搜索“ lombok”,然后单击“安装”。 -
将在右下角弹出一个对话框,确认重新启动应用程序。初始化后,应该会出现缺少的方法。