工作流外部数据源问题分析和处理建议 及合作模式的一点建
本帖最后由 liao99 于 2015-12-18 14:27 编辑首先感谢通达客服和技术人员,他们都非常热情、敬业、专业(如薛海棠、李娜宁,林河水、张政等)及时为我们解决了很多应用问题,保证了公司办公业务的正常运行。另在2010年我们选择了贵公司的产品,在这几年的使用过程,公司对通达产品的评价是尽管有些小问题,但瑕不掩瑜,产品非常好,特别是持续的服务和不断进行产品功能的优化完善做得非常好,是公司选择最正确的软件产品!好的产品,离不开好的团队,在这感谢通达能够坚持给用户带来这么优秀的产品,并不断的持续改进。
一、 工作流外部数据源问题原因分析和处理建议工作流外部数据源(T-ERPLINKER)这个功能期待很久,2015版本终于如期发布,可惜公司的ERP数据库无法链接,期间有两位工作流的技术人员非常热心的帮忙处理(很抱歉,过太久了,我没记住他们的姓名,非常热心的哥们),折腾了不少时间,计划是集中发布补丁解决,后来可能集中开发2016版本,没有精力处理这个了,再后来论坛里询问,得知贵公司管理层考虑这个功能有特殊性,决定把这个功能作为项目解决方案。期待太久,不少工作都等这个功能上线,熬不住了,这两天琢磨琢磨留下的调试源代码,问题找到了,我只能临时处理,凑合使用,希望贵公司能安排人员花点时间把外部数据源这个功能完善并作为正式产品发布,让这个2015版本的亮点功能真正发光!
故障现象:我们主要使用sqlserver 数据库(2000,2005等),在T-ERPLINKER中配置ERP(sqlserver2000)数据源时,显示链接数据库正常,但无法加载数据库表清单,无法选择映射关系,另论坛里有人反映配置好映射关系后,检索不到数据在调试阶段也出现了。
1、 无法加载数据库清单,Sqlserver 数据库名存在 master库 sysdatabases 表,大多数数据库部署后都支持大小写,而我们的ERP数据库要区分大小写,func.erp.php脚本中枚举数据库名使用的大写字母开头(Master..SysDatabases),导致链接我们的ERP数据库无法成功。 处理办法: 都改成小写字母即可;$result=sqlsrv_query($conn,"SELECTName FROM Master..SysDatabases")改为 $result=sqlsrv_query($conn,"SELECTname FROM master..sysdatabases");;。
2、 无法枚举数据库中的表清单也是区分大小写引起,将(SELECT Name AS TABLE_NAME FROMSysObjects Where XType='U' ORDER BY Name)改成(SELECT nameAS TABLE_NAME FROM sysobjects Where xtype='U' ORDER BY name)即可
3、 无法枚举表字段我们的Sqlserver2000 表字段信息存储在syscolumns表中,而后教新的数据库表字段信息在information_schema.columns视图中,但为了向下兼容也有syscolumns视图,FUNC.erp.php脚本中只使用information_schema.columns视图进行字段信息检索,不支持老版本数据库。处理办法 :简单化都使用syscolumns取字段信息,最好是在配置数据源的时候增加版本选择,老版本数据库使用syscolumns,新版本数据库使用information_schema.columns。if ($serverId=='3') { $sql="selectname,xtype,domain,length,isnullable from syscolumns whereid=object_id('$table') "; } else {$sql="select * frominformation_schema.columns where table_name= '$table'";4、 执行时无法检索到数据也是大小写问题引起的,经查工作流外部数据控件在执行的时候,会把字段名都改成大写,在要求区分字段名,表名大小写的数据库中无法执行。处理办法:我没有更多的代码,只能在数据库中建立视图,将视图字段名都设置为大写,建议通达修改代码,不改变系统中字段名的大小写规则,提高兼容性。5、 无法选择视图作为外部数据源4中无奈使用视图,论坛中有人也在建立外部数据映射时无法选择视图,官方答复是要采用项目方式处理,其实。。。只需要将例举表名的查询语句稍微修改即可$sql=" SELECT name AS TABLE_NAMEFROM sysobjects Where xtype='U' ORDER BY name";改为:$sql=" SELECT name AS TABLE_NAMEFROM sysobjects Where (xtype='U' or xtype='V') ORDER BY name"; 二、合作模式的一点建议 工作流外部数据源只是一个很小的功能,但这个功能能够给用户带来很大的便利,提高系统的整体应用水平。论坛里时不时会有对各种功能的“吐槽”,功能很多,但深度离用户想要的还差一点点,让大家是爱恨交加。论坛里有不少大虾都不断的在为通达产品的优化完善建言,总体感觉是采纳的较少,功能点很多,精细化不足。这么大的产品要保证每年推出大的版本,更多更新的功能点、在精细化方面安排不了更多的资源是可以理解的。但我们公司希望尽量使用标准产品(或许也有很多用户有这个想法),能够保持系统的持续升级和简单的维护。 建议通达能否借鉴下众筹模式,组织用户在网上对急需优化的模块需求进行讨论,由各个单位支付一部分开发费用,将需求转化为标准产品发布,而不是单独洽谈项目合作。这样或许对用户、通达都有帮助,最少这样的模式我们公司是支持和希望参与的!
本帖最后由 citc_darklg 于 2015-12-18 14:39 编辑
赞,非常不错,解决了大问题;以后搞数据集成非常有用。 您好,首先非常感谢您对我们公司产品长期以来的关注与支持,您上述提出的建议我们会及时反馈至产品研发部及相应负责人进行重点和综合考虑,再次感谢您的建议! 写的非常好,关于无法查询视图的功能,是我提的,回复项目解决,我就不想再写什么了。
所以现在我也不是用此功能,重要的数据我直接把ERP MSSQL 数据直接导入OA MYSQL里面使用,设定时同步。
但是每个都做是在太类,如果无法选择视图的数据,这个功能起码打80%的折扣,其实熟悉ERP数据库的人都知道,ERP数据,编码 和 产品描述很多时候都要 多表连接去处理,所有选择数据一定要筛选,用视图是最简便的方式,希望通达重视,解决。 楼主写的很好,那都是实实在在的经验,其钻研精神,只得点赞。
本帖最后由 fuwj 于 2015-12-29 16:31 编辑
我也一直非常期待这个功能。测试发现,如果使用SA用户的话,在表单中调用好像没有什么问题。但是如果使用非SA用户,及时给予了所有权限,在表单调用用还是显示‘加载失败’。不知道有没有其他朋友使用过这个功能,谈谈感想。详细说明看这个帖子:http://club.tongda2000.com/forum.php?mod=viewthread&tid=25160
fuwj 发表于 2015-12-29 16:30 static/image/common/back.gif
我也一直非常期待这个功能。测试发现,如果使用SA用户的话,在表单中调用好像没有什么问题。但是如果使用非 ...
你的其他用户,应该还要授权访问MASTER数据库中的sysobjectss, information_schema.columns ,sysdatabase等表/视图 楼主专业且有钻研精神,建议 通达 修改完善T-ERPLINKER 功能, 这个功能可是2015版发布的时候都放出话来了的,但是不能用,做好了,做个收费可选组件也行,广大用户期盼 liao99 发表于 2015-12-29 17:23 static/image/common/back.gif
你的其他用户,应该还要授权访问MASTER数据库中的sysobjectss, information_schema.columns ,sysdatabas ...
我测试了下,还是不行。您有试过吗?求指导!这个问题,折腾很久了。:'( ispro 发表于 2015-12-29 18:02 static/image/common/back.gif
楼主专业且有钻研精神,建议 通达 修改完善T-ERPLINKER 功能, 这个功能可是2015版发布的时候都放出话来了 ...
这个功能您在使用吗?
页:
[1]
2