从易快报到金蝶云星空通过接口配置打通数据
数据源系统:易快报
易快报是敏捷的企业报销费控与聚合消费平台,为企业提供移动报销、聚合消费、全程费控、预算管理、发票管理等一站式解决方案。同时,易快报可集成多家银行及第三方支付平台,打通对公对私付款,对接财务软件自动生成凭证,实现申请-订购-报销-验票-支付-记账全流程,并可与企业现有ERP、OA、CRM等业务系统无缝集成,打破信息孤岛,激活数据价值。
接通系统:金蝶云星空
金蝶K/3Cloud在总结百万家客户管理最佳实践的基础上,提供了标准的管理模式;通过标准的业务架构:多会计准则、多币别、多地点、多组织、多税制应用框架等,有效支持企业的运营管理;K/3Cloud提供了标准的业务建模:35种标准ERP领域模型、1046种模型元素、21243种模型元素属性组合,288个业务服务构件,让企业及伙伴可快速构建出行业化及个性化的应用。
系统对接接口配置
集成方案是整个轻易云集成平台的核心,每一个集成方案代表一种业务的对接策略(对接方案借鉴可以在轻易云系统数据集成交流社区bbs.qeasy.cloud 中找到相关信息),用户可以根据业务的不同新建多个不同规则的集成方案。比如:采购订单同步,线上销售出库同步,线下销售出库同步。一个集成方案必须要配置源系统:易快报,源系统 API:获取指定状态单据列表(包含已删除单据),目标系统:金蝶云星空,目标系统 API付款单新增。在新增集成方案之前需要确定两个系统的连接器都已经配置完成。
易快报接口明细
- 调用接口: /api/openapi/v1/docSequences
- 接口名称:获取指定状态单据列表(包含已删除单据)
- 方法:POST
请求参数
| 字段 | 字段名称 | 类型 | 配置值 |
|---|---|---|---|
| fields | 需要过滤掉的字段 | object | |
| fields.docData | 单据数据 | object | |
| fields.docData.logs | 审批日志 | string | |
| fields.docData.flowPlan | 审批流信息 | string | |
| fields.type | 单据类型 | string | expense |
| fields.index | 分页查询的起始索引序号 | string | {{LAST_SYNC_TIME}}000 |
| fields.count | 查询数据条数 | string | 10 |
| fields.state | 单据状态 | string | PAID |
响应参数
| 字段 | 字段名称 | 类型 | 配置值 |
|---|---|---|---|
| type | type | string | |
| id | id | string | |
| corporationId | corporationId | string | |
| ownerId | ownerId | string | |
| dataType | dataType | string | |
| remark | remark | string | |
| title | title | string | |
| updateTime | updateTime | string | |
| specificationId | specificationId | string | |
| owner | owner | object | |
| owner.id | id | string | |
| owner.name | name | string | |
| owner.departments | departments | string | |
| owner.code | code | string | |
| owner.department | department | object | |
| owner.department.id | id | string | |
| owner.department.name | name | string | |
| owner.department.code | code | string | |
| owner.department.code | code | string | |
| owner.department.userProps | userProps | object | |
| owner.department.userProps.payeeId | payeeId | string | |
| owner.department.userProps.description | description | string | |
| owner.department.userProps.submitterId | submitterId | string | |
| owner.department.userProps.companyRealPay | companyRealPay | string | |
| owner.department.userProps.specificationId | specificationId | string | |
| owner.department.userProps.expenseDepartment | expenseDepartment | string | |
| owner.department.userProps.companyRealPay_rate | companyRealPay_rate | string | |
| owner.department.userProps.companyRealPay_budget | companyRealPay_budget | string | |
| owner.department.userProps.companyRealPay_foreign | companyRealPay_foreign | string | |
| owner.department.userProps.companyRealPay_budgetRate | companyRealPay_budgetRate | string | |
| owner.department.userProps.companyRealPay_budgetUnit | companyRealPay_budgetUnit | string | |
| owner.department.userProps.companyRealPay_budgetScale | companyRealPay_budgetScale | string | |
| owner.department.userProps.companyRealPay_foreignUnit | companyRealPay_foreignUnit | string | |
| owner.department.userProps.companyRealPay_budgetSymbol | companyRealPay_budgetSymbol | string | |
| owner.department.userProps.companyRealPay_standardUnit | companyRealPay_standardUnit | string | |
| owner.department.userProps.companyRealPay_budgetNumCode | companyRealPay_budgetNumCode | string | |
| owner.department.userProps.companyRealPay_budgetStrCode | companyRealPay_budgetStrCode | string | |
| owner.department.userProps.companyRealPay_foreignSymbol | companyRealPay_foreignSymbol | string | |
| owner.department.userProps.companyRealPay_foreignNumCode | companyRealPay_foreignNumCode | string | |
| owner.department.userProps.companyRealPay_foreignStrCode | companyRealPay_foreignStrCode | string | |
| owner.department.userProps.companyRealPay_standardSymbol | companyRealPay_standardSymbol | string | |
| owner.department.userProps.companyRealPay_standardNumCode | companyRealPay_standardNumCode | string | |
| owner.department.userProps.companyRealPay_standardStrCode | companyRealPay_standardStrCode | string | |
| owner.department.userProps.state | state | string | |
| owner.department.userProps.project | project | string | |
| owner.department.userProps.logs | logs | string | |
| owner.department.userProps.flowPlan | flowPlan | string | |
| owner.department.userProps.sumAmount | sumAmount | string | |
| owner.department.userProps.writeOffAmount | writeOffAmount | string | |
| owner.department.userProps.expenseDate | expenseDate | string | |
| owner.department.userProps.details | details | array | |
| owner.department.userProps.details.amount | amount | string | |
| owner.department.userProps.details.amount_standardStrCode | amount_standardStrCode | string | |
| owner.department.userProps.details.amount_standardNumCode | amount_standardNumCode | string | |
| owner.department.userProps.details.amount_standardSymbol | amount_standardSymbol | string | |
| owner.department.userProps.details.amount_standardUnit | amount_standardUnit | string | |
| owner.department.userProps.details.amount_rate | amount_rate | string | |
| owner.department.userProps.details.amount_foreignStrCode | amount_foreignStrCode | string | |
| owner.department.userProps.details.amount_foreignNumCode | amount_foreignNumCode | string | |
| owner.department.userProps.details.amount_foreign | amount_foreign | string | |
| owner.department.userProps.details.amount_foreignSymbol | amount_foreignSymbol | string | |
| owner.department.userProps.details.amount_foreignUnit | amount_foreignUnit | string | |
| owner.department.userProps.details.date | date | string | |
| owner.department.userProps.details.remark | remark | string | |
| owner.department.userProps.details.feeTypeId | feeTypeId | string | |
| owner.department.userProps.details.userProps | userProps | string | |
| owner.department.userProps.details.invoiceCount | invoiceCount | string | |
| owner.department.userProps.details.taxAmount | taxAmount | string | |
| owner.department.userProps.details.noTaxAmount | noTaxAmount | string | |
| owner.department.userProps.details.invoices | invoices | string | |
| owner.department.userProps.details.invoiceFormType | invoiceFormType | string | |
| owner.department.userProps.details.payeeInfo | payeeInfo | string | |
| owner.department.userProps.details.writtenOffRecords | writtenOffRecords | object | |
| owner.department.userProps.details.submitTime | submitTime | string | |
| owner.department.userProps.details.payeeInfo | payeeInfo | object | |
| owner.department.userProps.details.payeeInfo.sort | sort | string | |
| owner.department.userProps.details.payeeInfo.name | name | string | |
| owner.department.userProps.details.payeeInfo.cardNo | cardNo | string | |
| owner.department.userProps.details.payeeInfo.bank | bank | string | |
| owner.department.userProps.details.payeeInfo.branch | branch | string | |
| owner.department.userProps.details.payeeInfo.type | type | string | |
| owner.department.userProps.details.payeeInfo.province | province | string | |
| owner.department.userProps.details.payeeInfo.city | city | string | |
| owner.department.userProps.details.payeeInfo.certificateType | certificateType | string | |
| owner.department.userProps.details.payeeInfo.certificateNo | certificateNo | string | |
| owner.department.userProps.details.payeeInfo.bankLinkNo | bankLinkNo | string | |
| owner.department.userProps.details.payeeInfo.bankName | bankName | string | |
| owner.department.userProps.details.payeeInfo.swiftCode | swiftCode | string | |
| owner.department.userProps.details.payeeInfo.bankCode | bankCode | string | |
| owner.department.userProps.details.payeeInfo.branchCode | branchCode | string | |
| owner.department.userProps.details.payeeInfo.remark | remark | string | |
| owner.department.userProps.details.payeeInfo.id | id | string | |
| owner.department.userProps.details.payeeInfo.payorId | payorId | string | |
| owner.department.userProps.details.payeeInfo.paymentChannel | paymentChannel | string | |
| owner.department.userProps.details.payeeInfo.paymentAccountId | paymentAccountId | string | |
| owner.department.userProps.details.payeeInfo.payTime | payTime | string | |
| owner.department.userProps.details.payeeInfo.multiplePayeesMode | multiplePayeesMode | string | |
| owner.department.userProps.details.payeeInfo.channelTradeNo | channelTradeNo | string | |
| owner.department.userProps.details.payeeInfo.payPlan | payPlan | string | |
| owner.department.userProps.details.payeeInfo.receiptState | receiptState | string | |
| owner.department.userProps.details.payeeInfo.paymentAccount | paymentAccount | string |
金蝶云星空接口明细
- API:batchSave
- NAME:付款单新增
- METHOD:POST
请求参数
| 接口字段 | 字段名称 | 预设值 | 描述 |
|---|---|---|---|
| FBillNo | 单据编号 | function case when '{{details_userProps_u归属组织code}}'='' then '{{code}}{{userProps_u归属组织code}}' else '{{code}}{{details_userProps_u归属组织code}}' end | |
| FPAYORGID | 付款组织 | _function case when '{{FPAYORGID}}'>0 then '{{FPAYORGID}}' when '{{details_userProps_u归属组织code}}' in ('') then '{{userProps_u归属组织code}}' else '{{details_userProps_u归属组织code}}' end | |
| FSETTLEORGID | 结算组织 | function case when '{{details_userProps_u归属组织code}}'>0 then '{{details_userProps_u归属组织code}}' else '{{userProps_u归属组织code}}' end | |
| FCURRENCYID | 币别 | PRE001 | |
| FDATE | 业务日期 | _function FROM_UNIXTIME( ( {{payTime}} / 1000 ) ,'%Y-%m-%d %H:%i:%S' ) | |
| FBillTypeID | 单据类型 | function case when '{{writeOffAmount}}'>0 then 'hxd' else 'clbxd' end | |
| FCONTACTUNITTYPE | 往来单位类型 | BD_Department | |
| FCONTACTUNIT | 往来单位 | _function case when '{{department_code}}' in ('') then 'BM000001' else '{{department_code}}' end | |
| FRECTUNITTYPE | 收款单位类型 | BD_Department | |
| FRECTUNIT | 收款单位 | function case when '{{department_code}}' in ('') then 'BM000001' else '{{department_code}}' end | |
| FDepartment | 部门 | _findCollection find code from 19c94f4e-612d-3b26-8952-edf9168371d5 where name={{department_name}} | |
| FPAYAMOUNTFOR | 付款金额 | function sum({{sumAmount}}-{{writeOffAmount}}) | |
| FEXCHANGETYPE | 汇率类型 | HLTX01_SYS | |
| FSETTLECUR | 结算币别 | PRE001 | |
| FREMARK | 备注 | {{remark}} | |
| FPAYBILLENTRY | 付款单明细 | details | |
| FPAYBILLENTRY.FSETTLETYPEID | 结算方式 | _function case when '{{paymentAccount_accountNo}}' in ('') then '10' when '{{writeOffAmount}}'>0 then '10' else 'JSFS04_SYS' end | |
| FPAYBILLENTRY.FPAYTOTALAMOUNTFOR | 付款金额 | {{details_amount}} | |
| FPAYBILLENTRY.FPURPOSEID | 收付款用途 | SFKYT12_SYS | |
| FPAYBILLENTRY.FACCOUNTID | 我方银行账号 | {{paymentAccount_accountNo}} | |
| FPAYBILLENTRY.FCOMMENT | 备注 | {{details_remark}} | |
| FPAYBILLENTRY.FCOSTID | 费用项目 | findCollection find code from 0e3410bc-d1ad-3810-bd5f-639ce883690a where id={{details_feeTypeId}} | |
| FPAYBILLENTRY.FEXPENSEDEPTID_E | 费用承担部门 | _findCollection find code from 19c94f4e-612d-3b26-8952-edf9168371d5 where id={{details_userProps_expenseDepartment}} | |
| FPAYBILLENTRY.F_wk_KH | 客户 | {{details_userProps_u客户code}} | |
| FPAYBILLENTRY.F_PBLH_YKBHEXJE | 易快报核销金额 | {{details_amount}} | |
| FPAYBILLENTRY.F_WK_NF | 年份 | {{details_userProps_u年份code}} | |
| FPAYBILLENTRY.F_WK_jj | 季节 | {{details_userProps_u季度code}} | |
| FPAYBILLENTRY.F_WK_PP | 品牌 | {{details_userProps_u品牌code}} | |
| FPAYBILLENTRY.F_wk_bxje1 | 报销金额 | {{sumAmount}} | |
| FPAYBILLENTRY.F_wk_hxje | 核销金额 | {{writeOffAmount}} | |
| FPAYBILLENTRY.F_wk_YG | 员工 | function case when '{{userProps_u原借款人code}}'='' then '{{userProps_u实际报销人code}}' else '{{userProps_u原借款人_code}}' end | |
| FPAYBILLENTRY.FormId | 业务对象表单Id | AP_PAYBILL | 必须填写金蝶的表单ID如 |
| FPAYBILLENTRY.Operation | 执行的操作 | BatchSave | |
| FPAYBILLENTRY.IsAutoSubmitAndAudit | 提交并审核 | false | |
| FPAYBILLENTRY.IsVerifyBaseDataField | 验证基础资料 | false | 是否验证所有的基础资料有效性,布尔类,默认false(非必录) |
数据对接效果
随着企业数字化业务的深入发展,对于企业的 IT 或者 CIO 来讲,正在面临一个愈发重要的问题——系统的结构太复杂了,尤其是头部企业,至少有十多套系统,这些系统之间的蛛网状的接口如果经常出问题。企业内部以及企业内部与外部建立起越来越多的业务应用系统,如何整合企业的现有IT资源,使企业中计算机孤岛式的应用向集体协作的方向发展,发挥资源效益的最大化,降低企业成本,正在逐渐成为企业关注的重要问题。用户希望企业内所有系统集成在一个平台上,操作统一,以节省培训时间。使用在轻易云应用集成平台 + MDM基础数据平台的解决方案中,轻易云应用集成平台负责实现异构、分布式系统之间互联互通,实现服务API治理以及数据传输交换。通过轻易云预置的各种适配器组件,连接现有各孤立应用系统,以图形化、拖拽方式构建集成流程和服务,提高应用系统集成工作效率,降低异构系统集成风险。针对未来可能出现的业务需求变更,在应用集成平台上进行动态调整,实现各应用系统之间的集成策略平滑升级。