无法使用S/4 Hana Cloud SDK在本地执行CRUD操作

2020-09-05 09:06发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

当前,我们正在使用白名单列出的API(API_PRODUCT_SRV)在内部进行CRUD操作。

  • 我们成功地进行了读取操作。 但是在执行更新操作时,service.updateProduct(toUpdate).execute()方法将返回空对象。
  • 在toupdate中,我们能够获取更新的数据。在邮递员中执行更新数据时,我们将获得204状态,没有任何内容。
  • 我们还在Neo和Cloud的原始环境中进行了尝试。我们无法执行更新。 任何建议/博客/信息深表感谢。
  • 以下是使用cloud sdk类和方法进行更新操作的示例代码。

@Override受保护的Integer run()引发异常

{

最终ODataUpdateResult oDataUpdateResult = service.updateProduct(toUpdate).execute();

返回oDataUpdateResult.getHttpStatusCode());

}

感谢和问候,

Meenakshi A N

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

当前,我们正在使用白名单列出的API(API_PRODUCT_SRV)在内部进行CRUD操作。

  • 我们成功地进行了读取操作。 但是在执行更新操作时,service.updateProduct(toUpdate).execute()方法将返回空对象。
  • 在toupdate中,我们能够获取更新的数据。在邮递员中执行更新数据时,我们将获得204状态,没有任何内容。
  • 我们还在Neo和Cloud的原始环境中进行了尝试。我们无法执行更新。 任何建议/博客/信息深表感谢。
  • 以下是使用cloud sdk类和方法进行更新操作的示例代码。

@Override受保护的Integer run()引发异常

{

最终ODataUpdateResult oDataUpdateResult = service.updateProduct(toUpdate).execute();

返回oDataUpdateResult.getHttpStatusCode());

}

感谢和问候,

Meenakshi A N

付费偷看设置
发送
9条回答
吹牛啤
1楼-- · 2020-09-05 09:59

附带说明:您是否考虑过使用用于OData的虚拟数据模型? 是否有任何特定原因不使用您的情况?

除此之外:

-您是否在SAP Cloud Connector中看到任何日志条目?

-您是否在事务/n/iwfnd/error_log中看到任何条目?

何必丶何苦呢
2楼-- · 2020-09-05 10:01

您好,Dennis/Marco,

我正在使用的s/4 hana cloud sdk版本中的更正。我没有包括对s/4 hana cloud sdk的任何依赖关系。这是我的pom.xml文件。

 <?xml version =" 1.0" encoding =" UTF-8" standalone =" yes"?>
 
    4.0.0 
   <父母>
      com.sap.cloud.servicesdk.prov 
      projects-parent-odatav2 
      1.17.1 
   
    SideBySide_ProductMaster-srv 
   树液
    1.0-SNAPSHOT 
   战争
    SideBySide_ProductMaster-srv 
   <属性>
      my.company 
   
   <依赖项>
   <!-https://mvnrepository.com/artifact/org.modelmapper/modelmapper->
 <依赖性>
     org.modelmapper 
     modelmapper 
     2.1.1 
 
   
   <内部版本>
      $ {project.artifactId}-$ {project.version} 
     <资源>
       <资源>
          src/main/resources 
       
     
     <插件>
       <插件>
          org.codehaus.mojo 
          exec-maven-plugin 
          1.6.0 
         <配置>
            npm 
            $ {project.basedir}/../
         
         <执行>
           <执行>
              npm install 
             <目标>
                exec 
             
             生成源
             <配置>
               <参数>
                 安装
               
             
           
           <执行>
              npm运行构建
             <目标>
                exec 
             
             生成源
             <配置>
               <参数>
                 运行
                 构建
               
             
           
         
       
     
   
   <个人资料>
     <个人资料>
       <激活>
         <属性>
            devmode 
            true 
         
       
       <内部版本>
         <插件>
           <插件>
              maven-war-plugin 
              3.0.0 
             <配置>
               
                 <资源>
                    $ {project.build.sourceDirectory} 
                   
                 
               
             
           
         
       
     
   
  
黑丝骑士
3楼-- · 2020-09-05 10:02

嗨,达姆斯,

是的。我只考虑了OData的虚拟数据模型。 在这里,请附上整个日志文件供您仔细阅读。

" msg":"更新实体中的异常"," stacktrace":[" com.sap.cloud.sdk.service.prov.api.exception.ServiceSDKException:尝试调用方法java.lang.Integer时。 从my.company.UpdateProductCommand.execute()"," \ tat com.sap.cloud.sdk.service.prov.api.util.ProcessorHelper.invokeOperation(ProcessorHelper.java:122)返回的空对象的intValue()  ," \ tat com.sap.cloud.sdk.service.prov.v2.data.provider.CXSDataProvider.updateEntity(CXSDataProvider.java:481)"," \ tat com.sap.cloud.sdk.service.prov.v2  .rt.data.provider.HybridDataProvider.updateEntity(HybridDataProvider.java:284)" 

log.txt

感谢和问候,

Meenakshi

粗暴的香蕉
4楼-- · 2020-09-05 10:06
  • 不,我找不到此行。我没有使用此依赖关系。但是我可以在Java代码中使用com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.productmaster。*,而不会出现任何错误。
包装my.company;
 导入com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.productmaster。*;
 导入com.sap.cloud.sdk.s4hana.datamodel.odata.services.DefaultProductMasterService;
 导入com.sap.cloud.sdk.service.prov.api.operations.Read;
 导入com.sap.cloud.sdk.service.prov.api.operations.Create;
//导入com.sap.cloud.sdk.service.prov.api.operations.Delete;
 导入com.sap.cloud.sdk.service.prov.api.operations.Query;
 导入com.sap.cloud.sdk.service.prov.api.operations.Update;
 导入com.sap.cloud.sdk.service.prov.api.response.QueryResponse;
 导入com.sap.cloud.sdk.service.prov.api.response.ReadResponse;
 导入com.sap.cloud.sdk.service.prov.api.response.CreateResponse;
//导入com.sap.cloud.sdk.service.prov.api.response.DeleteResponse;
 导入com.sap.cloud.sdk.service.prov.api.response.UpdateResponse;
//导入com.sap.cloud.sdk.service.prov.api.response.DeleteResponse;
 导入com.sap.cloud.sdk.service.prov.api.request。*;
 导入com.sap.cloud.sdk.odatav2.connectivity.ODataException;
 导入java.util。*;
 导入org.modelmapper.ModelMapper;
 公共类服务{
 @Query(serviceName =" ProductService",实体=" Products")
 公共QueryResponse queryPersons(QueryRequest req)引发ODataException {
 System.out.println(" Inside @query");
 List 结果=新的GetAllProductsCommand(新的DefaultProductMasterService())。execute();
//System.out.println(result);
 返回QueryResponse.setSuccess()。setData(result).response();
 }
 @Read(serviceName =" ProductService",实体=" Products")
 公共ReadResponse readPerson(ReadRequest req)引发ODataException {
 字符串键= String.valueOf(req.getKeys()。get(" Product"));
 产品结果= new GetProductByKeyCommand(new DefaultProductMasterService(),key).execute();
 返回ReadResponse.setSuccess()。setData(result).response();
 }
 @Update(serviceName =" ProductService",实体=" Products")
 公共UpdateResponse updatePerson(UpdateRequest req)引发ODataException {
 产品toUpdate = new ModelMapper()。map(req.getMapData(),Product.class);
 System.out.println(req.getMapData());
 System.out.println(toUpdate);
 字符串键= String.valueOf(req.getKeys()。get(" Product"));
 toUpdate.setProduct(key);
 System.out.println(toUpdate);
 int s = new UpdateProductCommand(new DefaultProductMasterService(),toUpdate).execute();
 System.out.println(s);
 返回UpdateResponse.setSuccess()。response();
 }
 } 

嗨,

您使用的是哪个版本的SAP S/4HANA Cloud SDK?

最诚挚的问候,

Dennis

SAP浪
6楼-- · 2020-09-05 09:46

正如Dennis所指出的,请告诉我们您正在使用哪个版本的S/4HANA Cloud SDK。 我怀疑您使用的不是最新版本。

一周热门 更多>