网站大量收购独家精品文档,联系QQ:2885784924

如何在SAP系统中实现供应商主数据屏幕增强.doc

如何在SAP系统中实现供应商主数据屏幕增强.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如何在SAP系统中实现供应商主数据屏幕增强

如何实现供应商主数据屏幕增强 Dario 最近在项目之中应客户需求采用BADI方式实现了一个供应商主数据的屏幕增强,其逻辑虽然比较简单,但是包含了实现一个典型的BADI屏幕增强所需的所有元素,同时这个方式对于客户主数据增强也是完全适用的,所以在这里记录下来做一个简单的总结。 先来看看最后的效果,通过事务代码xk01/xk02/xk03(mk01/mk02/mk03)进入供应商主数据屏幕后,可以看到屏幕上多出了一个按钮: 双击进去之后就可以看到我们新增的增强屏幕和增强字段: 根据SAP的说明,在这里我们最多可以添加32个tabs,肯定是用不完的了,一个基本上就够了。 接下来看看怎么样一步步实现这个功能: 第一步,附加一个增强结构到标准表lfa1中, 第二步,进入事务代码SPRO,在中文环境下按照路径 后勤-常规-业务合作伙伴-供应商-控制-客户所有的主数据字段的采用,选择第一步“准备供应商主记录的自由修改增强”,添加一条记录到视图V_TSCGR_VENDOR中: 选中这条记录,再双击“标签Tab页”就可以添加一条记录到视图V_TAXITABS_KRED中,这里我们定义的是一个Tab页。 上面这两步都是属于配置的部分,需要产生传输请求号保存。 接下来我们需要实现BADI vendor_add_data中的一个方法来让我们的增强被激活。 代码很简单: CHECK?i_screen_group?=?‘ZV’. e_add_on_active?=?‘X’. 对于BADI vendor_add_data的实现目前就只需要这一个接口方法。 接下来继续实现BADI vendor_add_data_cs ,这个才是这个屏幕增强的主体部分,和传统的屏幕增强方式不同(传统的屏幕增强例如采购订单的增强MM06E005),这里只提供了几个接口,真正的逻辑需要自己完全建立一个新的function group(这个function group和那些以X开头的增强函数组例如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?FUNCTION?‘ZMM_FM_004′ EXPORTING i_activity?=?i_activity i_lfa1_jck?=?i_jck. ENDIF. 对于FUNCTION ZMM_FM_004,代码如下: FUNCTION?zmm_fm_004. *”———————————————————————- *”*”Local?interface: *”??IMPORTING *”?????VALUE(I_ACTIVITY)?TYPE??AKTYP *”?????VALUE(I_LFA1_JCK)?TYPE??ZMM_LFA1 *”———————————————————————- CLEAR:g_activity,lfa1. g_activity?=?i_activity.???“A–DISPLAY;h–CREATE;V–CHANGE lfa1-zzbxtk?=?i_lfa1_jck-zzbxtk.??“新件保修条款 lfa1-zzsptk?=?i_lfa1_jck-zzsptk.??“修后索赔条款 lfa1-zzvdcd?=?i_lfa1_jck-zzvdcd.??“Vendor?Code ENDFUNCTION. 这里的g_activity,lfa1都被定义成全局变量,用于在整个过程中储存从标准程序传过来的值,其中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和程序名并不是传统增强方式的格式,是我们自己完全重新建立的。 最后这些数据如果被修改了,需要实现接口方法GET_DATA传回数据给给

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档