本文笔者将会向大家介绍 SAP 云平台上一款快速应用开发(Rapid Application Development,简称RAD)解决方案。聊到这款解决方案,就得提到 Mendix,西门子旗下重要一员,在Low Code Development(低代码开发)领域处于领导者地位,其代表作Mendix Studio Pro.

所谓低代码开发平台/工具,是指无需编码或仅需很少代码(No Code or Low Code)就可以快速生成应用程序的平台/工具,通常提供可视化的交互界面来快速搭建应用界面,设计数据模型,创建应用业务逻辑和工作流等。

低代码开发平台对使用者的技术要求大大低于传统软件开发项目中的程序员。随着企业数字化转型浪潮的深入进行,特别是中小型企业信息数字化的呼声越来越高,使用低代码开发平台能够在短时间内快速构建出应用程序的框架,交付给客户使用,并根据客户反馈进行快速迭代,因此在企业数字化转型特别是中小企业信息化建设项目的开发方式中占有重要的一席之地。
正由于低代码开发平台在企业应用开发中能发挥其独特的优势,使得许多软件供应商纷纷涉足于这一领域,比如SAP智能机器人流程自动化解决方案之一的SAP Intelligent Robotic Process Automation Desktop Studio这个开发工具, 也能被看作是低代码开发工具之一。

笔者之前的文章
如何使用 SAP Intelligent Robotic Process Automation 自动操作 Excel
里曾经介绍过其用法。
而SAP云平台上的RAD解决方案,也集成了低代码开发领域的领导者,来自Mendix提供的开发工具Mendix Studio Pro. 从Gartner发布的2019年企业级低代码开发平台的评测报告,我们可以看到Mendix处于魔力象限中的Leaders(领导者)区域。

下面我们就来尝试一下,使用SAP Cloud Platform上的Rapid Application Development,结合Mendix Studio Pro来开发一个Fiori应用,以只读的方式显示OData服务提供的数据,从中了解所谓的低代码开发同使用SAP WebIDE的开发体验有何不同。

登录SAP Cloud Platform:https://account.hana.ondemand.com/#/home/serviceCatalog
找到RAD by Mendix服务:

进入服务页面,点击Sign in with SAP, 使用SAP云平台的credential信息登录。

登录之后点击Create App:

选择创建应用基于的模板。用过SAP WebIDE创建Fiori的朋友们可能会发现,这个模板选择和WebIDE里的Create from Template功能非常相似。

选择上图高亮的具有SAP Fiori设计风格的应用模板,创建一个新应用:

同WebIDE里创建Fiori应用一样,选择好模板之后,工具会自动创建很多应用相关的资源文件。

接下来选择一个SAP Cloud Platform的Region, 在本文最后我们将使用Mendix Studio Pro直接将一个开发好的应用部署到SAP云平台。

我创建好了一个空的应用JerryHelloWorldProject,在Edit App里提示,可以使用Mendix Studio Pro进行应用开发。

从 Mendix 的
下载这个开发工具:
安装之后,点击Edit in Mendix Studio Pro:

回忆一下,用SAP WebIDE创建Fiori应用,我们得指定一个OData服务作为数据源,要么是把OData元数据下载成本地文件,导入到WebIDE里;要么直接把OData服务的元数据url设置到WebIDE的创建向导里。
Mendix Studio Pro里的创建步骤也类似。先把OData服务的元数据下载到本地,保存成一个xml文件。使用Mendix为SAP量身打造的SAP OData Model Creator,将这个xml文件导入:

SAP OData Model Creator是一个在线应用:https://sapodatamodelcreator.mendixcloud.com/
它会解析xml里包含的OData元数据,提取出OData服务的名称GWSAMPLE_BASIC和明细信息,并转换成Mendix Studio Pro能够识别和导入的mpk格式的文件:

SAP OData Model Creator生成mpk文件之后,下载到本地,就可以导入到Mendix Studio Pro里了。

导入mpk之后,生成的Mendix Studio Pro能够识别的OData模型如下图。这个例子我选择显示OData服务返回的Sales Order数据。

笔者这个例子的业务逻辑很简单,发送OData服务请求,获取到数据后显示在Fiori页面。
像这种单线的顺序业务逻辑,可以封装在Mendix Microflow里。创建一个Microflow,命名为GetSalesOrder:

Microflow创建好之后,呈现在编辑界面里是一根直线,绿色和红色端点分别代表业务流程起点和终点。

这个编辑界面和SAP Cloud Platform上的iFlow编辑页面很像。大家可以把这个Microflow类比成SAP Cloud Integration里的iFlow.
从右键菜单里选择Insert->Activity:

选择SAP OData Connector下面的Create request params,代表这个Microflow的第一个步骤是发送OData服务请求。

将该请求命名为JerryRequestParams:

访问SAP OData服务需要使用Basic Authorization进行认证,因此添加第二个Activity,类型为Add basic Authorization:

在工程里新建两个常量ES5UserName和ES5Password,把访问SAP OData服务需要使用的用户名和密码维护在常量里:

然后在basic Authorization activity里使用这两个常量:

添加第三个Activity,类型为Get list. 这一步的含义当然就是发起实际的OData请求了:

指定Microflow结束事件所返回的类型为List,Entity为OData服务里的SalesOrder模型。

Microflow开发完毕后,意味着这个应用的业务逻辑的设计已经告一段落了,剩下的是处理前台界面。新建一个页面,布局类型从下拉菜单里选择Fiori_MasterDetail:


点击OK之后,我们得到一个Master-Detail布局的模板页面,剩下的事情就是对这个模板进行微调,比如调整字体,修改标题,决定哪些字段应该显示或者隐藏等等。

从开发面板右边的SalesOrder列表里挑选自己想展示的字段,拖拽到左边的页面编辑区域即可。数据绑定都是自动完成的,无需手动干预。

下图代表我选择在应用左边的Master List里显示三个字段:Customer ID,Customer Name和Created At.

右边的明细页面,我选择显示Sales Order ID,Currency Code和Gross Amount三个字段。

点击Run Locally, 本地运行应用:

效果如下图所示:

如果选择Run,因为之前最开始在Mendix Studio Pro里设置过SAP Cloud Platform的Region信息,因此会自动将该应用部署到SAP云平台运行:



从这个简单的例子能发现,Low Code Development这种理念,在SAP开发领域里其实并不是一个新鲜事物,比如SAP WebIDE里创建Fiori应用提供的大量模板,以及Fiori Elements理念本身,背后都体现了对开发细节和复杂度的封装,从而降低工具的技术使用门槛。
另一方面,我个人认为,Low Code Development的Low绝不应理解成“低等”,“低级”——这些精心设计过的低代码开发平台,能够把普通人觉得很深奥很难于理解的概念封装起来,转换成非专业编程人员通过简单的学习后也能接受的实体,从而扩大了工具的使用群体,这本身就是一件很了不起的事情。
从应用创建向导里可供选择的众多应用类型就可以看出,Mendix Studio Pro的强大功能,远不止本文介绍的这一点点内容。特别是Mendix为SAP“私人订制”了一系列富有SAP特色的应用模板,感兴趣的朋友们可以从Mendix官网下载,一探究竟。

希望本文能够让大家对SAP Cloud Platform上的Low Code Development解决方案有一个基本了解,感谢阅读。
总结
本文从 SAP 云平台上的 Low Code Development(低代码开发)解决方案的业务背景,历史由来,具体使用步骤和流程,以及将来的发展方向等几个方面进行了详细介绍。笔者希望对 SAP 低代码解决方案一无所知的朋友们,阅读完本文后,能够对这个解决方案有最基础的了解。
原网站版权声明
本文为[InfoQ]所创,转载请带上原文链接,感谢
https://xie.infoq.cn/article/4ae24d0af3a0cd2cdba3dd956