Lotus Domino API 应用
更新时间:2023-11-25 08:26:01 阅读量: 教育文库 文档下载
- lotus翻译推荐度:
- 相关推荐
Lotus Domino/Notes是美国莲花公司出的企业通讯和群件服务平台。但由于其本身提供的开发工具的限制,在Notes中实现系统级功能十分困难。比如在Notes中,不能通过公式或脚本来得到一个数据库的未读文档的数量和其内容。但这个未读文档数的小功能在做有些方面是十分有用的,例如我们可以根据这个未读文档数来做个提醒功能,提醒用户该进行某类工作如文件签发等。Notes系统本身有个Minder的程序,它是在有新邮件来到的时候,提醒用户,并可提供一些基本的信息:来信人,标题等。我们也可以这样做(当然利用未读文档数来做不是完美,如果你有兴趣,你可以试试做个数据库钩子程序来实现,但总的来说,利用未读文档数来做较为简单。)。
本文就是讨论如何利用Notes提供的C API来实现读取一个Notes数据库的未读文档数和其信息。因为利用的是C API,所以我们的开发语言是C。开发工具我们选用的是VC++ 6.0。我们需要借助的是Notes本身提供的C API函数。Notes的大部分API都封装在nNotes.dll文件中。其中包括有ACL,Database,User,Document,Item等各个方面的API函数。它不光能实现几乎所有在Notes中实现的功能,它还提供了其他在Notes中难以想象的功能(换句话说,你可以自己写自己特有的Notes桌面程序而不再使用Notes.exe。当然它的功能还远不止这点)。利用Notes API包,我们可以做以下的程序:
1、独立应用程序。
2、DOMINO 服务器的扩展插入服务(add-in tasks)。
3、NOTES 客户机的菜单扩展插入(menu add-ins)。
4、NOTES 客户机可动态加载的函数库。
5、数据库的钩子驱动程序(HOOK Drivers)。
6、扩展管理程序的钩子函数库。
7、非NOTES数据库的驱动程序。
下面简单介绍一下我们后面会涉及的主要的Notes API函数:
NotesInitExtended:初始化Notes环境,应在所有Notes API函数调用前初始化系统。
NSFDbOpen:打开指定的Notes数据库。
NSFDbClose:关闭指定的Notes数据库。
NSFDbGetUnreadNoteTable:取得指定数据库内的未读文档列表。
NSFDbUpdateUnread:更新数据库的未读文档列表。
NIFFindView:取得数据库内的指定视图或文件夹。
NIFOpenCollection:取得指定视图或文件夹的所有文档。
NIFUpdateCollection:更新指定视图或文件夹的所有文档。
NIFCloseCollection:关闭文档集。
NIFReadEntries:读取文档集的指定文档。
NSFNoteOpen:打开指定文档。
NSFItemGetText:取得文档的指定字段值。
程序流程:
数据库中有张类型为IDTable的未读文档列表,其中包含了该数据库的带有未读标志的文档号。这张表存储在数据库中和客户机的Desktop.dsk文件中。当然,在数据库和文件中的这张表是一样的。当他们不一致时,则在你打开数据库时,它们会自动同步,使他们保持一样。
我们就是要取得这张未读文档表,再统计一下这张表中有多少项,就知道了数据库中多少文档带有未读标志。我们还可以在此基础上取得该文档的一些具体信息。但这张表是整个数据库的未读文档列表,我们怎么得到某个视图或文件夹的未读文档数和信息呢?实际上,这才是我们真正关心的。我们可以再找到某个视图和文件夹的文档列表,再与上面的未读文档列表进行一一比较,相同的则是该视图或文件夹的未读文档列表。
主要程序如下:
//////////////////////////////////////////////////////
// InitNotes:初始化Notes环境,打开数据库 // szServerName:服务器名 // szDBName:数据库名
// szDirectory:Notes系统目录 // 返回值:1 - 成功 // 0 - 失败
int CNotes::InitNotes(char *szServerName,char *szDBName,char *szDirectory) {
STATUS status;
char szPathName[MAX_PATH];
char szpInitPara[1][260];
// 数据库路径名=服务器名+“!!”+数据库名
if (strlen(szServerName)==0)
strcpy(szPathName,szDBName);
else {
strcpy(szPathName,szServerName);
strcat(szPathName,\
strcat(szPathName,szDBName); }
strcpy(szpInitPara[0],szDirectory);
if (!m_bOpened)
NotesInitExtended(1,(char**)szpInitPara); // 初始化Notes环境
status=NSFDbOpen(szPathName,&hDb); // 打开数据库
if (status!=NOERROR) {
m_bOpened=false;
return 0; }
m_bOpened=true;
return 1;
}
///////////////////////////////////////////////////
// GetUnread:取得指定视图或文件夹中的未读文档数 // szViewName:视图或文件夹名 // 返回值:-1 - 失败 // 其他 - 未读文档数
int CNotes::GetUnread(char *szViewName) {
STATUS status;
char szUserName[MAX_PATH];
status=SECKFMGetUserName(szUserName); // 得到当前用户名
if (status!=NOERROR) {
m_bGetUnread=false;
return -1; }
status=NSFDbGetUnreadNoteTable(hDb,szUserName,_ strlen(szUserName),true,&hTable); // 取得数据库的未读文档列表
if (status!=NOERROR) {
m_bGetUnread=false;
return -1; }
if (hTable==NULL) {
m_bGetUnread=false;
return -1; }
status=NSFDbUpdateUnread(hDb,hTable); // 更新未读文档列表
if (status!=NOERROR) {
OSMemFree(hTable);
m_bGetUnread=false;
return -1; }
status = NIFFindView(hDb, szViewName, &ViewID); file://得到数据库的某视图或文件夹
if (status!=NOERROR) {
OSMemFree(hTable);
m_bGetUnread=false;
return -1; }
status=NIFOpenCollection(hDb,hDb,ViewID,0,hTable,_ &hCollection,NULL,NULL,NULL,NULL);
if (status!=NOERROR) {
OSMemFree(hTable);
m_bGetUnread=false;
正在阅读:
Lotus Domino API 应用11-25
英语周末培训班教学计划10-16
国际政治经济学的演进逻辑----杨宇07-07
生态陵园工程项目可行性研究报告新06-19
儿童爱国诗朗诵03-21
规划设计部部门职能和岗位职责12-31
中国核电站分布表08-15
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 应用
- Domino
- Lotus
- API
- 2014年考试真题(五)
- 地下综合管廊及道路工程PPP项目维护管理服务合同
- IDA反汇编学习心得
- 2017RQ-1压力容器检验员承压设备损伤模式识别学习资料、答案
- 行程问题10综合基础练习
- 农村“两委”班子实行任期承诺目标
- 陕西省西安市第一中学2019届高三上学期第二次模拟考试数学(文)试题Word版含答案
- 税务会计
- 高职汽修专业模拟试卷(一) - 图文
- 第八章补充题
- 多选题
- 初中数学青岛版八年级上册高效课堂资料3.6比和比例(2)教案
- 剧本创作试题4
- 高英词语辨析
- 中考四大名著复习题及答案
- 人教版四年级语文下册第二单元综合训练试题
- 人力资源总监工作计划
- 2013苏州大学博士录取名单 - 图文
- 育婴实训室管理员岗位职责
- 高中化学教材分析