Dylan [ ABAP 技巧与实战 ](javascript:void\(0\);)
**前言**
**** 如果你和我一样, 还不知道SAP FPM 是什么东西, 那就和我一起来学习一下吧. 这篇文章是转载以前项目中的一位同事的,
多谢他给了我们这个学习的机会. 后面的文章在转载的基础上补充了一些内容. 方便初学者理解内容. 为了区别: 所有调整原文的位置我都会标记一下 .
**调整部分:**
1.FPM支持的几种UI配置界面接口:
Object Instance Floorplan (OIF)
Overview Page Floorplan (OVP)
Guided Activity Floorplan (GAF)
Quality Activity Floorplan (QAF)
2.FPM可配置的区域:
Identification Region (IDR)
Message Region (MR)
Context Navigation Region (CNR)
Roadmap Element
3.UIBBs:UI building blocks (IF_FPM_UI_BUILDING_BLOCK)
**文中没有说明的部分:**
1. 控件之间的数据怎么传递(这部分我也没太弄清楚, 如果你知道的话,请不吝指点一下): 大概有两种交互方式 :一种是 通过自定义的函数组全局变量或者类全局变量通讯. 另一种应该是WEB DYNPRO 程序的自身通讯机制-有待了解
5. FPM工作原理类似于我们调用ALV函数时填写的回调参数(告诉ALV函数特定部分执行指定程序的FORM). FRM框架中配置的回调类就是开发编写业务逻辑的部分. 开发只需要了解回调类怎么和界面对象交互数据以及各回调类之间怎么通讯就可以了.
6. 我使用的系统无法用谷歌浏览器, 只能使用IE浏览器配置与测试. 如果你知道原因也请赐教一下 系统版本 S4 HANA 1709
7. 一个了解回调类的方法的途径是在回调类中添加外部断点, 通过执行页面功能时,断点的中断顺序及中断时的变量来理解FPM界面与回调类的工作逻辑
**引用的正文部分**
FPM作为SAP完善的WEB框架,对传统的WDA进行了封装,使得开发过程简单稳定且标准化。
常见的框架有OVP, OIF, GAF几种,对概念感兴趣的朋友可以研读专业的介绍文档,我们这里只介绍较为常用的OVP的简单创建流程。
1.在SAP中,启动事务码: FPM_WB 进到配置界面,如下图
4.点击下一步,分配包,传输请求之后,我们就可以进一步编辑配置了
常规设置中,可以对很多内容进行配置
6.1.UIBB如何理解呢,可以理解为一个控件,或一个'块' block的概念,如下图中,搜索框是一个UIBB,而查询到的结果表则是另一个UIBB
6.2.SAP内置了大量的标准接口来实现代码的标准化,我们在创建UIBB的时候,只需要将对应的接口实现,作为FeederClass,再将FeederClass绑定即可
7.5.当系统提示需要绑定FeederClass的时候,我们就知道需要创建一个对应的FeederClass了
每一个UIBB都需要绑定一个对应的FeederClass,而这个FeederClass需要我们在系统中建出来
回车后会自动带出
7.6.3.接下来我们只需要实现所需要的方法就可以了;FPM的事件就不在本文中介绍了
7.6.4.IF_FPM_GUIBB_SEARCH~GET_DEFINITION 定义的方法
参考创建好的结构定义
IF_FPM_GUIBB_SEARCH~GET_DATA 负责写入一些默认值的逻辑
7.6.7.再之后,我们就可以添加选择条件了,可以看到这些可供选择的搜索条件事实上就是刚刚我们创建的结构中的字段,结构通过GET_DEFINITION的绑定,就可以再配置页面添加了
7.6.8.完成以上的步骤,保存之后,一个难看的页面就产生了,美观上大家在具体工作时自由发挥哈
8.1.搜索UIBB添加完后,我们开始添加列表UIBB,这样点击查询后,就可以查出来数据展示了。多说一句,FPM的UIBB都是可以复用的,如果有一些通用组件,我们直接在其他想使用的地方添加configID即可
8.2.依照上面同样的方式,创建LIST UIBB需绑定的的FeederClass
8.3.GET_DEFINITION方法,定义部分,我们在这里定义出列表要展示的字段
8.4.回到配置,在LIST UIBB中绑定刚刚创建的FeederClass,
8.7.这里额外提一句,上面的LIST是在SEARCH组件中添加的,正常情况来讲我们同样可以在下图的位置添加想使用的任何UIBB
以上仅仅作为一个最基础的demo,便于对FPM一无所知的朋友做一些简单的了解和入门,在熟悉并了解FPM之后,大家就可以根据自己的习惯、方式、项目的要求来做分层,封装了;因网上现在FPM的中文资料太少了,所以发布了此文,后续也会陆续发一些技巧及细节的文章。