本人诚心接ABAP远程开发任务,价格公道,有需要的联系我,欢迎个人,甲方爸爸,乙方私信联系。
银企直联或者自动付款的目的是和银行做一个接口,把SAP中的到期应付款(也包括预付款)按照一定格式(银行要求的)在审批后发送给银行,请银行按照这个付款指定进行付款,并跟踪付款状态的过程,这个过程在SAP中如何实现呢?根据个人项目经验,客户需求可分为如下三种:
1. 第一种是完全不自动方式,仅批量生成付款凭证,实际的付款还是通过原来的流程执行,和银行没有任何接口;
2. 第二种是半自动方式,这种方式下需要按照银行的要求的格式生成付款条件,然后把付款文件下载下来,通过企业版的网银接口把付款文件进行上载,提交后进行正式的付款;
3. 第三种是全自动方式,这种方式是需要直接利用接口把SAP生成的符合银行要求的付款文件通过特定的方法直接发送给银行(通常是银行在企业端按照一个前置机,相当于银行和企业间的通讯中介),银行按照付款指定进行付款,中间付款信息不落地,不
导出。
很显然,从第一种到第三种,需要的投入越大,方案也越来越复杂。另外,通常自动付款还会涉及到银行自动对账的需求,所谓银行自动对账就是银行的交易流水和企业的交易流水进行对账,这就不仅仅包括应付了,还包括应收,中间还设计到清账的问题,这里不展开讨论了,此篇文章主要还是集中讨论自动付款的方案。针对这三种需求,SAP中的主要方案说明如下:
1. 第一种业务需求仅配置自动付款即可,主要是FBZP,建议同时完善银行主数据和供应商银行信息;
2. 第二种除配置自动付款外,还需要通过MDEE或者开发的方式把付款信息转换为银行要求的格式;
3. 第三种是在第二种的基础上,通过银行前置机把付款信息直接从SAP发送给银行,可通过IDoc或者SAP针对中国发布的EPIC解决方案实施,发送文件的信息格式一般为xml格式。不管是通过IDoc发送还是EPIC方案,均需要一定的开发并请银行方案给予配合。第三种需求还需考虑在线付款审批的情况,因为第一种和第二种都可以采用线外审批的方案或者通过企业端的网银接口自带的审批功能实现付款审批。
那么自动付款的后台配置有哪些呢?主要如下:
1. 应付模块中自动付款相关的配置,主要的事物代码是FBZP,另外还包括付款条件(Payment terms)、付款方法(Payment Method)、付款冻结等配置;
2. 银行会计中的相关配置,包括银行账户的配置、电子对账单的配置;
3. DMEE的设置和增强(DMEE用于按照银行要求格式生成付款信息);
4. EPIC的配置(SAP针对中国发布的银企直联解决方案)。
自动付款涉及的主数据主要有哪些?
1. 银行账户(FI12创建),这个银行账户是指银行付款银行的信息;
2. 银行主数据(FI01创建),这个银行主数据指供应商的银行主数据,即银行营业网点,国内涉及到CNAPS(银行联行号),国外付款涉及SWIFT code(国际汇款需要)和IBAN(欧洲需要)、ABA(美国需要);
3. 供应商银行信息(一般视图中的“支付交易”页面),需要把银行主数据并结合银行账户信息维护在这里;
自动付款涉及的操作由哪些?
1. F110,自动付款的大部分通过F110执行;
2. 如果是EPIC方案,则通过EPIC_PROC执行;
3. Z开头的自开发事物代码。
以下针对自动付款的一些细节问题仍然采用问答的方式进行展开讨论。
1. F110编辑付款建议没有导出“电子表格”选项是什么原因?
答:问题原因:权限问题,SU53检查权限并解决。
2. F110不能立即执行付款建议是什么原因?
答:如果执行付款建议后系统提示“申请已列入计划+日期+时间”的消息,并在信息前显示黄色三角按钮,这可能是权限问题造成的,可考虑增加SM37的权限,并设置权限对象:S_BTCH_JOB,Action=RELE。
3. 在自动付款执行过程中,银行手续费如何处理?
答:在实际业务过程中,向供应商付款过程中,银行转账的手续费有几种情况,一种是付款方承担,一种是收款方承担,一种是收款行和付款行各自承担一定比例。在使用F110自动付款过程中,目前并没有发现有标准的方案进行支持。以下的信息供参考。
SAP相关知识:OB47使用instruction key可以配置手续费如何承担并指定在供应商/客户主数据中,不过好像只使用与德国、芬兰,没测试,不知道是否可否用于中国。即使如此,F110过程中仍无法指定手续费金额,FBZP配置中银行确定的配置最后一项关于费用的配置不能用于过账,只能用于打印的时候显示信息使用。
可使用的变通方案:对于付款方承担的部分,根据银行手续费的金额以及银行回单录入总账凭证(在自动付款中按照应付款金额进行付款)。对于收款方承担部分,在编辑付款建议时把手续费金额在“现金折扣金额”中指定,现金折扣科目配置为银行手续费科目,这是在企业没有真正的现金折扣业务的情况下的变通方法。如果企业有现金折扣业务,那么可以考虑先对供应商做一个贷项凭证(用于手续费抵减应付款),然后再执行付款。
4. 在F110中如何进行部分付款?
答:实际业务中有遇到做部分付款的情况,比如应付账款总金额100万,此次支付30万。解决方案建议:在EPIC付款平台中有部分付款的功能,在F110中的付款建议编辑中,是不可以修改付款金额的,有个使用付款请求的变通方案如下(操作起来有点麻烦):
1) 配置付款请求对应的特别总账标识P(包括记账码和科目);
2) 配置FBZP,允许特别总账标识P进行自动付款;
3) F-59(付款请求)对某笔发票部分付款,比如发票10000CNY,付款2000CNY;
4) 冻结该部分付款对应的发票凭证,输入冻结标识(FB02);
5) 执行F110,此时发票10000CNY在payment
proposal中显示为红色,付款请求2000CNY为绿色,执行payment run;
6) 去除发票10000CNY的付款标识;
7) 再此对该笔发票执行F110时,系统会显示为8000CNY。
5. F110和F110S、F111这几个事物代码的区别是?
答:个人也没搞太清楚,F110就是平常对供应商发票进行批量处理,生成付款建议、编辑付款建议、生成付款文件、过账付款凭证的,F111SAP的解释是对付款请求进行过账的,主要和基金管理有关,也就是说没有发票而是根据付款请求(Payment Request)需要进行自动付款的业务。而F110S则是用于计划执行自动付款,SAP的解释是如果你想按照一定期间在后台跑一个付款建议,来检查借方余额(是不是检查银行余额是不是足够支付付款呢?),检查之后再跑一个正式的运行开始执行正式付款。
6. F110单独产生DMEE文件事物代码是什么?
答:FBPM用于单独产生产生DMEE付款文件,和F110执行时勾选“Create payment medium”效果一样。另外,产生DMEE文件后,可使用FDTA去下载(管理)该文件
7. 自动付款中的审批有哪些方法可以实现?
答:这个审批SAP中分为两块,一块是针对付款冻结的审批(即在发票校验时输入的冻结标识,然后通过审批进行解冻),另外一块是在F110执行过程中的审批,即付款建议生成后在正式付款之前的审批。对于付款冻结的审批,配置在应收应付模块-业务交易-付款审批节点进行配置,通过工作流触发。在F110中的付款审批,简单的话可以通过把付款建议和付款执行进行全下分开来实现,比如Payment
proposal由一个人执行,Pyament run由另外的人执行),权限对象F_REGU_BUK,权限字段:FBTCH,F110本身并没有我们通常认为的标准的审批。还有一种方法是使用BCM(Bank Communication Management),这个没玩过,不知道怎么弄。最后一种是EPIC解决方案中有在线审批。
8. 一个供应商有多个收款的银行账户,如何处理?
答:业务描述:对于一个供应商有多个银行账号,在F110执行自动付款时,如何选择哪个银行作为供应商的收款银行账号
方案建议:SAP标准情况下使用字段“Partner Bank Type”(字段:LFBK-BVTYP)用来区分同一供应商不同收款银行账号,如果存在多个银行,SAP按照该字段值的大小进行取值,最小的值(为空)为优先,在供应商主数据的一般数据付款交易视图中可自定义该字段内容。然后在过账供应商发票时,如果需要对该笔发票选择不同收款银行,则通过在付款视图下选择该字段对应银行的标识。这样在发票过账后,F110执行付款时,系统就会选择发票该字段对应的银行作为收款银行。如果要在发票过账时自动确定该字段,在有明确的规则的情况下,可进行凭证替代增强。
9. F110自动付款时供应商银行账号超过18位如何处理?
答:通常如果供应商银行账户长度超过18位,我们会维护在供应商银行数据的参考字段,其实这和国家的参数设置应该也有关系,在国家相关的设置中,中国的银行账户长度默认为18位,如果这里不修改,可能会导致F110下载的文件中供应商银行账户长度如果超过18位,则18位后的不会显示。因此这两个地方均需考虑。
10. F110中的付款单(Payment Order)的用途是什么?
答:在F110自动付款过程中,如果不想Payment run直接生成付款凭证,可以在执行Payment run时让系统生成Payment
order,Payment order单独存储付款信息,不对AP进行清帐,不产生付款凭证。然后银行账单返回企业后,企业通过手工或者导入银行对账单的方式对Payment order清帐,再生成付款凭证。优点是可避免企业和银行间的入账时间差异,减少因银行无法付款造成的差异调整。相关配置如下:
说明:勾选“Payment order”后,凭证类型不需再配置,而是在银行会计下配置凭证类型。
FF67手工输入银行对账单(输入Payment order清帐),如下图:
11. 自动付款中预付款如何处理?
答:SAP自动付款的标准功能是对预付款请求进行付款,即F-47输入预付款请求后(需在配置中将特别总账标识F包含),然后运行F110会将预付款请求生成预付款凭证(相当于F-48),然后F-54对预付款进行清帐(预付款转入应付款科目);实际上,实际业务运作中,有些客户并不使用预付款请求,而是直接使用F-48录入预付款,这个时候,如果把特别总账标识A包含在未清项选择中,则系统默认是冻结该笔预付款请求的,因为系统会认为该笔款项实际已支付,不可以再支付,但客户需求希望将预付款与应付款抵消后进行付款(可能还需要按照一定规则,比如和发票或订单进行匹配抵消)。目前来看,SAP标准功能下对该需求无法处理,只能是先F-54或F-44对预付款进行清帐后,再使用F110自动付款。另外,可能客户有的需求是如果有多个付款银行,客户希望我此次付款从某个银行付出,下次从另外一个银行付出,即每次只能从指定的某个银行付出,但系统的逻辑是根据付款方法以及后台配置的银行付款优先顺序进行付款,只要前一个银行可以支付,就优先从配置顺序在前的银行付出,这样就和客户期望不一样,虽然可手工更改付款银行,但如果大量付款,很显然手工更改付款银行工作量大。有个变通的方法是另外配置一个付款条件,该付款条件只用于选择银行使用,比如U和V,在F110输入参数时,通过指定不同付款条件来确定优先从哪个银行付款,但这种方法如果遇到多个付款银行,处理起来也会比较麻烦。其实最简单的就是调整业务,至少对同一个供应商,应该是从某个银行支付款项,而非经常变动银行进行支付。总之,业务变化太快且无规律,无论如何,系统都是难以较好的适应和处理。
12. 在自动付款中,付款企业的house bank(付款账号)如何确定,其系统逻辑是什么?
答:配置层面:在FBZP配置中的bank determination来确定付款中的house
bank如何取值,其中rank order用于同一个付款方法多个银行均可使用的情况下,其优先顺序是什么(按照SAP官方说法,在未使用Optimizing
Bank Selection的情况下,系统默认选择优先顺序最高的,即rank order为1的house bank)。
主数据层面:供应商主数据公司代码数据付款交易视图可指定house bank
凭证层面:录入发票凭证时可指定house bank
增强:BTE 00001810
优先级别:凭证级别-主数据级别-增强级别-配置级别(增强是否最优先,待确定)
13. 关于企业和银行之间的收付款业务,有哪些方案可以选择?
答:对于银行与企业的收付款业务,目前大部分银行都提供网银以及网银客户端,有的银行还支持通过开发接口实现银企直连,从SAP角度来说,总结如下:
1) 对于收款,由于很难确定发票与收款的对应关系,一般收款不使用自动功能,通过手工处理方式较多,其实SAP F110也是可以执行自动收款的。
2) 对于付款,因为一般可由企业控制,使用自动付款功能较多,自动付款主要涉及付款程序的配置,银行主数据的维护,接口文件的产生及传输(SAP有IDoc的方式以及DMEE的方式产生付款文件,传输的话IDoc可放到指定的企业文件服务器目录下,DMEE方式一般下载为本地文件然后通过网银上传实现支付),银行对账单的导入(也可以通过DMEE设置根据银行对账单格式设置,可通过事物代码S_PL0_09000467转换为Multicash格式,然后再由FF_5导入),电子银行对账单配置的相关链接:
14. DMEE中银行账号的取值逻辑是什么?
答:默认情况下,付款数据结构FPAYH-ZBNKN会把供应商主数据中付款交易视图下银行账户和参考明细两个字段的内容合并后在DMEE中进行显示,这个字段最大长度35位,在ECC 6.0打到11补丁后均可以支持此功能。
15. DMEE输出无值的字段内容显示为空而非零,希望输出为零怎么办?
答:设置为字符类型,而且转换功能为空即可。
16. 在生成的 文件中,如果需要显示抬头标题,即第一行为字段描述,如何实现?
答:需要在定义DMEE时单独定义Level为1的标题目录元素,如下图:
第一个ICBC下的元素全部为常量,其值和元素名称一致,用于生成文件目录。
第二个ICBC下的元素用于付款信息的取值。
17. DMEE生成的文件中只有文件标题,没有具体数据,是什么原因?
答:原因可能为:
注意:Level 1和2的排序字段可能不同,如果level 1仅为标题,可选择为公司代码,level 2为交易数据,则需指定为DOC1R(这个字段条付款信息应不同),系统才能输出所有付款记录。
所有level的元素均需在这里设置排序字段方可取到值。
此处设置分割符。字段类型为1表示按分隔符进行分割。
此处表示允许的记录数。
说明:最稳妥的办法是参考SAP已交付的默认的DMEE格式,然后参考创建自己的格式。
18. 如何把会计凭证行项目文本内容传输到DMEE的备注字段中?
答:如果把凭证项目文本作为备注信息取值传输到付款文件中,需要在付款凭证的行项目文本第一个字符为*号(发票对应行),然后备注信息字段在DMEE中取值:FPAYP-SGTXT,行项目文本字段的F1帮助如下:
19. DMEE中货币金额不显示是什么原因?
答:货币金额的字段类型应单独选择,如下设定:
20. DMEE如果要写增强,其对应的函数是什么?
答:DMEE_EXIT_TEMPLATE,建议拷贝成Z开头的程序再进行修改,DMEE中每个字段的增强需要分配不同的函数。
21. DMEE中如果生成的文件为XML格式,有哪些注意点?
答:SAP默认交付了xml格式的几个标准DMEE format,以SEPA开头,比如:SEPA_CT,我们可以拷贝标准的来使用。
1) 最后一个Level的节点,其mapping procedure 不可以设置为no
mapping,必须要设置为其他mapping规则,否则会出现ABAP down错误“Perform
not found”。
2) 如果在OBPM1中可以选择xml格式的话,6.0系统需要的更新包为:SAPKH60012,或者参考note:10888823进行修改修改数据类型DTTYP_FPM的domain,手工加入04 xml。
3) 如果使用atom作为segment的下层节点,则atom的长度必须要设置。
4) 下载文件的codepage,一个是在OBPM3中设置,一个是在用户参数文件中设置,parameter
ID为DCP,4110表示UTF-8。
5) 如果要解决下载后xml文件打开后抬头数据为UTF-16的问题(实际需要为UTF-8),需要的SAP支持包为:SAPKH60012(参考note:1127555),也可以参考这个note手工更改BADI出口:DMEE_BADI_01,新增implementation:DMEE_XML_BADI_01(从高版本SAP中拷贝相应代码)。
6) DMEE数据乱码问题,如果ABAP/Basis升级后,出现DMEE
format激活后全部节点的mapping
procedure自动变为Constant,则可参考note:1823922 (对应更新包:SAPKH60024),修改数据类型DMEE_TABKEYFLD_ABA或DMEE_TABKEYFLD,其对应domain的长度应为1。
22. DMEE可否生成Excel格式文件?
答:目前为止,通常使用的为txt(OBPM1中选择01 file)和xml(OBPM1中选择04 XML)两种格式,Excel不支持直接生成,如果要生成Excel文件,建议两种方法:txt文件下载后,手工再转为Excel文件,或者开发实现。SAP支持的文件格式如下图:
23. 付款冻结审批如何实现?
答:在SAP中,SAP使用payment block
indicator来标识某个AP行项目是否可被自动付款、被手工付款,或者不可修改(不可修改则只能通过work flow释放的方式进行release)。该文档描述如何使用work flow进行payment
release,可实现客户对付款的审批需求。
SAP默认交付的预制凭证审批的work
flow有:WS10000051,包含三个sub-workflows,WS10000052、WS10000053、WS10000054,分别可执行一级、二级、三级审批,其对应的标准task是:TS00407848。
SAP默认交付的payment
release相关work flow有:WS00400012,包含三个sub-workflows,WS00400011、WS00400021、WS00400022,分别可执行一级、二级、三级审批,其对应的标准task是:TS00407862。
准备工作:
1) OB27设置付款冻结标识,系统默认使用付款冻结标识P作为需要通过work flow释放的标识。
2) 供应商主数据公司代码视图下的财务信息,字段释放组需维护。
系统配置:
路径:IMG-财务会计-应收应付会计-业务交易-付款释放
1) OBWA配置work flow变式,配置多少金额需要进行work flow释放
2) OBWJ分配公司代码给1.定义的work flow变式
3) OBWB定义approval group
4) OBWD定义approval path
5) OBWE定义approval procedure
6) OBWQ定义凭证类型
7) OBWP定义付款释放的用户(PPOCE创建组织单元)
8) SWE2激活linkage(object :BSEG/Event:Created/Receiver type:WS00400012),勾选”Linkage Activated” and “Enable Event Queue” 。
9) PTFC维护task ”00407862”,选择菜单“additional
data -> classification -> Display ”,应勾选“General task”,如无,则选择创建。
操作层面:
1) 输入供应商发票后,系统对AP的行项目默认设置付款冻结标识“P”
2) 显示AP凭证,选择菜单“system-service for object”可以看到产生的Work
flow
3) 个人(有释放权限的用户)用户工作台(SBWP)可以看到work flow的邮件,也可以直接在个人工作台中释放付款
4) SWI1通过任务:00407862筛选,可执行付款的审批或拒绝
总结:实际目的是去除AP行项目冻结标识,只不过方式不同而已。
————————————————
版权声明:本文为CSDN博主「IamRunjiang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/IamRunjiang/article/details/118999136