UI模块未在SCP MTA应用程序中获取正确的JS服务

2020-08-16 08:32发布

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

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

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


 

HI

我正在使用SAP Cloud Platform Cloud Foundry试用版。 我正在尝试创建一个具有数据库,node.js和ui模块的简单MTA应用程序(名为Test)。 我不想将HANA db连接到我的数据库模块。 我希望CDS Artifacts表中已经存在的数据通过oData服务在node js模块中使用并公开给ui。

我创建了带有CDS工件(名为CDS)和表(名为Parameter)的数据库模块。 我已经通过插入命令在此表中插入了一些记录。 我不想使用Hana db,因此还没有建立Hana db连接和任何其他用户提供的服务。

我创建了一个node.js模块并添加了.xsodata文件,该文件具有以下代码来设置oData服务:

服务名称空间" Test.data.services" {" Test.db :: cds.Parameter"为" Parameters"; }

当我执行节点js模块并通过在节点js网址中添加"/ui.xsodata/Parameters?$format=json"来导航至表时,我可以在浏览器中以JSON格式查看参数表的数据

下一步是创建ui模块。 我们调用Pameters表和代码以表格形式显示数据,如下所示:

 getControllerName:function(){
 返回" ui.ui.controller.DBF";
 },


/**在实例化Controller之后最初被调用一次。 这是构造UI的地方。
 *由于将控制器赋予了此方法,因此可以立即附加其事件处理程序。
 * @memberOf controller.DBF
 */
 createContent:函数(oController){
 var oModel = new sap.ui.model.odata.v2.ODataModel("/img/ui.xsodata/",{json:true});

         oModel.setRefreshAfterChange(true);
        
         var oParamsTable = new sap.m.Table({
             模式:sap.m.ListMode.SingleSelectLeft,
             列: [
                 new sap.m.Column({标头:new sap.m.Label({文本:" Parameter ID"})}),
                 new sap.m.Column({标头:new sap.m.Label({文本:" Parameter Description"})}),
                 new sap.m.Column({标头:new sap.m.Label({文本:" Parameter Value"})})
             ],
             项目:{
                 路径:"/img/Parameters",
                 参数:{
                     选择:" Param_Key,Param_Desc,Param_Type"
                 },
                 模板:新sap.m.ColumnListItem({
                     细胞: [
                         new sap.m.Text({text:" {Param_Key}"}),
                         new sap.m.Text({text:" {Param_Desc}"}),
                         new sap.m.Text({text:" {Param_Type}"})
                     ]
                 })
             }
         });


         oParamsTable.setHeaderText(" Parameter Table");
         oParamsTable.setModel(oModel);
       
 

设置DB,JS和UI模块后,我们的MTA如下所示。

问题在于,当我们执行UI模块时,会执行ui代码,但不会从Parameter表中显示数据。 谁能提供确切的问题所在? 我认为UI模块无法选择正确的js服务。 当我看到开发人员工具并检查日志时,用户界面未指向正确的URL。

模块:
   -名称:db
     类型:hdb
     路径:db
     要求:
       -名称:hdi_db
   -名称:js
     类型:nodejs
     路径:js
     提供:
       -名称:js_api
         特性:
           网址:" $ {default-url}"
     要求:
       -名称:hdi_db
         特性:
           TARGET_CONTAINER:'〜{hdi-container-name}'
       -名称:uaa_DBF_Test
   -名称:ui
     类型:html5
     路径:ui
     参数:
       磁盘配额:256M
       记忆体:256M
     构建参数:
       制造商:咕unt声
     要求:
       -名称:uaa_DBF_Test
       -名称:dest_DBF_Test
       -名称:js_api
         组:目的地
         特性:
           名称:js_be
           网址:"〜{url}"
           forwardAuthToken:true
     特性:
       TENANT_HOST_PATTERN:"'^(。*)-Jeroen-ui.cfapps。(。*)。hana.ondemand.com'"
 资源:
   -名称:hdi_db
     特性:
       hdi-container-name:" $ {服务名称}"
     类型:com.sap.xs.hdi-container
   -名称:uaa_DBF_Test
     参数:
       路径:./xs-security.json
       服务计划:应用
       服务:xsuaa
     类型:org.cloudfoundry.managed-service
   -名称:dest_DBF_Test
     参数:
       服务计划:精简版
       服务:目的地
     类型:org.cloudfoundry.managed-service 
6条回答
何必丶何苦呢
2020-08-16 09:24

嗨耶隆,

我面临着类似的问题,即来自UI5模块的路由没有被重定向到NodeJS模块服务。

除了如何在MTA中设置目标位置外,我还在xs-app.json文件中为UI5模块定义了路由,如下所述:

"路线":[{
 " source":"/node(.*)",
 "目标":" js-api",
 " csrfProtection":是的,
 " authenticationType":" xsuaa"
 }] 

它仍然不起作用。

一周热门 更多>