www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 《機(jī)電信息》
[導(dǎo)讀]摘 要:介紹了Lotus Notes內(nèi) 自帶的部分組件以及Domino接口 的應(yīng)用 , 闡述了如何使用Domino接口結(jié)合VB6工 具來(lái)開發(fā)一個(gè)郵件擴(kuò)展工具 , 實(shí)現(xiàn)批量查詢是否已讀、批量修改、批量撤回等便捷功能 。

引言

LotusNotes于1989年創(chuàng)立 , 是一個(gè)企業(yè)級(jí)通信、協(xié) 同工作平臺(tái) ,擁有安全性高、易于管理等優(yōu)點(diǎn) ,符合企業(yè)網(wǎng)對(duì)應(yīng)用的要求 。筆者單位采用基于LotusNotes 7.0的定制版本作為內(nèi)部協(xié)同辦公工具 , 由于該版本最后更新時(shí)間為2005年 ,許多功能已遠(yuǎn)遠(yuǎn)落后于時(shí)代 ,不夠人性化,給實(shí)際工作帶來(lái)了一定的阻礙。所幸Lotus Notes 自帶Lotusscript腳本語(yǔ)言可供開發(fā)人員在lotusdesigner中進(jìn)行更多個(gè)性化開發(fā) ,并且提供了一個(gè)CoM類接口 ,可在VB、#C、java等語(yǔ)言中調(diào)用。

VisualBasic(以下簡(jiǎn)稱"VB")是與Lotus同時(shí)代非常受歡迎的開發(fā)語(yǔ)言 , 具有易學(xué)易用、編程簡(jiǎn)潔、可視化UI設(shè)計(jì)、程序集成化程度高等優(yōu)點(diǎn) ,非常適用于快速開發(fā)小型窗體程序。

盡管VB在如今看來(lái)也是落后于時(shí)代的產(chǎn)物 ,但考慮到Lotusscript語(yǔ)法基本與VB相同以及VB開發(fā)窗體應(yīng)用的便捷性 , 因此還是決定采用VB6作為開發(fā)工具引入LotusDominoobject組件進(jìn)行郵件擴(kuò)展工具開發(fā)。

1 需求分析

用戶在使用LotusNotes發(fā)送郵件操作中 ,難免會(huì)出現(xiàn)重要公文、郵件內(nèi)容有誤或收件人有誤等情況 ,希望能立即撤回錯(cuò)誤郵件并重新發(fā)送正確郵件 , 由于不希望錯(cuò)誤內(nèi)容被閱讀 ,所以整個(gè)過(guò)程越快越有利:在執(zhí)行刪除之前 ,有的用戶可能僅想知道郵件在收件人當(dāng)中的已讀情況 ,根據(jù)已讀/未讀比例再進(jìn)行下一步操作的決策:對(duì)于較小的錯(cuò)誤 ,如果能實(shí)現(xiàn)靜默修正功能 ,更能改善用戶體驗(yàn)。

LotusNotes7.0版本并沒有自帶查詢郵件是否已讀和撤回功能 ,并且從單位管理制度考慮 , 即使具有該功能, 由于無(wú)法被管理員有效監(jiān)管 ,可能會(huì)導(dǎo)致該功能被大量濫用 ,增加服務(wù)器負(fù)擔(dān) ,甚至造成宕機(jī)風(fēng)險(xiǎn) 。傳統(tǒng)的方法是 ,用戶提出申請(qǐng)并得到管理員審核通過(guò)后 ,使用Notes自帶的郵件刪除工具進(jìn)行刪除。

新建刪除命令 ,填寫所需刪除郵件的標(biāo)題 ,必須保證完全相同。經(jīng)過(guò)一系列繁雜的設(shè)置后啟動(dòng)程序 ,該工具將會(huì)在服務(wù)器中遍歷搜索所有用戶數(shù)據(jù)庫(kù)中該郵件的數(shù)據(jù) ,檢索到后則執(zhí)行刪除。整個(gè)過(guò)程非常漫長(zhǎng)且卡頓,浪費(fèi)算力 ,并且由于其檢索邏輯是以標(biāo)題作為關(guān)鍵字,為避免被誤刪 ,所以用戶需要等待整個(gè)過(guò)程完成后才可以重新發(fā)出新郵件。管理員希望能減少人工操作 ,執(zhí)行快捷方便 , 并能自動(dòng)導(dǎo)出相關(guān)日志記錄代替手工錄入 ,在執(zhí)行操作后用戶可以立即重新發(fā)送郵件 ,無(wú)須等待過(guò)程完成。

2 設(shè)計(jì)思路

第一步 ,分析數(shù)據(jù)結(jié)構(gòu) 。根據(jù)官方提供的開發(fā)文檔以及在客戶端內(nèi)查看郵件屬性 , 可以得到一封郵件的所有屬性字段(圖1) 。其中 , sMessageID為郵件標(biāo)志 , sorig為郵件唯一標(biāo)志(與sMessageID主要區(qū)別為 , 當(dāng)一個(gè)用戶發(fā)件箱和收件箱皆有該郵件時(shí) , 為確保sorig在該用戶數(shù)據(jù)庫(kù)中的唯一性 , 收件箱中郵件的sorig值會(huì)改變 ,而sMessageID則保持不變):sendTo為收件人數(shù)組:CopyTo為抄送人數(shù)組:BlindCopyTo為密送:From為發(fā)件人:subject為主題:PostDate為發(fā)件時(shí)間:Body為正文內(nèi)容:IsNEwDoC為是否已讀標(biāo)志 。以上為本次開發(fā)主要使用的屬性。

第二步 ,檢索郵件方式 。從數(shù)據(jù)結(jié)構(gòu)來(lái)看 , 既然每封郵件有其自身唯一對(duì)應(yīng)的主key , 比起note自帶的工具采用標(biāo)題為關(guān)鍵字進(jìn)行檢索 , 選擇使用sMessageID 會(huì)更加準(zhǔn)確和高效 , 同時(shí)也支持標(biāo)題精確檢索以及模糊檢索。

圖1 郵件屬性

第三步 ,進(jìn)入收件人數(shù)據(jù)庫(kù)進(jìn)行檢索 。由于每封郵件的收件人是有限的 ,無(wú)須全局遍歷檢索 ,只需要進(jìn)入每個(gè)收件人的數(shù)據(jù)庫(kù)檢索即可 , 能夠節(jié)省大量的檢索時(shí)間 。可以通過(guò)MessageID獲取該郵件對(duì)象 ,然后獲取 sendTo數(shù)據(jù)從而取得收件人列表。

第四步 ,檢索出來(lái)后讀取IsNEwD0C字段判斷郵件是否已讀 ,使用RemovePermanently(True)方法執(zhí)行刪除操作或ReplaceItemValue()方法執(zhí)行替換修改操作。

所有操作執(zhí)行完畢后 ,該郵件即已完全消失或者被修正 ,達(dá)到了郵件撤回或靜默修改的目的 ,操作結(jié)束。

3 窗體設(shè)計(jì)

根據(jù)設(shè)計(jì)思路第二步 ,用戶需要提供發(fā)件人信息以及需要撤回的郵件的MessageID , 因此繪制兩個(gè)輸入框 ,為了提供關(guān)于該郵件的更多信息以便管理員確認(rèn) ,故加上主題、發(fā)送時(shí)間、正文顯示區(qū)域 。繪制按鈕用以觸發(fā)檢索、修改及刪除等操作 。根據(jù)管理員需求 ,再繪制一個(gè)狀態(tài)區(qū)域 , 即運(yùn)行過(guò)程細(xì)節(jié)展示區(qū)域以及導(dǎo)出日志按鈕。

4 開發(fā)

首先在VisualBasic 6中引用Lotus Domino 0bjects 接口組件(圖2) 。

主要用到以下幾個(gè)模塊代碼(僅列出部分核心代碼 ,非完整代碼) :

4. 1 核心方法介紹

Create0bject("Notes.Notessession"): 獲取當(dāng)前Note登錄的session對(duì)象;GetDatabase("數(shù)據(jù)庫(kù)地址"" "names. nsf"):進(jìn)入通信錄數(shù)據(jù)庫(kù);search(): 方法搜索發(fā)件人地 址 ; GetFirstDocument () : 獲 取 第 一 條 搜 索 結(jié) 果 ; GetFirstItem(字段名):獲取指定字段;GetDatabase(服務(wù)器"數(shù)據(jù)庫(kù)):獲取數(shù)據(jù)庫(kù);GetLastDocument():獲取搜索結(jié)果中的最后一 個(gè)文檔;emovePermanently(True)徹底刪除郵件(如果是false則是刪除到回收站);ReplaceItem Value(屬性"值):替換屬性值。

4.2 初始化

Dim aDC As 0bject;DimMaildocAs 0bject;Dim sessionAs 0bject;DimMaildbAs 0bject;DimviewAs 0bject;Dim a() As string;Dim arr() As string;setsession= Create0bject("Notes.Notessession")

4.3 檢索郵件

setMaildb = session.GetDatabase ("數(shù)據(jù)庫(kù)地址"""names.nsf") 1 進(jìn) 入 通 信 錄 ;If Not Maildb.Is0pen Then Maildb.0pen;fajian=Text1.Text;setaDC= Maildb.search("owner=""" & fajian & """ & type=""Person"""" Nothing"

圖2 引用組件

0) ! 在 通 信 錄 中 搜 索 該 地 址 :set Maildoc = aDC. GetFirstDocument () ! 取得 該 條 文 檔 :set rtiteml =Maildoc.GetFirstItem ("Mailserver") !取得其所屬服務(wù)器sername= rtiteml.Text

setrtitem2 = Maildoc.GetFirstItem("MailFile") !取得其 數(shù) 據(jù) 庫(kù) 地 址 :dbname = rtitem2.Text:set Maildb =session.GetDatabase (sername, dbname) !進(jìn)入其郵箱:IfNotMaildb.Is0penThenMaildb.0pen:IfCombol.Text ="MessageID" Then:docid = Left(Trim (Replace(Replace(Replace(Text2.Text, """", ""), Chr(l3), ""), Chr(l0), "")),49) !輸入郵件ID:Keyword = "@Contains(SMessageID:"""& docid & """)":EndIf:setaDC = Maildb.search (Keyword, Nothing, 0) !搜索該郵件:setMaildoc= aDC.GetLastDocument() !獲取該郵件:

set rtitem3 = Maildoc.GetFirstItem ("sendTo") !獲取收件人:set rtitem4 = Maildoc.GetFirstItem("CopyTo")"獲取抄送人:

setsubjectl=Maildoc.GetFirstItem ("subject") !獲取標(biāo)題:

setposttime=Maildoc.GetFirstItem("PostedDate") !獲

取發(fā)件時(shí)間:

4.4 執(zhí)行查詢是否已讀/修改/刪除操作

setMaildb=session . GetDatabase ( "JMEP02MAD/servers/Geph", "names.nsf"): set aDC= Maildb.search ("owner=""" & a(i) & """ & type=""Person""", Nothing, 0)!查找收件人

setMaildoc= aDC.GetFirstDocument() :

setrtiteml = Maildoc.GetFirstItem ("Mailserver"):sername = rtiteml.Text:set rtitem2 = Maildoc.GetFirstItem ("MailFile") : dbname = rtitem2.Text: setMaildb = session.GetDatabase(sername, dbname)

0n Error Resume Next

CallMaildoc.RemovePermanently(True)

4.5 交互優(yōu)化

在上述核心代碼的基礎(chǔ)上 ,加入一些容錯(cuò)機(jī)制、自動(dòng)補(bǔ)全、群組收件人展開、按照主題模糊查詢、郵件批量修改、日志導(dǎo)出、僅刪除未讀等功能優(yōu)化客戶體驗(yàn) ,具體代碼不再贅述。

5 測(cè)試

開發(fā)完成后進(jìn)行測(cè)試 ,順利運(yùn)行成功(圖3)。

基于Visual Basic的Lotus Notes郵件擴(kuò)展工具開發(fā)

6    結(jié)語(yǔ)

使用Domino接口與VB開發(fā)語(yǔ)言 , 既可以發(fā)揮Lotus NotN強(qiáng)大的文檔處理能力 ,又可以發(fā)揮VB友好的可視化功 ,并且開發(fā)快捷 ,工作效率提升明顯。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉