创建银行账号

银行账号就是我们用来收款,付款时的银行账号了,比如我的银行卡号就是一个银行账号。此功能对应的SAP标准功能是FI12,在ECC版本直接可以在FI12上创建银行账号,但HANA S4时默认时FI12是不可创建的,需要修改配置(网络上可找到),S4推荐的维护银行账号的方法是使用FIORI,在项目中也使用了WEBDypro做了一个更复杂的功能来实现,但我觉得一般需求来说,使用FIORI应该是最好的选择,

银行账号没有做增强,同时也做了一个批量导入账号的程序 。

1.批量导入银行账号

批量导入账号时一般只用于系统上线时的初期导入使用,所以在程序 中做了一些历史账号的删除操作,

程序 中主要使用EXECL模板文件,上载数据 ,并调用函数 BAPI_HOUSE_BANK_REPLICATE,来创建银行账号

注:在导入银行账号时,为了方便后面的银企直联使用,做了一个自定义表T012K(T012T),一些标准表没有的数据,写到了自定义表中,

2.FIORI 创建银行账号

在此介绍标准的创建银行账号APP的实施过程, 可以在线演示,(账号:ZTEST01,密码: Ut163.com)

由于银行账号的一些信息SAP标准表没提供,但银企直联是需要的,所以自定义了一个表,用于存放银行账号的相关的一些标准、非标准信息,所以在做创建银行账号 FIORI APP时,得增强写入一些自定义的信息,并在账号保存时写到自定义表中。

先在sap FIORI library功能中找到FI12对就的管理银行的功能APP信息,这是我当前 找到的,里面应该还有其它的账号管理的APP,可以找了试试。打开后得到下面使用到的一些信息,比如:ODATA,APP运用名,角色名,都是我们所需要的(在查看时注意选择SAP服务的版本)

创建银行账号 - 第1张  | 优通SAP

2.1.激活ODATA

如上图,OData Service为:FCLM_BAM_ACCOUNTWD_SRV,FIN_USER_DEFAULTPARAMETER_SRV,C_SITNINSTANCETP_CDS *,

所以使用事务码/n/IWFND/MAINT_SERVICE,添加服务,

2.2.Launchpad配置启用APP

Business Group为SAP_SFIN_BCG_BANK_REL,这与前一步中银行代码的组是同一个,如在上一步中启用的是这个组那在这里就不用设置了

使用事务码/UI2/FLP ,在IE中打开Launchpad的配置页而,这个出来的是带CLIENT的,直接启用 SAP_SFIN_BCG_BANK_REL ,这样会把银行相关的很多东西都一起启用,如要细节的显示指定的功能APP,那需要建立一个新的GROUP,并把APP分配给组,更多细节操作可以我的网站上找,在其它章节有细说,

2.3.给用户分配角色权限

角色 对像为:SAP_BR_CASH_MANAGER

使用事务码PFCG,把这两角色都分配给用户,

2.4.增强扩展字段

比如不是每一个银行账号都可以用来做银行直连支付的,所以我们需要表中记录账号是否可用做银企直连接,及直连开户日期等。

增强扩展细节可参看:FIORI 增强/扩展

银行账号扩展标准文档:App Extensibility: Manage Bank Accounts

到此,前台用户就可以使用FIORI APP 进行银行管理了。比如我们的演示地址:演示

由于后面在做银企直连时,要用到银行账号,所以需要把银行账号的属性记录到自定表中(主要是以前做的银企直连功能在ECC中使用的都是自定义表,所以在此只能把银行账号也写到自定义表中,以后考虑把自定义表取消,只使用标准表及在标准表中增加的扩展字段)

创建增强字段后,会在表FCLM_BAM_AMD,增强对应的字段,最终在显示银行账号时先用CDS视图IBKACCTNUMBERVH按账号取得技术标识 ,再调用CDS视图IBANKACCOUNTTP,并显示版本号(修订编号)为0的账号数据。来显示出完整的银行账号数据。

2.5.注:

1.在FIORI APP“管理银行账号”中创建完银行账号后,需要使用另外一个账号来激活(不知为什么用当前账号不能激活,应该不是权限的问题,可能是那里配置不对,用其它相同权限的账号就能激活),

2.在账号修改后,也需要用另外的账号来激活。这里应该可以参考一下,在Financial Supply Chain Management -》现金和流动性管理 -》常规设置中配置后,可直接激活。。

3.WEBDypro 创建银行账号

WEBDYPRO或者是自开发程序时,数据会保存到自定义表,同时保存在标准表,而如使用标准的FIORI时,自定义表就没有数据(应该也可以使用增强在保存账号时把数据保存到自定表中),此种情况下可以做一个“替代”标准表的CDS然后在自定义表中使用替代表,这样就会指向CDS,当从自定表表读取数据时就可以从自定义表中取数了。

以下是在 自定义程序中创建银行账号数据的一段代码例子

4.S4 特殊处理

上面的代码update_house_bank_account在ECC中能正确创建银行账号,但在S4上确不能创建,在类CL_FCLM_BAM_HOUSE_BANK_API-》UPDATE_HOUSE_BANK_ACCOUNT中的开头写入增强,就可正常

对原ZBAPI_HOUSE_BANK_REPLICATE函数复制为新函数 ,并进行修改。

5.参考资料

SAP S4 HANA 银行账户管理

管理银行账户 – SAP 帮助门户