方式1 On premise环境下以BSP应用作为Fiori应用部署和运行的载体
在SAP成都Labs我曾经担任过CRM这几个Fiori应用的开发和维护工作:
在Google上搜索关键字Fiori Architecture, 能找到这样一张图片,其中CRM和S/4 HANA的Fiori应用都以BSP应用的方式运行在下图我标注了红色方框的ABAP前台服务器上。
以CRM的My Lead应用为例,在Chrome的development tool里能找到其对应的BSP应用名称为crm_leads:
用SAPGUI登录这台前台服务器,使用事务码SE80即可打开该BSP应用,里面的层级结构和Chrome的development tool里观察到的一致(前提是您使用ctrl+alt+shift+p加载了调试版本的Fiori
应用源码)
我们可以用各种IDE(比如Eclipse, Sublime, Atom, Webstorm等等)进行Fiori应用开发,然后使用
report /UI5/UI5_REPOSITORY_LOAD将本地工程上传到前台服务器,具体步骤参考这篇博客:
Deploy a Fiori app in SAP Fiori
https://blogs.sap.com/2017/11/19/sap-fiori-ui5-application-deployment/
另外,Eclipse有个SAP开发的插件叫做ABAP Repository Team Provider,使用它可以实现UI5应用的一键部署,具体步骤请参考博客:
How to Deploy and Run SAPUI5 application on ABAP Server
https://blogs.sap.com/2013/06/15/how-to-deploy-and-run-sapui5-application-on-abap-server/
您也可以尝试使用WebIDE做开发,然后通过WebIDE将应用部署到ABAP前台服务器。
细节请参考博文:How to deploy the Web IDE UI5 application to ABAP repository
https://blogs.sap.com/2017/03/20/how-to-deploy-the-web-ide-ui5-application-to-abap-repository/
这篇博文来自我的同事,SAP成都C4C开发团队的Wu David,高大帅气的程序猿,而且有一手精湛的厨艺。
方式2 部署并运行在On Cloud环境下
如果说前一种方式成功地使得SAP传统的运行在Netweaver平台的BSP技术继续发光发热,那么这第二种方式则体现了SAP拥抱云,拥抱变化的决心。这种方式部署的Fiori已经和Netweaver及ABAP平台再无任何关联。目前SAP成都所有基于云的产品开发团队无一例外地采用了这种部署方式。
SCP(SAP Cloud Platform)是SAP倾力打造的云平台,假设您已经开发好了一个Fiori应用,想将其部署并且运行在SCP上,您可以参考来自SAP成都云开发团队的Chen Vicky, 一位年轻漂亮的程序媛的博文:How to deploy UI5 application on SCP
https://blogs.sap.com/2017/02/07/how-to-deploy-ui5-application-on-hcpcloudfoundry/
(Vicky虽然2016年7月毕业才加入SAP成都, 在学校期间只有几个月的ABAP实习的项目经历,但是通过她的努力以及组内其他老同事的帮助,她现在已经成为了一名合格的Java和JavaScript开发人员)
在此基础上,我也做过一些简单的练习,比如开发一个Fiori应用,将其部署在SCP上,并且能够访问另一台On premise服务器上的数据: Deploy your web application to SAP Cloud Platform which can access resource from On-Premise ABAP system
https://blogs.sap.com/2017/05/27/deploy-your-web-application-to-sap-cloud-platform-which-can-access-resource-from-on-premise-abap-system/
当然您也可以选择其他的云平台运行您的Fiori应用,如百度云,阿里云,以及国外的云平台例如Heroku:
Step by step to host your UI5 application in Heroku
https://blogs.sap.com/2017/12/09/step-by-step-to-host-your-ui5-application-in-heroku/
您甚至可以将您的Fiori应用部署并运行在github上, 虽然github的本来用途并不是这个 Use GitHub Pages to host your OpenUI5 app
https://blogs.sap.com/2014/10/28/use-github-pages-to-deploy-your-openui5-app/
顺便说一句,不知道大家读过阮一峰的这篇文章没: 搭建一个免费的,无限流量的Blog----github Pages和Jekyll入门
http://www.ruanyifeng.com/blog/2012/08/blogging_with_jekyll.html
在文末的评论区,国内的网友对应不应该用github拿来做存储代码和版本管理以外的事情,展开了激烈的讨论。
就我的观察而言,很多国内前端大牛都选择了把自己的博客部署在了github上。
值得一提的是SAP Hybris Cloud for Customer, 虽然其后台仍然基于Netweaver ABAP, 但是C4C的UI部署方式没有采用本文介绍的方式一,而是本章节介绍的方式二。
方式3 打包成平台原生应用安装在移动设备上
还是以SAP Hybris Cloud for Customer为例,我们使用Cordova这个开源框架,将开发人员用JavaScript+HTML开发好的Fiori应用打包生成iOS, Android和Windows Phone对应的安装包然后安装到移动设备上。
这意味着SAP成都的C4C开发团队,在本地IDE写完代码之后,付出了大量的努力来确保我们开发好的功能不仅在PC端各种支持的浏览器下能够正常工作,同时在C4C支持的iOS, Android和Windows phone设备上依然能够正常工作。
尽管我们设计了非常完备的单元测试来覆盖我们开发的功能,为了严格确保我们发布的产品质量,在移动设备上我们也有大量的人工测试。
如果您已经开发好了Fiori应用,想装到您的手机上玩一玩,可以参考我的博客: Step by step to package a Fiori application into your Android device using Cordova
https://blogs.sap.com/2017/08/17/step-by-step-to-package-a-fiori-application-into-your-android-device-using-cordova/
如果您的Fiori应用想访问手机设备上的一些只有手机原生操作系统才能提供的功能,那么您可以参考我的博客来自行开发Cordova插件:
Step by step to create a custom Cordova plugin for Android and consume it in your UI5 application
https://blogs.sap.com/2017/08/18/step-by-step-to-create-a-custom-cordova-plugin-for-android-and-consume-it-in-your-ui5-application/
上面这篇博客我以Android平台开发为例做了Cordova自定义插件的开发介绍。在Android平台,我用Java实现了一个自定义的Cordova插件,然后在Fiori应用里消费这个自定义插件。
既然涉及到插件的开发,不可避免地就会遇到调试问题。我的下面这篇博客以Android studio为例描述了基于Java的自定义插件的调试步骤:
How to debug UI5 application packaged into a mobile device via Cordova with a custom plugin
https://blogs.sap.com/2017/08/18/how-to-debug-ui5-application-packaged-into-a-mobile-device-via-cordova-with-a-custom-plugin/