新架构财务应收应付事务对接
一、背景
目前该方式只适用于YonBIP, YonSuite的方案还在沟通中,请等待下
新架构没有了应收事项和应付事项节点,调整为应收事务和应付事务。这种情况下如何对接应收事务和应付事务呢? 下文以应收事务为例说明如何对接。
二、应用场景
1、从总体上来讲,此接入是为了实现借助事项会计中台完成业务到核算的转换,形成核算对象,比如事项分录、总账凭证等。
2、从处理流程上来说,适合业财融合类项目,业务系统中的单据作为业务事项接入到事项会计中台,由事项会计中台进行业务事项转换,形成事项分录,并推送总账形成总账凭证的场景。
3、从接入的来源系统或者微服务来讲,支持用友内部、第三方系统的接入。
三、前提条件
需购买【可视化应用构建】
四、整体流程
单据效果展示
五、操作步骤
5.1、应用构建创建业务对象
根据自己的需求创建业务对象,实体编码和名称可自定义。实体字段和配置建议按照以下字段填写。 可以根据需求添加额外字段。添加的字段可以在【事项转换规则】配置时匹配到特征字段。从而实现 个性化字段需求。
5.1.1、创建应用
进入应用构建,右上角点击新建应用,选择空白模板点击下一步
按照提示填写应用信息。可以根据需求自定义应用名称,点击完成
5.1.2、创建业务对象
左上角点击新增,根据需求填写编码和名称后点击确定
5.1.3、 主表
操作 | 描述 | ~ | ~ | ~ |
---|---|---|---|---|
名称 | 应收_0310 | |||
编码 | receive_0310 | |||
父实体 | ||||
引用接口 | 审批 | 业务流 、交易类型 | 自动编码 | 主组织 |
可以通过【快速新增】快速填充字段 (如不知道如何操作请查看【常见问题】章节)
orgCurrency,本币,单选引用,bd.currencytenant.CurrencyTenantVO;
accDate,记账日期,日期;
objectType,往来对象类型,文本;
customer,客户,单选引用,aa.merchant.Merchant;
oriCurrency,原币币种,单选引用,bd.currencytenant.CurrencyTenantVO;
financeOrg,会计主体,单选引用,org.func.FinanceOrg;
employee,员工,单选引用,bd.staff.StaffNew;
srcSystem,来源系统,文本;
tezhengzu,特征组,自定义项特征组;
billType,单据类型,文本;
效果如下:
5.1.4、子表
操作 | 描述 |
---|---|
名称 | recieve_body |
编码 | recieve_body |
父实体 | receive_0310 |
引用接口 | 业务流 |
可以通过【快速新增】快速填充字段 (如不知道如何操作请查看【常见问题】章节)
accExchangeRate,汇率,数值;
accExchangeRateType,汇率类型,单选引用,bd.exchangeRate.ExchangeRateTypeVO;
accTaxAmount,本币税额,数值;
accTaxExcludedAmount,本币无税金额,数值;
accTaxIncludedAmount,本币含税金额,数值;
oriCurrency,原币,单选引用,bd.currencytenant.CurrencyTenantVO;
oriTaxAmount,税额,数值;
oriTaxExcludedAmount,无税金额,数值;
oriTaxIncludedAmount,含税金额,数值;
taxRate,税率,数值;
taxSubject,税目,单选引用,bd.taxrate.TaxRateVO;
exchangeRateDate,汇率日期,日期;
oriBalance,余额,数值;
accBalance,本币余额,数值;
tezheng,特征,自定义项特征组;
效果如下:
5.1.5、孙表
操作 | 描述 |
---|---|
名称 | receive_son |
编码 | receive_son |
父实体 | recieve_body |
引用接口 | 业务流 |
可以通过【快速新增】快速填充字段 (如不知道如何操作请查看【常见问题】章节)
accAmount,计划收款本币金额,数值;
accBalance,本币余额,数值;
blnDeposit,是否保证金,文本;
blnPrepare,是否预收,文本;
expireDate,到期日,日期;
issueNo,收款期号,文本;
oriAmount,计划收款金额,数值;
oriBalance,余额,数值;
ratio,收款比例,数值;
startDate,起算日期,日期;
效果如下:
5.2、效果展示
5.3、业务事项注册
打开业务事项注册节点,点击左上角应用注册,应用名称打开参数,输入应用构建创建的应用名称,如【财务新架构对接】,选择后点击确定
效果如下图,选择应用,右侧点击【业务事项注册】
选择应用构建创建的业务对象后点击保存即可,其余不用调整
效果如下图
5.4、核算规则
选择业务事项后,右侧点击新增
核算编码规则请自定义
指定会计主体参考:安装下图找到开票组织点击插入后点击确定即可
最终效果如下图
5.5、事项转换规则
5.5.1、新增事项转换规则
选择业务事项,点击新增
根据下图提示进行填写
绑定实体关联后,点击下一步
5.5.2、实体字段映射
- 三个实体分别点击按编码匹配(注意主子孙三个字体均要配置)
- 以下对差异字段进行截图,需要按照差异部分对映射进行配置
主表实体差异部分
子表实体差异部分
孙表实体差异部分
配置完成后点击保存并完成即可
5.5.3、特征字段映射
新建特征后点击分配
根据需求选择要使用特征的单据后点击保存
在事项转换规则节点即可看到对应的特征
六、生成应收事务
6.1、开放平台接口
如果您对开放平台接口调用不熟悉,请参考:
6.2、使用接口概览
6.3、业务事项正向接入
6.3.1、参数busiObjCode获取
6.3.2、请求体参考
- 主表字段必填项,其他字段可以参考业务对象主表实体传参,也可根据需求重新配置【事项转换规则】
字段 | 是否必填 | 描述 |
---|---|---|
id | 必填 | 三方定义单据唯一标识,后续状态查询和删除接口需要使用。请确保唯一性 |
org_id | 必填 | 业务组织id,参考组织单元档案 |
code | 必填 | 编码 |
billDate | 必填 | 单据日期:2023-01-29 00:00:00 |
orgCurrency | 必填 | 本币币种id,参考币种档案 |
oriCurrency | 必填 | 原币id,参考币种档案 |
accDate | 必填 | 记账日期:2023-01-29 00:00:00 |
objectType | 必填 | 往来对象类型,客户:1; 员工: 2 |
customer | 否 | 如果objectType为1,则必填 |
employee | 否 | 如果objectType为2,则必填 |
financeOrg | 必填 | 会计主体,参考组织单元档案 |
srcSystem | 必填 | 固定值3 |
tezhengzu | 否 | 特征 |
- 子表字段必填项,其他字段可以参考业务对象子表实体传参,也可根据需求重新配置【事项转换规则】
字段 | 是否必填 | 描述 |
---|---|---|
recieve_bodyList | 必填 | 这个字段是变动的,是子表实体编码+List, 如我的子表实体编码为recieve_body ,子表的key则为:recieve_bodyList |
id | 必填 | 必填,子表id。三方定义唯一标识即可 |
accExchangeRate | 必填 | 汇率 |
accExchangeRateType | 必填 | 汇率类型 |
exchangeRateDate | 必填 | 汇率日期: 2023-01-29 00:00:00 |
taxSubject | 必填 | 数目税率ID: 税率档案id |
oriCurrency | 必填 | 币种id |
oriTaxAmount | 必填 | 税额 |
oriTaxExcludedAmount | 必填 | 无税金额 |
oriTaxIncludedAmount | 必填 | 含税金额 |
taxRate | 必填 | 税率 |
- 孙表字段必填项,其他字段可以参考业务对象孙表实体传参,也可根据需求重新配置【事项转换规则】
字段 | 是否必填 | 描述 |
---|---|---|
receive_sonList | 必填 | 这个字段是变动的,是孙表实体编码+List, 如我的子表实体编码为receive_son ,子表的key则为:receive_sonList |
id | 必填 | 必填,子表id。三方定义唯一标识即可 |
expireDate | 必填 | 到期日 |
startDate | 必填 | 起期日 |
oriAmount | 必填 | 计划收付款金额 |
ratio | 必填 | 收款比例(%) |
blnDeposit | 必填 | 是否保证金,false或true |
blnPrepare | 必填 | 是否预收款,false或true |
{
"id": "1677624904152252417",
"org_id": "1599826287454060546",
"code": "000001",
"orgCurrency": "1591754145560789873",
"accDate": "2023-03-23",
"objectType": "1",
"customer": "1593125468465266690",
"oriCurrency": "1591754145560789873",
"financeOrg": "1599826287454060546",
"srcSystem": "3",
"billType": "receive_0310",
"recieve_bodyList": [
{
"id": "1677624904152252418",
"accExchangeRate": 1,
"taxRate": 0,
"accExchangeRateType": "zzghy85k",
"exchangeRateDate": "2023-03-11",
"accTaxExcludedAmount": 1,
"oriCurrency": "1591754145560789873",
"taxSubject": "1617686213170823178",
"oriTaxExcludedAmount": 1,
"oriTaxAmount": 0,
"receive_0310_id": "1677624904152252417",
"accTaxIncludedAmount": 1,
"accTaxAmount": 0,
"oriBalance": 1,
"accBalance": 1,
"receive_0310_id_id": "1677624904152252417",
"oriTaxIncludedAmount": 1,
"receive_sonList": [
{
"oriAmount": 1,
"recieve_body_id_id": "1677624904152252418",
"blnDeposit": "0",
"issueNo": "123",
"accAmount": 1,
"expireDate": "2023-03-11",
"accBalance": 1,
"oriBalance": 1,
"id": "1677624904152252419",
"recieve_body_id": "1677624904152252418",
"startDate": "2023-03-11",
"blnPrepare": "0",
"ratio": 100
}
]
}
]
}
如果在开发过程中不知道如何传参,可以参考以下方式,快速得出传参数据。
根据业务对象,创建主子孙页面
进入子表页面设计器,添加一个按钮,点击动作添加以下函数,点击保存,然后做一条数据,可以快速得出传参信息。
console.log(viewModel.getData());
6.3.3、验证效果如下图
注意这里的成功并不是真的已经存储到应收事务,需要调用【业务事项状态查询】接口确定结果 另外要记录返回值srcBillVersion;删除时需要用到版本号
6.4、业务事项状态查询
busiid:传参的主表id
参数busiObjCode获取
以下显示结果代表成功
6.5、业务事项删除
srcBusiId: 传参的主表id
srcBillVersion: 【业务事项正向接入】保存后返回的srcBillVersion
参数busiObjCode获取
七、常见问题
7.1、快速添加实体
点击快速新增,将提供的数据粘贴进入,点击确定即可
7.2、应付事务怎么对接?
应收事务和应付事务的整体操作步骤是一样的, 在创建业务对象时对应的字段和必填项可能存在差异, 此文档的业务对象创建字段是参照应收发票的【事项转换规则】的目标字段取出来的,如下图
那么同理应付事务可以找到应付发票查看对应的字段,以及转换结果必填,提炼出我们需要的业务对象字段信息。
7.3、业务对象字段是否有数据格式要求?
金额、税率等数值字段建议按照数值类型配置,其他没有特别要求。在【事项转换规则】匹配好 映射关系即可。
7.4、看不到事项会计中台,业务事项注册是怎么回事?
如果您已经是管理员权限,在角色管理也看不到对应的领域和节点,那么请跟实施确定您是否是YonSuite租户, 目前该方案只支持YonBIP.
7.5、报*生成失败,原因业务逻辑异常?
这个问题的原因有两个方面:1、确定是否缺少必填项,单据转换规则映射是否正确;2、金额、税率、余额相关的数值类型业务对象的字段要是数值类型,不要文本;