皖能集团Internet/Intranet应用系统
作者:佚名; 更新时间:2014-12-05
摘要:通过皖能集团的Internet/Intranet系统的实际案例,介绍了在基于Lotus Notes/Domino系统中最为关键的几项技术:全流程定义技术、关系数据库的接口、Microsoft Word接口和电子刊物的完美显示。
关键词:群件平台 流程定义 接口技术

随着“政府上网”工程的全面启动、工业信息化的进一步发展和电子商务的需求增强,建立一整套计算机综合应用网络系统对企业集团是一种迫切需求。根据当前计算机技术发展趋势,我们采用Internet/Intranet体系模式构造皖能集团的计算机综合应用网络系统,实现对外信息发布和内部的全面办公和业务管理功能,这对实施有效监控、加强信息沟通、提高运行效率和优化产业、资本结构,发挥公司整体效益起到十分重要的作用。

一、网络系统结构
根据皖能集团Internet/Intranet系统的应用需求,从网络系统应用和安全的角度出发,内网至少布置2台Windows NT服务器,作为应用服务器、邮件服务器和备份服务器,提供内部办公自动化和业务数据处理的应用。外网布置2台Windows NT服务器,其中一台

图1 皖能集团Internet/Intranet网络体系结构
配置Domino R5 服务器,作为外部Web服务器,建立皖能(集团)公司的站点,并借助内置的POP3服务器以实现Notes邮件系统和Internet邮件系统的无缝连接,提供信息发布、信息交换和电子邮件等服务;另外一台作为代理服务器,提供内部用户访问Internet服务和防火墙的安全措施。
如图1所示,内部Web服务器接入到主干交换机上,外部服务器应放在代理服务器之外,在代理服务器上插入两块网卡,一块网卡和内部局域网相连,一块网卡和省经济信息网相连,它们之间通过代理服务器进行隔离。同时由路由器实现广域网与局域网的互联,实现通过互联网数据传输的路径选择及网络地址解析,并在路由器上构造外防火墙(IP包过滤)。

二、系统功能

皖能集团Internet/Intranet系统构架于业界领先的群件系统Lotus Notes/Domino R5之上,充分利用了Notes/Domino的强大功能,集电子邮件、工作流处理、多媒体文档应用和Web信息发布为一体,开通了电子邮件、电子日历、个人资料、公文处理、档案管理、资料管理、领导活动、人事管理、项目管理、公司动态、组织机构、皖能视窗、政策法规、综合信息、工作探讨、电子公告板等二十多项应用模块。
皖能集团Internet/Intranet系统功能分为两大部分:
1. Internet Web站点() 和邮件系统(mail.wenergy.com. cn),由于篇幅关系,在此不做详细介绍。
2. 皖能集团办公自动化系统


三、关键技术创新和实现

1. 全流程定义技术
公文运转是工作流程最直接、最充分的体现,它贯穿收文处理、发文处理和签报处理的每个环节。虽然在发文处理过程中,一般都有拟稿、核稿、审核、会签、签发、登记、分发、归档等基本环节,实际上对每个部门、或每一类文件的流程都是不同的。所以在应用系统,应使其每个模块的流程是完全可以由用户根据实际情况灵活定义,流程的定义、跟踪是公文运转系统的关键技术,该系统实现了开放的全流程定义技术,可以适应实际应用过程中的各种需求。
全流程定义技术包括标准流程的定义、引入、修改和控制等,在此主要介绍三个问题:
1) 如何自动引入标准流程,通过Postopen事件调用引入标准流程的函数:
Sub SetDefault(doc As NotesDocument)
… …
Set db = session.CurrentDatabase
Set view = db.GetView( "FlowByNo" )
Set Stepdoc = view.GetFirstDocument
If Not Stepdoc Is Nothing Then
Call Stepdoc.CopyAllItems(doc,True)
Call doc.RemoveItem("ReadLists")
Call doc.RemoveItem("ExplainV")
Call doc.RemoveItem("FlowNo")
Call doc.RemoveItem("flowName")
doc.StepNumC=Stepdoc.StepNumC(0)
doc.StepNum=Stepdoc.StepNum(0)

doc.StepName_1=Stepdoc.StepName_1(0)
doc.StepMan_1=Stepdoc.StepMan_1(0)
doc.StepReturn_1=Stepdoc.StepReturn_1(0)
doc.StepDay_1=Stepdoc.StepDay_1(0)
… …
End If
End Sub

2) 标准流程的修改,将分解为插入步骤、删除步骤。如果理解了插入步骤,就容易实现删除步骤。插入步骤的函数是:
Sub Click(Source As Button)
… …
Set uidoc = workspace.CurrentDocument
Set doc=uidoc.Document
LastNo=uidoc.document.StepNum(0) + 1
doc.StepNum=LastNo
doc.StepNumC= Cstr(LastNo)
Call uidoc.Refreshhideformulas()
If nFieldNo=0 Then Exit Sub
For %i=LastNo To nFieldNo+1 Step -1
Call ReplaceItemsValue(doc, %i, %i-1)
Next
Call uidoc.FieldClear( "StepName_"+Cstr(nFieldNo))
Call uidoc.FieldClear( "StepMan_"+Cstr(nFieldNo))
Call uidoc.FieldClear( "StepDay_"+Cstr(nFieldNo))
nFieldNo=nFieldNo+1
End Sub

3) 流程的控制是最复杂的,通过一系列函数实现,在这里介绍其主函数,让读者可以了解其实现的思路。
Sub Click(Source As Button)
… …
Set uidoc = workspace.CurrentDocument
Set doc=uidoc.Document
'取流程信息
Call InitializeStepInfo(doc )
If gbIsFinished=False Then '如果当前不是最后一步
If gstrNextMan="" Then
Msgbox Err_No_Transactor,,"无办理人"
Exit Sub
End If
If gstrIsSponsor="否" And gstrIsCurrentReturn="是" Then
If Messagebox( "文件返回给"+gstrNextMan+"?" ,1,"完成") =2 Then Exit Sub
Else
If Messagebox(gstrNextMan+"进行"+gstrNextStep+"?" ,1,"完成") =2 Then Exit Sub
End If
Call DeleteMailDoc(gstrCurrentMan,doc.MailID(0)) '删除通知邮件
Call AdjustWorkFlow(doc) '调整办理人、办理步骤等
Call SendDocLink(doc,doc.CurrentTransactor(0),"待办:") '给下一办理人发送通知邮件
Call doc.ComputeWithForm( False, False ) '备份批示意见
doc.NotionBak=doc.GetItemValue(doc.NotionName(0))(0)
doc.Notion=""
Call uidoc.Save()
'如果当前是签发状态,修改文件的表单,使文件的大部分域变成不可编辑
If (gstrCurrentRole="签发" And gstrIsSponsor="否") Then
doc.Form="Subscribe"
End If
Call doc.Save(True,True)
Else '如果当前是最后一步
If Messagebox( "确定要将此文件办结?" ,1,"完成") =2 Then Exit Sub
Call DeleteMailDoc(gstrCurrentMan,doc.MailID(0))
Call AdjustWorkFlow(doc)
doc.CurrentTransactor="" '清除读者域
Call doc.Save(True,True)
Call CopyDocToFileDB(doc) '在文件库中创建该文件的拷贝
End If
doc.SaveOptions = "0"
Call uidoc.Close()
Call workspace.ViewRefresh
End Sub



2. 关系数据库的接口
我们在人事系统中,将考勤机的数据自动读入内Notes应用系统,进行员工考勤的有效管理。通过ODBC实现,首先在客户端控制面板正确设置ODBC的连接,然后在操作的(Options)声明 Uselsx "*LSXODBC" , 然后实现其具体的数据转换。
例如:
Sub Click(Source As Button)
Dim con As New ODBCConnection
Dim qry As New ODBCQuery
Dim result As New ODBCResultset
… …
Dim dataSource, datatab, deptstr As String
Set db=session.currentdatabase
Dim n As New notesname(session.username)

dataSource = "delphi"
DepartNo= Inputbox$("请输入部门编码, 如01", "DepartNo?")
timeV = Inputbox$("请输入年月, 如200001", "timeV?")
datatab= "c:\lhkq\kqtz"+timeV+".db"
If con.ConnectTo(dataSource) Then
i=1
Set qry.Connection = con
datatab="SELECT * FROM "+datatab++" where Bmbh = '"+DepartNo+"'"
Messagebox "Connect to " & dataSource + " -> " & datatab
qry.SQL = datatab
Set result.Qu

核心期刊快速发表
Copyright@2000-2030 论文期刊网 Corporation All Rights Reserved.
《中华人民共和国信息产业部》备案号:ICP备07016076号;《公安部》备案号:33010402003207
本网站专业、正规提供职称论文发表和写作指导服务,并收录了海量免费论文和数百个经国家新闻出版总署审批过的具有国内统一CN刊号与国际标准ISSN刊号的合作期刊,供诸位正确选择和阅读参考,免费论文版权归原作者所有,谨防侵权。联系邮箱:256081@163.com