秦勁松
(上海電力學(xué)院教務(wù)處,上海 200090)
工作流系統(tǒng)是以規(guī)格化的流程描述作為輸入的軟件組件,維護流程的運行狀態(tài),并在人和應(yīng)用之間分派活動.作為主動者,人從系統(tǒng)中獲取流程的進展信息,因此存在業(yè)務(wù)流程信息有時不能及時送到管理者手中的現(xiàn)象.如何主動將信息發(fā)送到相應(yīng)人員手中,成為流程管理差異化的一個重要內(nèi)容.
如今的流程管理更多地采用短信機制來實現(xiàn).其主要原理見圖1.
該種方式如果結(jié)合GPS定位,使用在物流系統(tǒng)中將會非常方便,但是如果用于企業(yè)管理信息系統(tǒng),由于管理信息系統(tǒng)的內(nèi)容較多,因此單靠短信將無法將事情描述清楚.
圖1 短信方式流程跟蹤
為了解決現(xiàn)有流程跟蹤問題,提高系統(tǒng)自我推送能力,將E-mail使用導(dǎo)入現(xiàn)有系統(tǒng)具有重要作用.
為了充分利用E-mail內(nèi)容自由、格式多樣的特點,可以由用戶自定義各種情況下對應(yīng)的E-mail格式,以用于不同級別的提醒.該方案可大致分為E-mail發(fā)送規(guī)則設(shè)置功能、流程提醒掃描功能、E-mail提醒發(fā)送功能等.
E-mail提醒發(fā)送功能是核心部分,其余兩個功能為輔助功能.為了方便使用E-mail的各種格式,這里主要使用Jmail控件,在開發(fā)中創(chuàng)建該對象,通過使用Jmail的相關(guān)功能來實現(xiàn).
Jmail是服務(wù)器端的一種郵件發(fā)送組件,與個人使用的客戶端郵件軟件不一樣,Jmail是在服務(wù)器上給程序發(fā)郵件用的,作為一個第三方郵件操作組件,通常位于Web服務(wù)器端,與站點程序緊密配合來接收及提交郵件到郵件服務(wù)器的控件,讓網(wǎng)站兼具發(fā)送郵件和接收郵件的功能.
與此相同的還有 CDONTS.NewMail,Persits.MailSender,IISmail.Iismail等,這些軟件的唯一區(qū)別就是Jmail只需要注冊一個dll組件即可被調(diào)用,而其他則需要在IIs上設(shè)置發(fā)布smtp服務(wù)器.
設(shè)置各流程步驟對應(yīng)的E-mail格式,并根據(jù)流程超時規(guī)則設(shè)置不同的收件人和提示內(nèi)容.該功能主要設(shè)置每個流程轉(zhuǎn)換點的時間關(guān)鍵字,以及超時天數(shù)與E-mail格式、收信人員的關(guān)系.
為了能夠保持發(fā)送郵件的統(tǒng)一格式,可以設(shè)置相關(guān)的E-mail參數(shù),并對可變化內(nèi)容作出特殊標(biāo)志,以方便在生成E-mail時根據(jù)相關(guān)流程的具體信息進行設(shè)置.
例如,可設(shè)置如下E-mail格式.
Dear All:
We inform you that the Acceptance for the following Machine/s still pending since{超時天數(shù)}days according the contractual agreement;
WBS:{WBS_No};
SAP:{SAP_No};
Customer:{customer};
Region:{Region};
M/C Type+S/N:{machine type機器型號 +S/N序列號};
Last Remarks:{remark};
Please inform the China Set-Up Supervisor for the planned further steps.
Thank You for your collaboration.
對上例中的“{}”內(nèi)部,可在生成E-mail功能中進行調(diào)換:定義變量strTable;設(shè)置strTabl為E-mail格式,則可以用獲取的實際參數(shù)替換E-mail格式中的相關(guān)內(nèi)容.例如可用實際參數(shù)duedays替換{超時天數(shù)},strTable=replace(strTable,“{超時天數(shù)}“,duedays)[1].設(shè)計結(jié)構(gòu)見圖 2.
圖2 設(shè)計界面
該功能主要是實現(xiàn)對流程信息定時掃描,尋找需處理的流程,從而啟動E-mail的發(fā)送功能.該功能主要集中于定時器的設(shè)置問題,提醒點的設(shè)置只要集合實際業(yè)務(wù)流程,確定需要發(fā)送的對象和消息內(nèi)容及格式即可.
以SQLServer2000為示例對象,可以在SQL-Server2000的本地包中設(shè)置腳本運行程序作為流程掃描功能,并將本地包作為SQLServer2000的作業(yè)調(diào)度對象,對調(diào)度策略進行一定的控制,從而實現(xiàn)定時調(diào)度掃描觸發(fā)器的功能,具體設(shè)計見圖3[2].
圖3 作業(yè)調(diào)度設(shè)計
根據(jù)流程的具體內(nèi)容及事先制定好的發(fā)送規(guī)則,生成相應(yīng)格式的E-mail,將其發(fā)送給規(guī)則指定的人員,并生成日志文件.
通過上述分析可知,發(fā)送E-mail的方法有很多種,本文主要使用Jmail作為發(fā)送E-mail的控件.
首先創(chuàng)建Jmail對象:set JMail=CreateObject(“Jmail.message“)[3].然后設(shè)置 Jmail對象的字符集、發(fā)送郵箱、接受郵箱,以及E-mail主題后,就可以設(shè)置Jmail的發(fā)送內(nèi)容:JMail.ContentType=“text/html“,jmail.Body=“發(fā)送內(nèi)容”.
經(jīng)過上述一系列的設(shè)置后,通過send_E-mail=JMail.send(“SMTP.163.COM “)命令將郵件發(fā)送給接受者,其中“SMTP.163.COM”為 SMTP服務(wù)器地址[4].
該方案如果結(jié)合SMS功能,將極大增強流程系統(tǒng)的及時性和詳細性,當(dāng)然該系統(tǒng)所使用的郵件發(fā)送方法可以有多種,用戶可以根據(jù)實際情況選擇.一般除了Jmail之類的控件方法外,如果郵件服務(wù)器使用Exchange,則可用SQLServer結(jié)合OutLook進行發(fā)送.
[1]韓延峰.即用即查ASP+VBScript函數(shù)與對象參考手冊[M].北京:人民郵電出版社,2007:10-11.
[3]ADRIAN Kingsley-hughes.VBScript程序員參考手冊[M].第3版.北京:清華大學(xué)出版社,2009:80-81.
[4][美]約翰遜.INTERNET EMAIL協(xié)議開發(fā)指南[M].北京:機械工業(yè)出版社,2000:23-24.