首页 > SAP > HANA > SMP3.0学习笔记之三 使用OData SDK或者MAF Login组件进行OnBoarding
2019
08-27

SMP3.0学习笔记之三 使用OData SDK或者MAF Login组件进行OnBoarding

SMP3.0支持的Mobile Application类型有:

Native Apps,原生应用

Hybrid Apps,混合应用

Mobile Web Apps,纯Web的应用

MDD Apps,即元数据驱动(Syclo)。

你的移动应用到底该选择哪一种类型呢?看下图这个决策树吧:

<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-72.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />

顺道提一下,SMP后端不仅可以通过Netweaver
Gateway支持SAP
ECC,还可以通过Gateway
Java(Avatar?)连接第三方数据源,如下图所示:

<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-25.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />

首先我学习的是使用SMP
OData SDK开发 Native Mobile Apps。从下图可以看出,SMP OData SDK不仅仅是一个OData
SDK,而且包含了很多已经Ready的组件,例如:

RequestManager

BaseRequest

BatchRequest

INetListener

Parser

Cache

等等。这些组件的功能后续会用到,这里我们暂且不表。

<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-100.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />

而MAF, Mobile Application
Framework,是一系列UI组件,方便移动应用的客户端开发。MAF
Login是其中的一个组件,它是一个可以方便的、与SMP进行集成的UI登录组件。

我这里尝试使用OData
SDK以及MAF Login组件来On Boarding,即使用OData SDK或者MAF
Login登录SMP,真实情况下你总会选择其中一种方式来Onboarding。例子以上述旅游代理公司为例,它需要开发一个移动应用,让其客户通过该移动应用在任何时候、任何地点方便的预定机票。这次我们先利用上一节创建的Application(后台连接的是Netweaver
Gateway获取ECC数据)来进行移动设备的Onboarding。我们的示例流程如下:

<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-1.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />

初始界面有两个按钮,分别是:SDKLogon,MAFLogon。当点击SDKLogon时我们调用OData
SDK进行Onboarding,如果成功就会显示一个登录成功界面,为了方便,所有的登录所需的信息我都写死在代码里了;如果点击MAFLogon按钮,就会进入MAF
Login组件自带的登录界面,用户填写足够的信息进行登录,如果登录成功就会显示登录成功界面。橙色部代表了MAF
Login的登录界面,蓝色是我自己实现的非常简单的界面。

创建一个新的Android
Application: My_RKT_MAFLogon,如下所示:

<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-83.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />

需要注意的是我们需要将下面的jar包加入到工程中,这些jar包可以从SMP
SDK中找到。

<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-22.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />

另外我们需要将maflogonui-res-1.2.1000,mafsettingscreen-res-1.2.1000,mafuicomponents-res-1.2.1000三个工程作为我们新建工程的引用library,
如下图所示。这三个工程可以在SMP SDK中找到,它们仅提供MAF所需要的resource,并不提供源代码。
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-50.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />

在该工程中我新建了如下Activities:

<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-2.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />

其中:

MainActivity: 对应上述的初始界面,让用户选择使用OData
SDK进行Onboarding还是使用MAF进行Onboarding。

MyMAFLogonAcitity: 用来实现MAF Onboarding

SDKLogonActivity: 用来实现OData SDK Onboarding

MainMenueActivity: 登录成功后的界面

使用MAFLogin组件进行Onboarding的核心代码:

<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-39.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />

运行该Android Application,截图如下:
首页面(MainActivity):

<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-86.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />

点击MAFLogon,进入MAF Login组件的UI进行Onboarding:

<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-95.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />

<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-60.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />

可以看到,使用SMP SDK自带的MAFLogin组件,短短几行代码我们就可以实现一个界面友好的、与SMP良好集成的登录界面。

初始界面上点击SDKLogin会使用SDK实现Onboarding,使用OData
SDK进行Onboarding比使用MAFLogin组件稍微多写一些代码,但也相当的简单,核心代码如下:

<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-30.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />

无论使用SMP SDK还是使用MAF Login组件,成功登录后都会进入登录成功界面:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-92.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />

现在我的Andrid设备已经成功Onboarding,接下来就是使用OData
SDK从SMP暴露的OData服务获取业务数据了。

最后编辑:
作者:yangsen
本站为个人博客网站,全由我个人维护,我从事SAP开发13年,其它ERP开发7年,基本都是零售行业。本站记录工作学习的过程, 有SAP相关询问专、兼职工作可随时联系我。 有网站相关的问题可直接在文章下方留言,或者联系我。 邮件:yan252@163.com给我。 QQ:415402519

留下一个回复

你的email不会被公开。