点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
亲爱的,我正在使用Java在SAP Cloud Application Programming Model上实现功能( https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/94c7f17ecc0b4508b3f4c5ed85bd7760.html可以在我们的响应集内显示,) 像下面这样:
"提供用于创建成功或失败的函数调用的响应的方法:
- 在成功调用函数的情况下,可以使用setSuccess方法以下列之一返回数据:
- 包含复杂类型的地图列表
- 包含实体的EntityData列表
- 包含原始类型的对象列表
- 如果函数调用失败,则可以使用setError方法返回ErrorResponse实例,其中包含错误消息和状态代码。"
为简单起见,我在EntityData中创建了两个实例,并将其设置为像下面这样的响应对象:
服务定义:
使用来自'../db/data-model'的br.com.strategiatec; 服务SalesmanService { 实体销售员作为strategiatec.Salesman的预测; 函数findSalesmanByLocation()返回Salesman; }
我的实现:
@Function(名称=" findSalesmanByLocation",serviceName =" SalesmanService") public OperationResponse findSalesmanByLocation(OperationRequest functionRequest,ExtensionHelper extensionHelper){ 尝试{ List结果=新的ArrayList (); Map obj1 = new HashMap (); obj1.put(" ID",12); obj1.put(" name","测试名称1"); obj1.put(" latitude",-19.859451); obj1.put("经度",-43.9456877); Map obj2 = new HashMap (); obj2.put(" ID",35); obj2.put(" name","测试名称2"); obj2.put(" latitude",-19.859451); obj2.put("经度",-43.9456877); List 键=新的ArrayList (); keys.add(" ID"); result.add(EntityData.createFromMap(obj1,keys," Salesman")); result.add(EntityData.createFromMap(obj2,keys," Salesman")); OperationResponse响应= OperationResponse.setSuccess()。setEntityData(result).response(); 返回响应; } catch(Exception e){ 返回OperationResponse .setError(ErrorResponse.getBuilder()。setMessage("函数调用中的错误").response()); } }
致电该服务时,我只会得到第一条记录:
https://xx-xx-srv.cfapps.eu10.hana.ondemand.com/odata/v2/SalesmanService/findSalesmanByLocation
<?xml version ='1.0'encoding ='utf-8'?>https://xx-xx-srv.cfapps.eu10.hana.ondemand.com:443/odata/v2/SalesmanService/Salesman(12) 推销员 2019-01-27T08:23:22.467Z 12 测试名称1 -19.859451 -43.9456877
我尝试使用基本类型而不是实体来进行测试,但它也只返回一个条目。
还有一个遗漏点吗?
最好的问候
亲爱的,我已经打开票证 support.sap.com 和解决方案 只是在服务定义的返回类型之前放置一个"数组",就像这样:
最诚挚的问候
您好,伊凡,谢谢。
您好,伊萨亚斯,
感谢您分享答案。 我试图找出问题所在。
要添加到您的解决方案中,可以使您的代码更加"优雅"的一件事是利用"实体数据"构建器类,如下所示:
您的代码将更易于阅读,并且您获得的关键元素的定义也将不同于每个实体数据的元素。
最好的问候,
Ivan
一周热门 更多>