此功能对应SAP标准事务码FI01的相关功能,相当于创建银行办公室的意思 ,比如**银行*支行,**银行**营业室之类的机构代码,
在SAP中名叫”创建银行主数据”,这里的银行代码,这里相当于是“行号”,就是支付时账号所属的行号或者说是开户行行号,为了使银行账号对应的行号,与SAP的银行代码有一个对应关系,所以我在做了一些增强。
我在创建银行代码这功能上做了以下四种方法创建:
1.标准FI01创建;
2.做了一个批量导入功能,这样可以大批量的导入银行代码,
3.使用WEB 方法,启用创建银行代码的FIORI APP。在线演示,(账号:ZTEST01,密码:Ut163.com)
4.WEBDypro创建银行代码,
以下是相关功能的说明。
1.增强FI01,并创建FI01创建银行代码
增强主要目的是在FI01创建可FI02修改银行代码时通过配置的银行代码标志,把银行代码所对应的行别(交行、农行等)记入到BNKA表中,并实现FB01如图功能,图中的银行编码就是真正的银行中使用中行号,通常来说,银行代码我们会操持与行号相同。
1.1.在行别配置表中配置CNAPS识别字符
此配置的数据会在创建行号时依据银行代码自动转换生成银行行别。
1.2.对表BNKA增加字段扩展
当前主要使用的是银行行别字段
1.3.修改FI01屏幕增强
1.在FI01的110屏幕上增加BNKA-BANK_IND“银行行别”字段,屏幕效果如文开头第一图片。
2.修改110屏幕PBO时的代码增强控制告别的显示 属性,在在程序 MF02BF00的FORM publish_swu_object的结尾处,写入自由点增强,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
FORM publish_swu_object . * form created with note 1382031 * Hilfsfeld zum Aufbau Objektschlüssel LOK_BANK_KEY DATA: BEGIN OF lok_bank_key, banks LIKE bnka-banks, bankl LIKE bnka-bankl, END OF lok_bank_key. * Display-Methode DATA: lok_method LIKE swotrm-method. CLEAR: lok_bank_key, lok_method. lok_bank_key-banks = bnka-banks. "Bankland lok_bank_key-bankl = bnka-bankl. "Bankschlüssel CALL FUNCTION 'SWU_OBJECT_PUBLISH' EXPORTING objtype = 'BUS1011' objkey = lok_bank_key method = lok_method EXCEPTIONS objtype_not_found = 1 OTHERS = 2. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1) Form PUBLISH_SWU_OBJECT, Ende A *$*$-Start: (1)---------------------------------------------------------------------------------$*$* ENHANCEMENT 1 ZTR_MF02B00. "active version DATA: l_bank_ind TYPE bnka-bank_ind. CALL FUNCTION 'ZFM_TR_SET_BANK_IND_TO_BNKA' EXPORTING im_banks = bnka-banks im_bankl = bnka-bankl im_banka = conv CHAR255( bnka-banka ) im_swift = bnka-swift IM_SHOW_PROGRESS = space im_persistence = '1' IMPORTING ex_bank_ind = l_bank_ind. IF bnka-bank_ind IS INITIAL. CLEAR ztrt_bankt. ELSE. SELECT SINGLE * FROM ztrt_bankt WHERE bank_ind = bnka-bank_ind AND spras = sy-langu. ENDIF. LOOP AT SCREEN. IF screen-name = 'BNKA-BANK_IND'. IF screen-input = '1'. * 可输入的情况下 IF bnka-bank_ind IS NOT INITIAL AND l_bank_ind IS NOT INITIAL AND bnka-bank_ind = l_bank_ind. * 银行代码带有银行行别和程序决定处理的行别一致,就不允许继续修改了 screen-input = '0'. ENDIF. ENDIF. ENDIF. MODIFY SCREEN. ENDLOOP. ENDENHANCEMENT. *$*$-End: (1)---------------------------------------------------------------------------------$*$* ENDFORM. " PUBLISH_SWU_OBJECT |
同时在MF02BTOP,增加增强
如果是外部(比如OA等)传入数据创建银行代码时,可以依据传入数据在函数POST_BANK_INSERT 中做一些其它的处理
1.4.数据有效性检查增强
CMOD实现增强SAPLBANK的功能出口EXIT_SAPLBANK_001,在INCLUD ZXF12U01中实现一些数据 检查 。
到此标准的FI01功能实现完成,
2.批导程序,
此功能程序 就是提供一个包含银行代码信息的EXECL文件,调用BAPI_HOUSE_BANK_REPLICATE函数 ,创建生成银行代码的功能程序 ,代码在此不提供。自己可以写一下,没多少功能。
3.创建银行代码的FIORI APP,
在此介绍标准的银行代码APP的实施过程, 可以在线演示,(账号:ZTEST01,密码: Ut163.com) ,最终于功能如图
3.1.激活ODATA
如上图,OData Service为:FCLM_BM_SRV,FIN_USER_DEFAULTPARAMETER_SRV,
所以使用事务码/n/IWFND/MAINT_SERVICE,添加服务,
3.2.Launchpad配置启用APP
Business Group为SAP_SFIN_BCG_BANK_REL,
使用事务码/UI2/FLP ,在IE中打开Launchpad的配置页而,这个出来的是带CLIENT的,直接启用 SAP_SFIN_BCG_BANK_REL ,这样会把银行相关的很多东西都一起启用,如要细节的显示指定的功能APP,那需要建立一个新的GROUP,并把APP分配给组,更多细节操作可以我的网站上找,在其它章节有细说,
3.3.给用户分配角色权限
角色 对像为:SAP_BR_CASH_MANAGER,SAP_BR_CASH_SPECIALIST,
使用事务码PFCG,把这两角色都分配给用户,另外,只给这两个权限的话,在FIORI前台用户可以看到相应的功能了,但打开银行管理发现一直不能显示 ,使用事务码检查会发现是因为没有ODATA数据的权限,所以还需要把ODATA权限给用户,具体加ODATA权限操作可看这里。下面我把加了管理银行及,银行账号两个APP涉及的的ODATA权限加上如图,加完权限后记得把权限的参数文件加上完全权限,不然会查不出数据来的。
到此,前台用户就可以使用FIORI APP 进行银行管理了。比如我们的演示地址:演示
4. WEBDypro创建银行代码
有的系统没启用FIORI功能,而又需要使用WEB来维护管理银行代码,所以在一个项目使用了WEBDypro来创建WEB页面,用来创建、维护、审批管理银行代码。
程序 ZWDC_TR_2003需要表配置表,ztrt9002(B006,04),并增加对应的号码ZTR_NR_001范围段。
演示