SAP Fiori应用里日期格式的显示奥秘
【摘要】 下图这个Fiori应用里的日期显示,Tuesday, March 1,2016,从后台返回的值为/Date(1456803000000)/那么前台显示的可读性较好的日期是如何转成而成的?奥秘就在Jerry这些单步调试的代码截图里:下图这个Opportunity的金额,在右边的明细页面里显示的是1880 USD,但为何在左边,显示的是2K这个近似值?在Chrome开发者工具的调试器里,我们能看...
下图这个Fiori应用里的日期显示,Tuesday, March 1,2016,从后台返回的值为/Date(1456803000000)/
那么前台显示的可读性较好的日期是如何转成而成的?
奥秘就在Jerry这些单步调试的代码截图里:
下图这个Opportunity的金额,在右边的明细页面里显示的是1880 USD,但为何在左边,显示的是2K这个近似值?
在Chrome开发者工具的调试器里,我们能看到从后台返回的金额确实是1880:
所以这个2k一定是前台UI5代码里进行的格式化:
答案就在上图sap.ca.ui.model.format.AmoutFormat.FormatAmoutShort这个方法里。
这里涉及到一个CLDR的概念:
CLDR - Unicode Common Locale Data Repository
The Unicode CLDR provides key building blocks for software to support the world’s languages, with the largest and most extensive standard repository of locale data available. This data is used by a wide spectrum of companies for their software internationalization and localization, adapting software to the conventions of different languages for such common software tasks.
1880转换成2k的调试:
在SAP WebIDE里随便创建一个新的Fiori应用,访问一个OData服务:
直接在WebIDE里本地运行该Fiori应用,在Chrome开发者工具里把metadata请求的url抄下来:
url如下:
直接贴到浏览器里,也能看到返回的metadata,但有趣的是,这个Fiori应用取OData服务需要经由的Destination,在WebIDE里本地运行时抓到的url里没有体现出来。
在Fiori应用的manifest.json文件里,datasources区域维护了该OData的endpoint:
"dataSources": {
"mainService": {
"uri": "/sap/opu/odata/iwbep/GWSAMPLE_BASIC/",
"type": "OData",
"settings": {
"odataVersion": "2.0",
"localUri": "localService/metadata.xml"
}
}
},
还有models区域,指明了该OData模型使用的dataSource为mainService:
但是在neo-app.json(我这个Fiori应用是在WebIDE里选择Neo环境创建的)文件里,仍然可以看到Destination的名称为ES5_Trial_Neo:
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)