浅析OA流程的可视化方法_第1页
浅析OA流程的可视化方法_第2页
浅析OA流程的可视化方法_第3页
浅析OA流程的可视化方法_第4页
浅析OA流程的可视化方法_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、关键词:关键词:工作流;流程定义;可视化;JavaApplet浅析OA流程的可视化方法摘要工作流是指整个或部分业务流程在计算机支持下的全自动或半自动化。在计算机网络环境下,工作任务在多个人或单位之间的流转实际上将表现为信息或数据在多个人之间的传送。使用可视化的0A工作流设计工具,用户不需要编程就可以定义设计出满足要求的收发文流程,实际使用效果良好。论文以可视化的0A工作流设计工具的开发为基础,主要阐述五个方面的内容。第一部分介绍了工作流和工作流设计工具的相关概念与开发背景;第二部分对工作相关基础理论技术、系统环境与平台基础、以及开发技术进行了描述;第三部分对系统功能进行了分析;第四部分详细介绍

2、了系统流程、流程可视化设计的实际开发过程中使用到的关键技术;最后一部分在总结了系统开发心得的同时,提出了目前系统存在的不足和有待改进的地方。591论文网591论文网www.591LW.com论文网TheResearchandImplementationofVisualOAworkflowBasedonB/SStructureAbstractWorkflowisafullautomationorsemi-automationonbusinessprocess,whichissupportedbythecomputertechnology.Inthedistributedenvironment,t

3、askstransferredamongdifferentpersonsanddepartmentsareinformationordatapassedamongparticipantsaccordingtothedefinedsetofrules.UsingvisualOAworkflowdesigningtools,userscandefineanddesignreceivingandendingdocumentworkflowwithoutprogramming.Theactualresultisverysatisfactory.Thispaperisbasedonthedevelopm

4、entofvisualOAworkflowdesigningtools.Anditconsistsoffiveparts.Thefirstpartintroducestheworkflows,therelatedconceptsandthedevelopingbackgroundofthetoolsdesigningit.Thesecondsurveysthework-relatedtheoryanddevelopingtechnology.Thethirdonecarriesontheanalysisofthesystemfunctions.Thefourthdealswithfollowi

5、ngpartsindetail:thesystemflow,thesystemenvironmentandtheessentialtechnologyofdesigningfortheplatformfoundationandthevisibleflowintheactualdevelopingperformance.Thelastpartissummarizedtheattainmentofsystem-developing.Andatthesametime,theinsufficiencyandtheimprovementsarealsoincludedinthispart.Keyword

6、s:workflow;flowdefine;visual;JavaApplet快591快591论文网591论文网www.591LW.com目录论文总页数:30页TOC o 1-5 h z HYPERLINK l bookmark8 1引言1 HYPERLINK l bookmark10 1.1课题背景1 HYPERLINK l bookmark12 1.2技术可行性研究1 HYPERLINK l bookmark14 JavaApplet技术的可行性研究1XML技术的可行性研究1 HYPERLINK l bookmark16 MicrosoftOfficeAccess2003数据库的可行性研究

7、1 HYPERLINK l bookmark18 2相关基础理论技术以及开发技术1 HYPERLINK l bookmark20 工作流的定义与存在问题描述2OA中工作流的定义2工作流中的流程定义问题3 HYPERLINK l bookmark22 javaapplet和applet绘图技术的介绍3 HYPERLINK l bookmark24 applet的介绍3 HYPERLINK l bookmark26 Applet的AWT绘制4 HYPERLINK l bookmark28 2.3系统环境与平台基础5 HYPERLINK l bookmark30 3系统需求分析与总体设计5 HYPE

8、RLINK l bookmark32 3.1系统需求分析5 HYPERLINK l bookmark34 3.2系统功能介绍5 HYPERLINK l bookmark36 3.3系统模块功能和设计思想6 HYPERLINK l bookmark38 3.4数据库设计7 HYPERLINK l bookmark40 3.4.1ER图设计73.4.2表的构建83.4.3数据库连接实现9 HYPERLINK l bookmark42 4系统功能模块实现9 HYPERLINK l bookmark46 4.2流程可视化设计实现94.2.1界面可视化104.2.2绘图功能设计104.2.3流程图保存和

9、读取方法设计104.2.4节点间关系保存的实现16 HYPERLINK l bookmark48 5系统测试结果及存在的问题和改进的方案20 HYPERLINK l bookmark50 结论2021参考文献21快591快591论文网591论文网www.591LW.com第第 页共30页论文网流程号后继节点号后继节点前驱节点号前驱节点节点名编号图3E-R图论文网流程号后继节点号后继节点前驱节点号前驱节点节点名编号图3E-R图3.4.2表的构建表1流程节点表(flowNode)对象名称数据类型功能描述Node_ID数字节点编号Node_Nane文本节点名称Node_prev文本节点前驱名称Nod

10、e_prevID数字前驱节点号Node_next文本节点后继Node_nextID数字后继节点号Flow_ID数字节点所属的流程号表2流程表(flowdata)对象名称数据类型功能描述fileName文本保存流程的文件名id数字流程号type文本Node类型还是line类型3.4.3数据库连接实现publicConnectiongetConnection()/nowwecangettheconnectionfromtheDriverManagerConnectioncon=null;tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);马驱动setthi

11、stoaMSAccessDByouhaveonyourmachineStringfilename=7fileData.mdb;Stringdatabase=jdbc:odbc:Driver=MicrosoftAccessDriver(*.mdb);DBQ=;database+=filename.trim()+;DriverID=22;READONLY=true;/addontotheendcon=DriverManager.getConnection(jdbc:odbc:ccos,)数据源catch(ClassNotFoundExceptione)/TODOAuto-generatedcatc

12、hblocke.printStackTrace();catch(SQLExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();returncon;4系统功能模块实现4.1系统流程及图示4.2流程可视化设计实现4.2.1界面可视化4.2.2绘图功能设计4.2.3流程图保存和读取方法设计将序列化后的节点与弧线的对象保存为xml文件,易于保存和重绘。序列化是将对象写到流中,序列化需要对象实现Serializable接口,序列化后能将对象转换成一系列字节,并可在以后完全复原。序列化可以实现“有限持久化”。在保存前先要对已经绘出的节点以及弧

13、线进行属性采集,我们用一个NodeBean以及ArcBean方法来实现其功能,NodeBean的代码描述如下:publicclassNodeBeanimplementsjava.io.SerializablepublicNodeBean()StringLeftUpNodeX;定义顶点坐标StringLeftUpNodeY;privateStringMinX;定义边框privateStringMinY;privateStringMaxX;privateStringMaxY;Colorcolor;定义外框颜色StringNodeName=;节点名称publicStringgetNodeName()

14、returnNodeName;publicvoidsetNodeName(StringnodeName)NodeName=nodeName;publicColorgetColor()returncolor;publicvoidsetColor(Colorcolor)this.color=color;publicStringgetLeftUpNodeX()returnLeftUpNodeX;publicvoidsetLeftUpNodeX(StringleftUpNodeX)LeftUpNodeX=leftUpNodeX;publicStringgetLeftUpNodeY()returnLef

15、tUpNodeY;publicvoidsetLeftUpNodeY(StringleftUpNodeY)LeftUpNodeY=leftUpNodeY;publicStringgetMaxX()returnMaxX;publicvoidsetMaxX(StringmaxX)MaxX=maxX;publicStringgetMaxY()returnMaxY;publicvoidsetMaxY(StringmaxY)MaxY=maxY;publicStringgetMinX()returnMinX;publicvoidsetMinX(StringminX)MinX=minX;publicStrin

16、ggetMinY()returnMinY;publicvoidsetMinY(StringminY)MinY=minY;将流程图中节点的属性对象进行采集以后,通过调用ObjectToXMLUtil.objectXmlEncoder方法可以对节点和弧段进行保存,以下代码是对节点的保存,描述如下:Vectorv=newVector。;Vectortemp=this.canvas.getNodeObject();for(inti=0;ivtemp.size();i+)通过NODEBEAN存储Nodeo=(Node)temp.elementAt(i);NodeBeanbean=newNodeBean(

17、);bean.setNodeName(o.NodeName);bean.setLeftUpNodeX(o.getLeftUpNodeX()+);bean.setLeftUpNodeY(o.getLeftUpNodeY()+);bean.setMaxX(o.GetMaxX()+);bean.setMaxY(o.GetMaxY()+);bean.setMinX(o.GetMinX()+);bean.setMinY(o.GetMinY()+);v.add(bean);StringnodeFile=nodeData+System.currentTimeMillis()+.xml;ObjectToXML

18、Util.objectXmlEncoder(v,nodeFile);对弧线的属性采集类ArcBean相关的代码描述如下:publicclassArcBeanimplementsjava.io.SerializableprivateStringendx;privateStringendy;privateStringstartx;privateStringstarty;publicArcBean()返回值publicStringgetEndx()returnendx;publicvoidsetEndx(Stringendx)this.endx=endx;publicStringgetEndy()r

19、eturnendy;publicvoidsetEndy(Stringendy)this.endy=endy;publicStringgetStartx()returnstartx;publicvoidsetStartx(Stringstartx)this.startx=startx;publicStringgetStarty()returnstarty;publicvoidsetStarty(Stringstarty)this.starty=starty;将流程图中弧线的属性对象进行采集以后,通过调用ObjectToXMLUtil.objectXmlEncoder方法可以对节点和弧段进行保存,

20、以下代码是对节点的保存,描述如下:Vectorline=newVector();VectorlineTemp=this.canvas.getArcObject();for(inti=0;ivlineTemp.size();i+)Arco=(Arc)lineTemp.elementAt(i);ArcBeanbean=newArcBean();bean.setStartx(o.getStartx()+);bean.setStarty(o.getStarty()+);bean.setEndx(o.getEndx()+);bean.setEndy(o.getEndy()+);line.add(bean

21、);StringlineFile=lineData+System.currentTimeMillis()+.xml;ObjectToXMLUtil.objectXmlEncoder(line,lineFile);流程图的读取,也就是将保存的xml文件中的节点以及弧线的属性读取出来,然后调用各个的显示方法,重新绘制在屏幕上。对节点的读取:StringfileName=oper.getFile(node);ArrayListlist=null;if(null!=fileName&!fileName.equals()ist=(ArrayList)ObjectToXMLUtil.objectXmlDe

22、coder(fileName)elselist=(ArrayList)ObjectToXMLUtil.objectXmlDecoder(nodeData.xml)if(list!=null&list.size()0)Vectorv=newVector。;for(inti=0;ivlist.size();i+)v=(Vector)list.get(i);VectornodeVector=newVector();for(intj=0;jvv.size();j+)NodeBeanbean=(NodeBean)v.elementAt(j);Nodenode=newNode(Integer.parseI

23、nt(bean.getLeftUpNodeX(),Integer.parseInt(bean.getLeftUpNodeY(),bean.getNodeName();node.setMaxX(Integer.parseInt(bean.getMaxX();node.setMaxY(Integer.parseInt(bean.getMaxY();node.setMinX(Integer.parseInt(bean.getMinX();node.setMinY(Integer.parseInt(bean.getMinY();node.SetHeightAndWidth(node.GetMaxX()

24、,node.GetMaxY();node.getLeftUpNodeY();nodeVector.add(node);this.canvas.setNodeObject(nodeVector);对弧线的读取:StringfileLineName=oper.getFile(line);ArrayListlistLine=null;if(null!=fileLineName&!fileLineName.equals()System.out.println(line:+fileLineName);listLine=(ArrayList)ObjectToXMLUtil.objectXmlDecoder

25、(fileLineName)elselistLine=(ArrayList)ObjectToXMLUtil.objectXmlDecoder(lineData.xml)System.out.println(lisrlineL+listLine);if(listLine!=null&listLine.size()0)VectorlineVector=newVector();for(inti=0;ivlistLine.size();i+)lineVector=(Vector)listLine.get(i);Vectorline=newVector();for(intj=0;jvlineVector

26、.size();j+)ArcBeanbean=(ArcBean)lineVector.elementAt(j);Arcnode=newArc(Integer.parseInt(bean.getStartx(),Integer.parseInt(bean.getStarty();node.setEndx(Integer.parseInt(bean.getEndx();node.setEndy(Integer.parseInt(bean.getEndy();node.AddPoint(newintnode.getEndx(),node.getEndy();node.SetArcEnd();line

27、.add(node);this.canvas.setArcObject(line);4.2.4节点间关系保存的实现要设计一个流程,必须用一个算法将流程各个节点与节点之间的关系表示出来。我们采用矩形来表示节点实例,用带箭头的弧线表示节点实例间的前驱后继关系,如果节点实例A是节点实例B的前驱,则有一条由A出发到B结束的箭头。这样就必须保证任意两条连接线都不重叠。节点和弧线的关系通过运算之后生成一份xml文档,同时把这份xml文档序列化后保存在数据库中。通过解析这样的xml文档,上层应用程序能了解节点之间的先后关系,并应用到上层程序逻辑。下面是图6中流程所保存的节点xml文件,其中包括对节点位置的信

28、息,也包括对节点间关系的信息。publicclassNodeextendsBaseObjectpublicnode()publicstringNode_Name;/节点名publicintNode_ID;节点号publicstringNode_next;/节点后继节点publicintNode_nextID;/后继节点号publicstringNode_prev;/节点前驱节点名publicintNode_prevID;/前驱节点号在XML中保存的节点信息:vjavaversion=1.5.0_09class=java.beans.XMLDecoder-vstring225v/stringv/

29、void-vstring20v/stringv/void-vstring320v/stringv/void-vstring59v/stringv/void-vstring225v/stringv/void-vstring20v/stringv/void-vvoidproperty=nodeNamexstring开始v/void-vvoidpropertyNode_ID1-vvoidproperty=Node_nextvstring稿v/stringv/void-vvoidpropertyNode_nextIDvstring2v/stringv/void-vvoidproperty=Node_p

30、revvstring0v/stringv/void-vvoidproperty=Node_prevIDvstring0v/stringv/voidv/objectv/void-vvoidmethod=add-vobjectclass=applettest.NodeBean-vvoidproperty=leftUpNodeXvstring224v/stringv/void-vvoidproperty=leftUpNodeYvstring93v/stringv/void-vvoidproperty=maxXvstring321v/stringv/void-vvoidproperty=maxYvst

31、ring135v/stringv/void-vvoidproperty=minXvstring224v/stringv/void-vvoidproperty=minYvstring93v/stringv/void-vvoidproperty=nodeNamevstring稿v/stringv/void-vvoidproperty=Node_prevIDvstring2v/stringv/void-vvoidproperty=Node_nextvstring处室审核v/stringv/void-vvoidproperty=Node_nextIDvstring3v/stringv/void-vvo

32、idproperty=Node_nextvstring处室审核v/stringv/void-vvoidproperty=Node_nextIDvstring4v/stringv/void-vvoidproperty=Node_prevvstring开始v/stringv/void-vvoidproperty=Node_prevIDvstring1v/stringv/voidv/objectv/void-vvoidmethod=add-vobjectclass=applettest.NodeBean-vvoidproperty=leftUpNodeXvstring127v/stringv/voi

33、d-vvoidproperty=leftUpNodeYvstring178v/stringv/void-vvoidproperty=maxXvstring242v/stringv/void-vvoidproperty=maxYvstring224v/stringv/void-vvoidproperty=minXvstring137v/stringv/void-vvoidproperty=minYvstring174v/stringv/void-vvoidproperty=nodeNamevstring处室审核vstring3v/stringv/void-vvoidproperty=Node_n

34、extvstring主任审核v/stringv/void-vvoidpropertyNode_nextIDvstring5v/stringv/void-vvoidproperty=Node_prevvstring拟稿v/stringv/void-vvoidproperty=Node_prevIDvstring2v/stringv/voidv/objectv/void-vvoidmethod=add-vobjectclass=applettest.NodeBean-vvoidproperty=leftUpNodeXvstring296v/stringv/void-vvoidproperty=le

35、ftUpNodeYvstring180v/stringv/void-vvoidproperty=maxXvstring412v/stringv/void-vvoidproperty=maxYvstring229v/stringv/void-vvoidproperty=minXvstring285v/stringv/void-vvoidproperty=minYvstring173v/stringv/void-vvoidproperty=nodeNamevstring处室审核v/string-vvoidproperty=Node_IDvstring4v/stringv/void-vvoidpro

36、perty=Node_nextvstring主任审核v/stringv/void-vvoidproperty=Node_nextIDvstring5v/stringv/void-vvoidproperty=Node_prevvstring拟稿v/stringv/void-vvoidproperty=Node_prevIDvstring2v/stringv/voidv/objectv/void-vvoidmethod=add-vobjectclass=applettest.NodeBean-vvoidproperty=leftUpNodeXvstring218v/stringv/void-vvo

37、idproperty=leftUpNodeYvstring262v/stringv/void-vvoidproperty=maxXvstring316v/stringv/void-vvoidproperty=maxYvstring317v/stringv/void-vvoidproperty=minXvstring218v/stringv/void-vvoidproperty=minYvstring262v/stringv/void-vvoidproperty=nodeNamevstring主任审核v/string-vvoidproperty=Node_IDvstring5v/stringv/

38、void-vvoidproperty=Node_nextvstring局长审核v/void-vvoidpropertyNode_nextIDvstring6v/stringv/void-vvoidproperty=Node_prevxstring处室审核-vvoidpropertyNode_prevIDvstring3v/stringv/void-vvoidproperty=Node_prevvstring处室审核v/stringv/void-vvoidpropertyNode_prevIDvstring4v/stringv/voidv/objectv/void-vvoidmethod=add

39、-vobjectclass=applettest.NodeBean-vvoidproperty=leftUpNodeXvstring214v/stringv/void-vvoidproperty=leftUpNodeYvstring362v/stringv/void-vvoidproperty=maxXvstring321v/stringv/void-vvoidproperty=maxYvstring414v/stringv/void-vvoidproperty=minXvstring214v/stringv/void-vvoidproperty=minYvstring362v/stringv

40、/void-vvoidproperty=nodeNamevstring局长审核v/string-vvoidproperty=Node_IDvstring6v/stringv/void-vvoidproperty=Node_nextvstring签发v/stringv/void-vvoidproperty=Node_nextIDvstring7v/stringv/void-vvoidproperty=Node_prevvstring主任审核v/stringv/void-vvoidproperty=Node_prevIDvstring5v/stringv/voidv/objectv/void-vv

41、oidmethod=add-vobjectclass=applettest.NodeBean-vvoidproperty=leftUpNodeXvstring212v/stringv/void-vvoidproperty=leftUpNodeYvstring450v/stringv/void-vvoidproperty=maxXvstring325v/stringv/void-vvoidproperty=maxYvstring496v/stringv/void-vvoidproperty=minXvstring212v/stringv/void-vvoidproperty=minYvstring450v/stringv/void-vvoidproperty=nodeNamevstring签发v/string-vvoidproperty=Node_IDvstring7v/stringv/void-vvoidproperty=Nod

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论