Tiptop与Easyflow单据签核集成:从配置到联调的完整指南
发布时间:2026/10/28 5:10:20 锦皓数字建站

简介面向 Tiptop ERP 与 Easyflow 电子签核系统对接实施人员的技术说明文档聚焦单据签核环节的双向集成Tiptop 作业审核时将待签单据以 XML 抛转至 Easyflow 生成电子表单签核结果再回写 Tiptop。内容覆盖环境配置、数据表签核字段确认、Schema 更新、单据性质设置、抛转信息维护与源文件修改、PER 与 4GL 档调整、AWS 模块公共与抛转程序说明以及集成测试与常见错误排查适合具备一定 Tiptop 开发基础的工程师按步骤落地。资源包共 1 个 PDF 文件约 1.94MB以图文步骤与目录结构组织便于对照操作。已有 1515 人学习可作为新单据集成样例与排错参考。1. 从一张工单卡在“送签中”说起Tiptop 与 Easyflow 单据签核集成到底在做什么一张工单在 Tiptop 里点了审核界面提示“送签中”然后就没有然后了——签核人收件箱里空空如也单据状态卡在 S 不动。这类问题我在做 Tiptop OA 接口对接时遇到过不止一次翻到最后往往不是代码写错而是某个栏位没建、某个 XML 节点名对不上、或者表单权限没开。这份《TiptopEasyflow 集成说明_新单据集成样例.pdf》讲的正是这条链路的完整落地路径Tiptop 作业执行审核时把待签核单据组装成 XML 字符串通过 Appserver 抛给 EasyflowEasyflow 渲染成电子表单投递到签核人收件箱签核结果再通过调用 Tiptop 提供的服务回写栏位。它适合正在做 ERP 与 OA 单据签核打通的 4GL 开发者、实施顾问也适合需要判断“这张单能不能接进签核流”的运维。下面按 Tiptop 端改造、Easyflow 端配置、联调排错三段拆开讲参数和坑都落到具体栏位与文件上。2. Tiptop 端改造七个签核栏位与抛转作业的生成逻辑Tiptop 侧的集成不是“加个按钮”那么简单它要求单据数据表、单据性质、抛转程序、标准作业四处同时到位缺一处就是静默失败。这一章按实际动手顺序拆先确认环境与数据表再用 aws_efcfg 生成抛转骨架最后改标准作业的审核分支。2.1 环境三件套与 .profile 里的三个变量交互走 Appserver所以第一件事是确认 Tiptop for Browser 版已安装、startweb已把 Appserver 拉起来。然后改.profile把 Easyflow 服务端的地址写进去# EasyFlow Server IP EFSITEIP192.168.0.250; export EFSITEIP # EasyFlow Server Name EFSITENAMEEF2KWeb; export EFSITENAME # EasyFlow SOAP Location EFSOAPhttp://192.168.0.250/EF2KGateWay/EF2KGateWay.WSDL; export EFSOAP这三个变量的含义要分清EFSITEIP是 Easyflow 服务器地址EFSITENAME是站点名EFSOAP是网关 WSDL 的完整路径。改完必须重新登录 shell 让变量生效只改文件不重进会话是常见翻车点。另外要确认 Easyflow 服务器端已装 TiptopEasyflow 集成包没装的话后面所有抛转都会在网关层被拒。IP 随服务器不同而变别照抄示例地址。2.2 数据表七个栏位两个关键、五个辅助一张单据要进签核流对应数据表必须存在七个栏位。以请购单单头档为例栏位含义是否关键pmkmksg是否签核关键pmk25签核状态关键pmksign签核等级多级签核用非关键pmkdays签核完成天数非关键pmkprit签核优先顺序非关键pmksseq已签核顺序系统维护非关键pmksmax应签核顺序系统维护非关键两个关键栏位每支作业都必须有其中“签核状态”在各表里名字可能不同检查时按语义找而不是按名字找。单身档一般不放签核栏位。缺栏位就按客制规范补建补完记得更新 schema 资料r.s2 dsx否则 4GL 编译时认不到新栏位。签核状态的取值要记牢0 开立、1 已核准、6 结案、9 作废、S 送签中、R 送签退回、W 抽单出现 2 之类通常是作业内部特殊含义如转采购单别当成脏数据清掉。2.3 用 aws_efcfg 生成抛转骨架再手工改三处aws 模块下aws_efcfg.4gl是一支维护窗体用来定义某支单据的签核信息。界面上配好单头、单身要传的栏位后点“产生范式程序”会在aws/4gl下生成aws_xxx.4gl整个文件就是一个函数aws_efcli_cf()结构固定三步声明 RECORD sr 存中间信息、组 l_sql 取数赋给 sr、循环 sr 拼 XML 字符串。默认情况下 sr、sql、xml 三者一致需要动手改的只有三类情况栏位要经过处理才能传比如代码转名称、选取栏位与 XML 栏位数量不一致、需要 JOIN 其他表取值。第三类在 aws_efcfg 里就能配左边填本表栏位如 oga04 客户编码右边填参照字段如 occ02 客户名称生成的程序会自动 JOIN occ_file 并用 occ02 的值替换 oga04 的位置。手工改的典型写法如下# 示意4GL 中代码转名称与地址拼接的处理逻辑 CASE WHEN sr.oga001 CALL cl_getmsg(aws-003,g_lang) RETURNING g_msg WHEN sr.oga002 CALL cl_getmsg(aws-004,g_lang) RETURNING g_msg END CASE LET l_oga00 g_msg CALL s_addr(sr.oga01,sr.oga04,sr.oga044) RETURNING l_oap.oap041,l_oap.oap042,l_oap.oap043 LET sr.addr l_oap.oap041 CLIPPED, ,l_oap.oap042 CLIPPED, ,l_oap.oap043 CLIPPED LET g_strXMLInput g_strXMLInput CLIPPED, oga00, l_oga00 CLIPPED, /oga00, ASCII 10, oga04, sr.occ02 CLIPPED, /oga04, ASCII 10, addr, sr.addr CLIPPED, /addr, ASCII 10逻辑说明第一段把代码值经cl_getmsg转成显示文本存进中间变量XML 里输出中间变量而不是原始栏位第二段调s_addr拼完整地址第三段拼 XML 时每个节点后跟ASCII 10换行方便排查时肉眼读。参数上注意CLIPPED去尾空格否则 XML 里会带一串空白Easyflow 端解析后栏位值看着“多了空格”多半就是这里漏了。窗体上还有个“传送栏位资讯”按钮会按资料库设置重建 Columnset.xml不建议用——它假设库结构和文件完全一致实际很难保证手工维护更稳。2.4 标准作业改造审核分支让位给签核标准作业以出货单 axmt620 为例要加一个xxx_ef()函数调用抛转函数核心是设置签核状态为 S、审核状态为 Y再刷新界面图标IF aws_efcli(l_title, g_oga.oga01[1,3], g_oga.oga01, ,,,,) THEN LET g_success Y LET g_oga.ta_ogaefstat S # 签核状态送签中 LET g_oga.ogaconf Y # 审核状态已审核 CALL cl_set_field_pic(g_oga.ogaconf,g_chr2,g_oga.ogapost,g_chr3,g_chr,) DISPLAY BY NAME g_oga.ta_ogaefstat,g_oga.ogaconf UPDATE oga_file SET ta_ogaefstat g_oga.ta_ogaefstat, ogaconf g_oga.ogaconf WHERE oga01 g_oga.oga01 COMMIT WORK ELSE LET g_successN END IF然后在原审核函数里、所有判断做完但事务性操作还没开始的位置插一段分流若g_oga.ta_ogamksgY且ogaconfN调t600_ef()成功就直接 RETURN不再走原审核流程。这里有个必须想清楚的设计后果单据一旦走电子签核原审核代码基本作废审核按钮只承担“送签”职责。原审核段里若有事务性操作正确做法是把被屏蔽的代码拷贝成新函数拷贝不是移动新增一个 Action如 confirm_ef仅当签核状态为 1 时允许执行。另外“取消审核”“作废”也要加签核状态判断需签核且状态不为 1 的单据不允许作废和取消审核。改造时建议照着一支成熟签核作业抄请购单 apmt420 是现成参照。3. Easyflow 端配置表单目录、ColumnSet 与流程向导Tiptop 把 XML 抛出来只是半程Easyflow 侧要接得住表单文件、数据表、XML 映射、表单性质、审批流程、表单关联六件事任何一件没配好表现都是“单据发出去了但收件箱看不到”。3.1 复制表单目录与三处 ID 替换在Program Files\EF2Kweb\ASP\CHT\Forms下拷一个已有 Tiptop 单据目录改成新单号如 TT_SO1 复制为 TT_WO1目录内所有文件名同步改名。然后进三个 Init 结尾的 ASPApprove_Init、Create_Init、Display_Init以及 Grid.ASP把里面所有旧单号字符串替换成新单号。这一步漏一个文件表单加载时就会报找不到模板或串到旧单的表单上属于典型的“看着像缓存问题其实是漏改”。3.2 表单控件 ID 命名规则xxx_1 与 xxx_2用网页编辑工具调 Forms.ASP 的布局控件一般只用两种多行文本框和选择框日期用后者。关键是 ID 规则标签 ID 为xxx_1如 sfb01_1控件 ID 为xxx_2如 sfb01_2系统按栏位名解析 ID 后从 XML 取值填充。这两组 ID 弄错表单能打开但栏位全是空的而且不报错排查时极耗时间。单身表格用 OCX 嵌入不需要单独设 ID。3.3 数据表、EF2Kweb.xml 与 ColumnSet.xmlSQL Server 里以原表单数据表为底复制新表、改栏位名导入导出方式最省事。然后到EF2KwebPackages\tiptop下改两个文件EF2Kweb.xml 增加新单据 ID复制现有条目改ColumnSet.xml 增加 Program 段内容与 Tiptop 端aws_xxx抛转的 XML 格式完全一致。XML 栏位顺序不必和 Tiptop 字符串相同但名称必须一一对应。这里有个硬性要求XML 里必须抛一个资料所有者xxxuser栏位它不显示在表单上但 Easyflow 靠它解析填单人、驱动流程漏了它流程根本起不来。3.4 表单性质、权限与流程向导进“管理程序清单 → 流程基本数据 → 表单性质维护”把新表单的显示否、生效日、失效日设对——显示否没勾或日期设错表单就是不出来。设完还要滚到页面底部新建权限文件否则表单依然不可见。接着走“自动向导 → 流程设定向导”给表单加审批关并指定审批人Tiptop 抛来的单据就会进该审批人收件夹审批完流程结束回写 Tiptop。最后用“易拓集成向导 → 新增表单关联”选 Tiptop 程序代号、工厂代号选完会自动列出单据性质里勾了签核的单别再选对应电子表单代号点新增关联。到这一步两端才算真正接上。4. 联调避坑五条从现场带回来的排查记录4.1 现象点审核提示成功收件箱没有单据原因单据性质里该单别“是否签核”没勾或勾了但没选对单别。解决回 asmi300 一类单据性质作业确认单别签核标志改完重新抛一张新单测试旧单不会自动补发。4.2 现象表单能打开栏位全空原因控件 ID 不符合xxx_1/xxx_2规则或 ColumnSet.xml 里节点名与 Tiptop XML 不一致。解决先比对两边节点名逐字核对大小写、下划线都算再检查 Forms.ASP 里标签与控件 ID 是否成对。4.3 现象抛转报错或 XML 内容错位原因抛转程序里 SELECT 的栏位顺序与 XML 拼接顺序不一致或该 CLIPPED 的没 CLIPPED 导致值带空格。解决打开生成的aws_xxx.4gl把 l_sql 的栏位列表和 XML 拼接段逐行对照中间变量赋值处重点看。4.4 现象签核完成但 Tiptop 状态不回写原因Easyflow 回写调用的 Tiptop 服务没起或.profile里 EFSOAP 地址写错、改完没重登。解决确认 Appserver 在跑用新会话验证三个环境变量已生效再看网关日志里回写请求是否到达。4.5 现象单据作废或取消审核后流程错乱原因标准作业只判断了审核状态没加签核状态判断。解决在作废、取消审核分支补上“需签核且状态不为 1 则拒绝”的判断这是改造时最容易漏的一处。5. 进阶验证用一张单跑通全链路再批量铺开新单据集成最稳的验证方式不是看代码而是拿一张单走完整生命周期。我的习惯是先建一张单别已勾签核的工单asfi301保存后确认审核状态 N、签核状态 0、提示“开立”点审核选“是”看是否提示抛转成功、状态变 S登录指定审批人账号确认收件箱有单、表单栏位值与 Tiptop 一致审批通过后回 Tiptop 查签核状态是否变 1、回写栏位是否正确最后再测一遍作废与取消审核是否被正确拦截。这套动作跑通才说明七个栏位、抛转程序、ColumnSet 映射、流程关联四处都对上了。批量铺开时建议做一个对照表把每支单据的作业代号、抛转程序名、Easyflow 表单代号、单别签核标志列清楚逐行验收验收项通过标准抛转审核后状态变 S无报错弹窗收件箱指定审批人可见栏位值一致回写审批后 Tiptop 状态变 1关键栏位正确拦截未核准单据不可作废、不可取消审核还有个小技巧调试期在 XML 拼接处临时把g_strXMLInput落一份到日志文件比对 Easyflow 端实际收到的内容比在两端界面来回猜快得多。从那以后我每次接新单据都强制先把这张全链路验收表走一遍再动第二支作业——跳过这步省下的时间后面都会以翻倍的形式还回去。希望帮到你。本文还有配套的精品资源点击获取
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。