SAP S4/HANA BP屏幕增强添加自定义字段(BDT方式)
喜欢博主的读者也许会意识到,这是本博客中第一篇有关屏幕增强的文章。之前没有总结过相关的东西,除了因为相关经验有限之外,我个人也是不喜欢所谓dynpro编程的,它有许多“潜规则”一样的东西要记住,想要运用熟练,就需要花些力气去学,而它又十分老旧,在SAP的UI技术发展路线中处于越来越不重要的地位..即便学成,可能也没什么特别的用处。
但是在S4开始普及的这段时间里,我们毕竟还是使用着GUI。过去的供应商、客户的事务代码被废弃,相关的功能被整合到事务代码BP(Business Partner)中,因此相应的增强也要改在这里做,原有的经验已经失去意义。考虑到这种需求可能十分普遍,而网上的资料十分的少(大部分搜索结果都是都是有关CRM的增强),我打算简要地写下在BP增强添加字段的方法。
有CRM开发经验的开发者会知道,在CRM系统中可以使用EEW、AET等方式进行相关增强,使用起来十分便利。然而在非CRM系统中是找不到这两项功能的。系统中也不会有相关的BADI。
这里我们可以使用的技术是Business Data Toolset(以下简称BDT)。
以下是网络上的两个step by step教程,我和同事按照这两份教程进行过增强:
在按照这两份教程进行相关函数组的创建和配置后,我们发现,新增加的tab页可以正确显示数据,但并不能保存。
经验证,问题出在没有写相应的保存方法。(奇怪的是,上面的教程在这方面似乎十分轻描淡写)
对于BUT000的增强字段而言,可以在ISDAT事件中调用FM: BUP_BUPA_BUT000_GET 以获取数据,该事件负责了PBO过程中显示数据的获取;在DSAVB事件中调用FM: BUP_BUPA_BUT000_COLLECT ,该事件应当负责将数据放入内存;这两者在上面的博客中也有所提及。另外要注意的是:在DSAVE事件中调用FM: BUP_MEMORY_BUT000_FILL 将数据写入数据库。
以上是实践中可行的办法。至于AbapLog中的教程为什么行不通,这背后的原理是什么,我没有深究。读者如果有兴趣的话,不妨自行阅读相关的SAP文档。
此外,表BUT000(BP主数据)和表LFA1(供应商主数据)、KNA1(客户主数据)之间可以通过表CVI_VEND_LINK、CVI_CUST_LINK进行连接,也有相关的快速访问视图可以使用。
本文链接:http://www.cnblogs.com/hhelibeb/p/7412792.html
参考链接:SAP S/4 BP 屏幕增强