首页 > 其他分享 >ABAP Draft handling 在 SAP 现代 Fiori 应用中的重要作用

ABAP Draft handling 在 SAP 现代 Fiori 应用中的重要作用

时间:2023-12-12 13:07:40浏览次数:20  
标签:handling 草稿 lo ABAP bopf Fiori Draft type

在SAP ABAP开发中,"Draft handling"(草稿处理)是指一种处理业务对象的机制,使用户能够在事务过程中保存未提交的更改,以便随时回到之前的状态或者在适当的时候提交更改。这个机制的实现允许用户在长时间的事务中保存中间状态,而不必担心数据的不一致性或者丢失。

"Draft handling" 的核心思想是将用户的更改保存为草稿(Draft),这样用户就可以在事务处理的过程中暂时保存工作,而不必立即提交。这对于那些需要长时间完成的事务,或者在用户需要在多个步骤中逐渐构建完整数据集的情况下非常有用。在实际应用中,例如在创建采购订单、销售订单等业务对象时,用户可以在多个步骤中逐渐填充相关信息,而不必一次性完成。

在ABAP中,Draft handling的实现通常涉及使用"BOPF"(Business Object Processing Framework)框架。BOPF是一个SAP提供的框架,用于简化业务对象的创建、更新和删除等操作,同时提供了一些高级特性,如Draft handling。以下是关于Draft handling在ABAP中的一般性步骤和一些示例:

1. 定义业务对象: 在ABAP中,首先需要定义业务对象,这可以通过使用BOPF框架的工具来完成。业务对象定义了数据结构、行为和业务逻辑,同时也指定了是否支持Draft handling。

`DATA: lo_bopf TYPE REF TO cl_bopf_factory.
lo_bopf = cl_bopf_factory=>get_instance( ).
lo_bopf->create_object_type(
  iv_object_type_id    = 'SalesOrder'
  iv_object_type_label = 'Sales Order'
  iv_interface_name    = 'IF_SALESORDER'
).

2. 启用Draft handling: 在业务对象的定义中,需要启用Draft handling的支持。这包括在业务对象类型的定义中设置相应的属性。

`DATA: lo_bopf TYPE REF TO if_bopf_frw_factory,
      lo_object_type TYPE REF TO if_bopf_frw_object_type.

lo_bopf = cl_bopf_frw_factory=>get_instance( ).
lo_object_type = lo_bopf->get_object_type( 'SalesOrder' ).
lo_object_type->set_draft_enabled( abap_true ).

3. 创建草稿: 用户在事务处理中填充数据时,可以选择保存数据为草稿而不提交。这可以通过BOPF框架提供的方法来完成。

`DATA(lo_salesorder) = lo_bopf->create_instance( 'SalesOrder' ).

" 设置数据
lo_salesorder->set_property( 'Customer', '123' ).
lo_salesorder->set_property( 'Product', 'XYZ' ).

" 保存为草稿
lo_salesorder->save( iv_mode = 'D' ).

4. 提交草稿: 当用户决定提交草稿时,可以使用BOPF框架提供的方法提交草稿。

`lo_salesorder->save( iv_mode = 'A' ).

5. 恢复草稿: 如果用户希望恢复到之前的草稿状态,也可以使用BOPF框架提供的方法。

`lo_salesorder->reset( ).

这里提供了一个简单的示例,实际上,Draft handling可能涉及到更多的业务逻辑和复杂的数据关系。通过BOPF框架,ABAP开发者可以更轻松地实现Draft handling,提供更好的用户体验和更灵活的事务处理机制。

总体而言,ABAP中的Draft handling是一种强大的机制,为用户提供了更加灵活和可控的事务处理体验。通过允许用户在事务过程中保存中间状态,而不必立即提交,Draft handling提高了系统的用户友好性,同时保障了数据的一致性和完整性。



标签:handling,草稿,lo,ABAP,bopf,Fiori,Draft,type
From: https://blog.51cto.com/jerrywangsap/8785303

相关文章

  • SAP ABAP 显式增强技术之 New BAdI 的实战介绍 - 如何创建和激活增强实现试读版
    本教程之前的文章,对SAPABAP各种增强技术做了一个概述:122.SAPABAP各种增强技术(Enhancement)概述-所谓第一代,第二代,第三代增强技术的出处是?然后第62篇文章,针对下图红色区域的基于EnhancementFramework增强技术中的隐式增强之ABAP报表增强,做了详细介绍:62.如何通过增......
  • 什么是 SAP ABAP Modification-free enhancements
    "Modification-freeenhancements"是SAPABAP中一种开发技术,旨在允许开发者对SAP标准对象进行增强而无需进行修改。这种方法可以确保在将来升级或应用支包时,不会影响到已有的修改。Modification-freeenhancements的主要思想是通过使用EnhancementFramework提供的工具,如B......
  • 什么是 SAP ABAP System Change Option
    系统更改选项(SystemChangeOption)是SAP中用于控制对系统中对象的修改权限的一种机制。在SAP系统中,有许多关键的对象,如程序、表、视图等,这些对象的修改需要谨慎操作,以确保系统的稳定性和一致性。系统更改选项提供了一种灵活的方式,允许管理员对系统中的对象进行精细的权限控制,以防止......
  • SAP ABAP 显式增强技术之 New BAdI 的技术原理介绍试读版
    本教程之前的文章,对SAPABAP各种增强技术做了一个概述:122.SAPABAP各种增强技术(Enhancement)概述-所谓第一代,第二代,第三代增强技术的出处是?然后第62篇文章,针对下图红色区域的基于EnhancementFramework增强技术中的隐式增强之ABAP报表增强,做了详细介绍:62.如何通过增......
  • SAP ABAP 各种增强技术(Enhancement)概述 - 所谓第一代,第二代,第三代增强技术的出处试
    本文回答笔者这篇教程:如何通过增强(Enhancement)的方式给SAPABAP标准程序增添新功能评论区的读者留言:这个和第一二三四代以及badi增强有什么联系呢?笔者从2007年一月就在SAP中国使用ABAP进行SAP产品开发了,说实话SAP内部不会把ABAP各种增强技术简单得冠之以第一代,第二......
  • 什么是 @openui5/themelib_sap_fiori_3
    @openui5/themelib_sap_fiori_3是SAPUI5的一个主题库,它包含SAPFiori3的样式和设计元素。SAPFiori是SAP的用户体验(UserExperience,简称UX)设计语言,其设计准则注重简单性,可个性化,并且能在不同设备之间提供一致的用户体验。Fiori3是Fiori的最新版本,提供了更加现代化和......
  • Fiori WalkThrough学习-Step02.Bootstrap
    1.Index.html<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>UI5Walkthrough</title><scriptid="sap-ui-bootstrap"src="https://openui5.hana.ondemand.co......
  • SAP Fiori Tools 的 Application Information 视图里的 Min UI5 Version
    如下图所示:这个值位于manifest.json文件中的sap.ui5.dependencies.minUI5Version字段。manifest.json是SAPUI5应用程序的一个重要文件,它包含了应用程序的所有元数据。这个文件是以JSON格式编写的,所以它是人类可读的,也可以被计算机轻松解析。在manifest.json文件中......
  • 答知识星球朋友疑问:执行 ABAP 代码出现超时的原因,背后的理论和解决方案试读版
    有朋友在我的知识星球里提问:我在bw执行一个fm的时候,出现了运行超时的问题,请问这时候要如何优化这个fm因为这位朋友没有提供具体的FunctionModule名称,所以只能泛泛而谈一下ABAP代码的超时问题。我们首先要认识一点,为什么ABAP代码运行后,理论上会出现超时(timeout)问题......
  • SAP ABAP RZ11 事务码里 Instance Profile 和 Current Value 等参数值的解读
    首先,让我们了解在SAPABAP系统中通过事务码RZ11查看参数时,涉及的四个重要组件:KernelDefault、DefaultProfile、InstanceProfile和CurrentValue。KernelDefault:含义:KernelDefault表示系统中SAP内核(Kernel)的默认配置参数值。这是SAP系统内核的全局默认设置,通常在SAP系统......