You are on page 1of 11

RAP 事务型应用

创建模型对象
1 定义根对象
define root view entity …
2 定义与子实体的关系
子实体关联到父实体:
define view entity …
as select from …
association to parent … as … on …
父实体关联到子实体
composition [0..*] of … as …

案例:
ZR_SalesOrderTP
ZR_SalesOrderItemTP

注意事项 : 激活时如果遇到问题 先去掉关联激活,在添加关联


#CUSTOMER

常用 UI 注释
建议使用 元数据扩展 不要和实体试图混合在一起
优先级: #CUSTOMER #PARTNER
#INDUSTRY
#LOCALIZATION
#CORE
@UI.facet
维度组合
@UI.lineitem
控制字段显示在列表
@UI.identification
定义顺序
@UI.selectionfield
定义选择条件
#FOR_ACTION
添加自定义按钮
行为定义
在根实体上右键创建 选择创建定为定义

名称不能改变

类型 :
Managed - 对应绿地开发 CURD 操作由系
统的基础设施接管,保存也可以通过加
WITH UNMANAGED SAVE 语法 ,自行实现
保存 .

UnManaged 对应棕地开发, CRUD 操作和


缓冲区处理是由应用 程序实现的
非托管方式实施
创建行为定义后 保存激活 可以添加代码进行逻辑控制
1 field ( readonly ) CreatedByUser; 字段只读
2 field ( readonly:update ) 只能在创建时被输入
3 field ( mandatory:create ) 在创建时必须被输入

注意事项 : 系统提示类不存在 按 ctrl + shift + 1 调出 quick assist 创建类


这个类与系统常规 class 不同只能使用 eclipse 修改,也只能由系统框架调用
行为池和处理程序的实现
只能使用一个全局类
行为处理程序在本地类中实现
系统为每一个实体提供一个处理程序类,为每一个要实现的操作提供一个方法

这些方法中包含一下隐式定义的参数:
1 FAILED 用于表示任何操作的失败
2 REPORTED 用于提供额外的消息,主要是针对失败的消息,但也可以添加警告
或成功的消息
3 MAPPED 用于通知消费者关于根据消费者请求创建的新实例的情况,请求中提
供的每个 %cid 需要有一个 MAPPED 或 FAILED 的 结果
编码处理
两种方式:
1 外部编码
2 内部编码
a 早期给号 在创建操作时进行给号
b 晚期给号 在保存前才确定号码

validation
//validation CName on save { field CustomerName;}
// If specified, "validation" is only supported in the implementation type "managed".
可以在行为定义种添加 验证 在实施种添加相应的方法捕捉 验证对象,根据提示非托管方式不支持此种方式
自定义 Action
添加 UI 注释

修改行为定义 方法实现

添加方法
锁对象
在 ABAP RESTful 应用编程模型中, ABAP 中的锁机制基本上和以前一样。在非管
理的情况下,你将使用与 Dynpro 程序中完全相同的锁对象 -- 但由于 ABAP RESTful
应用编程模型是一个基于网络的框架,锁的时机有些不同。
RAP- 用户点击保存时 检查锁对象
GUI- 用户在点击编辑时检查锁
你的行为定义的开头(在第一个开括号之前)添加 LOCK MASTER 字样。否则 LOCK 方法就不会被自动调用
在子实体的行为定义中添加 lock dependent by 主实体 可以跟随主实体一起锁定

在随后生成的行为类中将生成 Lock 方法,如果时后改的行为定义,那么需要手工添加方法定义及实施

METHODS lock FOR LOCK


IMPORTING keys FOR LOCK MonsterHeader
CHANGING failed TYPE data
reported TYPE data.

You might also like