功能实现SAP Cloud Application编程模型

2020-08-18 12:05发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)亲爱的,我正在使用Java在SA...

         点击此处--->   EasySAP.com群内免费提供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 
         
     
  

我尝试使用基本类型而不是实体来进行测试,但它也只返回一个条目。

还有一个遗漏点吗?

最好的问候