点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我已经重构了项目,以使用新的Cloud Platform Application Programming Model。
我的项目结构看起来像这样:
-hdb(数据库模块) -srv(服务模块) -ui(ui模块) -cdsrc.json -package.json -mta.yaml
cdsrc.json:
{ "内部版本":{ " target":"。", "任务": [ {" src":" hdb"," for":" hana"," options":{" model":[" hdb"," srv"]}}}, {" src":" srv"," for":" node-cf"," options":{" model":[" hdb"," srv"]}} ] } }
package.json:
{ " name":" <我的项目名称>", " description":"", " version":" 1.0.0", "引擎": { "节点":" ^ 8.9" }, "文件":[ " hdb", " srv" ], "依赖关系":{ " @ sap/cds":" ^ 3.7.1", " express":" ^ 4.16.4", " hdb":" ^ 0.17.0" }, " devDependencies":{ " sqlite3":" ^ 4.0.8" }, "脚本":{ " start":" cds运行", " build":" cds build/all --clean", " deploy":" cds部署" }, " cds":{ "要求":{ "D b": { " kind":" sqlite", "型号":[ " hdb", " srv" ], "凭据":{ "数据库":" sqlite.db" } } }, "文件夹":{ " db":" hdb", " srv":" srv" } } }
srv/package.json:
{ " name":" srv", "依赖关系":{ " @ sap/cds":" ^ 3.7.1", " @ sap/xssec":" ^ 2.1.12",}, "脚本":{ " start":"节点server.js" }, " cds":{ "要求":{ "D b": { " kind":" hana", " model":" gen/csn.json" } } } }
srv/server.js:
const cds = require(" @ sap/cds"); const express = require(" express"); //其他进口 var app = express(); //其他中间件 cds.connect(); cds.serve(" gen/csn.json",{ crashOnError:错误 }) .in(app) .catch((err)=> { console.log(err); }); app.listen(port,()=> { console.info(`监听端口的应用程序:$ {port}`); });
当我在WebIDE中构建项目时,它会成功构建所有.cds文件,并将这样的输出写入控制台:
>@ 1.0.0 build/hana/shared/HXE/xs/controller_data/executionagent/executionroot/269f9533-c450-4f35-ab0e-b62990473bb5/app/META-INF/.sap_java_buildpack/tomcat/temp/ builder/sap.cds.mta/builds/build-838087488308692914/<我的项目名称> > cds build/all --clean [cds]-cds [3.10.0],编译器[1.13.4],首页[/hana/shared/HXE/xs/controller_data/executionagent/executionroot/269f9533-c450-4f35-ab0e-b62990473bb5/app/META-INF /.sap_java_buildpack/tomcat/temp/builder/sap.cds.mta/builds/build-838087488308692914/ /node_modules/@sap/cds] [cds]-建筑项目[/hana/shared/HXE/xs/controller_data/executionagent/executionroot/269f9533-c450-4f35-ab0e-b62990473bb5/app/META-INF/.sap_java_buildpack/tomcat/temp/builder/sap.cds .mta/builds/build-838087488308692914/ ],干净[true] [cds]-使用[Hana DB Module Builder]构建模块[hdb] [cds]-型号:hdb/ .cds,hdb/ .cds, [cds]-使用[Node CF Module Builder]构建模块[srv] [cds]-模型:模型:hdb/ .cds,hdb/ .cds, 12:03:53 PM(DIBuild) [cds]-完成>将输出写入: hdb/src/gen/.hdinamespace hdb/src/gen/csv/<文件1> _ <实体1> .hdbcds hdb/src/gen/csv/<文件1> _ <实体2> .hdbcds hdb/src/gen/csv/<文件2> _ <实体1> .hdbcds ... srv/gen/csn.json srv/gen/_i18n/i18n.json [cds]-时间:2600.051ms CDS返回码:0
即使" cds build"命令会在" hdb/src/gen"和" srv/gen"文件夹中生成这些文件(我从SSH到安装了SAP Hana的matchine都通过SSH-ing看到了所有文件, 上面的输出:/hana/shared/HXE/xs/controller_data/executionagent/executionroot/269f9533-c450-4f35-ab0e-b62990473bb5/app/META-INF/.sap_java_buildpack/tomcat/temp/builder/sap.cds.mta/builds/build-838087488308692914/
当我构建数据库模块(hdb)时,它将工件正确部署到HDI容器中,并且我可以使用Database Explorer浏览该容器
但是运行" srv"模块会出现此错误:
{错误:在gen/csn.json中找不到CDS模型 在notFound(/hana/shared/HXE/xs/controller_data/executionagent/executionroot/2dff31be-8521-4d87-a173-f71c65f6b69c/app/node_modules/@sap/cds/lib/models/load.js:59:39) 在EventEmitter.load(/hana/shared/HXE/xs/controller_data/executionagent/executionroot/2dff31be-8521-4d87-a173-f71c65f6b69c/app/node_modules/@sap/cds/cds/lib/models/load.js:10:50 ) 在_loadModel(/hana/shared/HXE/xs/controller_data/executionagent/executionroot/2dff31be-8521-4d87-a173-f71c65f6b69c/app/node_modules/@sap/cds/lib/runtime/serve.js:78:35) 在<匿名> 在runMicrotasksCallback(内部/进程/next_tick.js:122:5) 在_combinedTickCallback(内部/进程/next_tick.js:132:7) 在process._tickCallback(内部/进程/next_tick.js:181:9) 在Function.Module.runMain(module.js:696:11) 在启动时(bootstrap_node.js:225:16) 在bootstrap_node.js:646:3代码处:'MODEL_NOT_FOUND',模型:'gen/csn.json'} npm ERR! 代码ELIFECYCLE npm ERR! errno 1 npm ERR! serve @ start:`node server.js` npm ERR! 退出状态1 npm ERR! npm ERR! 在serve @开始脚本处失败。 npm ERR! npm可能不是问题。 上面可能还有其他日志记录输出。 npm ERR! 可以在以下位置找到此运行的完整日志: npm ERR! /hana/shared/HXE/xs/controller_data/executionagent/executionroot/2dff31be-8521-4d87-a173-f71c65f6b69c/app/.npm/_logs/2019-06-17T11_49_21_417_417Z-debug.log
当然," cds build"生成csn.json的路径与serve.js希望加载该模型的路径不同。 但是,不是将所有文件自动复制到" srv"模块执行根目录吗?
我当前的工作流程:
-使用VS Code在本地对CDS文件进行更改
-构建项目,因此它将生成csn.json
-提交更改并推送到Git存储库
-在WebIDE中提取更改
-CDS 构建,以便我可以将更改部署到数据库
-在运行" srv"模块之前,从本地生成的csn.json复制内容,将其粘贴到WebIDE的csn.json中,然后用CDS构建控制台中给定的路径替换路径 输出。
感谢您为解决该问题提供的帮助。
:)
我已通过主package.json中的此hack解决了此问题:
嗨,Ebu,
您找到此问题的解决方案了吗? 我在cds构建/部署中遇到了类似的问题。
什么都没有...:X
我遇到了同样的问题。 希望他们能尽快解决这个问题...
那行得通!
一周热门 更多>