SAP S4系统ALV双击供应商编号跳转BP供应商界面功能实现

1、首先ucomm功能

  CASE r_ucomm.
    WHEN '&IC1'.     "跳转ME23N
      IF rs_selfield-fieldname = 'PARTNER'.
        PERFORM call_trans_bp USING rs_selfield.
      ENDIF.
  ENDCASE.

2、PERFORM跳转功能实现

FORM call_trans_bp  USING    rs_selfield TYPE slis_selfield.

**********************************************************************
  DATA: lv_suppl_role_exist        TYPE char1,
        lv_role_start              TYPE bu_partnerrole,
        lv_aktyp                   TYPE bu_aktyp,
        lv_sicht_start             TYPE bu_sicht,
        lv_vartp_start             TYPE bu_vartp,
        lv_state_fcode             TYPE char1,
        lv_state                   TYPE char1,
        lv_nav_disable             TYPE xflag,
        lv_locator_disable         TYPE xflag,
        lv_part_sw_allowed         TYPE char1,
        lv_save_to_leave           TYPE xflag VALUE 'X',
        lv_group_selection_enabled TYPE xflag,
        lv_bp_number               TYPE char40,
        lt_tb003                   TYPE TABLE OF bus_tb003_t,
        lt_partnerroles            TYPE bup_partnerroles_t,
        ls_fldvl                   TYPE bus0fldval,
        lt_fldvl                   TYPE bu_bus0fldval_t,
        ls_rolegrp                 TYPE bup_partnerrolegroupings,
        lt_rolegrp                 TYPE TABLE OF bup_partnerrolegroupings,
        lv_issue_msg               TYPE xflag.
**********************************************************************
  lv_sicht_start = 'BUA130'.
  lv_part_sw_allowed           = 'X'.
  lv_save_to_leave             = 'X'.
  lv_group_selection_enabled   = 'X'.
  lv_state                     = '3'.

**********************************************************************
  lv_aktyp = '02'.

  lv_bp_number = RS_SELFIELD-VALUE.  "供应商编号

* Providing the business partner number to the business partner dialog.
  ls_fldvl-tbfld = 'BUS000FLDS-PARTNER'.
  ls_fldvl-fldvl = RS_SELFIELD-VALUE."wr02d-site_bp.   "A033
  INSERT ls_fldvl INTO TABLE lt_fldvl.

  SELECT SINGLE bu_group
    INTO @DATA(l_group)
    FROM but000
    WHERE partner = @RS_SELFIELD-VALUE.
* In case of creation, provide the BP grouping
*  IF gv_bp_exists NE abap_true.
  ls_fldvl-tbfld = 'BUS000FLDS-BU_GROUP'.
  ls_fldvl-fldvl = l_group."wr02d-bp_grp_site.  "ZD04
  INSERT ls_fldvl INTO TABLE lt_fldvl.

* In case of creation of a retail site, the type of the attached Business Partner
* is organization.
  ls_fldvl-tbfld = 'BUS000FLDS-TYPE'.
  ls_fldvl-fldvl = '2'.
  INSERT ls_fldvl INTO TABLE lt_fldvl.
*  ENDIF.

**********************************************************************
* Call Business Partner Maintenance
  CALL FUNCTION 'BUP_PARTNER_MAINTAIN_REDIRECT'
    EXPORTING
      i_aktyp      = lv_aktyp   "activity in BP transaction
      i_xinit      = ''         "No display of the entry screen
      i_xsave      = 'X'        "= SAVE Button is always offered (for create, change and display)
      i_sicht_start    = lv_sicht_start       "view to start the BP maintenance
      i_role           = lv_role_start   "role / rolegrouping to start the BP maintenance
      i_nav_disable     = lv_nav_disable       "disable navigation completely
      i_locator_disable  = lv_locator_disable   "disable the locator window
      i_xallow_partner_switch   = lv_part_sw_allowed   "disable the switch to another BP
      i_save_to_leave    = lv_save_to_leave     "leave to site maintenance after saving
      i_group_selection_enabled = lv_group_selection_enabled   " Provided BP grouping shall not be changeable
    IMPORTING
      e_state          = lv_state
      e_state_fcode    = lv_state_fcode   "contains info how the user left the business partner maintenance
      e_bp_number       = lv_bp_number
    TABLES
      t_fldvl           = lt_fldvl             "predefined field values
      t_role            = lt_partnerroles      "BP roles that can be maintained
      t_rolegrp         = lt_rolegrp.          "BP groupings that can be maintained

ENDFORM.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ᝰ随心ꦿེএ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值