在SAPUI5中使用XSODATA(Web IDE完整堆栈)

2020-09-09 16:20发布

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

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


大家好,

在SAP WEB IDE完整堆栈(定向到Cloud Foundry空间的SAP Cloud Platform Neo)中,我想在SAPUI5模块中使用XSODATA服务。 不幸的是,我不知道我需要在SAPUI5模块中执行哪些步骤才能访问该OData服务。

我所做的是:

  1. 通过模板"多目标应用程序"创建了一个项目
  2. 用一个表(.hdbcds)创建一个数据库模块
  3. 插入一些数据(数据库浏览器)
  4. 使用"启用XSJS支持"创建NodeJS模块
  5. 创建了OData服务(.xsodata)
    ->可以正常工作,并使用浏览器对其进行测试可以显示表数据和元数据
  6. 创建了HTML5模块
  7. 在manifest.json中,我添加了数据源...
"数据源":{
    " mytable":{
       " uri":"/myservice.xsodata/",
       " type":" OData",
       "设置":{
          " odataVersion":" 2.0"
       }
    }
 },
 

…。和模型…..

模型":{
    "":{
 " type":" sap.ui.model.odata.v2.ODataModel",
 " dataSource":" myservice",
 " preload":是的,
 "设置":{
 " json":是的,
 " defaultBindingMode":" TwoWay"
 }
 }
 },

8.在浏览器中运行生成的index.html,我可以在开发工具的"网络"选项卡上看到加载元数据的操作失败(HTTP代码404-找不到)。

我的配置是否正确?

是否缺少其他配置?也许在应用路由器(xs.app.json)或其他地方?

我想直接在HTML5模块中引用Odata服务,而不必在Neo中创建目标。 这可能吗?还是我总是需要定义一个目的地?

亲切问候
马克·安德烈·克拉克

PS:我已经在GitHub中创建了一个示例-> https://github.com/mark -andre/XSODataExample

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

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


大家好,

在SAP WEB IDE完整堆栈(定向到Cloud Foundry空间的SAP Cloud Platform Neo)中,我想在SAPUI5模块中使用XSODATA服务。 不幸的是,我不知道我需要在SAPUI5模块中执行哪些步骤才能访问该OData服务。

我所做的是:

  1. 通过模板"多目标应用程序"创建了一个项目
  2. 用一个表(.hdbcds)创建一个数据库模块
  3. 插入一些数据(数据库浏览器)
  4. 使用"启用XSJS支持"创建NodeJS模块
  5. 创建了OData服务(.xsodata)
    ->可以正常工作,并使用浏览器对其进行测试可以显示表数据和元数据
  6. 创建了HTML5模块
  7. 在manifest.json中,我添加了数据源...
"数据源":{
    " mytable":{
       " uri":"/myservice.xsodata/",
       " type":" OData",
       "设置":{
          " odataVersion":" 2.0"
       }
    }
 },
 

…。和模型…..

模型":{
    "":{
 " type":" sap.ui.model.odata.v2.ODataModel",
 " dataSource":" myservice",
 " preload":是的,
 "设置":{
 " json":是的,
 " defaultBindingMode":" TwoWay"
 }
 }
 },

8.在浏览器中运行生成的index.html,我可以在开发工具的"网络"选项卡上看到加载元数据的操作失败(HTTP代码404-找不到)。

我的配置是否正确?

是否缺少其他配置?也许在应用路由器(xs.app.json)或其他地方?

我想直接在HTML5模块中引用Odata服务,而不必在Neo中创建目标。 这可能吗?还是我总是需要定义一个目的地?

亲切问候
马克·安德烈·克拉克

PS:我已经在GitHub中创建了一个示例-> https://github.com/mark -andre/XSODataExample

付费偷看设置
发送
3条回答
DafaDDDa
1楼-- · 2020-09-09 16:36

马克,

我要说的问题是,您已经将" myservice"配置为数据源,而数据源的名称似乎是" mytable"。

您能检查一下吗?

" dataSources":{" mytable":{
" dataSource":" myservice",

我必须承认我不认为这是造成您问题的主要原因。

问题:"我想直接在我的HTML5模块中引用Odata服务"

如果要从manifest.json加载模型,而不是在控制器/组件中调用端点,则必须这样做:

 this.oModel = this.getOwnerComponent()。getModel(" myservice");  

不幸的是,我不知道您说" Neo"是什么意思。 对于其余问题,我得出的结论是,这可能是一个有用的答案。


亲切的问候

马克

SC_Yao
2楼-- · 2020-09-09 16:55

嗨马克,

感谢您的答复。 上面的代码是从旧版本复制而来的。 对困惑感到抱歉。 在我当前的版本(->参见GitHub链接)中,数据源在manifest.json的数据源声明和模型声明中被命名为" myservice"。

不幸的是,这不是问题的原因。

Neo是指SAP Cloud Platform中的Neo环境。 我知道可以在其中创建一个目标并在我的MTA项目中引用该目标。 有了它,它就可以了,但是似乎方法是错误的,因为已经在同一个MTA项目中直接创建了服务。

亲切的问候
MarkAndré

一只江湖小虾
3楼-- · 2020-09-09 16:51

我刚刚注意到的另一件事。 当我尝试创建另一个HTML5模块时,向导中的OData服务已经不可用。

它应该出现在"当前项目"中。

一周热门 更多>