QUERY 1:制作扩展字段

默认情况下,Infoset以PNP/PCH逻辑数据库作为数据源,包括Infotype的所有字段。但当我们需要输出字段不是直接从Infotype中获得时就需要制作扩展字段。典型的场景有输出计算字段,比如员工年龄,需要用当前日期减去员工生日;输出组织相关字段,比如员工的行政级别是维护在组织单元上的;输出自定义数据表的字段;甚至是工资/考勤结果表的工资项。

1.使用Infotype增强字段

对于标准Infotype或者客户化的Infotype,我们都可以制作增强字段。具体方法可以google到,这里就不重复。每当Infotype的字段更新后,Infoset也会更新。这种方法制作扩展字段很简单,但是并不是所有字段都应该存储在Infotype中,这样会浪费存储空间。而且每增加个字段都要改动Infotype的数据结构。

2.使用Infoset附加字段

事务代码SQ02,选择一个Infoset,进入修改界面,转到‘附加’tab页。选择一个信息类型,再点击新建,可以增加附加字段。步骤按照下图:

定义附加字段的数据类型、文本:

转到‘代码’tab页,为附加字段编写取数逻辑的ABAP代码。

最终效果如下,第2列是标准字段,第3列是自己做的附加字段。

3.使用Infotype查询字段

查询字段与附加字段输出效果一样,区别是查询字段可以作为选择条件出现在选择屏幕上,而附加字段不可以。

查询字段的配置方法可以参考IMG

主要步骤是:

(1)增加CI_Pnnnn_AF结构

(2)拷贝标准RPAQ_GET_AF_nnnn函数(SE37),然后增加查询字段的取数的ABAP代码

(3)从IMG转到SQ02,要手动把新的查询字段更新到Infoset。菜单路径如下:

完成后的效果,可以看到查询字段是可以作为选择条件的:

4.使用SAP Query的局部字段

局部字段顾名思义只能在一个Query使用的字段。

在SQ01的菜单路径

局部字段的取数逻辑只能编写计算公式,而不是ABAP代码。以计算员工年龄为例,ZBIRTH是P0002-GBDAT在Query中的短名称,计算公式如下:

最终效果如下

总结

本文使用员工生日计算员工年龄的场景,介绍了4种不同的实现方法。非常佩服SAP做底层架构的能力,为顾问提供如此多的可能性。个人经验来说,方法2和方法3应该是最灵活、最强大的,在实际项目中使用比较多。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值