更新BP银行数据

FUNCTION GROUP:BUBA_3
BAPI_BUPA_BANKDETAIL_CHANGE
BAPI_BUPA_BANKDETAIL_ADD

FORM frm_save_data_new .

  FIELD-SYMBOLS: <fs_data> TYPE ty_data.
  DATA:
      ls_but0bk TYPE but0bk,
      lv_bkvid    TYPE but0bk-bkvid,
      lv_type TYPE char1.

  DATA: ls_bankdetail TYPE bapibus1006_bankdetail.
  DATA: ls_bankdetail_x TYPE BAPIBUS1006_BANKDETAIL_X.
  DATA: lt_return TYPE TABLE OF bapiret2.
  DATA: ls_return TYPE bapiret2.

  LOOP AT gt_data ASSIGNING <fs_data> WHERE led IS INITIAL.
    CLEAR: lv_type,lt_return[],ls_bankdetail_x,ls_return.

*    判断<  银行账号 + 参考明细 > 是否一样  --》 一样:
*    判断账户收款人是否一样(如果一样,提示“已存在”,如果不一样,执行处理的时候修改账户收款人)
    READ TABLE gt_but0bk INTO ls_but0bk WITH KEY partner = <fs_data>-lifnr
                                                 bankl = <fs_data>-bankl
                                                 bankn = <fs_data>-bankn
                                                 bkref = <fs_data>-bkref BINARY SEARCH.
    IF sy-subrc = 0.
      lv_type = 'U'.
    ELSE.
      lv_type = 'I'.
    ENDIF.

    ls_bankdetail-bank_ctry = <fs_data>-banks.
    ls_bankdetail-bank_key  = <fs_data>-bankl.
    ls_bankdetail-bank_acct = <fs_data>-bankn.
    ls_bankdetail-ctrl_key  = <fs_data>-bkont.
    ls_bankdetail-bank_ref  = <fs_data>-bkref.
    ls_bankdetail-accountholder = <fs_data>-koinh.
    IF lv_type = 'I'.
      CALL FUNCTION 'BAPI_BUPA_BANKDETAIL_ADD'
          EXPORTING
            businesspartner       = <fs_data>-lifnr
            bankdetaildata        = ls_bankdetail
         TABLES
           return                = lt_return
                  .
    ELSE.
      ls_bankdetail_x-ctrl_key = abap_true.
      ls_bankdetail_x-accountholder = abap_true.
      CALL FUNCTION 'BAPI_BUPA_BANKDETAIL_CHANGE'
        EXPORTING
          businesspartner        = <fs_data>-lifnr
          bankdetailid           = ls_but0bk-bkvid
          bankdetaildata         = ls_bankdetail
          bankdetaildata_x         = ls_bankdetail_x
       TABLES
         return                 = lt_return
                .

    ENDIF.

    READ TABLE lt_return INTO ls_return INDEX 1.
    IF sy-subrc = 0.

      MESSAGE ID ls_return-id TYPE ls_return-type NUMBER ls_return-number
       WITH ls_return-message_v1  ls_return-message_v2 ls_return-message_v3 ls_return-message_v4
       INTO <fs_data>-message.
      <fs_data>-led = 1.

      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

    ELSE.
      <fs_data>-message = '修改成功'.
      <fs_data>-led = 3.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
       EXPORTING
         wait          = abap_true.

    ENDIF.
  ENDLOOP.

ENDFORM.

这个函数组下还有其他关于BP的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值