报销单发票导入的校验接口配置指南
一、发票导入流程
①.流程图例
②.节点说明
序号 | 节点 | 说明 | 备注 |
1 | 发票导入开始 | 发票云将会返回发票采集结果json字符串 | |
2 | 【二开SDK接口】 发票原始信息JSON处理 | 发票云采集完毕,获取到发票原始json数据,二开可以在此处对发票采集的原始数据进行修正 | 可通过实现sdk接口进行修正,参考接口说明 |
3 | 构造费用明细Bo、发票信息Bo、发票明细Bo过程 | 标准导入流程 | |
4 | 【二开接口】 发票信息BO写入 发票信息分录 前置事件 | 二开可以在此处对发票信息Bo (InvoiceEntryBO)进行修正 | |
5 | 发票信息BO 写入 发票信息分录 | 将构造生成的发票信息BO模型写入分录 | |
6 | 【二开接口】 发票信息BO写入 发票信息分录 后置事件 | 二开可以在此处对界面数据模型 dataModel进行修正 (建议只对发票信息分录进行修改) | 可通过发票云服务商配置实现接口进行修正,参考接口说明 |
7 | 【二开接口】 发票明细BO写入 发票明细分录 前置事件 | 二开可以在此处对发票明细Bo (InvoiceItemEntryBO)进行修正 | 可通过发票云服务商配置实现接口进行修正,参考接口说明 |
8 | 发票明细BO 写入 发票明细分录 | 将构造生成费用明细/差旅明细BO模型写入分录 | |
9 | 【二开接口】 发票明细BO写入 发票明细分录 后置事件 | 二开可以在此处对界面数据模型dataModel进行修正 (建议只对发票明细分录进行修改) | 可通过发票云服务商配置实现接口进行修正,参考接口说明 |
10 | 【二开接口】 费用明细/差旅明细BO写入 费用明细分录 前置事件 | 二开可以在此处对费用明细/差旅明细Bo (ExpenseEntryBo)进行修正 | |
11 | 费用明细B/差旅明细BO 写入 费用明细B/差旅明细分录 | ||
12 | 【二开接口】 费用明细/差旅明细BO写入 费用明细分录 后置事件 | 二开可以在此处对界面数据模型 dataModel进行修正 (建议只对费用明细/差旅明细分录进行修改) | 可通过发票云服务商配置实现接口进行修正,参考接口说明 |
13 | 标准后置逻辑--刷新数据、刷新界面 | ||
14 | 【二开接口】 导入发票流程 后置事件 | 此时发票导入流程已经结束,数据已经写入单据实体并渲染界面,二开可在此处对整个单据进行操作 | 可通过发票云服务商配置实现接口进行修正,参考接口说明 |
15 | 【二开SDK接口】 导入发票流程 后置事件 | 此时发票导入流程已经结束,数据已经写入单据实体并渲染界面,二开可在此处对整个单据进行操作 | 可通过实现sdk接口进行修正,参考接口说明 |
16 | 结束 |
二、接口说明
1.【二开SDK接口】发票原始信息JSON处理
目前仅支持PC端
2.【二开SDK接口】导入发票流程后置事件
目前仅支持PC端
参考sdk开发指南:https://dev.kingdee.com/open/detail/sdk/1803055070749671424
3.【二开接口】发票信息BO写入发票信息分录前置事件
4.【二开接口】发票明细BO写入发票明细分录前置事件
接口 | 说明 |
kd.fi.er.business.invoicecloud.provider.service.IBeforeCreateInvoiceInfoService | 创建发票分录分录前置服务 |
方法 | 参数及说明 |
beforeCreateInvoiceEntry | 创建发票信息分录前置接口 context:导入发票上下文 dataModel:当前页面代理数据模型(只允许获取数据而无法对模型操作) invoiceEntryBO:即将创建的发票信息模型 rowIndex:发票信息索引行 |
beforeCreateInvoiceItemEntry | 创建发票明细分录前置接口 context:导入发票上下文 dataModel:当前页面代理数据模型(只允许获取数据而无法对模型操作) invoiceItemEntryBO:即将创建的发票明细模型 rowIndex:发票明细索引行 |
5.【二开接口】发票信息BO写入发票信息分录后置事件
6.【二开接口】发票信息BO写入发票明细分录后置事件
接口 | 说明 |
kd.fi.er.business.invoicecloud.provider.service.IAfterCreateInvoiceInfoService | 创建发票分录分录后置服务 |
方法 | 参数及说明 |
afterCreateInvoiceEntry | 创建发票信息分录前置接口 context:导入发票上下文 dataModel:当前页面代理数据模型(允许获取数据和对模型操作) invoiceEntryBO:创建的发票信息模型 rowIndex:发票信息索引行 |
afterCreateInvoiceItemEntry | 创建发票明细分录前置接口 context:导入发票上下文 dataModel:当前页面代理数据模型(允许获取数据和对模型操作) invoiceItemEntryBO:创建的发票明细模型 rowIndex:发票明细索引行 |
7.【二开接口】费用明细/差旅明细BO写入费用明细分录前置事件
接口 | 说明 |
kd.fi.er.business.invoicecloud.provider.service.IBeforeCreateExpenseItemEntryService | 创建费用/差旅明细前置服务 |
方法 | 参数及说明 |
beforeCreateExpenseItemEntry | 创建费用明细分录前置接口 context:导入发票上下文 dataModel:当前页面代理数据模型(只允许获取数据而无法对模型操作) expenseEntryBO:即将创建的费用明细模型 rowIndex:费用明细索引行 |
beforeCreateExpenseItemEntryForTrip | 创建差旅明细分录前置接口 context:导入发票上下文 dataModel:当前页面代理数据模型(只允许获取数据而无法对模型操作) tripEntryDO:当前行程信息DynamicObject expenseEntryBO:即将创建的差旅明细模型 tripRowIndex:差旅明细索引行 parentIndex:行程信息索引行 |
beforeCreateExpenseItemEntryForExpensePool | 创建费用池费用明细前置接口 context:导入发票上下文 dataModel:当前页面代理数据模型(只允许获取数据而无法对模型操作) expenseEntryBO:即将创建的费用明细模型 |
8.【二开接口】费用明细/差旅明细BO写入费用明细分录后置事件
接口 | 说明 |
kd.fi.er.business.invoicecloud.provider.service.IAfterCreateExpenseItemEntryService | 创建费用/差旅明细后置服务 |
方法 | 参数及说明 |
afterCreateExpenseItemEntry | 创建费用明细分录后置接口(请勿使用已废弃的旧方法) invoiceContext:导入发票上下文 dataModel:当前页面代理数据模型(允许获取数据和对模型操作) expenseEntryBO:创建的费用明细模型 rowIndex:费用明细索引行 |
afterCreateExpenseItemEntryForTrip | 创建差旅明细分录后置接口(请勿使用已废弃的旧方法) invoiceContext:导入发票上下文 dataModel:当前页面代理数据模型(允许获取数据和对模型操作) tripEntryDO:当前行程信息DynamicObject expenseEntryBO:创建的差旅明细模型 tripRowIndex:差旅明细索引行 parentIndex:行程信息索引行 |
afterCreateExpenseItemEntryForExpensePool | 创建费用池费用明细后置接口(请勿使用已废弃的旧方法) invoiceContext:导入发票上下文 dataModel:当前页面代理数据模型(允许获取数据和对模型操作) expenseEntryBO:创建的费用明细模型 |
9.【二开接口】导入发票流程后置事件
接口 | 说明 |
kd.fi.er.business.invoicecloud.provider.service.IAfterProcessExtService | 导入发票完成后,流程后置接口 |
方法 | 参数及说明 |
afterProcess | 创建费用明细分录后置接口(请勿使用已废弃的旧方法) view:当前页面视图 context:导入发票上下文 |
三、适用场景示例
1.在同张报销单分批导入发票时,系统会自动排重,但不会提示。用户希望除了排重之外,同张单重复导入发票时,需要提示报销人“发票号码为XX的发票已导入,本批次排重”;
2.按行导入发票之后,费用明细上的字段会被发票票面字段覆盖,例如在费用明细行输入了备注,但按行导入发票之后备注字段被清空。用户希望费用明细中的备注字段不考虑发票传值,保持原有的值。
四、发票二开接口流程示意
写入费用明细/差旅明细接口示意图
五、发票二开指导
1、配置与实现
路径:【财务云】→【费用核算】→【发票设置】→【发票云服务商】→【kingdee】
2、服务名称与服务实现类
第一类:(举例不覆盖原有备注)
①前置服务名称
kd.fi.er.business.invoicecloud.provider.service.IBeforeCreateExpenseItemEntryService
②前置服务实现类
kd.fi.er.business.invoicecloud.provider.service.std.BeforeCreateExpenseItemEntryServiceImpl
第二类:(举例覆盖原有备注)
①后置服务名称
kd.fi.er.business.invoicecloud.provider.service.IAfterCreateExpenseItemEntryService
②后置服务实现类
kd.fi.er.business.invoicecloud.provider.service.std.AfterCreateExpenseItemEntryServiceImpl
第三类:(自定义发票校验提示)
①导入流程后置服务名称
kd.fi.er.business.invoicecloud.provider.service.IAfterProcessExtService
②导入流程后置服务实现类
kd.fi.er.business.invoicecloud.provider.service.std.IAfterProcessExtServiceImpl
六、适用版本及其他
V6.0.1及以上版本
作者:魏彩源、许华茵
报销单发票导入的校验接口配置指南
本文2024-09-22 22:43:05发表“云星瀚知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-xinghan-128411.html