不写一行代码创建Fiori App

2017-08-14 Alex Fiori

我在上文中介绍了SAP Web IDE, 今天就基于SAP Web IDE的强大特性,不写一行代码的建立一个Fiori App。

当然,不写一行代码创建的App在实际项目中还是未免过于幼稚,但是通过标准模板可以大体搭建一个App的基本框架,为后来的开发开来非常大的便利。通过这个过程大家对Fiori的基本技术UI5,MVC的体系结构也有一个大体的认识。

我们今天创建一个Fiori App,来显示财务凭证的头信息,这个App和我之前一直作为例子的Manage Journal Entries的第一个页面类似,只是没有了filter等输入信息,直接无条件输出了。会调用oData Service  :FAC_FINANCIAL_DOCUMENT_SRV_01

建立Fiori App包括以下几部分:

  • 定义数据源,通过定义数据源可以建立和后端系统数据的连接,完成数据的增删查改,数据源在这里指:OData Service;
  • 创建数据模型,配置模型类型、数据源、URI;
  • 设计页面布局,基于UI5,在页面展示财务凭证的Header信息;
  • 绑定基于OData Service的数据集;
  • 绑定页面元素和OData Service 数据字段。

首先登陆WebIDE 然后创建基于模板的项目Create a New Project from Template.

我们选择SAPUI5 Application Template.

创建项目名称:

选择 View Type和名称

点击完成,我们的工程创建完成,Fiori App的基本代码框架就创建完成了,我们会看到如下图的页面:

请注意,有三个独立的文件夹Model, View 和Controller,其中Model是数据模型,View是页面视图,Controller是控制模块,也就是业务代码部分。MVC是前端开发的常见结构,从struts, JSF,Spring等前端框架开始,基本都是这种架构。

添加数据源

开发Fiori App,首先需要定义数据源,所有的App其实不都是消费数据,更新或者添加数据么。开发程序定义数据源大都是JDBC/ODBC的data source,今天的data source是OData Service。之前我也介绍过,Fiori消费ERP数据通过SAP Gateway作为工具OData Service作为接口。

点击文件:manifest.json ,其中有两种编辑视图:Descriptor 和Code Editor,

在文件manifest.json 上右键,选择Open With -> Descriptor Editor

因为我们今天的初衷是尽量不写代码,所以我选择Descriptor,当然作为有经验的大神么,可以选择Code Editor。

在Descriptor Editor,到Data Source Tab,这里我们配置“从哪里”“怎么”获取数据,点击按钮“+”,选择SAP系统和services,如下图:

点击完成。

然后我们会看到如下页面:

请注意OData Service 和URI.

创建默认Model

在文件manifest.json点击Models 页面,默认会出现i18n(国际化信息模型,就是存储Fiori App页面文字信息的)

点击“+”按钮,创建一个新的Model,按照下图添加信息,并设置为默认的模型。

创建完模型,如下图,请注意下面的信息:

虽然我们没有写一行代码,但是WebIDE其实在后台默默的帮我们把代码写好了,请看下图自动生成的代码:

设计页面的视图信息

视图文件同样有可视化界面和代码界面,因为我们今天不写代码,所以就用视图界面拖拽了。视图界面主要是HTML5元素组成,如果是HTML5开发者,可以自行选择开发界面。如下图,我拖拽一个List元素到页面中,来显示财务文档的头信息。

配置页面控件显示信息

我们只需要一个list item,其他两个可以删除了。

选择这个ListItem, 点击Data Set旁边的按钮,进行数据绑定。

绑定 OData Service Data Set Header 到页面控件

绑定OData Service Entity Type Properties (fields) 到 list item里

如下图,List Item有两部分,title和description,我们需要分别绑定信息:

双击字段,选择字段。

好了,我们设置完成,点击save 按钮保存文件,并点击测试按钮,进行测试。

可以看到下面的页面,虽然简陋,但是生成自己的Fiori App,是不是有点小兴奋?

看到title信息是默认的,我们可以修改一下。我之前提到过i18n是国际化的配置信息,可以在那里找到对应的字段信息进行修改。

修改完,保存,再测试一下页面,如下图:

SAPUI5事件

我们今天的文章本来到这里可以结束了,真的没写一行代码!但是为了证明,其实我也可以写代码的,我又加了一点内容。

在List item上单击,选择右手边的Events,选择press,创建function,如下图:

点击new function, 输入function name,然后系统会自动生成function在controller里面,如下图,当然具体代码语句我们还是需要自己写的。

随便写一行:alert("Testing: Navigating to Document Line Item.");

Ok, 测试一下。

今天的文章到这里真的结束了,我们就点一点,拖一拖就创建了一个Fiori App,而且数据真的来自SAP系统,我想说,基于Fiori的开发就是这么简单便捷,未来S4HANA的Fiori应用会越来越多,越来越好。

本文内容属于个人观点,不代表任何官方。

时间: 2024-10-24 12:54:02

不写一行代码创建Fiori App的相关文章

不写一行代码即可运行一个应用

软件工程的构件化道路发展到今天,已经具有成熟的技术.这就像今天的大厦建筑一样,使用预制的构件,就能建造万丈高楼.同样道理,使用Spring Boot开发框架,也可以支持这种构件化的功能,正像其官方网站所介绍的那样,你甚至可以不用写一行代码,就可运行一个应用:“Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”.” (h

快速开发框架(FDMS)新增1000个对外接口都不须要手写一行代码

一个大型系统难免会跟其它系统有数据交换,这里就要提供数据接口给外部系统. 曾经在一家智能终端设备的公司上班.那段时间的主要工作就是写接口.接口须要与手机.手持设备.系统管理软件等进行数据交换.总结了一下大部分时间都在做重复的工作. 于是我想到可不可以做出一个接口模型来,具体的数据交换怎么实现由用户来定义,那样的话就算要加1000个接口我都不用写一行代码. 看一下下面的图片 一般的操作直接选择普通操作类型即可. 复杂一点的操作可以选择存储过程来处理. 定义完接口以后,调用接口的时候可以按XML,J

每多学一点知识,就少写一行代码

这一个月看书不少,买了4本,已经看完了2本,剩下的2本计划2周内看完,2周内看完也太慢了,还有不少书等着我看, 以后相当长一段时期内,给自己看书的要求是必须2周内看完一本书,每月2本书,每年24本书. 看书的收获太大,其收获远远不是仅仅靠糟糕的实践所能比拟的,实践一年,看起来有经验了,实际上水平可能还在原地打转,甚至入门水平.

jQuery之父:每天都写点代码

去年秋天,我的"兼职编程项目"遇到了一些问题:要不是从 Khan Academy 的项目里挪出时间来的话,我根本没办法将不理想的进度弥补上. 这些项目遇到了一些严重的问题.之前的工作我主要是在周末,有时是工作日的晚上做.但最终证明,这样的工作安排并不适合我.为了在周末尽可能地尝试完成高质量的工作,我压力巨大(如果我做不到的话,会有很深的挫败感).这样安排的问题在于周末并不一定都有空–而我也不想周末两天都在写代码(要牺牲掉所有的休闲和乐趣). 另外一个问题就是隔了一周这么长的时间之后,很

iOS下用一行代码实现tableview(collectionview)的parallax效果

效果和https://github.com/jberlana/JBParallaxCell一样.实现cell的滚动视差. 原理很简单,就是一个等比公式  cell的图片位置 / cell图片可以滑动的总长 = cell在table中的位置 / cell 可滑动总长  实现方法: 1> 在cell的UIImageView上添加父视图UIView,clipsToBounds设置为yes,用来剪切UIImageView,为其限定大小. 2>在vc的 -(void)scrollViewDidScrol

[项目管理]我一定要有这样的能力:哪怕我一行代码也不写,我也要分析透添加这个字段对我们这个系统整体的影响

摘要: 在项目执行中,团队里面必须有一个知道不断向项目里面累加代码的“摄像头”,扫到项目每个角落,看看加进去,项目 会不会“营养不良”?项目会不会“突然休眠”?你们团队有这样的人吗?我要当这样的角色:哪怕我一行代码也不写,我也要 分析透添加这个字段对我们这个系统整体的影响. 今天突然想起这件事情,几年前自己在跟同事聊一个做的不太好的项目(就是自己认为有可能交付不了的项目). 我记得食堂在地下一层吧,在楼道里面我清清楚楚的记得那句话“我们项目缺一个整体把控的人”,所谓的整体 把控其实是在说一个能把

一行代码,快速为UITableView创建Delegate和DataSource

只需一行代码,快速为UITableView创建Delegate和DataSource. 简介CBTableViewDataSource是一个轻量级的用于快速创建UITableView的DataSource和Delegate的框架.它提供了一些方便的API,帮助用户以一种快速和有逻辑的方式创建DataSource和Delegate. 最偷懒的使用方式如下:[_tableView cb_makeSectionWithData:self.viewModel.data andCellClass:[Cus

写在最前面 - 《看懂每一行代码 - kubernetes》

我要写什么 <看懂每一行代码 - kubernetes>会包含k8s整个项目的源码解析,考虑到门槛问题,在开始分析k8s之前我会通过一些更低难度的golang开源项目讲解来帮助大家提升golang编码技能:然后通过与k8s相关的一些项目的讲解,打通阻碍k8s学习的一些大障碍:最后集中火力,将kubernetes项目的整个源码吃透. 总体来说,本系列计划分三步走完成源码层面掌握k8s的目标: golang技能提升 k8s依赖技术 k8s核心组件 目前关于k8s应用的教程已经很多了,其中不乏相当优

一行代码,让你的应用中UIScrollView的滑动与侧滑返回并存

一行代码,让你的应用中UIScrollView的滑动与侧滑返回并存 侧滑返回是iOS系统的一个很贴心的功能,特别是在大屏手机上,单手操作的时候去按左上角的返回键特别不方便.当我在使用一个APP的时候,如果控制器不能侧滑返回,我会觉得这个APP十分不友好...这款产品在我心中的印象分也会有所降低...侧滑返回本身是系统自带的效果,无须开发者处理的.但是,一旦给控制器加了leftBarButtonItem,系统侧滑手势居然失效了(苹果你这样真的好吗...),要重新支持侧滑返回,可以做以下处理: 一.