當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普服務(wù)體系 > OA系統(tǒng)二次開(kāi)發(fā)
協(xié)同OA軟件通用短信接口實(shí)現(xiàn)方式及使用說(shuō)明
申請(qǐng)免費(fèi)試用、咨詢(xún)電話:400-8352-114
泛普OA系統(tǒng)通用短信接口實(shí)現(xiàn)方式及使用說(shuō)明泛普oa協(xié)同辦公平臺(tái)通用短信接口實(shí)現(xiàn)方式及使用說(shuō)明
考慮到目前短信設(shè)備供應(yīng)商多如牛毛,我們不可能和每個(gè)供應(yīng)商做集成開(kāi)發(fā),因此設(shè)計(jì)了這個(gè)短信通用接口。
接口的原理很簡(jiǎn)單,就是泛普OA系統(tǒng)只負(fù)責(zé)把需要發(fā)送的短信數(shù)據(jù)放到中間表里,由短信設(shè)備供應(yīng)商或客戶(hù)自己把中間表里的數(shù)據(jù)發(fā)送出去。實(shí)際上大多數(shù)短信設(shè)備供應(yīng)商已經(jīng)實(shí)現(xiàn)了通過(guò)中間表方式發(fā)送短信。
接口對(duì)中間表的存放的位置、中間表名及字段名沒(méi)有要求,因?yàn)橥虚g表插入數(shù)據(jù)的sql是在配置文件中指定的,但是有兩點(diǎn)要注意
1. 必須使用sql server或oracle數(shù)據(jù)庫(kù),其他的數(shù)據(jù)庫(kù)暫時(shí)不支持。
2. 必須有用于存放短信內(nèi)容、短信接受人的字段。
泛普OA辦公系統(tǒng)使用說(shuō)明:
在理解了上面的原理之后,我們可以繼續(xù)了解配置使用接口的方法。
1. 找到泛普OA系統(tǒng)/WEB-INF/service/sms.xml,打開(kāi)這個(gè)文件,里面的內(nèi)容如下:
<module id="sms" version="1.0.0">
<service-point id="smssender" interface="OA.sms.SmsService">
<invoke-factory>
<construct class="OA.sms.JdbcSmsService">
<set property="type" value="sqlserver"/>
<set property="host" value="192.168.0.204"/>
<set property="port" value="1433"/>
<set property="dbname" value="泛普OA系統(tǒng)3802"/>
<set property="username" value="sa"/>
<set property="password" value="123"/>
<set property="sql" value="insert into OutBox(ReceiverMobileNo,Msg,SendTime,IsChinese,ExpressLevel,Sender) values(?,?,getDate(),1,1,1)"/>
</construct>
</invoke-factory>
</service-point>
</module>
我們需要關(guān)注的是紅色部分的內(nèi)容。我逐一講解一下.
<set property="type" value="sqlserver"/>: 指定中間表所在數(shù)據(jù)庫(kù)的類(lèi)型,如果是oracle的話就改為value="oracle"
<set property="host" value="192.168.0.204"/>: 指定中間表所在數(shù)據(jù)庫(kù)服務(wù)器的ip
<set property="port" value="1433"/>: 指定中間表所在數(shù)據(jù)庫(kù)的端口,如果是oracle的話應(yīng)改為1521
<set property="dbname" value="泛普OA系統(tǒng)3802"/>: 指定中間表所在數(shù)據(jù)庫(kù)名
<set property="username" value="sa"/>: 指定中間表所在數(shù)據(jù)庫(kù)帳號(hào)
<set property="password" value="123"/>:指定中間表所在數(shù)據(jù)庫(kù)密碼
以上的配置和OA.properties中的參數(shù)差不多,應(yīng)該不難理解。
<set property="sql" value="insert into OutBox(ReceiverMobileNo,Msg,SendTime,IsChinese,ExpressLevel,Sender) values(?,?,getDate(),1,1,1)"/>: 指定往中間表插入數(shù)據(jù)使用的sql語(yǔ)句。例子中的這條sql是我給一個(gè)客戶(hù)寫(xiě)的,客戶(hù)提供的中間表結(jié)構(gòu)是:
表名:OutBox
字段:ReceiverMobileNo, ----------------接受人
Msg, ----------------短信內(nèi)容
SendTime, -----------------發(fā)送時(shí)間
IsChinese, -----------------是否中文
ExpressLevel, -----------------緊急程度
Sender ----------------發(fā)送人
實(shí)際上我們只需要用到接受人和短信內(nèi)容兩個(gè)字段,這兩個(gè)字段的值不是固定的,由我們的接口負(fù)責(zé)把數(shù)據(jù)傳過(guò)來(lái),因此用?號(hào)表示他們的值。其他字段的值我們不關(guān)心,可以隨便寫(xiě)死一些數(shù)據(jù),這個(gè)例子里我全部寫(xiě)的1,發(fā)送時(shí)間是用sql server自帶的函數(shù)getDate()獲取的。
我們可以這樣理解泛普辦公OA系統(tǒng),最簡(jiǎn)單的中間表可以是這樣子的:
表名:someTable
字段:MobileNo,
messageBody
2. 修改泛普OA系統(tǒng)/WEB-INF/prop/OA_rtx.properties中的內(nèi)容為:
#config file
#Fri Aug 13 11:30:56 CST 2004
IsInitRTXOrg=true
IsDownLineNotify=true
#CurSmsServer=rtx
CurSmsServerIsValid=true
RTXServerPort=8036
RTXServerIP=
RTXServerOutIP=
也就是說(shuō)只要把CurSmsServer=rtx用#號(hào)注釋掉就可以了。(相信大家都清楚CurSmsServer參數(shù)是用來(lái)指定當(dāng)前短信發(fā)送設(shè)備的)
下面我提供兩個(gè)建中間表的sql腳本供客戶(hù)參考:
1. for sqlserver
CREATE TABLE outbox (
ID int IDENTITY (1, 1) ,
ExpressLevel int ,
Sender varchar (50) ,
ReceiverMobileNo varchar (50),
Msg varchar (500) ,
SendTime datetime,
IsChinese bit
)
3. for oracle
create table OUTBOX
(
ID NUMBER not null,
EXPRESSLEVEL NUMBER,
SENDER VARCHAR2(50),
RECEIVERMOBILENO VARCHAR2(50) not null,
MSG VARCHAR2(500),
SENDTIME DATE not null,
ISCHINESE NUMBER not null
);
create sequence OUTBOX_ID_SEQ
minvalue 1
maxvalue 999999999
start with 141
increment by 1
cache 20;
CREATE OR REPLACE TRIGGER "SET_OUTBOX_ID" BEFORE
INSERT ON "OUTBOX"
FOR EACH ROW
DECLARE
NEXT_OUTBOX_ID NUMBER;
BEGIN
SELECT OUTBOX_ID_SEQ.NEXTVAL INTO NEXT_OUTBOX_ID FROM DUAL;
:NEW.ID := NEXT_OUTBOX_ID;
END;
oracle下對(duì)應(yīng)的sms.xml文件內(nèi)容為:
<module id="sms" version="1.0.0">
<service-point id="smssender" interface="OA.sms.SmsService">
<invoke-factory>
<construct class="OA.sms.JdbcSmsService">
<set property="type" value="oracle"/>
<set property="host" value="192.168.0.204"/>
<set property="port" value="1521"/>
<set property="dbname" value="OA1"/>
<set property="username" value="泛普OA系統(tǒng)40002"/>
<set property="password" value="泛普OA系統(tǒng)"/>
<set property="sql" value="insert into OutBox(ReceiverMobileNo,Msg,SendTime,IsChinese,ExpressLevel,Sender) values(?,?,(select sysdate from dual),1,1,'1')"/>
</construct>
</invoke-factory>
</service-point>
</module>
泛普OA協(xié)同實(shí)際上使用中間表來(lái)和短信供應(yīng)商集成只是我們通用接口的一部分,這種實(shí)現(xiàn)方式的缺點(diǎn)是短信供應(yīng)商通常以定時(shí)掃描中間表的方式來(lái)把短信數(shù)據(jù)發(fā)送出去,短信發(fā)送的時(shí)間取決于掃描的頻度,實(shí)時(shí)性稍差。
如果客戶(hù)不喜歡中間表的方式,他還可以選擇自己去實(shí)現(xiàn)發(fā)送短信的方法,當(dāng)然,必須使用java編程語(yǔ)言。當(dāng)他把自己寫(xiě)的發(fā)送方法部署到系統(tǒng)中之后,泛普OA系統(tǒng)在發(fā)送短信的時(shí)候就會(huì)調(diào)用客戶(hù)的實(shí)現(xiàn)。部署的方法也很簡(jiǎn)單,復(fù)雜的是只有java程序員才看的懂,具體操作起來(lái)可以向泛普開(kāi)發(fā)人員咨詢(xún):
1. 編寫(xiě)客戶(hù)自己的實(shí)現(xiàn)。只需要實(shí)現(xiàn)我們提供的SMSService接口:
public interface SmsService {
public boolean sendSMS(String smsId,String number,String msg);
}
假定客戶(hù)是這樣實(shí)現(xiàn)的:
public class TestService implements SmsService{
public boolean sendSMS(String smsId,String number,String msg){
System.out.println("接受人:"+number);
System.out.println("測(cè)試短信:"+msg);
return true;
}
}
那么泛普OA系統(tǒng)系統(tǒng)在發(fā)送短信時(shí)將會(huì)調(diào)用TestService中的sendSMS方法。
2. 把客戶(hù)的實(shí)現(xiàn)部署到泛普OA系統(tǒng)中。修改sms.xml就可以了,我還是用上面的客戶(hù)實(shí)現(xiàn)為例:
<module id="sms" version="1.0.0">
<service-point id="smssender" interface="OA.sms.SmsService">
<invoke-factory>
<construct class="TestService">
</construct>
</invoke-factory>
</service-point>
</module>
紅色部分表示泛普OA系統(tǒng)在發(fā)送短信是將調(diào)用TestService實(shí)現(xiàn)。
- 1泛普OA軟件中的工作日志(微博)開(kāi)發(fā)方案
- 2企業(yè)對(duì)協(xié)同OA軟件的門(mén)戶(hù)元素開(kāi)發(fā)需求
- 3協(xié)同OA辦公系統(tǒng)的預(yù)算相關(guān)系統(tǒng)表單開(kāi)發(fā)
- 4XX建設(shè)公司協(xié)同管理軟件流程二次開(kāi)發(fā)
- 5協(xié)同OA辦公系統(tǒng)的二次開(kāi)發(fā)經(jīng)驗(yàn)總結(jié)
- 6OA模糊預(yù)算提醒,是對(duì)預(yù)算信息進(jìn)行保密
- 7XX地產(chǎn)公司OA軟件全面預(yù)算管理開(kāi)發(fā)
- 8泛普協(xié)同OA軟件的財(cái)務(wù)預(yù)算控制單據(jù)開(kāi)發(fā)
- 9OA辦公系統(tǒng)HTML模式使用說(shuō)明書(shū)
- 10OA辦公系統(tǒng)CRM銷(xiāo)售管理信息系統(tǒng)定制需求分析
- 11協(xié)同OA系統(tǒng)可以在集成化些什么功能呢?
- 12客戶(hù)對(duì)OA辦公自動(dòng)化軟件的開(kāi)發(fā)需求描述
- 13什么OA軟件在功能比較好?泛普OA連JSP式樣編寫(xiě)指南都開(kāi)放了,你說(shuō)好不好
- 14泛普OA軟件二次開(kāi)發(fā)總結(jié)(史上最全的)
- 15協(xié)同OA軟件對(duì)流程,文檔數(shù)據(jù)的存放說(shuō)明
- 16協(xié)同OA系統(tǒng)的預(yù)算三級(jí)科目和費(fèi)用明細(xì)關(guān)聯(lián)
- 17協(xié)同OA管理應(yīng)用方案---出勤管理
- 18OA管理系統(tǒng)開(kāi)發(fā)需求方案
- 19OA軟件目管理軟件任務(wù)的行插入
- 20泛普協(xié)同OA辦公底層包開(kāi)發(fā)指南
- 21XX客戶(hù)協(xié)同OA軟件預(yù)算流程修改操作手冊(cè)
- 22協(xié)同OA需要開(kāi)發(fā)多種展現(xiàn)方式及分析方法
- 23OA辦公系統(tǒng)開(kāi)發(fā)資產(chǎn)模塊開(kāi)發(fā)
- 24協(xié)同辦公OA軟件的數(shù)據(jù)庫(kù)查詢(xún)和處理語(yǔ)句
- 25協(xié)同辦公管理系統(tǒng)的HTML表單準(zhǔn)備工作
- 26XX國(guó)際信托協(xié)同OA軟件滿足年假扣減需求
- 27OA管理軟件[資產(chǎn)采購(gòu)]與[資產(chǎn)入庫(kù)]自定義流程需求
- 28要做OA辦公系統(tǒng),找哪家系統(tǒng)開(kāi)發(fā)公司比較好?泛普超專(zhuān)業(yè)二次開(kāi)發(fā)方案
- 29OA辦公系統(tǒng)具體都有哪些功能~!請(qǐng)大家?guī)臀医榻B一款OA辦公軟件,介紹下OA辦公系統(tǒng)具體都有哪些功能~!請(qǐng)大家?guī)臀医榻B一下
- 30OA辦公系統(tǒng)可將通訊錄以excel形式打開(kāi)或保存至本地
成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓