云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

全站加速_阿里云域名映射_免费6个月

小七 141 0

SAP Enterprise App Modeler允许开发人员定义复杂的应用程序,而无需编写任何代码。业务流程专家可以使用基于云的编辑器来开发新的应用程序和定制现有的应用程序。其结果是一个灵活的应用程序与美丽的用户体验和强大的离线支持。在这篇博文中,我将更深入地探讨该描述的最后一部分:App Modeler的离线功能。我将概述App Modeler如何与Offline OData集成,以实现稳定的可用性和闪电般的性能,同时简化设计师在其业务逻辑中与OData的交互。

App Modeler旨在允许动态更新,同时完全支持脱机用例。对应用程序定义元数据的更改将从WebIDE发布到云平台移动服务。新版本的元数据通过App Update服务从移动服务部署到客户端,管理员无需重新安装即可管理应用程序生命周期。移动服务还提供到OData后端的连接。脱机odatasdk从后端下载部分或全部数据,并将其存储在本地数据库中。用户可以执行本地事务,然后通过同步将这些更改发送到后端。

App Modeler使用App Update管理应用程序元数据的生命周期,Offline OData与OData后端同步,方便脱机使用。

使用Offline OData,API使用者可以像构造在线应用程序一样构造OData查询。离线OData框架也被设计成高度灵活和应用程序无关的。不幸的是,对于一个以业务为中心的用户来说,这意味着它有很多固有的复杂性。App Modeler处理离线OData的复杂性,因此应用程序设计者可以轻松地利用它的优点。接下来,我将重点介绍AppModeler解决的三个问题:

显示大量记录在应用层访问获取的数据将用户事务分组,以便原子化处理

去掉较低级别的实现细节,设计人员可以更有效地推理数据模型、用户体验以及两者之间的关系。为了举例说明,让我们仔细看看这些例子中的每一个。

显示带有分页的大型实体集

离线支持的一个巨大好处是,您的数据不仅在用户去的任何地方都可用,而且比在线应用程序更有效地获取数据。应用程序不需要通过网络检索数据,而是可以快速地从本地存储中获取任何记录。不过,如果您的实体集包含数百或数千条记录,那么您的应用程序必须对一次检索多少条记录保持智能。在这些情况下,试图检索整个实体集可能会使应用程序变得迟钝甚至不可用。

例如,考虑一个设计人员希望显示销售订单列表的情况,在数据模型中称为SalesOrderHeaders。appmodeler使这变得简单:只需使用编辑器定义一个节页,其中只有一个对象表作为它的节。然后指定要检索的实体集:

定义对象表以显示每个销售订单的属性。

使用对象浏览器指定SalesOrderHeaders实体集。

在客户端,显示此列表的简单解决方案是一次加载所有记录。但是,大数据分析网站,如果实体集有太多记录,用户体验将很快降低。所有这些记录都会消耗太多内存,并且需要很长时间才能从存储区加载。幸运的是,OData提供了一种方法:可以使用$top和$skip查询选项加载实体集的子集。例如,通过指定$top值20和$skip值50,可以加载20条从第50条开始的记录。App Modeler利用这一特性(在脱机OData中可以正常工作)通过自动使用$top和$skip(视情况而定)来实现分页列表。结果是一个伟大的滚动体验,即使是大规模的实体集,没有任何额外的努力,由设计师。

一个例子,滚动一个大型记录列表在应用程序建模客户端。随着用户进一步向下滚动列表,会加载更多记录。

使用目标路径绑定获取的数据

显示大量记录是脱机应用程序中需要解决的一个重要问题,但这并不是唯一出现的问题。我们还必须考虑从存储中获取数据后如何访问和操作数据。这种方法必须足够灵活,设计人员可以表达复杂的业务逻辑,并且应该足够聪明,只在必要时执行读取。App Modeler实现这一点的方式仍然是使用称为target path的特性反映数据模型。基本思想是,一旦数据被提取,它就被绑定到页面上,并且可以用简单直观的语法进行引用。在上一节的列表控件中,每个单元格的属性来自目标路径的结果:

单元格使用目标路径绑定到实体属性。

{…}语法是#Property target path段的缩写,它从当前绑定上下文中的实体获取属性。在这种情况下,每个单元格都绑定到一个销售订单实体,并且每个目标路径都在访问该实体上的属性。我们还可以使用目标路径将用户输入的值传递到创建或更新操作中。点击右上角的"+"按钮,我们可以创建一个新的销售订单。

SalesOrderCreate页允许用户指定新销售订单的属性。