使用CAP模型在FE列表报告/对象页面项目中创建/更新新实体时出错

2020-08-17 06:12发布

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

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


这是我使用本地注释通过SAP WebIDE创建的fiori Elements APP

尝试创建新实体(要价)时出现此错误

我通过CAP向myOData服务添加了@ odata.draft.enabled注释,如下所示

请帮助我解决这个问题

谢谢

Mariam

(314.3 kB)

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

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


这是我使用本地注释通过SAP WebIDE创建的fiori Elements APP

尝试创建新实体(要价)时出现此错误

我通过CAP向myOData服务添加了@ odata.draft.enabled注释,如下所示

请帮助我解决这个问题

谢谢

Mariam

(314.3 kB)
付费偷看设置
发送
4条回答
追夢秋陽
1楼 · 2020-08-17 06:51.采纳回答

您好 Mariam ID-Manssour

您的ID字段的类型为Integer。 在这种情况下,CAP服务不会自动计算ID。 您必须在CREATE之前使用srv。在服务器端进行计算,或者应将ID更改为UUID。 请检查:

https://cap.cloud.sap/docs/ guides/domain-models#primary-keys ->自动填充的主键

此外,我看到您的xs-app.json使用以下目标,但您没有 您的mta.yaml上声明的任何内容。 您是通过Cockpit创建的吗?

 ParkingOdataV2-vf 

通常,我们要做的是在应用路由器的require会话中输入此信息。

我没有在您的MTA下定义您的Cap服务,因此我无法帮助您直接修复您的MTA。

这里是一个具有应用路由器和Cap服务的Cap应用程序的有效示例。 通过目的地使用:

 _schema-version:" 3.1"
 ID:cap-auth-xsuaa
 版本:1.0.0
 描述:"一个简单的CAP项目。"
 参数:
   启用并行部署:true
 构建参数:
   之前:
    -建设者:自定义
      命令:
       -npm安装
       -npx cds build \/全部

 模块:
  ############## UI模块########################
  -名称:cap-auth-xsuaa-ui
    类型:nodejs
    路径:应用
    构建参数:
     忽略:[" node_modules/"]
    参数:
      记忆体:256M
      磁盘配额:256M
    要求:
      -名称:cap-auth-xsuaa-uaa
      -名称:srv-binding
        组:目的地
        特性:
          forwardAuthToken:true
          strictSSL:true
          名称:srv-binding
          网址:〜{srv-url}
  #---------------------服务器模块------------------------
  -名称:cap-auth-xsuaa-srv
    类型:nodejs
    路径:gen/srv
    构建参数:
     忽略:[" node_modules/"]
    特性:
      退出:1#由deploy.js任务终止
    参数:
      内存:512M
      磁盘配额:256M
    提供:
     -名称:srv-binding
       特性:
         srv-url:$ {default-url}
    要求:
     -名称:cap-auth-xsuaa-uaa
 资源:
   -名称:cap-auth-xsuaa-uaa
     类型:com.sap.xs.uaa
     参数:
       服务:xsuaa
       路径:xs-security.json
 

最好的问候,
伊万

浮生未央
2楼-- · 2020-08-17 06:51

您好 伊万·米里索拉(Ivan Mirisola)

是的,主键的自动填充有效并且在前端应用程序上创建新实体不再显示错误的错误提示。

谢谢

Mariam

DafaDDDa
3楼-- · 2020-08-17 07:00

嗨, Mariam ID-Manssour

错误 502(错误的网关)通常意味着,虽然预期前端会收到Json响应,但它发现了其他内容-可能是错误,可能是登录页面或404错误。

尝试通过打开OData服务 approuter URL,查看它是否运行并为其中一个实体返回JSON结果。 如果您的应用路由器不允许连接到该服务,请检查您在xs-app.json中声明的目标是否指向mta.yaml中的目标(组:应用路由器要求中的目标)。 如有疑问,请在此处共享这两个文件。

最好的问候,
伊万

SKY徐
4楼-- · 2020-08-17 06:35
您好,伊凡·米里索拉(Ivan Mirisola)

我已经向邮递员签入了对我的Odata服务的邮寄请求,当在请求正文中插入ID时,邮寄请求可以工作,但是当我不这样做时,它将返回错误502(错误网关),如下图所示:

我的CAP模型的定义:

命名空间sap.capire.parkingapp;
 使用来自'@ sap/cds/common'的{managed,cuid};


 实体优惠:托管{
   密钥ID:整数;
   owner:字符串;
   地点:字符串;
   dateStart:日期
   dateEnd:日期;
   描述:字符串;
   status:字符串默认为'available';
 }
 实体订单:托管{
   密钥ID:整数;
   OrderNo:字符串@title:'订单号'; //>可读密钥
   要约:要约协会;
   受益人:字符串;
 } 

mta.yaml:

 ID:mta_ParkingFioriApp
 _schema-version:" 2.1"
 参数:
   deploy_mode:html5-repo
 版本:0.0.1
 模块:
   -名称:mta-parkingfioriapp-approuter
     类型:approuter.nodejs
     路径:mta-parkingfioriapp-approuter
     参数:
       磁盘配额:256M
       记忆体:256M
     要求:
       -名称:mta_ParkingFioriApp_html5_repo_runtime
       -名称:dest_mta_ParkingFioriApp
       -名称:uaa_mta_ParkingFioriApp
   -名称:mta_ParkingFioriApp_ui_deployer
     类型:com.sap.html5.application-content
     路径:mta_ParkingFioriApp_ui_deployer
     要求:
       -名称:mta_ParkingFioriApp_html5_repo_host
     构建参数:
       要求:
         -名称:ParkingFioriApp
           工件:
             -'./*'
           目标路径:资源/ParkingFioriApp
   -名称:ParkingFioriApp
     类型:html5
     路径:ParkingFioriApp
     构建参数:
       制造商:定制
       命令:
         -npm安装
         -npm运行构建
       支持的平台:[]
       构建结果:dist
 资源:
   -名称:mta_ParkingFioriApp_html5_repo_runtime
     参数:
       服务计划:应用程序运行时
       服务:html5-apps-repo
     类型:org.cloudfoundry.managed-service
   -名称:mta_ParkingFioriApp_html5_repo_host
     参数:
       服务计划:应用托管
       服务:html5-apps-repo
     类型:org.cloudfoundry.managed-service
   -名称:uaa_mta_ParkingFioriApp
     参数:
       路径:./xs-security.json
       服务计划:应用
       服务:xsuaa
     类型:org.cloudfoundry.managed-service
   -名称:dest_mta_ParkingFioriApp
     参数:
       服务计划:精简版
       服务:目的地
     类型:org.cloudfoundry.managed-service 

xs-app.json:

 {
   " welcomeFile":"/test/flpSandbox.html",
   " authenticationMethod":"路由",
   "登出": {
     " logoutEndpoint":"/img/do/logout"
   },
   "路线":[
     {
       " source":" ^/ParkingOdataV2-vf/(.*)$",
       " target":" $ 1",
       " authenticationType":"无",
       "目的地":" ParkingOdataV2-vf",
       " csrfProtection":false
     },
     {
       " source":" ^(。*)$",
       " target":" $ 1",
       " service":" html5-apps-repo-rt",
       " authenticationType":" xsuaa"
     }
   ]
 } 

一周热门 更多>