SAP-BTP :(9)RAP-草稿处理

一、草稿处理的核心价值

草稿(Draft)是 RAP 为企业级应用提供的一种关键机制,它允许用户在不立即提交数据的情况下长期编辑一个业务对象实例,并且可以临时保存编辑状态离开后返回继续编辑,最后一次性激活。

  • 传统无草稿 BO:每次修改立即进入事务缓冲区,一旦离开页面,未提交的更改即丢失。

  • 启用草稿后:编辑内容被持久化到专门的草稿表,支持草稿创建、编辑、激活、删除等操作。

 草稿机制使得 RAP 应用能够支持复杂的、多步骤的表单填写场景,例如旅行申请、订单录入等。

二、启用草稿所需的核心构件

构件作用
草稿表(Draft Table)存储草稿数据,与激活数据表分离;由 RAP 框架完全管理
行为定义中的 with draft开启 BO 的草稿能力
关联上的 with draft允许通过关联导航到草稿实例
draft determine action Prepare激活前的校验触发点
lock master total etag并发控制,使用 ETag 字段防止版本冲突
投影中的 use draft将草稿能力暴露给服务消费者

三、案例步骤整理

Step 1 – 在基础业务对象中启用草稿

1.1 添加 with draft 声明

在基础行为定义 ZI_RAP_Travel_#### 的头部,managed; 之后添加:with draft;

1.2 指定草稿表
  • Travel 实体:draft table zrap_dtrav_####

        

  • Booking 实体:draft table zrap_dbook_####

      

1.3 生成草稿表
  • 光标放在表名上,按 Ctrl+1(Quick Fix),选择生成草稿表。

框架自动根据实体模型生成对应的草稿表结构。

  • 注意:以后修改 BO 数据模型后,可再次用 Quick Fix 重新生成草稿表(会更新表定义)。

1.4 调整关联声明(解决警告)
  • Travel 实体中的 _Booking 关联改为:association _Booking { create; with draft; }

  • Booking 实体中的 _Travel 关联改为:association _Travel { with draft; }

  • 原因:草稿启用后,关联必须显式标记 with draft,才能在草稿实例间导航。

1.5 添加总 ETag 锁定:lock master total etag LastChangedAt

  • 作用:使用 LastChangedAt 字段作为乐观锁版本标识,防止草稿基于过期的激活实例激活。

1.6 指定 draft determine action Prepare 触发的校验

  • 意义:当用户点击“激活”时,框架会先调用 Prepare 动作,在此处执行所有需要检查的校验,并将消息保存为状态消息(即使激活失败,用户返回后仍能看到错误提示)。


Step 2 – 在投影业务对象中暴露草稿

2.1 添加 use draft

在投影行为定义 ZC_RAP_Travel_#### 的头部添加:use draft;

2.2 调整投影关联
  • Travel 投影:use association _Booking { create; with draft; }

  • Booking 投影:use association _Travel { with draft; }

2.3 针对 OData V2 的特殊处理
  • 如果使用 OData V2,需要注释掉 use etag

    因为 OData V2 的 Fiori Elements 尚不支持 ETag 与草稿同时使用。


Step 3 – 调整行为实现(授权控制)

在行为池类 ZBP_I_RAP_TRAVEL_#### 中:

  • 找到 get_authorizations 方法。

  • 在 requested_authorizations 条件判断中,取消注释与 %action-Prepare 和 %action-Edit 相关的代码行。

  • 这样,草稿相关的两个内置动作(Prepare 和 Edit)也会受到授权检查。


Step 4 – 预览与测试

启动 Fiori 应用后,你会看到:

  • 过滤器区域新增“编辑状态”(Editing Status)筛选。

  • 创建新对象时,在对象页面编辑字段时,你会立即在底部看到草稿保存指示器。

在后端查看相关的草稿表,可以看到目前已输入的所有值。

四、关键设计思想

1. 草稿表完全由框架管理

  • 开发者只需声明 draft table xxx,无需手动编写任何 DDL 或 DML。

  • 框架自动处理草稿的创建、读取、更新、激活、删除。

2. 状态消息持久化

  • 启用草稿后,校验失败的消息会作为状态消息写入草稿表,而不是仅存在于当前会话。

  • 用户关闭应用再打开,依然能看到之前的错误提示 —— 极大提升用户体验。

3. 关联的草稿导航

  • 关联必须显式标记 with draft,才能在主实体与子实体的草稿实例之间导航。

  • 这避免了非草稿关联错误地指向激活实例。

4. ETag 乐观锁

  • 使用 lock master total etag 确保激活操作基于最新的激活实例版本。

  • 如果草稿基于旧版本,激活时会触发冲突处理(通常提示用户刷新)。

5. Prepare 动作作为校验集中点

  • 在激活 OData 请求的单独 changeset 中调用 Prepare,将校验与激活分离。

  • 这样即使校验失败,也已保存的状态消息仍然可以返回给前端。


五、与无草稿 BO 的主要区别

特性无草稿有草稿
编辑方式直接修改事务缓冲区持久化到草稿表
离开页面后修改是否保留❌ 丢失✅ 保留
状态消息持久化❌ 仅当前会话✅ 存入草稿表
on-modify determination立即在缓冲区执行立即在草稿实例执行
on-save determination在 COMMIT 时执行在激活时执行
并发控制数据库锁(短暂)ETag + 草稿锁(可长时间)

六、总结

启用草稿处理只需在行为定义中添加 with draft、指定草稿表、调整关联及 ETag,并在投影中暴露 use draft,即可让 Fiori 应用获得完整的草稿编辑、状态持久化和激活前校验体验。

内容概要:本文提出了一种结合在线鲁棒主成分分析(RPCA)模型与长短期记忆(LSTM)循环网络的商品需求预测方法,并提供了完整的Python代码实现。该方法首先利用RPCA模型对原始商品需求时间序列进行分解,分离出低秩的潜在趋势成分与稀疏的异常波动成分,有效实现数据去噪与异常值修正,提升输入数据的鲁棒性;随后将净化后的数据输入LSTM网络,充分挖掘时间序列中的长期依赖关系与时序模式,从而提高对未来需求的预测精度。整个模型设计针对实际商业场景中普遍存在的数据噪声大、波动剧烈、突发性事件干扰等问题,展现出较强的稳定性与预测能力。文中通过实验验证了该混合模型在多个指标上优于传统统计模型及单一LSTM模型,体现了其在复杂环境下的优越性能。; 适合人群:具备一定Python编程能力和机器学习基础知识,从事数据分析、供应链管理、电商运营、零售优化及相关领域研究的研发人员或研究生;特别适合关注时间序列预测、深度学习建模以及鲁棒数据处理技术的技术人员。; 使用场景及目标:①应用于电商平台、零售企业或制造行业中的销量预测,以支持库存优化、生产计划制定与物流调度决策;②为科研工作者提供一种融合鲁棒统计与深度学习的预测建模范例,推动高噪声环境下预测算法的创新与复现研究;③帮助开发者深入理解RPCA与LSTM的集成机制,掌握复杂预测模型的构建、训练与调优流程。; 阅读建议:建议读者结合所提供的Python代码逐步实现模型,重点理解RPCA在数据预处理阶段的作用机制以及LSTM网络的结构设计与超参数配置。学习过程中应在真实或模拟数据集上复现实验结果,对比不同参数设置下的模型表现,以深化对模型内在工作原理的理解。同时可进一步探索其他深度学习模型(如GRU、Transformer)与鲁棒分解方法(如VMD、STL)的融合可能性,拓展应用场景。
内容概要:本文针对传统三电平并网逆变器在谐波抑制、电网不平衡适应性及动态响应方面的不足,提出一种基于有源中点箝位(ANPC)三电平拓扑的高性能并网控制策略。通过融合双极性倍频脉宽调制(DPWMA)、正负序分离锁相技术与电网电压前馈控制,构建一体化控制系统。ANPC拓扑具备开关损耗均衡、中点电位可控、输出谐波低等优势,为系统性能提升提供硬件基础;DPWMA调制有效提升等效开关频率,显著降低输出电压电流的低次谐波含量,优化稳态电能质量;正负序分离锁相技术可精准提取电网正序分量,实现不平衡工况下的精确同步,保障并网电流对称性;电网电压前馈控制则提前补偿电网扰动,大幅缩短动态调节时间,抑制电压骤变引起的电流畸变与功率冲击。文章通过Simulink仿真平台对稳态、电网不平衡及动态切换等多种工况进行全面验证,结果表明该复合控制策略能显著提升系统的电能质量、运行稳定性与工况适应能力,适用于新能源发电、工业变频等大功率高质量并网应用场景。; 适合人群:具备电力电子与电力系统基础知识,从事新能源并网、电能质量治理、大功率变流器控制等方向研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究高电能质量要求下的大功率并网逆变器系统设计方法;②掌握DPWMA调制、正负序分离锁相、电网电压前馈等先进控制技术的原理与协同机制;③提升在电网电压不平衡、动态扰动等复杂工况下的系统稳定控制能力;④为实际工程应用或学术研究提供可复现的仿真模型与技术解决方案。; 阅读建议:此资源以Simulink仿真为核心,结合理论分析与性能验证,建议读者结合文中控制策略的原理讲解,动手搭建仿真模型,重点理解DPWMA调制逻辑、正负序分解算法及前馈控制的实现方式,并通过不同工况下的仿真对比,深入掌握各模块对系统性能的贡献。
源码链接: https://pan.quark.cn/s/7d0192dd9e83 【定制系统更新包 A300】是一款专门为联想A300手机设计的系统升级文件,其核心功能在于改善设备的运行表现并实现个性化调整。在信息技术领域中,刷机这一术语指的是对手机、平板等智能终端的操作系统进行更换或升级,通常目的是为了解锁更多功能、加快处理速度或解决原装系统存在的缺陷。针对此特定的更新包,我们着重分析以下几个关键点: 1. **官方系统固件的定制化版本**:ROM(只读存储器)在移动设备中代表存储系统数据的非易失性存储区,官方ROM是由设备生产商发布的初始系统软件。而定制化版本则表明该更新包在官方版本的基础上进行了调整和改进,可能包含对系统核心、应用程序、用户界面等部分的修改。 2. **用户界面定制功能**:更新包内含的个性化选项允许用户依据个人偏好调整手机的外观和操作环境,如图标样式、桌面背景、启动应用等,从而创造更加独特的操作感受。这些定制可能涉及对系统底层设置的深入修改,例如字型更换、主题设计等。 3. **系统稳定性和响应速度的提升**:这是该更新包的主要优势之一,意味着经过优化的系统能够保证设备在运行过程中的可靠性,减少系统崩溃或运行迟缓的情况,同时增强操作的流畅性,从而提升用户日常操作的满意度。 4. **电源管理脚本的集成**:省电脚本是一种自动监控设备能耗的程序,通过调节硬件参数、关闭非必要进程等方式降低电池消耗。在此次更新包中,该脚本被整合进系统,旨在延长手机的续航能力,对于电池容量有限或经常需要外出的用户尤为适用。 5. **运行效能的强化**:这表明更新包的另一核心目标在于增强设备的处理能力,可能涉及提升中央处理器的运算效率、改进内存使用策略、减...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值