当前位置: 代码迷 >> Lotus >> lotusscript简略代理
  详细解决方案

lotusscript简略代理

热度:147   发布时间:2016-05-05 06:51:02.0
lotusscript简单代理
Sub Initialize

Dim session As New notessession
Dim doc As notesdocument
Dim sURL As String
Dim filepath As String 

Dim db_WF As NotesDatabase
Set db_WF = mOAfactory.getSelfWF()

filepath = Replace(session.CurrentDatabase.FilePath, "\", "/")
sURL = Lcase("/" + filepath)

Dim sAlert As String
sAlert = ""
Set doc = session.DocumentContext

If doc.UniversalID=doc.fld_CurrentDocUNID1(0) Then
doc.saveoptions="1"
Else
sAlert = "当前文档已被占用,请稍候重新打开此文件进行操作。"
End If

Dim TmpDoc As NotesDocument
Dim dc_WF As NotesDocumentCollection
Dim doc_WF As NotesDocument
Dim DB As NotesDatabase
Set DB = session.CurrentDatabase

End Sub

是什么意思,可以的话,都帮忙注释一下,谢谢。
------解决方案--------------------


Sub Initialize

Dim session As New notessession
Dim doc As notesdocument
Dim sURL As String
Dim filepath As String 

Dim db_WF As NotesDatabase
Set db_WF = mOAfactory.getSelfWF() 
%REM
mOAfactory是一个自定义类的实体对象,因该是已经初始化过的全局变量,它用getSelfWF()方法返回一个数据库对象,估计这个数据库是存储工作流数据的,从名字来开那个mOAfactory对应的是一个工作流类,db_WF就是工作流所在的数据库
%END REM

filepath = Replace(session.CurrentDatabase.FilePath, "\", "/")
sURL = Lcase("/" + filepath)
%REM
filepath 里取得的是当前数据库的WEB浏览器访问时的数据库路径信息
%END REM

Dim sAlert As String
sAlert = ""
Set doc = session.DocumentContext
%REM
doc 就是在WEB浏览器里激活这个代理时那个界面对应的文档,如果界面是视图对应的是一个后台默认的临时文档,这个文档的特殊性: 可以用它访问当前会话的系统变量,比如: Remote_User, 用的doc.Remote_User(0)可以得到当前登录的用户名。
%END REM

If doc.UniversalID=doc.fld_CurrentDocUNID1(0) Then
doc.saveoptions="1"
Else
sAlert = "当前文档已被占用,请稍候重新打开此文件进行操作。"
End If
%REM
当某个用户打开当前文档编辑时,有个程序在字段fld_CurrentDocUNID1里保存了当前文档的Universal ID,关闭时会有另一个程序清空它,如果没有清空,第2个试图编辑它的人会看到那个提示(就是上面那个判断),目的是防止产生冲突文档。
%END REM
Dim TmpDoc As NotesDocument
Dim dc_WF As NotesDocumentCollection
Dim doc_WF As NotesDocument
Dim DB As NotesDatabase
Set DB = session.CurrentDatabase

End Sub