1.看网友如何评价国内管理厂商
2.金蝶下载文件的金蝶金蝶三种方式
3.金蝶K/3、智邦国际一体化企业管理软件哪个更好?
4.金蝶软件复制代码是财务财务什么
5.TiDB 源码阅读系列文章(五)TiDB SQL Parser 的实现
看网友如何评价国内管理厂商
自从选择金蝶开始,噩梦开始随之而来,源码源码一个企业CIO向您讲述他与金蝶不得不说的金蝶金蝶苦楚。
阴差阳错我选择了这个公司,财务财务正好赶上公司实施ERP,源码源码devexpress19 源码最终公司选择采用K3 ERP V、金蝶金蝶OA,财务财务BI含BOS等产品,但是源码源码没有想国内知名管理软件厂商上至产品下至实施真的让人不敢恭维,讲产品的金蝶金蝶人一个个NB的不行,真是财务财务说的比唱的好听,但是源码源码用起来会让你苦不堪言,直接把企业IT部直接雷死,金蝶金蝶比禽流感都历害,财务财务你可能会说我言过其词,源码源码不信你用了才知道。
第一、如果你的公司生产的是非标的产品,那就别用了,他们的解决方案完全不行,别听售前忽悠你什么都能做,做了你就知道,用起来根本不现实
第二、实施及培训计划严重不到位,那也叫实施计划,每周发一次,告诉你下一周做什么,根本没有整理规划;实施顾问在同一个模块是不区分的,如ERP的,就算有2个人,那也是一起做,不会分开做物流或财务的。有的时候还用外面请来的别的公司的人员,不过技术似乎比他们好;
第三、金蝶的顾问自己的技术本身就不行,好多人都只了解一些皮毛,或者对自己的系统不了解,都让你自己去实现,然后发生问题自己解决;这个对企业打击太大了,已经上线了,却还在实验,把企业当成一个个小白鼠来实验
第四、不知道有没有人注意,金蝶的产品根本就没有纸的操作说明,用的都是电子档,如果电子档全也行,看一看ERP的android文件浏览源码电子档,连MRP都没有,还有很多模块都没有,我指的操作说明不是系统点“帮助”出来的那个,那个只是对界面的录入讲解;更别提BI、OA了,如果你用的是java开发的那个版本,看一下说明书,是之前老版的,还都是USER使用的,系统管理员的根本没有。
第五、在金蝶网站根本找不到有OA,BI的产品说明。
第六、BOS,这上是金蝶最能吹NB的了,说是二次开发,但是实际上应用的时候,只有对财务的单据才能开发,而也是简单的开发,仍有很多条件限制,物流单据根本不能二次开发,只能自定义加几个字段,这个还可以,不过单据之间传递时,有的会出问题,少数单据之间,这个感觉还是能免强使用的;
第七、至于OA系统,我劝你还是花2万块买小公司开发的吧,或者找个公司给你定制一个,还有源码,这个根本不行,首先不与ERP等系统集成在一起,那有屁用啊,其次有很多东西都是死的,你必须按他们系统模型去做,否则就要开发,但要知道,这种开发量,相当于开发个系统了;流程设计感觉还不错,只是在详细操作的时候经常会无法满足需求;
第八、CRM系统,如果你用的是K3的ERP,那我劝你还是千万别用CRM,用EAS的asp导入excel源码我不了解,因为现在的这套CRM是从EAS分出来的,与K3的集成问题多了去了,他们会给你开发一些程序,然后再给你搞一堆的触发器,基本上就是没有能传递的,只要你想传递点数据,就要开发,这个应该是金蝶自己的集成问题,但是他们会向你要开发费的,阴险吧!
金蝶的人看了一定会说这是老版本,新版本已经升级了,老问题全部解决,别来这套,忽悠忽悠网友行,升级是用钱来升级的,产品不行天天给你升级打补丁,天天升级有个鸟用。
金蝶下载文件的三种方式
在金蝶系统中,用户可借助内置下载功能,将所有文件打包成压缩包进行下载。但若需求仅需下载特定文件,金蝶提供了三种不同的下载方式。
第一种方法是通过输入特定的URL,直接在浏览器中触发下载。
第二种方法涉及输入URL后,系统自动显示动态表单供用户下载。
第三种则是输入URL后,系统弹出提示,用户点击下载按钮,浏览器随后启动下载。
曾有一项需求要求修改附件管理中的下载功能,以实现选择单个文件下载或多个文件打包下载。为满足这一需求,通过反编译金蝶原生下载功能的源代码,理解其逻辑结构后,可直接复制并进行适当修改,前提是具备相应的代码阅读和修改能力。
金蝶K/3、智邦国际一体化企业管理软件哪个更好?
金蝶、智邦国际都是企业管理软件知名度比较高的厂商。管理软件没有最好,只有最合适,能满足公司需求的才是最好,而且还要性价比高。金蝶、java京东商城源码智邦国际哪个更好,购买之前免费试用一下就知道。
金蝶是做财务管理软件起家,财务管理软件做得很专业,这是显著的优势,但也造成了软件的不足,比如软件功能主要围绕财务管理展开,流程不够灵活,设置上比较复杂。
金蝶K/3
金蝶目前的主流产品K/3,对财务、物流、制造、人力资源等核心模块进行了一体化设计和规划,整体功能适应性较强。据了解,K/3制造系统主要是针对离散型生产特点的企业,但很多客户用的是基于会计系统的产品。K/3系统以财务软件及进销存核算为基础,外加简单制造,平台化、构件化程度低,可配置性较差,基于独立源码的两个版本K/3商业版和K/3工业版,功能肥胖症,无法进行行业细分应用,通用产品无法实现客户的个性化。
智邦国际侧重全程一体化管理,一套软件解决企业所有问题,产品线非常丰富,功能可以自由增删,用起来特别灵活,升级和服务方面做得挺不错,性价比高些。
智邦国际只做“企业管理软件”,相对而言,在客户需求把握和产品功能定位方面做得更专业。其产品模块由统一的技术平台研发,无论一体化程度,还是集成性、稳定性、扩展性和灵活度都非常高,比较适合快速成长型及分支机构多的企业。智邦国际产品线非常丰富,产品线覆盖ERP、CRM、java源码 收银系统FM、SCM、PM、EAM、KM、HRM、OA、TM、BI、进销存等企业管理各个领域,已通过ISO质量体系认证,主打产品为四大系列种产品:
智邦国际ERP:该系列包括销售版、生产版、经典版、安防版4种产品。将客户关系、销售、库存、财务、OA完美融合,数据实时共享,全程监控企业各个环节的运转和协作,帮助企业建立高度集成的一体化管理平台,快速响应市场变化。这款产品将“最高的性价比”发挥得淋漓尽致。
智邦国际CRM:该系列包括经典版、标准版、客户管理系统、合同管理系统、售后管理系统5种产品。以客户和销售过程管理为核心,集售前、售中、售后管理于一体,充分整合客户资源,防止人员流动带来的客户流失,帮助企业实现高效客户关系管理。在产品功能方面属于人无我有,人有我优的类型。
智邦国际项目管理:该系列以项目实施环节为核心,以时间进度控制为出发点,通过对立项、成本、进度、合同、团队的全面跟进和高效管控,实现项目全过程全要素的集成管理,帮助企业合理配置资源及资金,节约成本,降低风险,确保战略目标如期实现。
智邦国际进销存:该系列包括进销存系统、采购管理系统2种产品。集采购、销售、库存、账款管理和统计分析等功能于一体,实现物资从采购、入库、盘点、调拨到发货、预警、订单、回款等全程实时掌控,帮助企业轻松实现人财物快速、健康管理。
金蝶软件复制代码是什么
金蝶软件没有通用的复制代码。 金蝶软件是一款企业资源规划软件,包含多个模块,如财务管理、供应链管理、人力资源管理等。由于其功能的复杂性和定制化,并没有一个通用的复制代码可以直接应用于所有情况。 关于金蝶软件的代码: 1. 功能性代码:金蝶软件包含许多功能性的代码,这些代码是根据企业的具体需求进行开发和定制的。这些代码通常用于实现特定的业务流程,如订单处理、库存管理、财务管理等。由于这些代码是根据企业的实际需求进行编写的,因此并没有一个固定的复制代码。 2. 系统架构与模块:金蝶软件的架构和模块设计是复杂的,包括多个子系统和服务。每个子系统都有其独特的代码和功能。用户在进行软件开发或集成时,需要根据具体需求对各个模块进行编程和配置。因此,复制代码并不是一个简单的过程。 3. 版权与保密问题:由于金蝶软件包含企业的核心业务流程和数据,其源代码和关键代码是受到保护的。未经授权的情况下,任何复制、传播或修改都是违法的。此外,为了保护企业的商业机密和信息安全,企业通常会对关键代码进行加密或保护。 总的来说,金蝶软件的代码是根据企业的实际需求进行开发和定制的,并没有一个通用的复制代码。如果您需要使用金蝶软件或对其进行二次开发,建议与专业的开发团队或金蝶官方进行合作,以确保软件的正常运行和安全性。TiDB 源码阅读系列文章(五)TiDB SQL Parser 的实现
本文是 TiDB 源码阅读系列文章的第五篇,主要内容围绕 SQL Parser 功能实现进行讲解。内容源自社区伙伴马震(GitHub ID:mz)的投稿。系列文章的目的是与数据库研究者及爱好者深入交流,收到了社区的积极反馈。后续,期待更多伙伴加入 TiDB 的探讨与分享。
TiDB 的源码阅读系列文章,帮助读者系统性地学习 TiDB 内部实现。最近的《SQL 的一生》一文,全面阐述了 SQL 语句处理流程,从接收网络数据、MySQL 协议解析、SQL 语法解析、查询计划制定与优化、执行直至返回结果。
其中,SQL Parser 的功能是将 SQL 语句按照 SQL 语法规则进行解析,将文本转换为抽象语法树(AST)。此功能需要一定背景知识,下文将尝试介绍相关知识,以帮助理解这部分代码。
TiDB 使用 goyacc 根据预定义的 SQL 语法规则文件 parser.y 生成 SQL 语法解析器。这一过程可在 TiDB 的 Makefile 文件中看到,通过构建 goyacc 工具,使用 goyacc 依据 parser.y 生成解析器 parser.go。
goyacc 是 yacc 的 Golang 版本,因此理解语法规则定义文件 parser.y 及解析器工作原理之前,需要对 Lex & Yacc 有所了解。Lex & Yacc 是用于生成词法分析器和语法分析器的工具,它们简化了编译器的编写。
下文将详细介绍 Lex & Yacc 的工作流程,以及生成解析器的过程。我们将从 Lex 根据用户定义的 patterns 生成词法分析器,词法分析器读取源代码并转换为 tokens 输出,以及 Yacc 根据用户定义的语法规则生成语法分析器等角度进行阐述。
生成词法分析器和语法分析器的过程,用户需为 Lex 提供 patterns 的定义,为 Yacc 提供语法规则文件。这两种配置都是文本文件,结构相同,分为三个部分。我们将关注中间规则定义部分,并通过一个简单的例子来解释。
Lex 的输入文件中,规则定义部分使用正则表达式定义了变量、整数和操作符等 token 类型。例如整数 token 的定义,当输入字符串匹配正则表达式时,大括号内的动作会被执行,将整数值存储在变量yylval 中,并返回 token 类型 INTEGER 给 Yacc。
而 Yacc 的语法规则定义文件中,第一部分定义了 token 类型和运算符的结合性。四种运算符都是左结合,同一行的运算符优先级相同,不同行的运算符,后定义的行具有更高的优先级。语法规则使用 BNF 表达,大部分现代编程语言都可以使用 BNF 表示。
表达式解析是生成表达式的逆向操作,需要将语法树归约到一个非终结符。Yacc 生成的语法分析器使用自底向上的归约方式进行语法解析,同时使用堆栈保存中间状态。通过一个表达式 x + y * z 的解析过程,我们可以理解这一过程。
在这一过程中,读取的 token 压入堆栈,当发现堆栈中的内容匹配了某个产生式的右侧,则将匹配的项从堆栈中弹出,将该产生式左侧的非终结符压入堆栈。这个过程持续进行,直到读取完所有的 tokens,并且只有启始非终结符保留在堆栈中。
产生式右侧的大括号中定义了该规则关联的动作,例如将三项从堆栈中弹出,两个表达式相加,结果再压回堆栈顶。这里可以使用 $position 的形式访问堆栈中的项,$1 引用第一项,$2 引用第二项,以此类推。$$ 代表归约操作执行后的堆栈顶。本例的动作是将三项从堆栈中弹出,两个表达式相加,结果再压回堆栈顶。
在上述例子中,动作不仅完成了语法解析,还完成了表达式求值。一般希望语法解析的结果是一颗抽象语法树(AST),可以定义语法规则关联的动作。这样,解析完成时,我们就能得到由 nodeType 构成的抽象语法树,对这个语法树进行遍历访问,可以生成机器代码或解释执行。
至此,我们对 Lex & Yacc 的原理有了大致了解,虽然还有许多细节,如如何消除语法的歧义,但这些概念对于理解 TiDB 的代码已经足够。
下一部分,我们介绍 TiDB SQL Parser 的实现。有了前面的背景知识,对 TiDB 的 SQL Parser 模块的理解会更易上手。TiDB 使用手写的词法解析器(出于性能考虑),语法解析采用 goyacc。我们先来看 SQL 语法规则文件 parser.y,这是生成 SQL 语法解析器的基础。
parser.y 文件包含 多行代码,初看可能令人感到复杂,但该文件仍然遵循我们之前介绍的结构。我们只需要关注第一部分 definitions 和第二部分 rules。
第一部分定义了 token 类型、优先级、结合性等。注意 union 结构体,它定义了在语法解析过程中被压入堆栈的项的属性和类型。压入堆栈的项可能是终结符,也就是 token,它的类型可以是 item 或 ident;也可能是非终结符,即产生式的左侧,它的类型可以是 expr、statement、item 或 ident。
goyacc 根据这个 union 在解析器中生成对应的 struct。在语法解析过程中,非终结符会被构造成抽象语法树(AST)的节点 ast.ExprNode 或 ast.StmtNode。抽象语法树相关的数据结构定义在 ast 包中,它们大都实现了 ast.Node 接口。
ast.Node 接口有一个 Accept 方法,接受 Visitor 参数,后续对 AST 的处理主要依赖这个 Accept 方法,以 Visitor 模式遍历所有的节点以及对 AST 做结构转换。例如 plan.preprocess 是对 AST 做预处理,包括合法性检查以及名字绑定。
union 后面是对 token 和非终结符按照类型分别定义。第一部分的最后是对优先级和结合性的定义。文件的第二部分是 SQL 语法的产生式和每个规则对应的 aciton。SQL 语法非常复杂,大部分内容都是产生式的定义。例如 SELECT 语法的定义,我们可以在 parser.y 中找到 SELECT 语句的产生式。
完成语法规则文件 parser.y 的定义后,使用 goyacc 生成语法解析器。TiDB 对 lexer 和 parser.go 进行封装,对外提供 parser.yy_parser 进行 SQL 语句的解析。
最后,我们通过一个简单的例子,使用 TiDB 的 SQL Parser 进行 SQL 语法解析,构建出抽象语法树,并通过 visitor 遍历 AST。我实现的 visitor 只输出节点的类型,运行结果依次输出遍历过程中遇到的节点类型。
了解 TiDB SQL Parser 的实现后,我们有可能实现当前不支持的语法,如添加内置函数。这为我们学习查询计划以及优化打下了基础。希望这篇文章对读者有所帮助。
作者介绍:马震,金蝶天燕架构师,负责中间件、大数据平台的研发,今年转向 NewSQL 领域,关注 OLTP/AP 融合,目前在推动金蝶下一代 ERP 引入 TiDB 作为数据库存储服务。