已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要摘 要在现代的企业以及组织之中,企业对信息共享与工作的协同程度的要求不断增加。在这种情况下,企业如何实现业务流程的计算机化,成为一个值得研究的课题。现实情况是一次开发的产品往往不能满足企业的需求,从成本,效率,可靠性等多方面考虑,二次开发是最有效最可靠最方便的方法。与此同时,在办公人员中,使用最普遍,最为人熟知的首推Microsoft office,该系列产品拥有丰富的组件,成熟的开发平台。所以对office进行二次开发是实现办公自动化的一个重要途径。同时我们意识到表单是企业流程中的重要媒介,而InfoPath表单正是提供了一种有效的解决企业表单电子化问题的途径。MS office 2003新增的InfoPath组件,是一款专业的电子表单制作与发布软件。如软件的名字,它是一条信息 (info)的通道(path),简化信息的采集过程,对信息资源加以重复利用和共享。它提供介于B/S和C/S之间的一种smart电子表单,本机填写保存也可以直接提交到数据库或Web页面,方便实用。关键词:二次开发 office二次开发 InfoPath XMLAbstractAbstractIn the organizations and enterprises nowadays,there is now higher requirement of information share and corporation. Under this situation,it would be worth of our effort to get to know how automation and computerization can be realized. Whats more,the situation nowadays is that the software that has been developed once can not well satisfy the need of the company. Considering the cost,effectiveness and reliability,redevelopments would be a better choice. Meanwhile,Microsoft office is now the most universal software used and be familiar with in the offices. It has a variety of components and well developed platforms for redevelopment. What is more important,people are now more used to the contact surface it provides. So it is an important way to realize office automation through Microsoft office. We at the same time get to realize that the table lists are the major media in the enterprises business work class. And the problem with the computerization of the table list in a company can be well solved by InfoPath. InfoPath is a new module from MS Microsoft, and professional software for making electronic table list. As the name of the software expressed, it is a path of information, simplifying the process of information collection. It is a smart electronic table list between the C/S and B/S model. It is easy to use because it can be filled in our computer and saved or sent to the web or the database directly.Keyword: redevelopment Office redevelopment InfoPath XML目录目 录摘要Abstract第一章绪论11.1选题的目的及意义11.2本课题研究内容3第二章 二次开发概述52.1 二次开发的意义52.2 二次开发技术分析52.2.1 DLL技术62.2.2 COM与跨进程调用62.2.3对象嵌入与链接572.2.4脚本扩展技术82.2.5 Web扩展92.2.6 插件技术102.3 企业业务流程管理与二次开发112.4 二次开发的相关应用12第三章 Office二次开发173.1 Office二次开发的意义173.2 Office二次开发技术理论技术183.2.1 Office的体系结构183.2.2 Office 平台基础193.2.3 Office 对象模型223.2.4扩展点243.2.5 Office 开发工具集263.2.6 Office 的更多优势283.3 office二次开发方式293.3.1 VBA293.3.2 智能文档313.4 excel的二次开发35第四章 InfoPath 的二次开发374.1 InfoPath 的功能374.2 InfoPath 二次开发的意义384.3 InfoPath 二次开发的主要技术应用394.3.1XML概述394.3.2 XML与InfoPath二次开发424.4 InfoPath 二次开发实例434.4.1需求描述434.4.2 功能分析444.4.3总体设计454.4.4 版面设计与功能实现47结束语53致谢55参考文献573第一章绪论第一章绪论本课题探讨的是基于InfoPath的商务数据采集模块的设计与实现,本章专门就这一选题展开讨论,对选题作一个初步的介绍。1.1选题的目的及意义 本文主要通过InfoPath的二次开发实例作为office二次开发的一个方面来阐述二次开发的意义和重要作用,本文中实现的软件,即通过InfoPath实现商务数据采集的功能,实际上是工作流的一种实现形式。所以我们首先介绍一个工作流的概念,什么是工作流?工作流实际上是在进行业务流程的时候帮助我们把业务流程电子化、计算机化或者自动化。在很多组织或者企业里面,有很多复杂的业务流,业务流实际上构成了组织里的日常业务活动,这些业务流程如果手工来完成会非常的麻烦,通过电子化的手段帮助我们完成业务流的工作,什么是OA呢?有两种概念,第一种是办公自动化,意味着基于业务流程实现无纸化办公,因为业务流程的电子化处理不一定要通过程序的方式来实现无纸化;另外一种,是指办公管理,是一个管理的过程,通过管理企业里的人和知识,加强人与人之间的信息沟通,人与数据之间,人与人之间,人与业务流程之间的协作和控制的水平。我们这里讲的就是如何通过office工具实现无纸化办公,即第一种的OA。Office是我们都经常使用的,Office在2003里面已经不是我们传统意义上的应用组件的组合,它不仅包含传统的应用组件,像word,excel,PowerPoint,outlook, access,FrontPage,publisher等,除此以外,在office里面还包含了很多的服务器产品,作为一个office system来支撑office的应用,这些服务器产品包括SharePoint, Portal Server,Communication Server,Exchange Server。同时还会包含一些服务,像Microsoft online,Microsoft live meeting等。Office2003里面还会包含一些solution,像Microsoft Office Solutions Accelerators,能更好的使使用者实现办公流程,如表1.1 所示的office产品的结构图,是现在意义上所说的office。有了这些产品的构成,我们就可以去实现智能的电子化流程,也是我们本文中软件实现的基础1。了解了工作流的概念,以及office system的二次开发平台,我们认识到工作流在现在的企业和组织里的重要的意义,可我们通过什么具体操作来实现工作流呢?二次开发可以使得我们实现把这个目标实现,因为我们现在已经拥有像office这样的成熟的较为完善的应用组件和开发平台,我们完全没有必要通过完全的程序开发过程重新来做这样的工作,不仅投资大,耗费大量的人力物力,且不能得到相较而言更好的绩效和可靠性,这一点在后续的章节还会有继续讨论。表1.1 office结构图电子化工作流程的基础WordExcelSharePoint Portal ServerOutlookPowerPoint Live Communication ServerAccessPublisherProject ServerInfoPathExchange ServerMicrosoft project Microsoft VisioMicrosoft live meetingFrontPage OneNoteMicrosoft onlineMicrosoft Office Solutions Accelerators工作流中最重要的是什么?可以说是表单。企业是由商业流程驱动的,而商业流程是通过表单实现的,表单几乎淹没了企业的各个部门,表单无处不在。部门或企业定义的商业流程首先涉及到的是表单,收集信息的渠道会直接影响业务流程的成败,所以表单的设计会直接影响业务流程的效率。客户更熟悉这样的Windows的界面,即不需要用户了解业务流程与表单之间的关系,这种关系是隐藏的,用户只是接触到文档,所要做的就是填写这些文档,实现起来就好像客户更熟悉的windows的操作;InfoPath是桌面的环境,表单和业务流程之间的关系是隐藏起来。InfoPath将传统的表单用电子化的方式体现出来,因此InfoPath就为我们提供了这样的优势:数据的再利用,如数据库里的数据,实现数据的共享,提高数据再利用的价值,使数据始终处于激活状态,而不是死状态,而且InfoPath已经提供了各种内置的表单,方便用户的使用。1.2本课题研究内容本课题最终旨在软件实现商务数据的采集,具体来讲,就是基于InfoPath的电子化流程的建设,设计一套InfoPath的订单表单模版,通过这套模版,用户可以在线或者本机的填写订单以及订单相关的信息,最后保存在本地或者是提交到相连的数据库。本文同时还介绍了与此相关的一些理论,文章首先列举了二次开发的主要概念和二次开发的相关技术,对二次开发理论有初步的认识和了解后,其次我们介绍了基于office二次开发的相关理论知识,包括office的开发平台和系统工具等,并且以VBA和智能文档为例介绍office二次开发的两个主要方式。然后我们引出InfoPath的二次开发包括相关背景意义以及主要的开发技术等。最后我们以一个实际的开发案例来具体阐述InfoPath二次开发的过程,也就是本文所指的InfoPath电子表单的设计。 15第二章 二次开发概述第二章 二次开发概述由于软件应用领域和用户需求的不同,一次开发出来的软件往往不能满足最终用户的需求。那更高效,更可靠的开发方法是怎样的呢?如何在一次开发的基础上完善以更好的满足需求呢? 2.1 二次开发的意义二次开发的意义在于它是一种软件提供的根据用户需求来对软件进行功能扩展的技术。对不同软件开发者而言,无法做到自己开发的软件能够解决一切用户所面临的问题,这时就需要为软件提供二次开发技术。不同的二次开发技术能够对应用软件进行不同程度的自定义和增强。二次开发因为可以增加应用软件的自身的功能,现在已经作为一种重要的技术手段广泛存在于很多领域。二次开发不仅对软件开发者,对用户,都有着非常重大的意义,从成本、效率、可靠性各方面都对信息化进程起着巨大的促进作用。二次开发可以在很大程度上节约成本,包括开发商的成本和用户的成本。这一点是显而易见的。因为二次开发基于已有的软件平台,往往是已经相当成熟的软件基础,这样就可以为开发商节约很大的开发成本,用户也可以因此花费更少的金钱,享受更好的软件服务。于此同时,时间上和精力上的成本的节约也是非常可观的。二次开发可以提高效率。通过二次开发技术进行软件的开发,显然比通过程序从头做起可以有效地提高开发效率,开发商所需要做的就是了解已有的软件平台,构架二次开发模式,选择合适的二次开发技术,进行工作。最后,通过二次开发技术生产的软件在可靠性上也往往更胜一筹。因为成熟的软件平台,通常是像微软这类的大规模的成熟的软件企业的产品,这位二次开发提供了可靠的,稳定的开发平台,同时还提供了强大的技术支持协助。2.2 二次开发技术分析二次开发技术是可以根据用户需求来对软件进行功能扩展的技术。由于软件应用领域和用户需求的不同,对软件进行二次开发的技术也各不相同。二次开发技术作为增加应用软件自身功能的一种手段已经广泛应用于各个领域。对不同软件开发者而言,无法做到自己开发的软件能够解决一切用户所面临的问题,这时就需要为软件提供二次开发技术。不同的二次开发技术能够对应用软件进行不同程度的自定义和增强。根据计算机软件系统结构的定义,应用软件是建立在操作系统之上的,从操作系统的平台环境角度上看,二次开发技术可以找到一些共性之处,本文将对Windows操作系统环境下可行的通用二次开发技术进行必要分析,内容涉及DLL技术、脚本扩展技术、插件技术、跨进程调用技术、嵌入与链接技术及web扩展技术2。2.2.1 DLL技术DLL(Dynamic Link Libraries,动态链接库)技术是组件开发的基础,它能够更好地实现软件重用,为软件的维护和升级提供了非常方便。通过DLL来实现软件二次开发是二次开发技术中最基础的,也是最原始的一种做法,这一点可以从文献3中分析得出。即将软件提供的各种功能全部封装到一个或几个DLL文件中,应用程序本身在需要时调用DLL,其他应用程序也可以调用DLL中的API接口。用户应用程序得到DLL文件后,便可以静态或动态的加载DLL,以进程内组件方式运行,通过对DLL暴露的API接口进行二次开发。用 DLL暴露API方法是最直接的二次开发方式,对于开发商和应用者而言,不需要更多的规范和流程,只要在开发说明书中注明哪一个DLL提供了什么样的API即可。应用者只需要技术文档和自身需要加载所需要的DLL,并调用相应的API接口即可。但一般的应用软件系统并不提供这种二次开发方式,其原因有三:第一个原因是DLL加载方式相对于其他二次开发技术而言,比较麻烦,需要二次开发者有更多的专业知识。第二原因是应用程序底层都是由一些松散的、原子性功能构成Core,对于二次开发者而言,需要自己补充更多的应用逻辑,设计相应的调用算法。第三个原因是由DLL本身引出的API接口太庞杂,有些API接口都是为了服务于应用软件内部的,对于二次开发者而言,并没有应用价值。2.2.2 COM与跨进程调用DLL技术、OLE技术和脚本扩展二次开发技术基本上都是属于二次开发与应用程序藕合型。而相对跨进程调用方式来说,对应用二次开发技术的应用程序来说,灵活性更高一些,相应技术实现也更复杂。(1) 跨进程调用的基本原理提供二次开发功能的应用程序与使用二次开发功能的应用程序同时运行在内存中,它们可以是同在一台机器上,也可以是在不同的机器上,甚至可以运行在不同机器不同操作系统环境内。调用者发出调用二次开发功能的请求信息,请求信息被操作系统某服务组件接收、解释、查找提供方,找到后将请求传递给提供方,提供方接收到后运行相应的功能并将结果返回,操作系统某服务组件接受,再传递给请求方。结果在请求方显示或存储。跨进程调用需要第三方支持,只有第三方能够正确接收、解释、传递等来实现两个进程之间的功能调用,才能使跨进程调用二次开发技术顺利实施。在Windows操作系统中,要想为软件提供可跨进程调用的功能,需要遵循COM机制。(2) COMCOM( The Component Object Model,组件对象模型)是由Microsoft提出来的一种工业标准。COM解决的问题是:提供一种标准方式,规定如何在Windows程序组件之间进行通信交流。由于COM已经为Windows操作系统级的规范和机制,所以凡是建立在Windows环境上的应用程序,都可以利用COM 机制来设计自己的二次开发方案。实现跨进程调用对提供二次开发功能的软件开发者而言,他们不需要编写额外的二次开发功能模块代码,只要按照COM 规范定义好对外暴露的接口和对象层即可4。不过,使用这种方式也会带来一种隐患,即跨平台问题,COM技术对Windows的依赖性过强。由于Linux操作系统的大行其道,许多基于安全、投资成本考虑的软件应用者都在选择或使用Linux,目前Linux操作系统尚不支持COM规范。2.2.3对象嵌入与链接OLE是Object Linking an Embedding的缩写,即“对象链接与嵌入”,是Microsoft公司同计算机界合作并发展起来的产品规范,日前已发展成为Microsoft公司面向对象策略的基石。OLE是一种把一个文件的一部分嵌入到另一个文件之中的技术。通过OLE嵌入的数据是可编辑的,而不是原始数据的一个静态映像。嵌入和链接的区别是,提供数据的一方称为服务器应用,接收数据的一方称为容器应用,嵌入操作把服务器应用的数据本身复制到容器应用的文档;在链接操作中,容器应用的文档只包含一个指向服务器应用文档的指针。链接与嵌入最重要的区别在于,当用户编辑链接或嵌入对象时产生的结果不同。双击被链接的对象,服务器应用启动并打开原始的数据文件,所有对链接对象的改动都影响到原始文件(当然也会在容器应用内被链接的对象上反映出来)。对于嵌入操作情况则有所不同。在容器应用内双击被嵌入的对象,服务器应用启动,但这时的任何改动只对嵌入对象有效,不影响原始文档。由以上叙述可以看出,通过对象嵌入与链接技术实现二次开发只需要提供嵌入服务器功能即可。OLE技术在Windows应用软件中应用极为广泛,对二次开发者而言,如果软件二次开发功能中不支持OLE,似乎总觉得缺点什么。但OLE技术更适合于为通用软件提供OLE二次开发功能,对于专业性非常强或适合面很窄的应用软件而言,OLE技术并不会提供太大的帮助(特别是OLE的自动化技术)。更重要的一点是,如果用MS Visual C+来实现OLE技术会比较复杂,对于软件开发规模而言,在是否使用该技术之前需要进行必要的可行性分析与估算。从跨平台角度去分析,OLE技术对COM的依赖性非常强。在Linux操作系统中由于不支持COM,因此,希望软件能够跨平台运行,必须要对嵌入与链接技术重新在Linux中设计。目前,Linux操作系统中并没有一个完整的嵌入与链接技术规范,大多数Office软件都只是在自身组件间提供了局限性很强的嵌入技术,而无法实现软件间的嵌入功能5。2.2.4脚本扩展技术脚本扩展技术是应用软件提供可供用户编写自定义代码来扩展软件本身原有的功能技术。该项技术适应性较高,主要提供脚本编辑、解释、运行、反编译等功能。如果软件规模比较小,提供的二次开发功能相对较少,其脚本命令及脚本应用环境便相对简单些,反之则要复杂些。提供脚本扩展二次开发技术需要提供以下几个部分:(1) 脚本语言如果功能少,并且没有循环、判断,或单一循环、判断,则可以不用提供一整套脚本语言,提供相应脚本命令即可。若需要更广泛的扩展应用空间,则需要提供一套完整的脚本语言,例如MS Office中的Visual Basic for Application。它有完善的语言规则,具备完整的编程功能。(2) 解释执行脚本语言几乎都是解释执行的,因此要提供语言解释器(编译器),能够将用户编写的脚本正确地解释并执行。当然,如果软件只提供若干条脚本命令,相应的解释器就简单的多。(3) 脚本编辑环境脚本编辑环境可以分为两种,一种是CDE(Code Development Environment,代码开发环境),可以提供文本编辑功能;另一种是IDE(Integrate Development Environment,整合开发环境)可视化的编辑环境,可以通过工具栏、菜单、向导等实现脚木编辑、执行、生成等应用。(4) 脚本代码采集脚本代码采集是指记录用户应用程序操作过程,并转化为相应的合理脚木代码。采集脚本代码可以更方便地为用户提供应用脚本的能力。对于脚本扩展二次开发技术而言,脚本代码采集需要具备反编译能力,即将用户动作反编译为执行代码,从开发技术角度上看有一定的难度。好在它不是脚本扩展二次开发技术的必备条件。脚本扩展相对于其他二次开发技术来说,应用面、适合的群体都更加广泛一些。从脚本语言上来看,理论上开发者可以选择任何一种解释性高级语言作为应用软件的脚木语言。从目前应用情况总结看,以BASIC, Script类高级语言为二次开发脚本语言为最多,最终用户也比较偏爱,新兴的Java语言也有作为应用软件脚本语言的趋势。在 Linux操作系统中,运用脚本扩展技术做二次开发支持的比较多,基本上所有的Office类软件都提供了“宏”这样的脚本扩展机制。2.2.5 Web扩展Web扩展应用是当今Internet发展的一个热点技术。对应用程序二次开发技术而言,简单的说,Web扩展就是指在网页上运行应用程序。目前在Windows上的Web扩展技术仍以微软的ActiveX为主。目前对Web扩展技术的应用大多在是纯网络化应用软件,如浏览器、网络应用程序的客户端等等。对于一些目前对网络应用需求不明确的应用程序来说,并没有提供二次开发功能。随着Internet的逐渐普及,软件开发商可以实现应用程序在服务器上运行,由客户端调用的软件应用模式。这样做的好处是,一方面可以解决由于单机版无法避免盗版所带来的损失,另一方面可以在特定环境内有效控制客户端的应用权限。因此,基于Web扩展的二次开发技术将是未来发展的一个重要方向。2.2.6 插件技术(1) 插件技术原理插件的本质是在不修改程序主体的情况下对软件功能进行加强,当插件的接口被公开时,任何公司或个人都可以自己制作插件来解决一些操作上的不便或增加一些功能。可以说,插件技术是二次开发技术中一个非常重要的分支。从广义范围来看,插件有以下三种类型: 类似批命令的简单插件。事实上这种插件的自由度非常低。运行这种插件后,要求用户一步步进行选择/输入,最后根据用户的输入来执行一系列事先定义好的操作。这种插件一般是文本文件。功能比较单一,可扩展性极小。优点是插件做起来非常方便,即使是对程序设计了解不多的人也可以制作。使用一种特殊的脚本语言来实现的插件,这种机制和脚本扩展技术相似。这种插件比较难写,需要软件开发者自己制作一个程序解释内核。比如微软的宏就是这种类型。这种方法的优点在于无需使用其它工具来制作插件,软件本身就可以实现,普遍出现于各种办公自动化软件中。利用己有的程序开发环境来制作插件。使用这种方法的软件在程序主体中建立了多个自定义的接口,使插件能够自由访问程序中的各种资源。这种插件的优势在于自由度极大,可以无限发挥插件开发者的创意,这种插件是狭义范围的插件,也是真正意义上的插件。而这种插件机制的编写相对复杂,对于插件接口之间的协调比较困难。目前插件技术应用面还不是很广泛,主要集中在图形、图像、视频处理类软件和一部分网络化应用软件领域。一般认为,只要按组件技术开发的应用软件,完全可以支持插件技术。插件技术应用最好的首推IBM的开源软件Eclipse, Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。目前在Office类软件领域中,插件技术应用的并不是很多,究其原因,对Office需求,基本可以通过其它比较简单的方式实现。综合以上分析,不难看出,想要开发基于跨平台需求的二次开发方法,便不能考虑像COM,OLE, ActiveX等平台依赖性强且没有跨平台先例的技术。而脚本语言二次开发技术在Windows平台和Linux平台上都有可运行的范例、广泛的需求和应用市场,但却没有既可以跨平台又在效率上可行的方法。据经济适用的原则,脚本语言二次开发环境为Office办公套件的二次开发技术目前最合适的选择。2.3 企业业务流程管理与二次开发著名的管理软件提供商SAP已经明确地将业务流程管理融入到了软件解决方案中,由向企业提供纯技术解决方案转变成向企业提供业务流程管理解决方案。但是每个企业的业务流程与管理模式均不一样,因此难以用一套标准的软件来按照统一的模式运作,标准化软件需要结合企业的业务流程管理进行二次开发。 然而,对标准化软件的二次开发并不是一味的修改软件来适应业务流程,标准化软件所提供的业务流程管理解决方案是从许多企业的实践中提炼出来的,比较先进。而我国企业目前在管理上所存在的问题大多是由于流程设计不合理造成的,所以企业应该借此时机,运用信息技术优化运作系统,优化业务流程。那么,业务流程管理与信息系统软件的二次开发该如何把握呢?也即适合企业的软件的要求,对企业的业务流程进行优化和重组?何时适应企业的特殊要求对软件进行二次化开发?处理二者之间关系时,应该把握以下几条原则:1、企业可以根据自己的特点确定业务,流程管理的候选流程,核心流程的选取应尽量与所选择信息系统(如ERP、CRM、SCM 等)的核心流程相近,尽量不做二次开发。例如从MRPII 转变而来的ERP 产品,其生产管理流程比较标准,也更具有科学性,可以通过业务流程管理来改变企业现有的生产管理流程来适应ERP 的要求。2、在处理现有业务流程时,并不能一味地进行优化和重组,而是要根据标杆指标和企业的绩效对现有业务流程进行评估,然后根据实际情况进行处理。如果现有的非常好,则只需对现有流程进行规范,使其与软件能更好的结合;如果现有流程有缺陷,则需要对现有流程进行改进;如果现有流程有重大问题,则需对现有流程进行流程重组。同时,对于供应商的信息系统中不具备的功能或者企业现行的手工处理流程中更好的部分,则需要进行产品的二次开发来更好地满足企业的需要。3、企业进行业务流程管理时,要尽量对现有的流程进行优化和重组,以保证软件的完整性。因为软件经过一段时间运行后需要升级,而修改的部分维护比较困难。4、软件的二次开发应尽可能集中在客户化上,比如客户对于报表格式的不同要求,只需要通过报表生成器来定义不同的报表生成格式,而不涉及到业务流程自身的修改。5、提倡不断地学习和变革,适应新的流程,不断地对现有的流程进行反思。业务流程管理过程是一个循环的过程,也就是说,业务流程管理不是一步到位的,它需要经过不断地循环、重复才能保证企业的业务流程是卓越的业务流程,才能保证企业的核心竞争力。总之,在企业业务流程管理和软件二次开发的过程中一定要慎重,对企业的业务模式进行详细调研与分析,在综合权衡利弊的基础上做出判断,集成应用信息管理系统和业务流程管理,以最佳成本效率推动信息化项目的顺利进行6。2.4 ERP的二次开发从80年代初我国引进MRPII软件以来,在近二十年中,有上千家企业购买了MRPII/ERP(下文简称ERP)系统。但从实际的应用情况来看,总体上并不令人满意。由此而引发了很多争论,比如中国企业是否具备了使用ERP软件的能力?再如关于ERP与国情的争论:国内企业和软件开发商经常宣称国外的ERP软件不适应中国国情,而国外的软件供应商则竭力辩解“管理无国界”和“国情化就是迁就落后”等等。这些争论的焦点无疑都是些对ERP系统在企业中的有效运用有可能产生影响的因素。不过, ERP系统在企业中能否得到成功实施和有效应用,还取决于另外一个关键因素:ERP系统的客户化和二次开发,这是两个不可分割的方面。为什么这样讲呢?我们来看ERP系统在企业中实施的典型步骤如图2.2所示:从图2.1我们可以看到,ERP系统的客户化和二次开发在整个实施过程中处于承上启下的位置。任何ERP软件,不论是国产的还是进口的,都或多或少有用户化的工作,有时还要进行二次开发。这是因为:1、对于国外ERP软件供应商的产品来说,确实存在国情、厂情的问题。中国企业与国外企业相比,主要有以下四个方面的不同:(1)生产规模、生产类型不同在我国,大而全的国有大中型企业是国家经济的支柱。工厂规模大,生产类型复杂,产品中有70%80%是自制件,既加工制造又装配,管理幅度大,难度也大。而国外基本是一些专业化分工较细的中小型企业,一些大的公司也以装配为主,自制件很少。相比之下,管理幅度和难度不如中国企业。图2.1 ERP系统实施步骤(2)人员素质相差较大国内、国外企业管理人员和生产工人的素质不能相比。这与多年的计划经济体制和国民教育水平有关,不可能在短期内缩小这个差距。(3)企业的管理机制与管理基础不同国外企业由于采用现代企业制度,产权明晰,管理科学规范。我国企业管理机制和管理基础随着现代企业管理制度的建立,将会逐步提高,但目前差距还不小13。(4)企业的外部环境不同我国各类企业管理水平不一,交通、通信也不尽人意。企业生产所需的外购不可能按企业的需求及时供应,供货合同中的供货日期不可能精确,也无法得到保证。2、对于国内的ERP软件供应商来说,即使他们的软件开发是基于对国情有深入了解的前提之下,即使他们的软件系统功能再全、适应性再强,当面对不同企业千差万别的具体情况、千变万化的特殊需求时,也不可能做到“以不变应万变”。再者,企业所处的环境是不断变化的。企业的产品种类、产品所处生命周期的阶段、企业的计划模式、分销模式都不断在变化,企业不断地进行业务流程的再造,企业的规模不断地缩小或扩展等等。总之,企业的变化是绝对的。因而,客观上要求ERP具备适应各种变化的能力。如果ERP系统没有良好的柔性,不能进行方便的用户化和二次开发,那么,企业引进ERP系统之日,就是套上束缚自身发展的枷锁之时。企业对于花重金买来的ERP系统将会“食之无味,弃之可惜”,使自己陷于尴尬境地。因此,不论企业采用国外的软件还是采用国内的软件,都面临着系统的用户化和二次开发的任务,都必须要求ERP软件具备良好的支持用户化和二次开发的功能。ERP系统的用户化和二次开发是ERP软件作为由企业外部的软件厂商提供的一种产品转变为企业内部的管理信息系统的桥梁和纽带。其意义如图2.2所示: 图2.2 ERP系统用户化和二次开发的意义下面我们对用户化和二次开发分别进行讨论:1、用户化一般把不牵动程序的改动称为用户化,如修改报表格式。软件如果有报表生成功能,或采用第四代语言,任何业务人员,不需要有很多计算机知识就可自行设置。当然,还需要项目实施小组的批准。许多国内外的优秀ERP软件提供了强大的支持用户化的功能。2、二次开发简单的说,通常把改动程序的工作称为二次开发。要增加或修改软件的功能,需要ERP系统提供支持二次开发的工具,还可能需要有软件的源程序,这些都要支付额外的费用,而且并不是每个ERP供应商都愿意提供源代码。此类问题一定要在签订合同前考虑到。二次开发的工作是在软件功能模拟运行的基础上进行的,一般工作量比较大,需要一定的时间,会延误项目实施进程,这个因素应该在制定项目实施计划时包括进去。改动软件后还会影响今后软件版本升级。有些ERP软件商提供免费或收费很低的系统升级。如果不升级,新版本的长处无法应用;如果升级,则面临着重新进行二次开发的可能。因为ERP软件供应商在进行新版本的ERP系统开发时,可能根本不会考虑某个特定的用户在旧版本上所作的二次开发。因此,在进行二次开发前,要做认真的分析对比。究竟是修改软件,还是改革现行管理程序;还是两者都有些修改。对修改的必要性、效果和代价要心中有数。经过分析和权衡,能不二次开发就不要进行。如果必须进行二次开发,则应尽量使得二次开发出的功能模块独立于原来的ERP系统。这样,当ERP系统版本更新时,二次开发出来的模块无需修改或者只需较少的修改就可以应用于高版本的ERP系统7。35第三章 Office二次开发第三章 Office二次开发在过去十多年的时间中,主宰微机市场的操作平台首推微软公司的Windows,而在Windows 环境下被普通用户使用最多的应用软件应属Microsoft Office。Office 平台有着简单易用、功能强大的使用环境和开发环境。在国外有成千上万的企业级的应用都是在Office 平台上开发、构建起来的。在国内对Office 的二次开发和利用还很少,实际上对于Office 的二次开发从技术的角度来看并不太复杂.凭借着简单的描述式语言和整合型的编辑环境,Office 拉近了与开发人员和一般用户的距离,人们不但可以利用它所提供的强大的编辑环境,而且可以利用它本身所提供的简单语言进行编程及二次开发,创造理想的软件环境14。3.1 Office二次开发的意义对一个公司而言,要在当今激烈竞争和多变的环境中生存,最重要的是要为技术进步和发展数字经济作好准备。随着更多公司使用数字工作方式,企业对信息和知识共享及协同工作的需求不断增加。扩展对企业内部网络和Internet 的访问有着更快的接收能力和处理速度。Office是第一个真正的企业应用程序。它的设计出发点就是为了Office家族内部各成员之间及Office与其它各类产品在Microsoft 平台的高度集成。通过提供跨越整个组织的公共桌面开发平台,可以使Office 成为部门数字化系统的核心。Office二次开发有一个很大的优势在于,Office是以文档为中心的,是基于文档的应用程序。因此office二次开发的产品,就如本文中将要介绍的InfoPath的电子表单,它既不属于B/S模式,也不属于C/S模式,而是兼具两者属性的一种中间模式,B/S模式中,用户可以直接到相关网站下载相关的表格进行填写,但必要的条件是必须在线,只能在线填写,在线提交,对用户的使用有很大的限制,造成不便,因为如果没有条件上网就不能及时完成工作。而C/S模式虽然解决了这个问题,却存在另外一个问题,难于维护。因为如果有大量的用户存在,就要分别进行维护,工作量相当大,完成起来也会很困难。InfoPath开发的表单就可以同时解决这些问题,我们的表单可以提交到相对应的网上,或是数据库,或是保存在本地,需要的时候可以进行相应的修改,自由的选择适当的时机进行提交。给用户留有很大的选择空间。3.2 Office二次开发技术理论技术Office所有组件( Excel,Word,Access等)从本质上讲都是建立在COM技术基础上的自动化服务器。自动化服务器是暴露可编程对象供客户使用的应用程序,也称自动化组件。自动化服务器可以是进程内服务器,一般为DLL形式;也可以是本地服务器和远程服务器,一般为EXE形式。自动化服务器中可以暴露一个或多个自动化对象,例如,Excel,Word,Access等就分别是本地自动化服务器,它提供了许多自动化对象,这些对象之间存在着继承和派生关系,形成了树状层次结构。 Excel的部分对象及其层次关系。自Office97开始全面发行Office开发版(ODE)至现在的Office2000 /XP,Microsoft二次开发技术越来越强大、成熟。几乎所有面向一般用户的Office操作都可以由ODE用户(Office编程开发人员) 通过二次开发实现 8 。3.2.1 Office的体系结构众所周知,2007 Microsoft Office 系统为某些相当复杂的自定义解决方案提供了基础,而且如今有成千上万的此类解决方案平稳地运行于Office上。但Office是否也能够用作稳定的开发平台呢?Office能否为创建全新的应用程序提供基石?Office一直被视为一套分立的客户端应用程序(Word、Excel和Outlook),每个应用程序都设计提供一组丰富的功能。由于这些功能分别面向每种应用程序的特定范围的用户任务,因此不同应用程序之间几乎不存在显式互操作性。但 Office 已经发展成为了一种集应用程序和技术于一体的框架,可以通过客户端和服务器提供服务,并且支持 Microsoft InfoPath、SharePoint Services、Content Management Server 和 Exchange Server。Word、Excel、Outlook 和其余的 Office 应用程序有意设计成显式提供大多数功能作为 COM 服务器供外部使用。显然,Office 的体系结构考虑到了自定义解决方案。因此,我们能够轻松地构建可以与一个甚至是多个 Office 应用程序无缝挂接的解决方案。而且,Office 组件(如 SharePoint)还提供门户服务、团队服务、工作流功能和内容管理。我们可以认为 SharePoint 本身就是一个相当全面的开发平台9。真正的开发平台必须满足一些基本的要求。对此,我们可以见仁见智,但这些要求至少应包括通用基线业务服务、提供解决方案与通用服务挂接的扩展点和用于根据基线服务开展构建工作的统一的工具集。还需要基本级别的非功能性属性,以便允许在构建实际的企业解决方案过程中使用功能性服务(见图3.1)。Office 不仅满足了这些要求,而且还有其他两方面优势:使用过 Windows的开发人员已经具备充分利用 Office 平台所需的知识和经验,而且 Microsoft 已经发布了许多工具,可帮助开发人员基于该平台构建新的应用程序。 ToolsetsExtensibility Points BaselineFunctionalityNon-Functional Attributes1、 Reliability2、 Scalability3、 Performance4、 Security5、 Deployment6、 Componentization7、 Consistent Object Model8、 Version Resilience图 3.1 平台特征3.2.2 Office 平台基础我们可以将开发平台的要求映射到 Office 系统,然后开始填入某些特定的功能,如图 3.2所示。作为一个开发平台,Office 必须满足一系列基本要求。这些要求包括可靠性、可伸缩性、安全性、部署和更新、可通过组件化重复使用、统一的对象模型和版本兼容性。让我们看一下这些要求以及 Office 是如何满足这些要求的。Office以三种主要方式提供可靠性。第一,Office 应用程序本身具有高度的可靠性。第二,Office 采取了一系列措施来避免低劣的自定义。例如,如果某个加载项使其宿主应用程序崩溃,Office 可以检测出这一问题,并将该加载项列入黑名单,将来不再予以加载。Office 会以不加提示的方式来处理可能由自定义或加载项引发的大多数异常,以避免降低宿主的稳定性。在某些情况下,应用程序会运行一个对话框,显示相应的错误消息,以便让用户知道 Office 正在正确运行,但加载项可能处于一种未定义的状态。第三,Microsoft Office SharePoint Server (MOSS) 2007 是按照与其他 Microsoft 服务器软件完全相同的标准构建的,因此基于 SharePoint 的服务也具有这种高度的可靠性。Toolsets: Extensibility Points: Baseline FunctionalityNon-Functional Attributes:1、 Reliability2、 Scalability3、 Performance4、 Security5、 Deployment6、 Componentization7、 Consistent Object Model8、 Version ResilienceVBAOne-Off ExtensionsShared Add-lnsVSTOExtensibility InterfacesSpecific Uses of the Office Object ModelGeneric Techniques图 3.2 office 开发平台全景可伸缩性和性能体现在两个方面:客户端和服务器端。在客户端,每个 Office 应用程序都实行特定的限制,比如 Excel 工作表中的最大行数和列数限制。这使可伸缩性是可预测的,无法构建超出这些限制的自定义解决方案。不过,在未定义硬性限制的环境中,则有可能部署超出实际限制的解决方案。例如,对可以为单个应用程序注册的加载项的数量并没有具体限制,但显然存在着实际限制(想一想在Excel启动时加载10,000个加载项,会给性能带来什么样的影响)。关于开发平台不应代表客户进行哪些种类的决策,这是一个很好的例子。我们也许不应该在服务器上使 Office 客户端应用程序自动运行,这种情况不现实,尽管从技术角度来说是可能的。不过,2007 Office 版本确实通过 SharePoint 和Excel Services在服务器上提供了Excel计算引擎和其他功能(见图3.3)。Windows SharePoint Services (WSS) 3.0 提供了集成的工作流支持、对 ASP.NET 2.0 的本机支持以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年设备维护工招聘面试参考题库及答案
- 2025年触觉传感器开发工程师招聘面试参考题库及答案
- 2025年健康护理协调员招聘面试参考题库及答案
- 2025年保险理财专员招聘面试题库及参考答案
- 2025年运输规划师招聘面试题库及参考答案
- 2025年云平台开发工程师招聘面试题库及参考答案
- 2025年外围设备工程师招聘面试参考题库及答案
- 2025年总部行政专员招聘面试参考题库及答案
- 2025年环保评估专员招聘面试题库及参考答案
- 2025年传真工程师招聘面试参考题库及答案
- 中小学心理健康教育特色学校标准(试行)
- 蔡司三坐标-高级培训教程
- 韵达快递承包合同韵达快递承包合同
- T-DLSHXH 002-2023 工业干冰标准规范
- 静力压桩中的几个问题及在苏州某工程中的应用
- 钣金检验作业指导书
- 滕王阁序注音全文打印版
- JJG 971-2019液位计
- GB/T 5751-2009中国煤炭分类
- 高一上学期英语期中考试质量分析会课件
- GB/T 17850.3-1999涂覆涂料前钢材表面处理喷射清理用非金属磨料的技术要求铜精炼渣
评论
0/150
提交评论