自定义工作流程时间:2011-4-2目录第一章开发前准备工作 (3)1.1启动设计窗口 (3)1.2配置场所 (3)1.3跟踪服务器 (4)第二章建立数据库 (5)2.1创建数据库 (5)2.2新建拷贝数据库 (5)第三章创建表单 (6)3.1主表单 (6)3.2控制表单, (16)3.3只读表单 (20)第四章创建视图 (22)4.1申请视图 (22)4.2待批视图 (23)4.3已批视图 (23)4.4流程跟踪 (23)第五章建立菜单 (25)5.1新建菜单 (25)5.2模块建立 (26)5.3建立模块下的菜单 (26)5.4视图维护 (32)第六章绘制工作流 (35)6.1新建工作流 (35)6.2绘制工作流 (36)附注一52附注二56附注三61附注四67第一章开发前准备工作1.1启动设计窗口启动Domino Designer 7(图标:)输入密码,进入开发工具界面;1.2配置场所根据你所要连接的服务器来配置场所,从而对你所服务器里面的内容进行修改和所要开发的模块进行编辑。
(1)本地服务器:点击文件—惯用选项—场所惯用选项;进入了场所编辑页面,然后新建一个场所,点击文件—设置场所—场所;进入admin的通信录-高级\场所界面,点击下方的新建-场所;进入新建场所界面;其中下方有九个选项,分别是基本、服务器、端口、邮件、Internet服务器、复制、即时信息、高级、管理;(1.1)基本:场所名(填写场所名,以便标识)、代理配置(点击图标进入代理服务器配置,填写IP地址,如果是本地的服务器IP为127.0.0.1)、Internet邮件地址(如果是需要外网则要填写邮件的外网地址)、其他的不用填写;(1.2)服务器:宿主/邮件服务器(根据服务器的名称来填写)、中继服务器(同样)、Domino目录服务器(同样);其他的不要填写;(1.3)高级:切换到用户标识符(点击图标进入标示符选择路径;选择所需要的admin.id文件)其他的不要填写;(1.4)其他:不需要填写;(1.5)填写完毕在新建场所左下方点击链接配置向导,进入配置服务器连接点击下一步,填写目标服务器名称和所要链接的IP地址,点击完成;(1.6)下一步在新建场所的左下方点击保存并关闭按钮。
(2)外网服务器:同上;(1.1)基本:场所名(同上)、代理配置(外网服务器填写外网的IP地址);(1.2)服务器:同上;(1.3)高级:同上;(1.4)其他:同上;(1.5)链接配置向导:填写服务器名称和外网的IP地址;(1.6)同上;1.3跟踪服务器主要是为了测试开发工具是否和服务器连接上;点击文件—惯用选项—用户惯用选项—端口—跟踪—目标(没有你所要的目标,点击其他,其他里面没有就填写IP地址)—跟踪;如果链接上就会出现已经连接上服务器加上你的服务器名,没有跟踪到就会弹出服务器错误,说明没有连接上你所要链接的服务器,查看一下你的场所是你所要连接的场所吗?还是不行再看看上面配置的场所有没有问题。
第二章建立数据库2.1创建数据库*以用印管理为例来创建数据库;因为本系统中的数据库有很多嵌套数据关系,其中有公共库中的时间控件、工作流中的流程等等,我们就从已经开发出来的库挑选出所要开发的库类似案例,从而节省开发时间,为了规划开发节约开发周期(详见附注4)。
2.2新建拷贝数据库打开一个类似所要开发的数据,点击文件—数据库—打开—选择服务器—打开数据库文件夹(例如标准版的数据库文件夹在HTWEB0A3下)—打开所要的数据库。
隐藏设计的库(详见附注1);打开数据库后该数据库会显示在最近使用过的数据库中;点击该数据库—点击右键—数据库—新建拷贝—选择服务器名、填写标题(填写相关开发的流程名为好)、填写文件名(修改相关开发的流程英文名为好)—点击文件夹图标—选择数据库文件夹(例如标准版的数据库文件夹在HTWEB0A3下)—选择—指定要拷贝的内容(根据要求来选择,一般都是只选择仅数据库设计)—确定。
这时数据库就拷贝成功了。
然后你就可进行开发了。
第三章创建表单表单主要有三张表,一张要主表单,一张是控制表,一张是只读表,主表单在流程中起到主导作用,控制表起到对主表单的控制作用(例如:如果主表单中的某个域在那个步骤中是编辑、只读、必填、隐藏的话那就要用控制表来对其进行控制),只读表起到的是在流程已经完成后对表单一个读取的过程。
3.1主表单(a)表单取名:只需要取名自己能识别的即可(例如:fr_SignetApplication),别名可以取其中文名(例如:用印申请表);(b)开发表单1.1根据需求进行开发分析:用章部门即是获取经办人的所在部门;经办人获取该登录人的名称;文件名称定义三个文本域;份数是一个数值域,使用js代码只允许填写数字,页数同份数;用章事由使用一个RTF文本域;文件去向使用文本域,但是要控制该文本域的大小,达到一个视角效果;印章名称使用一个文本域(如果你建一个选择的域。
1、做一个对话框列表域里面写上值来供选择{如图1};2、或者做一个维护表单,在里面写上方法来获取到维护视图中的那项值({附注2});图1总经签字需要三个域,一个是文本域,但是要计算意见和签名;一个是文本域,用来审批意见;一个是文本域,用来签名和记录时间,域里面编写了代码用来计算(如图2)如有不懂之处可以参考其他库中的表单:图21.2进入表单开发一张表单有三大部分组成,1.调用方法的代码(主要调用子表单、共享域和函数等等(如图3))2.按钮的代码(如图4)3.主页面(如图5):图3图4图5第一二部分对于刚接触lotus Domino的开发者来说是很难理解的一个过程,因为它里面嵌套了时间控制标签、其他一些数据库中的东西,对于我们先接触lotus的开发者,只需要知道主页面的代码就行,1、2部分以后可以慢慢去了解。
(2.2.1)开发主页面1.表头:用印使用申请表,代码:2.用章部门和经办人:代码如下(域名可以取自己所熟悉):其中部门和经办人是通过登录系统获取到的所以域是计算的:文件名称代码如下:份数和页数:代码:页数的js代码同样文件去向和用章事由:代码如下:文件去向是文本域印章名称:代码如下:获取维护视图中的代码如下:总经理审批:代码如下:签名域:ApprovalSign,Sign是固定的只需要改前面Approval,这样ApprovalSignShow才能读取出来。
域值如下:审批域:ApprovalSignAgree是签名域加Agree,Agree是固定格式,域值如下:计算域:ApprovalSignShow是签名域加固定格式Show,域值如下:如果的是多个审批过程同上,再来看看JS Header 代码如下:这个表单上各个域或者按钮所触发的js代码,我们可以暂时不管,因为这个是现成的,可以直接用。
这样我们一张主表单就大功告成了。
这时你可以点击Internet预览下;点击图标如下:3.2控制表单,注意*域名是一定要和主表单的域名一样,不然就无法控制到主表单的域;(1)表单取名:可以取表单名+Preview(例如:fr_printPreview)因为绘制工作流时它只识别+Preview的表单,别名可以取名****+控制表(例如:用印控制表)(2)控制表开发1.表头:同上2.用章部门和经办人:因为它在主表单里面是创建时计算的,所以这里可以(a).控制也要显示时计算(如图7),(b).不用控制(如图8):图7图83.文件名称:域值如下(文本域一定要是对话框列表):4.份数、页数、用章事由、文件去向等同上5.印章名称:同经办人、部门6.总经理审批:代码如下:签字域:注意*这里的域名没有和主表单的域名对应上,这里的是域名是主表单中的id=btnApprovalSign;审批域:域值如下:这样一张控制表单就制作好了。
你可以通过预览看看其效果3.3只读表单表单取名:可以取表单名+Read(例如:fr_printRead)别名可以取名****+只读表(例如:用印只读表)表单开发表头:同上部门、经办人、文件名称等等都是文本域带计算,域值如下图:总经理意见代码如下:域值同上其他域值,因为是只读表单,这个域它已经把意见域和签名域中的数据读取到这个域中,所以不需要意见域和签名域了。
这样一张只读表单也就做完了,你可以浏览看其效果。
第四章创建视图视图是用来显示一些域中数据的作用、其中要建四个视图其中有申请视图、待批视图、流程跟踪、已批视图。
4.1申请视图(1)视图名:例如用印管理中的视图(名称vw_print别名印章使用申请)为了规范,名称前加VW_+**,(2)进入视图:选择你这个视图中的数据来自哪个表单如下:然后填写你所要显示的域(RTF文本域是不能在视图中显示的)选择的域的名一定要和你表单中的域和匹配,第一个域是用来分类,第二个域是用来获取文档的ID号,例如用章部门列(其他同样):4.2待批视图(1)视图名:例如用印管理中的视图(名称vw_printDP别名印章使用待批)为了规范,名称前加VW_+**,同上;4.3已批视图(1)视图名:同上;(2)同上;4.4流程跟踪(1)视图名:同上;(2)其他同上,只需加一个列,当前审批人列,为的是能查到该流程已经到谁审批,起到一个查询的过程,如下图:在前台建菜单和工作流,这样我们一个模块就完成了。
第五章建立菜单进入OA办公系统,用admin登陆(因为admin是最高权限,只允许它来新建菜单绘制工作流和分配权限),找到权限管理模块,点击某个版块—系统管理—权限管理—权限分配,进入权限分配页面。
5.1新建菜单5.2模块建立1.选择否,好到时候能分配权限;2.因为要选建立模块,模块下才有列表、表单等菜单;3.菜单名称最好取客户认可的名称;4.父菜单名称:因为这是一个模块,所以不用选择;5.3建立模块下的菜单(一般有和视图想对应的菜单)(1)印章使用申请1、选择列表,因为它是在模块下的一个菜单;2、选择模块,原因同上;3、根据要求来选择按钮(一般申请单有新建、编辑、删除按钮);印章使用待批(有编辑按钮)印章使用已批(按钮有删除)流程跟踪(按钮有流程跟踪)这样一个模块就建完成了。
为了让其能在页面上显示,所以要把他放置一个板块中去,点击切换至版块,就进入版块页面了。
点击版块就进入,进入选择模块界面;例如,我把印章管理放入我的流程版块中,只需点击我的流程那个版块,就进入选择模块的页面了。
再次点击切换至模块按钮,这样对里面的菜单进行视图维护和嵌套表单等操作进入权限分配页面点击我的流程,效果如下:双击模块管理员,进行数据库套用填写(一定要是对应所开发的数据名);双击印章使用申请下的新建;操作函数代码如下OpenFormWF(this,'fr_print','印章管理','印章管理') 意思的打开的那个主表单,那个模块,模块中的那个工作流。