欢迎来到天天文库
浏览记录
ID:11256454
大小:413.50 KB
页数:8页
时间:2018-07-11
《如何在sap系统中实现供应商主数据屏幕增强》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、如何实现供应商主数据屏幕增强□作者:Dario最近在项目之中应客户需求采用BADI方式实现了一个供应商主数据的屏幕增强,其逻辑虽然比较简单,但是包含了实现一个典型的BADI屏幕增强所需的所有元素,同时这个方式对于客户主数据增强也是完全适用的,所以在这里记录下来做一个简单的总结。先来看看最后的效果,通过事务代码xk01/xk02/xk03(mk01/mk02/mk03)进入供应商主数据屏幕后,可以看到屏幕上多出了一个按钮:双击进去之后就可以看到我们新增的增强屏幕和增强字段:根据SAP的说明,在这里我们最多可以添加32个tabs,肯定是用
2、不完的了,一个基本上就够了。接下来看看怎么样一步步实现这个功能:第一步,附加一个增强结构到标准表lfa1中,第二步,进入事务代码SPRO,在中文环境下按照路径后勤-常规->业务合作伙伴->供应商->控制->客户所有的主数据字段的采用,选择第一步“准备供应商主记录的自由修改增强”,添加一条记录到视图V_TSCGR_VENDOR中:选中这条记录,再双击“标签Tab页”就可以添加一条记录到视图V_TAXITABS_KRED中,这里我们定义的是一个Tab页。上面这两步都是属于配置的部分,需要产生传输请求号保存。接下来我们需要实现BADIven
3、dor_add_data中的一个方法来让我们的增强被激活。代码很简单:CHECK i_screen_group = ‘ZV’.e_add_on_active = ‘X’.对于BADIvendor_add_data的实现目前就只需要这一个接口方法。接下来继续实现BADIvendor_add_data_cs,这个才是这个屏幕增强的主体部分,和传统的屏幕增强方式不同(传统的屏幕增强例如采购订单的增强MM06E005),这里只提供了几个接口,真正的逻辑需要自己完全建立一个新的functiongroup(这个functiongroup和那些以X
4、开头的增强函数组例如XM06是不一样的),将这些接口的参数对应的在函数组里面定义成一些全局变量,然后进行处理。首先要选择filters为我们之前定义的屏幕组ZV:然后分别实现这个BADI的几个方法。其中SET_DATA方法用于传输数据从标准程序到我们的增强屏幕。代码如下:DATA:i_jck TYPE zmm_lfa1.i_jck-zzbxtk = i_lfa1-zzbxtk.i_jck-zzsptk = i_lfa1-zzsptk.i_jck-zzvdcd = i_lfa1-zzvdcd.IF flt_val = ‘ZV’.CALL
5、 FUNCTION ‘ZMM_FM_004′EXPORTINGi_activity = i_activityi_lfa1_jck = i_jck.ENDIF.对于FUNCTIONZMM_FM_004,代码如下:FUNCTION zmm_fm_004.*”———————————————————————-*”*”Local interface:*” IMPORTING*” VALUE(I_ACTIVITY) TYPE AKTYP*” VALUE(I_LFA1_JCK) TYPE ZMM_LFA1*”—————————
6、——————————————-CLEAR:g_activity,lfa1.g_activity = i_activity. “A–>DISPLAY;h–>CREATE;V–>CHANGElfa1-zzbxtk = i_lfa1_jck-zzbxtk. “新件保修条款lfa1-zzsptk = i_lfa1_jck-zzsptk. “修后索赔条款lfa1-zzvdcd = i_lfa1_jck-zzvdcd. “Vendor CodeENDFUNCTION.这里的g_activity,lfa1都被定义成全局变量,用于在整个过程
7、中储存从标准程序传过来的值,其中g_activity的不同值分别对应了事务代码X(M)K01/X(M)K02/X(M)K03.这些值传过去之后,就需要实现接口方法GET_TAXI_SCREEN来决定出当前的Tab页:IF flt_val = ‘ZV’.CASE i_taxi_fcode.WHEN ‘ZV_JCK’.e_screen = ‘9000′.e_program = ‘SAPLZMM_FG_003′.e_headerscreen_layout = space.ENDCASE.ENDIF可以看到这里的screen和程序名并不是传统
8、增强方式的格式,是我们自己完全重新建立的。最后这些数据如果被修改了,需要实现接口方法GET_DATA传回数据给给SAP标准程序。DATA: s_jck TYPE zmm_lfa1.IF flt_val = ‘ZV’.CA
此文档下载收益归作者所有