SAP 银行表信息及其增删改查 BAPI 方法

1,309 阅读5分钟

SAP CRM Business Partner Banking Detail 是 SAP CRM BP 的主要数据。它有助于组织和收集 SAP CRM BP 银行数据并加速支付流程。

在这篇文章中,将解释业务合作伙伴银行主数据的 SAP CRM 数据模型,以及在 SAP CRM 中使用 ABAP 代码提取 SAP CRM BP 银行数据的示例。

还介绍了 SAP CRM BP BAPI for Banking 的列表(读取、更新和删除)。

SAP CRM BP 银行表

业务伙伴银行详细信息的主要 SAP CRM 数据模型表是:

  • BUT0BK
  • BUT0BANK
  • BNKA

SAP CRM BP 银行表的字段列表是:

BP:银行明细 BUT0BK

业务合作伙伴银行数据和详细信息

图片.png

  • PARTNER: Business Partner ID,业务伙伴编号
  • BKVID: Bank details ID,银行明细标识
  • BANKS: Bank country key,银行国家代码
  • BANKL: Bank Keys,银行代码
  • BANKN: Bank account number,银行账号
  • BKONT: Bank Control Key,银行控制代码
  • BKREF: Reference specifications for bank details,银行细目的参考明细
  • KOINH: Account Holder Name,账户持有人姓名
  • BKEXT: Bank details ID in external system,外部系统中的银行明细标识
  • XEZER: Indicator: Collection Authorization,指示符:托收权限
  • ACCNAME: Name of Bank Account,银行帐户的名称
  • MOVE_BKVID: ID of Target Details for Change of Bank Details (BP),更改银行明细的目标明细标识(业务伙伴)
  • BK_VALID_FROM: Validity Start of Business Partner Bank Details,业务伙伴银行明细的有效起始日
  • BK_VALID_TO: Validity End of Business Partner Bank Details,业务伙伴银行明细的有效结束日期
  • BK_MOVE_DATE: of Change to Bank Details (BP),银行明细的更改日期 (BP)
  • IBAN: (International Bank Account Number),IBAN(国际银行账号
  • BANK_GUID: Bank GUID,银行 GUID
  • ACCOUNT_ID: Bank Account Number (New),银行账号 (新)
  • CHECK_DIGIT: Bank Account Check Digit,银行账户校验位
  • ACCOUNT_TYPE: Bank Account Type,银行账户类型

业务合作伙伴: 银行数据 BUT0BANK

业务合作伙伴: 银行数据

  • PARTNER: Business Partner ID
  • BANKL: Bank Keys
  • BANKS: Bank country key
  • MIN_RESERV: Minimum Reserve Requirement for Bank

图片.png

银行主数据 BNKA

  • BANKS Bank: country key
  • BANKL: Bank Keys
  • ERDAT: Date on which the record was created
  • ERNAM: Name of person who created the object
  • BANKA: Name of bank
  • PROVZ: Region (State, Province, County)
  • STRAS: House number and street
  • ORT01: City
  • SWIFT: Code for International Payments
  • BGRUP: Bank group (bank network)
  • XPGRO: Post Office Bank Current Account
  • LOEVM: Deletion Indicator
  • BNKLZ: Bank number
  • PSKTO: Post office bank current account number
  • ADRNR: Address number
  • BRNCH: Bank Branch
  • CHKME: Check digit calculation method
  • VERS: Format of File with Bank Data

SAP CRM 业务伙伴银行业务 BAPI

最常用的 SAP CRM BAPI for Business Partner Banking 是:

  • BAPI_BUPA_BANKDETAILS_GET: SAP BP, BAPI: Determine All Bank Details
  • BAPI_BUPA_BANKDETAIL_ADD: SAP BP, BAPI: Add Bank Details
  • BAPI_BUPA_BANKDETAIL_CHANGE: SAP BP, BAPI: Change Bank Details
  • BAPI_BUPA_BANKDETAIL_GETDETAIL: SAP BP, BAPI: Read Bank Details
  • BAPI_BUPA_BANKDETAIL_NUMBERS: SAP BP, BAPI: Read Bank Details Numbers
  • BAPI_BUPA_BANKDETAIL_REMOVE: SAP BP, BAPI: Delete Bank Details

查询银行明细

框架:

CALL FUNCTION 'BAPI_BUPA_BANKDETAILS_GET' "SAP BP, BAPI: Determine All Bank Details
  EXPORTING
    businesspartner =           " bapibus1006_head-bpartner  Business Partner Number
*   valid_date = SY-DATLO       " bapibus1006_validity-valid_date  Initial Date for Business Partner Data
* TABLES
*   bankdetails =               " bapibus1006_bankdetails  Bank Details
*   return =                    " bapiret2      Messages
    .  "  BAPI_BUPA_BANKDETAILS_GET
************************************************************************************************
* Get SAP CRM Business Partner Banking Details ( Payer ) 
************************************************************************************************
  DATA: lt_bankdetails 	  	TYPE TABLE OF bapibus1006_bankdetails,
        lt_relationships  	TYPE TABLE OF bapibus1006_relations,
        lt_return  		TYPE BAPIRETTAB,
        lv_bp 			TYPE bu_partner.


  " Get SAP CRM BP Relationship PAYER
  CALL FUNCTION 'BUPA_RELATIONSHIPS_GET'
    EXPORTING
      iv_partner               = iv_account
      iv_relationship_category = 'CRMH03'
    TABLES
      et_relationships         = lt_relationships.
    
    " Get only the First Payer 
    READ TABLE lt_relationships INTO ls_relationships INDEX 1.
    IF sy-subrc  = 0.
      lv_bp = ls_relationships-partner2. "Payer
    ELSE.
      lv_bp = iv_account. "Account
    ENDIF.
  
  " Get SAP CRM Business Partner Banking Details
   CALL FUNCTION 'BAPI_BUPA_BANKDETAILS_GET'
    EXPORTING
      businesspartner = lv_bp
      valid_date      = sy-datlo
    TABLES
      bankdetails     = lt_bankdetails
      return          = lt_return.

新增银行信息

CALL FUNCTION 'BAPI_BUPA_BANKDETAIL_ADD'  
      EXPORTING  
        businesspartner = l_bpartner  
*           bankdetailid    = '0001'  
        bankdetaildata  = ls_bapibus1006_bankdetail  
*           BANKDETAILDATA_X       =  
      TABLES  
        return          = lt_return2.

修改银行信息

CALL FUNCTION 'BAPI_BUPA_BANKDETAIL_CHANGE'  
      EXPORTING  
        businesspartner  = l_bpartner  
        bankdetailid     = ls_bankdetails-bankdetailid  
        bankdetaildata   = ls_bapibus1006_bankdetail  
        bankdetaildata_x = ls_bapibus1006_bankdetailx  
      TABLES  
        return           = lt_return2.

删除银行信息

** Read Bank Details  
  call function '**BAPI_BUPA_BANKDETAILS_GET**'  
    exporting  
      businesspartner = lv_partner  
    tables  
      bankdetails     = lt_bankdetails  
      return          = lt_return.  
  
  if lt_bankdetails[] is initial.  
    return.  
  endif.  
  
  read table lt_return transporting no fields with key type = 'E'.  
  if sy-subrc = 0.  
    ev_result = abap_false.  
    return.  
  endif.  
  
  read table lt_return transporting no fields with key type = 'A'.  
  if sy-subrc = 0.  
    ev_result = abap_false.  
    return.  
  endif.  
  
  loop at lt_bankdetails into ls_bankdetails.  
    clear lt_return[].  
    call function 'BAPI_BUPA_BANKDETAIL_REMOVE'  
      exporting  
        businesspartner = lv_partner  
        bankdetailid    = ls_bankdetails-bankdetailid  
      tables  
        return          = lt_return.  
    
    
    read table lt_return transporting no fields with key type = 'E'.  
    if sy-subrc = 0.  
      return.  
    endif.  
    
    read table lt_return transporting no fields with key type = 'A'.  
    if sy-subrc = 0.  
      ev_result = abap_false.  
    endif.

输入银行详细信息

使用

对于每个客户,您可以根据需要指定任意数量的银行。如果您打算使用付款程序向客户收取付款(例如,如果您有自动付款授权),则需要客户的银行详细信息。

要在客户主记录中输入银行详细信息,请在一般数据区域中输入银行所在国家/地区、银行代码和银行帐号。出于控制目的,系统随后会显示银行名称。

字段 Country 和 Bank key 用于在 SAP 系统中清楚地识别银行。使用这些键,您可以输入更多银行数据,例如地址。

通常银行是通过银行号管理的。这是作为银行代码输入的。在某些国家,例如荷兰,帐号用于此功能。在这种情况下,您应该输入帐号作为银行代码。

先决条件

当您输入客户的银行详细信息时,系统会检查该银行的主数据是否已经存在。如果不是,系统将转到银行主数据的维护屏幕。

程序

要输入银行详细信息,请按以下步骤操作:

  1. 创建一个客户主数据:通过从“应收帐款”菜单中选择主记录来创建客户主记录。

  2. 选择帐户组,输入帐号(如有必要)和公司代码,然后选择 Enter。

  3. 输入地址和控制数据。

  4. 选择付款交易的选项卡页面。在此屏幕上,输入银行国家,银行代码,银行账号和控制密钥(例如,法国要求)。此外,您可以输入付款计划的银行类型,并指出允许自动借方授权。

  5. 如果指定银行尚不存在主数据,系统会显示一个附加窗口,您可以在其中输入银行主数据。

  6. 输入银行的主数据。

  7. 选择 Enter 返回客户主记录的输入屏幕。

如果您想更改或添加银行主数据,请将光标定位在相应的银行上并选择 银行数据 。系统弹出主数据录入和维护对话框。您可以在支付卡下输入有关客户支付卡的详细信息 。

结果

输入的银行详细信息会立即出现在付款 交易屏幕的银行详细信息列表中 。但是,在您保存相应的客户主记录之前,它们不会被保存。

总结

使用 'BAPI_BUPA*' 在 SE37 中进行通配符搜索。您将获得所有业务合作伙伴 BAPI。

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 11 天,点击查看活动详情