SAP小技巧 添加附件功能

点击蓝字 关注我们

前言

SAP标准附件服务(workflow BOX)是在单据的处理界面左上角的程序标题旁边添加的一组按钮,这组按钮能处理和单据相关的工作流/附件/URL链接/备注等功能.

本文介绍怎么在自定义程序中启用标准附件功能及相关注意事项

标准附件功能

标准附件功能是否显示,取决与用户是否为DIALOG用户, 如果登录用户类型不是A 对话. 标准附件功能可能无法显示. (图一)

用户参数SD_SWU_ACTIVE的设置会影响VA02/VA03的标准附件功能的显示

图三是采购订单中显示的标准附件功能

图四是标准附件功能包含的菜单项

46f2f09fc0e0f5a9810b7b4a516e5423.png

图一

a7519e616dc6c78d29db89591792441d.png

图二

503a79759cce3739ce20b98f08953329.png

图三

8f2c212cd56bca136ce9aeeede398e3b.png

图四

使用标准附件功能

在自己开发的程序中使用标准附件功能有两种方式,需要根据实际情况判断一下使用哪种方式. 方式一和方式二的本质时一样的. 都是调用类 CL_GOS_MANAGER 实现

  • 进入界面时已有单号使用方式一

  • 进入界面时没有单号,使用方式二 

(方式二其实也整合了方式一, 可以直接使用方式二)

01

方式一

通过标准函数实现附件功能

  • SWU_OBJECT_PUBLISH

  • SWU_OBJECT_REFRESH

8fa46896e97b96213d43e36d03bc9d9c.png

在PBO 创建模块调用函数

2151949ab61525d70af2ab3dc22b1383.png

在PAI创建模块调用函数

93fab83f1d590acfa947a1b01e404a9d.png

02

方式二

直接通过类CL_GOS_MANAGER启用附件功能

PBO 中

创建对象

根据是否存在单号确定参数ip_no_instance 的值. 该参数的值会影响是否能显示对象已经存在的附件. 如果为空, 无法显示单号已经存在的附件

所以该参数需要根据单据是否为空来设置.

3aa9f9a2cfc5193df322ed97f25b400c.png

PAI

获取单号,并调用对象的方法 set_id_of_published_object 更新已经创建的附件和单据的关系. 最后需要通过COMMIT WORK语句提交一下. 以确保单据和附件的关系能成功保存.(COMMIT WORK 不是必须的, 程序结束会隐式提交以下,也能保存).

9a2bbcd0744e2536c0eda3bdc5afefaa.png

相关表

SRGBTBREL存放了GOS中的关联信息. 可以通过它获取附件的类型及数量.

94203d842edd16e482986c6383ea06e7.png

附件功能的增强

标准附件功能的对象 CL_GOS_MANAGER 是一个封装的非常完整的类. 

但是比较遗憾的是,在这个类中没有提供一个简单的方法查询单据的附件清单(也可能是我没有找到,如果你知道怎么获取,不吝赐教一下).

实现如下增强会比较麻烦: 单据保存时需要检查附件是否存在,如果不存在报错.

常规思路: 在单据保存前检查单据是否存在附件清单 .找到标准单据通过类CL_GOS_MANAGER定义的对象. 尝试通过对象获取附件清单. (如下图是采购订单检查中尝试获取对象清单. ) 跟踪了一天也啥结果.

所以改变思路. 在CL_GOS_MANAGER 特定的服务的类 (比如 CL_GOS_SRV_URL_CREATE 时创建URL的类) 中隐式增强,并且通过全局变量传递附件创建的结果. 订单检查增强中获取这个结果. 作为判断保存的依据之一

014df9a0184e2ffa5443b181389a8752.png

总结

SAP标准附件服务(workflow BOX)是一个封装度很高的服务. 在相应的屏幕定义时简单调用即可完成自定义单据的附件服务. 使用很方便. 并且这个服务同时支持GUI客户端及网页客户端.

THE

END

约定

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.       

    (如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)

8955f49b0638e2ec6da889c7d2177cc8.png

公众号 : syjf1976_abap

          ABAP开发技巧

微信号 : 392077

请微信联系管理员: 

syjf1976 

sharry_xlp  

Yannick_Duan 

申请进入公众号讨论群提问或者参与话题讨论


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部