打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SAP Fiori Elements 应用 OData 元数据请求 url 里的模型名称决定逻辑
userphoto

2023.07.23 四川

关注

问题

我用 yarn start 本地启动一个 SAP Fiori Elements 应用,在 Chrome 开发者工具 network 面板,观察到一个 OData metadata 请求的 url 如下:

http://localhost:8080/sap/opu/odata/sap/SEPMRA_PROD_MAN/$metadata?sap-value-list=none&sap-language=EN

这个 OData 服务名称 SEPMRA_PROD_MAN,运行时是如何决定出来的?

查看 Component.js 文件里的函数 Component._createManifestModels

我们查看变量 mModels, 发现有三个字段:

其中 ""字段的值,来自 manifest.json 文件的 models 区域的同名字段:

dataSource 的值指向 mainService,后者的 uri 字段就是 Fiori Elements 应用运行时,发起 OData 元数据请求的 url:

在 SAP UI5 应用中,manifest.json文件是一个重要的配置文件。它充当了应用的描述符,定义了应用的元数据、模型、服务、i18n(国际化)等等。我们可以将其看作是一个集中的配置中心,其中所有的配置都在一个地方,使得代码更容易维护,也更容易理解。

manifest.json文件中,dataSources部分是非常重要的一部分,它定义了应用如何连接到后端服务。这个区域可以声明一个或者多个数据源,每一个数据源对应一个后端服务。这些服务可以是 OData 服务,也可以是其他类型的服务。

当我们在manifest.json文件中定义了数据源后,我们可以在应用的其他部分通过这个数据源的名称来引用这个服务,而不需要记住具体的 URL。这样做的好处是,如果服务的 URL 发生变化,我们只需要在一个地方更新它,而不需要搜索整个代码库来找到所有使用这个服务的地方。

下面是一个manifest.json文件中dataSources区域的例子:

{
    "sap.app": {
        "dataSources": {
            "mainService": {
                "uri": "/sap/opu/odata/sap/ZMAIN_SRV/",
                "type": "OData",
                "settings": {
                    "odataVersion": "2.0"
                }
            },
            "secondService": {
                "uri": "/sap/opu/odata/sap/ZSECOND_SRV/",
                "type": "OData",
                "settings": {
                    "odataVersion": "2.0"
                }
            }
        }
    }}

在上面的例子中,我们定义了两个数据源,它们的名字分别是mainServicesecondService。每个数据源都有一个uri属性,这个属性定义了服务的 URL。type属性定义了服务的类型,这里我们使用的是 OData 服务。settings对象包含了服务的其他配置,比如 OData 的版本。

定义了数据源之后,我们就可以在应用的其他部分使用这个数据源了。例如,我们可以在models区域定义一个模型,并且将这个模型关联到一个数据源:

{
    "sap.ui5": {
        "models": {
            "": {
                "dataSource": "mainService",
                "preload": true
            },
            "secondModel": {
                "dataSource": "secondService",
                "preload": true
            }
        }
    }}

在上面的例子中,我们定义了两个模型,它们分别关联到了我们之前定义的两个数据源。这样,当我们在应用中使用这两个模型时,SAP UI5 会自动的使用对应的数据源连接到后端服务。

总结

总的来说,manifest.json文件中的dataSources区域是用来定义应用如何连接到后端服务的。它使得服务的配置集中在一个地方,使得代码更易于维护,也更易于理解。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
电脑🖥️键盘上所有英文键的意思
二十四山立向线法大全
旧电脑比新电脑还好用还流畅的方法
网页文本禁止复制粘贴?一分钟学会六个套路,轻松突破限制
潘长宏制作的博客、图书馆首页可应用的访客与时间显示记录仪
视频制作师潘长宏制作的---【精美分隔线】
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服