一、发展历史
2011年,在SAP ECC6 Ehp5中,通过功能增强FIN_LOC_CI_16发布中国版的银企直连(Electronic payment integration with Chinese 简称EPIC)。
后续2年左右时间内,SAP先后在ECC Ehp6的多个SP(支持包)中,多次更新该功能,分别通过功能增强FIN_LOC_EPIC_2、FIN_LOC_EPIC_3、FIN_LOC_EPIC_4、FIN_LOC_EPIC_4_2、FIN_LOC_EPIC_5来激活。
下文中,以SAP中最新的银企直连功能(SP10)为例,简要介绍其功能。银企直连具体而言,分为支付功能、银行对账单、银行回单以及查询等功能。本文中主要介绍通过银企直连进行支付。
*部分功能可能明年1月份正式发布。
二、付款功能-银企直连-覆盖的业务场景
所有与银行相关的支付,均可以通过此事务代码进行操作。
最广泛的应用是采购货物、服务产生的对供应商的未清项目,但同时也可以针对以下但不限于以下项目
- 供应商方式管理的员工报销。
- 托收承付业务:与客户、银行签订三方协议,发货后,自动从客户账户收款;
- 利息支付、贷款等各项业务。
三、银企直连付款功能- -实现概览
以最常见的通过银行转账向供应商付款为例,以下为主要的操作步骤,这些操作是在同一个事务代码(EPIC_PROC)中进行操作。
1. 读取供应商未清项目
用户A输入供应商、付款方式等筛选条件,查找到供应商的应付款项目。
2. 编辑付款请求
有权限的用户可进一步对付款请求进行修改,如修改付款银行。在付款前有权限的用户都可以进行编辑。
3. 审批付款请求(Release)
用户提交付款请求,如果付款请求需要被批准,则付款请求被一人或多人批准,根据实际情况也可以拒绝批准。
4. 付款(Pay)
对已经批准的付款请求进行付款,则生成XML格式的付款文件(Payment file)及付款订单(Payment Order),同时往往生成付款的财务凭证(会计凭证 借:某供应商应付,贷:某银行存款-未达项)。
5.发送报文(Send)
将付款文件转换为付款报文直接传输到本地的银行前置机,具体而言是生成包含XML的报文,然后该报文以Http协议(RFC)传输到银行前置机。
6.银行反馈
正常来说,几秒钟内,银行会返回成功接受付款指令信息,相应的系统更新付款文件的状态为已成功,如果失败,则后续进行异常情况处理。
* 银行前置机是指由银行人员在客户处的某台专用电脑上安装银行的“银企直联前置服务器”,并在该机器上设置相应的证书等各项安全、通讯策略,设置成功后,该前置机即可直接和银行的服务器端的网银系统以及背后的核心系统直接通讯、处理各类交易。我们熟悉的ATM机应该属于最常见的前置机。
*操作5处,系统可以配置在付款(生成付款文件和订单),同时生成付款的财务凭证,也可以先付款,后续(如回单后)再生成付款的财务凭证。
四、付款请求的生成/读取
1、 系统可以以多种方式生成(待)付款清单,最常见的是三种
1) 读取供应商的未清行项目,读取原理与事务代码F110完全相同,因此使用EPIC,需要像执行事务代码F110一样,首先配置自动付款的相关参数。
2) 与执行事务代码F111类似,读取从内部银行、Treasure等生成的付款请求。
3) 读取其他方式创建的付款请求(Payment Request),如根据采购订单生产的预付款请求或手工创建的预付款请求。但需要注意如果确定是根据预付款请求进行付款,则F110处不应再设置读取预付款。
2、 选择合适的银行,将有助于转账速度,并减少财务费用,系统在生成付款请求时可自动优化开户银行以及账户的选择,譬如企业有多家开户行(招行、建行),如果付款给供应商甲,其银行账户是招行的,则选择开户行招行进行付款。同时还可以根据账户余额来进行选择支付帐户。
3、 可支持由母公司集中支付(代付),譬如对子公司的供应商付款时,选择母公司的开户行进行支付,因此还将生成公司间往来的凭证。
4、 为了防止重复付款,当供应商未清项目进入到付款清单中,需要禁止对原凭证进行冲销或清帐。但似乎事务代码MR8M对发票直接冲销,系统不会有任何提示。
5、 发票校验时,设置付款冻结的,则以例外(不允许付款)的形式出现在清单中,需要进一步处理才可以付款。
五、编辑功能
1、 生成付款订单(付款文件)在发送给银行前,有权限的人对付款请求进行编辑
1) 从允许的开户行中选择一家我方的银行账户( 开户行House Bank)
2) 更改收款方的银行账户
3) 更改付款冻结
4) 特殊说明,如指定本次付款为“加急付款”。
2、 可以选择多个行项目批量修改,如将某供应商下的所有付款请求的开户行全部修改。
3、 可以通过分配权限对象来特定权限的人修改
4、 可以控制当不同的审批层级,则不允许修改会计凭证中特定的字段。如已经被财务经理批准,则不允许修改付款条款。
5、 可以对特定付款请求部分付款。
6、 可以对与财务凭证相关的备注字段进行补充。
7、 还可以自定义字段,如原因代码,并通过BADI设置自定义字段的默认值,该值还可进一步复制到后续的付款文件或者付款凭证中。
8、 可以增加备注信息,但备注信息目前似乎不记录备注人和时间。
六、付款申请审批
1、 SAP中的审批功能
SAP中最常见的审批功能可分为二类。
类型1:最普通的审批是通过权限对象+状态来控制的,对象创建后初始状态为已创建,在此状态下不允许进一步操作,只有有权限的人才允许修改状态为已批准。
内部订单、生产订单、维修订单的释放均采用这种模式,并且背后的设计逻辑几乎完全相同。系统中还可更一步定义对象的用户状态,并为每个自定义的用户状态设置相应的权限。
类型2:采购订单审批
采购订单审批可以通过灵活定义特征来实现各种各样的采购审批,无需任何开发。
EPIC中的审批功能是预留多个增强(BADI)以及提供样例程序来满足企业的需要。
这些预留的增强确实比较灵活,但个人认为可以借鉴采购审批的逻辑来设计,这样就只无需任何开发。目前来看采购订单审批唯一的缺点可能是无法满足下文审批示例2的需求(三个人中的任意二个进行审批)。当然更好的方案可能是提供可配置的方式,同时有增强。
2、 付款申请的审批功能简介
1) 用户提交时可以选择多个付款行项目进行一起提交,譬如用户一次将其负责的三个供应商的五条付款行项目全部提交。
2) 审批者可以全部审批,也可以选择部分审批。譬如只审批其中的四条记录,将一条记录拒绝。可以对拒绝的行项目增加备注,说明拒绝原因。用户可根据反馈意见,进一步做调整,然后有必要的话,可重新提交审批。
3) 可灵活定义审批的前提条件/规则,如根据金额的不同设置不同的审批策略,。也可根据支出类型(投资性、IT设备采购、预算内之处、预算外支出)定义不同的审批人或者审批级别。
4) 审批示例1-提交的付款申请,当金额低于特定金额时,无需审批,当金额超过特定金额时,第一级审批需要A(部门经理)审批,第二级审批需要B(财务经理)审批,第三级需要C、D(财务总监或业务部门总监)中的一个审批。
5) 审批示例2-提交的付款申请,当金额超过特定金额时,则需要三个人(A、B、C)中的任意二个进行审批。
6) 可以设置二种模式,由申请人按照预先定义的审批规则选择相应审批人员或者相应审批人主动认领。
譬如某付款申请,可以是经理A、B中的任意一人审批。此时用户提交申请时,可以由用户选择是由经理A还是B进行审批。也可以用户不加选择,经理A、B都可以去审批,谁先认领审批则先审批 。
七、付款文件/付款订单生成
1. SAP公司已经与国内六家银行( 工商银行、农业银行、建设银行、中国银行、招商银行等)进行了联合测试,并完成了字段匹配等工作。如果企业有额外需求,可以复制现有的例子,再进行调整。
2. 银行人员需要在本地的电脑中安装前置机程序、设置安全策略,并设置相应的IP地址和监听端口。
部分银行,如工商银行、浦发有二个端口,一个端口是签到用,另外一个端口是传输数据。
3. 在SAP中设置RFC端口,输入前置机的IP地址和端口。
4. 点击付款,则根据DME中的配置,生成XML文件,点击发送报文,系统再将Xml文件转换为报文,通过RFC的方式将报文发送到本地的银行的前置机,银行的前置机的端口监听到报文,则进行更进一步的支付处理。
5. 生成付款文件同时,一般会生成付款的会计凭证,如果后续发送至银行后,如果有异常情况,则可以选择冲销。