金蝶EAS与异构系统银企直连付款方案

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

金蝶EAS与异构系统银企直连付款方案

# 一、应用场景 当公司存在**多个系统**(业务系统、OA系统等多种系统),**出纳**需要付款时,便需要在金蝶EAS新增**出纳付款单或者在网银系统中创建付款信息**,这样手工创建时,一付款效率低下、二容易出错。 为了提供出纳付款的准确性和付款效率,系统集成方案便提上日程。**金蝶EAS与其他异构系统集成方案有多种**,如WebService、OpenApi和中间表等多种方案。每种方案的优劣,可以参考该网址:[集成入门-02苍穹集成服务云介绍 (kdcloud.com) ](https://club.kdcloud.com/school/96656967854552832 )(虽然是苍穹的,但是金蝶EAS一样可以参考该内容对比每种方案优劣性)。 一般需求,通过集成需要达到以下效果: 1. 外部系统(非金蝶EAS系统)将付款数据推送到金蝶EAS付款单中; 2. 关键信息(收款人名称、收款账户)禁止人为修改; 3. 有新的付款单可以通过邮件等通知到出纳人员; 4. 出纳在金蝶EAS提交付款单,银企付款如失败,则通知出纳人员;如付款成功,则将信息外发给业务系统。 # 二、实现步骤 ## 2.1 中间表设计 在数据库中创建两张表,分别用于存储业务系统和金蝶EAS付款单的对接数据。 创建的表至少需要有以下字段,(演示中创建有下划线的字段): ### 表1: 表名:CT_T_TEMP(中间表根据实际业务需求设计) |序号|字段名称|字段说明|是否必传| |-|-|-|-| |++1++|++FID++|++记录业务系统的唯一标识,数据库设置主键++|++是++| |++2++|++FCOMPANY_NUMBER++|++对方系统中的公司编码++|++是++| |3|FPAY_TYPE|记录业务系统中定义的付款方式|否| |4|FEXPECT_DATE|记录业务系统的放款时间|否| |5|FPAY_TYPE|记录付款类型(如1、2、3)|否| ### 表2: 表名:CT_T_TEMPENTRY |序号|字段名称|字段说明|是否必传| |-|-|-|-| |++1++|++FID++|++记录业务系统的唯一标识,数据库设置主键++|++是++| |++2++|++FCUSTOMER_NAME++|++收款人名称++|++是++| |++3++|++FBANK_NAME++|++收款银行名称++|++是++| |++4++|++FACCOUNT_NUMBER++|++收款人账户++|++是++| |++5++|++FPAY_AMOUNT++|++记录付款金额++|++是++| |6|FBILLID|设置数据库主键面会出现编码排序问题|否| |7|FBUSINESS_TYPE|记录业务类型|否| |8|FSOURCE|记录来源系统,用于记录生成数据的系统|否| |9|FCURRENCY|记录币别|否| |10|FEXCHANGERATE|记录汇率|否| ### 创建表的SQL语句 ```SQL USE [MyTest] GO /****** Object: Table [dbo].[CT_T_TEMP] Script Date: 2021/9/16 22:26:44 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[CT_T_TEMP]( [FID] [nvarchar](50) NOT NULL, [FCOMPANY_NUMBER] [nvarchar](50) NULL, CONSTRAINT [PK_CT_T_TEMP] PRIMARY KEY CLUSTERED ( [FID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO USE [MyTest] GO /****** Object: Table [dbo].[CT_T_TEMPENTRY] Script Date: 2021/9/16 22:27:41 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[CT_T_TEMPENTRY]( [FID] [nvarchar](50) NULL, [FCUSTOMER_NAME] [nvarchar](50) NULL, [FBANK_NAME] [nvarchar](50) NULL, [FACCOUNT_NUMBER] [nvarchar](50) NULL, [FPAY_AMOUNT] [nvarchar](50) NULL, [FBILLID] [int] IDENTITY(1,1) NOT NULL, [FSOURCE] [nvarchar](50) NULL, CONSTRAINT [PK_CT_T_TEMPENTRY] PRIMARY KEY CLUSTERED ( [FBILLID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO ``` ## 2.2金蝶EAS付款单生成 ### 2.2.1 金蝶EAS集成平台配置-数据中心连接 ![1.webp](/download/01008589734496664afb8d335e76bf368e99.webp) ![2.webp](/download/0100617973af098c4841b76f02c53b612527.webp) ### 2.2.2 金蝶EAS集成平台配置-源系统视图 ![1.webp](/download/0100ba65d9a7c86842d58978b21c7271cb47.webp) ![2.webp](/download/0100ede6eb1550484c1d88d8a86c2455bf0f.webp) 执行脚本: ```sql CREATE VIEW V_OA_SOURCE AS ( SELECT E.FID AS HEADPK,--业务系统id, H.FCOMPANY_NUMBER,-- 公司编码, H.FID AS ENTRYPK, E.FCUSTOMER_NAME,--收款客户 E.FBANK_NAME,--银行名称 E.FACCOUNT_NUMBER,--收款人账号 E.FPAY_AMOUNT,--付款金额 E.FSOURCE-- 0:OA;1:业务系统; FROM CT_T_TEMPENTRY E INNER JOIN CT_T_TEMP H ON H.FID = E.FID ); CREATE VIEW V_OA_SOURCE_ALL AS ( SELECT H.FBILLID headpk from CT_T_TEMPENTRY H ); ``` ### 2.2.3 金蝶EAS集成平台配置-业务单据设置 ![3.webp](/download/010022b78ffe48804f8ba2cd67cd5afc804d.webp) ![4.webp](/download/0100f1db9bfeee4a4584b2e2892161832b95.webp) ### 2.2.4 金蝶EAS集成平台配置-单据转换规则配置 ![5.webp](/download/0100951512b9d6584e9ba1f0ea72dcd40e81.webp) ![6.webp](/download/0100c2c93622255d4f29bc90f33099e5d8d2.webp) ![7.webp](/download/0100f6f008aa3e13490ea487a9adae7b3d2f.webp) ![8.webp](/download/0100ec88aa16f7044693a63924f3f03548dd.webp) ![9.webp](/download/0100664a7e2960b34b78b307ec3d5a687b98.webp) ![10.webp](/download/01001585e611a6c2470ba4047da720ff20cd.webp) ![11.webp](/download/0100bfc277281b05410b86a42ec3d4b90050.webp) **++特殊说明:由于我的的是测试环境,可以考虑增加字段来保留系统来源字段,结算方式根据真实的生产环境设置。++** ![12.webp](/download/0100eab7b3c4e2884b309242c910f9961c9a.webp) ![13.webp](/download/0100beb1affd3cf14ca2af89df31a1b78641.webp) ![14.webp](/download/0100666e53008dc24f54a7e7d15d1c3f62e0.webp) ### 2.2.4 金蝶EAS集成平台配置-设置调度规则 ![15.webp](/download/01001fe5d2b0730f458b8dcbed1bb42a0c07.webp) ![16.webp](/download/0100efc9850945674ac092aa1d1b24a5168f.webp) Cron表达式生成工具:[:在线Cron表达式生成器 - 码工具 (matools.com)](https://www.matools.com/cron/) ![17.webp](/download/0100632e88935e634829b596e770790b3ec2.webp) ### 2.2.5 金蝶EAS集成平台配置-测试数据生成 ![18.webp](/download/01008924301661974d59903a23fa0ea612d1.webp) ![19.webp](/download/0100d6b861565e6a40ac9b7a46c2baf8affa.webp) 获取数据源时报错: ![20.webp](/download/0100d5dca257f0d54a76bae70122241a42a6.webp) 在中间库执行以下脚本: ```sql ALTER TABLE T_EIP_wIgAAAAAJxKeCejJ --T_EIP_wIgAAAAAJxKeCejJ增量表名,在中间库查找 ALTER COLUMN headpk nvarchar(100) COLLATE Chinese_PRC_CI_AS ``` ![21.webp](/download/0100214dcf9c16174f61b11c36bb60fd6013.webp) ![22.webp](/download/0100b54772c9577f47458d49d8f20bc89957.webp) ![23.webp](/download/01003af0e481e2f74ab1a06c546a4b61bf49.webp) ![24.webp](/download/0100b7a639e45aaa42c88c5145d94e214911.webp)## 2.3 金蝶EAS付款单生成提醒 自动生成付款单,这里使用的预警任务进行的相关提醒。 ![25.webp](/download/0100231dfbfd6ec34209ab7c2880a66672df.webp) ![26.webp](/download/0100238bd1f585464478b348b3df2c670c95.webp) ![27.webp](/download/010063a45a9809a34e1ca5a8ef27cf78b5bf.webp) ![28.webp](/download/0100d4c6f91f520345529a1f82761730b54d.webp) ![29.webp](/download/0100702b489c73c546c18981ccbd1a5c7bfc.webp) 具体设置可以参考: [定时任务设置只预警一次 (kingdee.com)](https://wenku.my7c.com/article/168151288490664960) [在线Cron表达式生成器 - 码工具 (matools.com) ](https://www.matools.com/cron/) ## 2.4 金蝶EAS付款单禁止编辑关键字段 ![30.webp](/download/01005934f0c029ab480f90b5f13f73f8a90f.webp) ![31.webp](/download/01000e12d9867d2c46ee8ef78b86dc6661cf.webp) ![32.webp](/download/01000d37b8693c31491696084bde7b3c1993.webp) ![33.webp](/download/0100eb83d7e7960c4e93b041239c292f375f.webp) ![34.webp](/download/01005ec293b8778f4cfcb5a9cb81a670b163.webp) 相关代码如下: ```java var source = pluginCtx.getKDBizPromptBox("prmtDesc").getValue(); //来源系统在我当 前的环境里没有这个字段,演示时使用了摘要字段 if(source == "OA"){ pluginCtx.getKDBizPromptBox("txtPayeeAccountBank").setEnabled(false); pluginCtx.getKDBizPromptBox("txtPayeeBank").setEnabled(false); pluginCtx.getKDComboBox("comboPayeeType").setEnabled(false); pluginCtx.getKDBizPromptBox("f7ActualBankAcct").setEnabled(false); pluginCtx.getKDTextField("kDTxtBankAcctName").setEnabled(false); pluginCtx.getKDTextField("kDTxtBankNumber").setEnabled(false); pluginCtx.getKDBizPromptBox("prmtRemitAB").setEnabled(false); pluginCtx.getKDTable("kdtEntries").setEnabled(false); pluginCtx.getKDTable("kdtEntries").getColumn("amount").getStyleAttributes().setL ocked(true); pluginCtx.getKDWorkButton("btnAddLine").setEnabled(false); pluginCtx.getKDWorkButton("btnInsertLine").setEnabled(false); pluginCtx.getKDWorkButton("btnCopyLine").setEnabled(false); pluginCtx.getKDWorkButton("btnRemoveLine").setEnabled(false); }else{ pluginCtx.getKDBizPromptBox("txtPayeeAccountBank").setEnabled(true); pluginCtx.getKDBizPromptBox("txtPayeeBank").setEnabled(true); pluginCtx.getKDComboBox("comboPayeeType").setEnabled(true); pluginCtx.getKDBizPromptBox("f7ActualBankAcct").setEnabled(true); pluginCtx.getKDTextField("kDTxtBankAcctName").setEnabled(true); pluginCtx.getKDTextField("kDTxtBankNumber").setEnabled(true); pluginCtx.getKDBizPromptBox("prmtRemitAB").setEnabled(true); pluginCtx.getKDTable("kdtEntries").setEnabled(true); pluginCtx.getKDTable("kdtEntries").getColumn("amount").getStyleAttributes().setL ocked(false); pluginCtx.getKDWorkButton("btnAddLine").setEnabled(true); pluginCtx.getKDWorkButton("btnInsertLine").setEnabled(true); pluginCtx.getKDWorkButton("btnCopyLine").setEnabled(true); pluginCtx.getKDWorkButton("btnRemoveLine").setEnabled(true); } ``` ## 2.5 金蝶EAS付款单流程付款失败通知 付款失败通知可以通过2.3 金蝶EAS付款单生成提醒 中的预警任务实现,也可以通过在工作流中增加循环节点实现,具体可以参考: [几乎不用开发的一个简单系统对接方案分享 (kingdee.com)](https://wenku.my7c.com/article/178251328887058688) 主要需要在工作流提交银企后增加一个工作流循环节点,然后系统定时去查询付款单的银企返回状态,如果返回失败,则执行到失败节点。 ```java StringBuffer tStrSql = new StringBuffer ( ) ;tStrSql . append ( " select fbankreturninfo,fbankpaystate from t_cas_paymentbill " ) ; tStrSql . append ( " where fid = '" + billid + "' " ) ; com . kingdee . jdbc . rowset . IRowSet rowSet = com . kingdee . eas . util . app . DbUtil . executeQuery ( __bosContext , tStrSql . toString ( ) ) ;if ( rowSet != null ) { while ( rowSet . next ( ) ) { stateInfo = rowSet . getString ( 1 ) ; state = rowSet . getString ( 2 ) ; } }if(state == "3" ||state == "4" ||state == "5" || state == "6"){ return true; ``` ## 2.6 金蝶EAS付款单结果外发中间表 当付款结束后,需要将金蝶EAS的付款结果回传给外部系统。这是需要在中间库新建一个和金蝶EAS付款单相同表明的数据表。以MyTest库中为例: ### 2.6.1 中间库创建和金蝶EAS系统数据表相同的数据库表: ![35.webp](/download/010026ad1044ca0b4bb6803ccdc9e58c2c74.webp) 这里注意:表明和字段名大小写一定要与EAS的完全一致。 ### 2.6.2 金蝶EAS集成平台-数据外发 ![36.webp](/download/0100d9dc37b8068f46448fd3bdcdc7ccc7ef.webp) ![37.webp](/download/0100adeb51664b784b62bcb4914fa331f96b.webp) ![38.webp](/download/010015acbd9413d942e79e348cd7535c95a4.webp) ![39.webp](/download/01002ec8cecb1e0b45bf96f50f960cedcae8.webp) 此处选择传输的字段均需要在之前的数据库中创建,不然会提示某些字段不存在,无法同步。 ![40.webp](/download/01006e76a77e9a7946749210162db4b0e295.webp) ![41.webp](/download/01008e3d7144bd7e4359b19342fab7bf1eb9.webp) # 三、应用小结 通过这个案例,基本模拟了外部系统通过集成平台在金蝶EAS生成数据和金蝶EAS数据外发给其他系统。 这种方式不但可以同步付款单,其他单据也可以同步。至于付款结果外发,其实不但可以外发付款结果,也可以直接外发视图。 # 延申学习 1. 视频课程 EAS集成平台操作详解 https://wenku.my7c.com/school/43439167226052608 DEP脚本开发介绍-1 https://wenku.my7c.com/school/43439147642847232?topicId=134352673994254848 DEP开发规范-1 https://wenku.my7c.com/school/43439147433132032?topicId=134352673994254848 DEP开发基础介绍-1 https://wenku.my7c.com/school/43439147064033280?topicId=134352673994254848 加速EAS数据流通,提升数据价值 https://wenku.my7c.com/school/liveCourse/179630128027233792 EAS Cloud费用报销-BOTP配置介绍 https://wenku.my7c.com/school/liveCourse/93351887860064000 银企互联插件开发 https://wenku.my7c.com/school/liveCourse/182127991181080576 2. 知识文档 集成平台(EIP) https://wenku.my7c.com/article/175310035021709568 金蝶EAS CLoud产品培训__工作流(完整功能) https://wenku.my7c.com/school/3739?topicId=134352673994254848 EAS Cloud单据转换分录规则过滤 https://wenku.my7c.com/school/5931?topicId=134352673994254848 集成平台外部表(T_org_admin)名称已被占用 https://wenku.my7c.com/article/238251201924177152 多种单据生成凭证_单据转换_EAS Cloud https://wenku.my7c.com/school/90825498841664256 集成平台数据Sql Server时获取数据提示编码不一致处理办法https://wenku.my7c.com/article/226860063020147712 通过DEP进行单据新增、编辑和删除的限制。 https://wenku.my7c.com/article/218679470402748928 通过BOTP生成的付款单收款单字段存在空格 https://wenku.my7c.com/article/217066951607633152 使用工作流+botp实现按分录循环生成下游单据 https://wenku.my7c.com/article/193515819773849600 关于BOTP中的公式快捷设置 https://wenku.my7c.com/article/178582104601867008 几乎不用开发的一个简单系统对接方案分享 https://wenku.my7c.com/article/178251328887058688 如何使用查询分析器修改EAS数据 https://wenku.my7c.com/article/175292454344677632 定时任务设置只预警一次 https://wenku.my7c.com/article/168151288490664960

没有购买这个模块


强啊武老板

金蝶EAS与异构系统银企直连付款方案

# 一、应用场景当公司存在**多个系统**(业务系统、OA系统等多种系统),**出纳**需要付款时,便需要在金蝶EAS新增**出纳付款单或者在网银...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息