更新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的功能。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ABAP CALL TRANSACTION 'BP是一个ABAP语言中的事务调用命令。它用于在SAP系统中执行业务事务,并可以通过传递相关数据来实现自动化处理。在这个命令中,'BP'是指调用与业务伙伴相关的事务。引用中列举了一些与业务伙伴银行详细信息相关的函数组和函数模块,可以用于修改或添加业务伙伴的银行详细信息。而引用中提到了两种简单的事务调用方法,其中第一种使用CALL TRANSACTION命令直接调用事务,第二种使用CALL TRANSACTION命令并结合批量输入表来传递数据。引用中定义了一些与事务调用相关的数据对象,例如ls_bankdetail和ls_bankdetail_x用于存储业务伙伴银行详细信息,lt_return用于存储返回消息。综上所述,ABAP CALL TRANSACTION 'BP可以用于调用与业务伙伴相关的事务,并通过传递数据来修改或添加业务伙伴的银行详细信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [SAP ABAP 更新BP银行数据](https://blog.csdn.net/weixin_43176021/article/details/129693577)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [ABAPDEMOCALLTRANSACTION使用_SAP刘梦_新浪博客](https://blog.csdn.net/senlinmu110/article/details/109651349)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值