前言
当你的RPA流程涉及到“总账-凭证”导入(生成凭证)的业务时,可以使用此组件进行凭证模板的设置,最终生成以“凭证导入模板”标准格式的文件,然后调用“保存表单”组件进行保存,全过程不需要编写代码。
应用场景一:某建筑公司使用钉钉进行集团日常工作和单据流转,财务系统使用的是星空。他们的需求是将钉钉的单据(合同付款、非合同付款、费用报销)在星空总账里生成凭证,
根据源数据自动匹配凭证模板,自动匹配科目和核算维度,通过RPA的凭证转换组件和模板进行配置,直接生成对应的凭证文件和保存到星空,不需要编写代码。
应用场景二:某通讯公司需要将日常的销售单据进行记账,并生成星空的凭证。他们的需求是根据离线提供的销售数据进行分类,自动匹配凭证模板,自动匹配科目和核算维度,通过配置的方式生成凭证单据并保存到星空。
应用场景三:某科技公司需要将支付宝的账单,通过数据处理转换成标准化数据,并通过关键字段匹配凭证模板,生成凭证并保存到星空。
注:当前凭证组件只适用于星瀚和星空 凭证文件测试.zip
本章节内容如下:
• 凭证转换组件说明
• 凭证模板规则说明
• 案例介绍
一、凭证转换组件说明
1、添加组件
点击“组件”列表,在“转换”分类里就可以找到“凭证转换”组件,如上图
2、属性说明
• 单据来源:数据的来源(例如:合同付款、费用报销、支付宝、京东)
• 源数据:凭证的源数据(建议使用加工过的中间表,可以更好描述凭证模板,格式为xlsx和xls)
• 工作表:需要读取的凭证源数据Sheet表,填写字符串则是表名,填写整形则是表序号(从0开始),默认值为0
• 凭证模板:凭证文件生成的规则文件,包括凭证类型、核算维度对应表,凭证导入模板,凭证模板(模板来自业务);使用绝对路径,格式为xlsx(凭证模板配置方法参考本文后续内容)
• 保存路径:转换后保存的路径,使用绝对路径,格式为xlsx
• 运行结果:运行完成后如果没有异常,返回值为True;如果有1个异常返回值则为False
• 运行完成后日志输出:转换成功,输出转换成功;转换失败,输出失败信息
二、凭证模板规则文件说明
以下说明以“星空”的费用报销为例,如果你的凭证生成规则不同,就得配置不同凭证模板(例如:员工报销,项目报销),星瀚的规则需要配置星瀚的“凭证导入模板”
1、凭证类型
作用:根据源数据字段信息获取对应的凭证模板,判断逻辑是从上到下
Sheet表名:凭证类型
列说明:
• 单据来源:对应组件“凭证转换”里的“单据来源”,该列主要起筛选作用
• 凭证模板:当前文件的另外一个Sheet表名称
• 条件字段:源数据的列名
• 条件值(多项用,隔开):“凭证转换”组件运行时源数据传进来对应“条件字段”的值
• 分组字段:源数据按照此字段进行分组(切分成多张凭证)
2、核算维度对应表
作用:用于映射“凭证模板”里填的源数据列和“凭证导入模板”里的列
Sheet表名:核算维度对应表
列说明:
• 维度标识:用于标识凭证模板(如上图的员工报销、项目报销)里的“维度组合”字段
• 核算维度:星空的凭证不需要填,星瀚需要填写真实的维度
• 凭证导入模板字段:对应“凭证导入模板”Sheet表的列,例如上图,当“凭证模板”为“员工报销”时,需要将“姓名”这个字段的值填写到“(单据体)员工#名称(Null)”里;当凭证模板为“项目报销”时,需要将“项目”这个字段的值填写到“(单据体)费用项目#名称(Null)”列里,依次类推……
• 取值:标识填入“凭证导入模板”的源数据字段名称(格式:{列名})
• 默认值:当“取值”填写的字段没有数据或为空时,使用此默认值代替
3、凭证导入模板
作用:用于存放“凭证模板”生成的数据(凭证转换组件最后输出的模板来自此Sheet表)
Sheet表名:凭证导入模板-生成的Sheet名称-表头所在行号,其中“凭证导入模板”这几个字是固定的,“生成的Sheet名称”和“表头所在行号”可根据星空或者星瀚进行调整
列说明:模板里的内容来自于ERP(星空、星瀚),可以通过凭证模板进行下载(不同ERP凭证模板下载位置不同,这里以星空为例)
4、凭证模板(以“员工报销”为例)
作用:配置凭证的单据头和单据体的生成规则,配置的值如果是来自于源数据请使用{列名}表示,没有{}则表示常量值;其中单据头为一行,单据体为多行。
Sheet表名:可按照业务需求进行命名(例如“员工报销”、“项目报销”)
规则说明:
第一行:单据头列,填写的信息来自于“凭证导入模板”Sheet表里的列名,标准的凭证单据头列名如下(这里以星空的导入模板为列,如果是星瀚需要调整单据头和单据体的列名)
(单据头)凭证字#名称 | *(单据头)日期 | (单据头)业务日期 | (单据头)核算组织#名称 | (单据头)账簿#名称 |
第二行:单据头内容,可填写固定值和源数据的字段
第三行:分割行
第四行:单据体列,填写的信息来自于“凭证导入模板”Sheet表的列(除了“(单据体)核算维度组合”、“是否合计”、“说明”、“条件”),标准的凭证单据体列名如下
(单据体)摘要 | *(单据体)科目编码#编码 | (单据体)科目编码#名称 | (单据体)核算维度组合 | (单据体)借方金额 | (单据体)贷方金额 | 是否合计 | 说明 | 条件 |
第五行开始:单据体内容,前面6列填的是固定值或源数据的字段;
核算维度组合和后面3列说明如下:
• (单据体)核算维度组合:填写源数据的字段名称,格式为:{列名},可支持多个,如下图
{列名}里的列名需要对应“核算维度对应表”的“维度标识”值,如下图
• 是否合计:填的是/否,如果为是,则会根据“(单据体)借方金额”或者“(单据体)贷方金额”填写的字段信息进行统计,且只生成一行分录;如果为否,则按照之前的分录数据进行填充(注:星瀚的凭证模板金额字段为“借方”和“贷方”)
• 说明:只做描述作用
• 条件:根据条件的结果判断是否录入此行分录,例如:{税额}>0,那么只有当源数据表里数据{税额}的值大于0时,此分录才会生效录入,否则不录入此分录。多个条件使用and或or连接,例如{发票金额}>0 and {税额}>0
三、案例介绍
注:此案例为了模拟费用报销的信息和凭证生成的配置,如有雷同业务,实属巧合
1、源数据
如果源数据无法描述凭证的特征与字段,可先转成中间表再进行凭证的转换
2、凭证配置模板
2.1、创建凭证导入模板
• 新建Excel:命名为“星空凭证规则文件.xlsx”
• 创建Sheet表:命名“凭证导入模板-凭证#单据头(FBillHead)-2”
• 表格内容:下载星空的凭证模板,并把模板里的字段列名拷贝到“凭证导入模板-凭证#单据头(FBillHead)-2”里,如下图
2.2、创建凭证类型
• 创建Sheet表:命名“凭证类型”
• 表格内容:从费用归属列可得知,此处包含了公司费用和项目费用的报销信息,那就应该分两个凭证模板去进行配置(一个是员工报销用的,一个是项目报销用的),而且通过审批编号可得知凭证的分组信息(同一个审批编号的是同一张凭证),因此“凭证类型”Sheet表就可以配置如下
2.3、配置凭证模板
上一步确定好凭证类型后,可得知需要配置两套模板(员工报销、项目报销),这里以员工报销模板作说明,模板不受格式限制,如下图
• 创建Sheet表:命名“员工报销”
• 创建单据头列:(单据头)凭证字#名称,*(单据头)日期,(单据头)业务日期,(单据头)核算组织#名称 ,(单据头)账簿#名称
• 创建单据体列:(单据体)摘要,*(单据体)科目编码#编码, (单据体)科目编码#名称,(单据体)核算维度组合,(单据体)借方金额,(单据体)贷方金额,是否合计,说明,条件
• 配置单据头内容:凭证字是固定的值“记”;日期和业务日期取的是源数据里的“日期”;核算组织和账簿名称取的是源数据的“所属组织”(由于源数据存在跨组织的情况,所以核算组织需要配置成源数据的组织,如果源数据的凭证都是属于同一个组织的,可以考虑写固定这个组织的名称)
• 配置单据体内容:配置方式与“单据头内容”相似;由于费用报销里涉及到了税额和借款,所以需要根据这两个值做一个条件判断,如果这两个值没有的话,就不生成其分录,配置如下图
由于报销里面可能涉及到多种费用(住宿费,餐饮费,交通费等),但对于财务人员来说,只需统计后付一次款,那么这里就需要对实付的金额进行一个统计,而且要加上借款的金额才能形成借贷平衡,配置如下图
• 配置核算维度组合:以科目“管理费用”为例,由于管理费用涉及到组织和部门维度,所以单据体的核算维度组合需要填写成 {组织}{部门},如下图
2.4、配置核算维度对应表
• 创建Sheet表:命名“核算维度对应表”
• 创建列:维度标识,核算维度,凭证导入模板字段,取值,默认值
• 填写源数据和导入模板字段的对应关系:根据上一个步骤的“凭证模板”填写的“核算维度组合”,将里面值取出,并创建对应关系,一个{列名}则表示一个对应关系,最终配置如下图
(注:星空可不填核算维度列,星瀚需要)
3、使用凭证转换组件
运行后得到生成的文件,如下图(这里为了展示,手动调整了生成文件格式)
从生成的数据可以得到以下信息
• 以“审批编号”字段分组得到了3张凭证
如上图红圈的凭证1、凭证2、凭证3
• 源数据根据“费用归属”字段匹配到了不同的凭证模板
1)凭证1、凭证3:匹配了“员工报销”模板
2)凭证2:匹配了“项目报销”模板
• 科目为“银行存款_一般户”的分录对该分组的贷方金额进行了统计,且生成一行分录
如上图红圈的凭证1、凭证2、凭证3贷方金额经过统计之后与借方金额平衡
• 科目为“应交税费_应交增值税_进项税额_公司其他进项税”根据字段“{税额}>0”的条件结果创建了分录
凭证3在有税额的情况下生成了对应的分录
4、补充
由于此处还缺少一个信息:核算维度的编码,组织的编码等编码,所以还需要进行一次信息转换,可使用“数据转换”组件进行处理;处理完就可以通过星空的表单组件“保存”生成凭证了,完整的凭证业务流程图如下