當前位置:工程項目OA系統(tǒng) > 泛普各地 > 福建OA系統(tǒng) > 廈門OA系統(tǒng) > 廈門OA軟件
協(xié)同OA辦公系統(tǒng)的短信接口實現(xiàn)過程
協(xié)同OA辦公系統(tǒng)的短信接口
OA目前使用短信貓作為內(nèi)置的短信發(fā)送設備,但往往客戶本身已經(jīng)采購了其他的短信服務商的產(chǎn)品,比如中國電信的企信通等等,如果要改用其他供應商的短信發(fā)送裝置的話可以通過OA短信接口實現(xiàn)。廈門OA短信接口包含了sendSMS (msg)方法,客戶開發(fā)人員只要用自己的業(yè)務邏輯實現(xiàn)這個方法,廈門泛普OA系統(tǒng)在需要發(fā)送短信的時候就會調用客戶自己開發(fā)的發(fā)送方式。
另外,泛普OA提供了基于中間表的接口實現(xiàn),客戶可以直接使用。這個接口實現(xiàn)的原理是把要發(fā)送的短信數(shù)據(jù)按照和短信設備供應商約定的格式寫道中間表中,由短信設備供應商定時去獲取數(shù)據(jù)并發(fā)送(大多數(shù)短信設備供應商已經(jīng)提供了通過中間表方式發(fā)送短信的功能。)
在理解了上面的原理之后,接下來講解一下配置使用接口的方法。
1. 找到ecoloyg安裝目錄/WEB-INF/service/sms.xml,打開這個文件,里面的內(nèi)容如下:
<module id="sms" version="1.0.0">
<service-point id="smssender" interface="think.sms.SmsService">
<invoke-factory>
<construct class="think.sms.JdbcSmsService">
<set property="type" value="sqlserver"/>
<set property="host" value="192.168.0.204"/>
<set property="port" value="1433"/>
<set property="dbname" value="OA3802"/>
<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>
需要關注的是紅色部分的內(nèi)容。這里逐一說明.
<set property="type" value="sqlserver"/>: 指定中間表所在數(shù)據(jù)庫的類型,如果是oracle的話就改為value="oracle"
<set property="host" value="192.168.0.204"/>: 指定中間表所在數(shù)據(jù)庫服務器的ip
<set property="port" value="1433"/>: 指定中間表所在數(shù)據(jù)庫的端口,如果是oracle的話應改為1521
<set property="dbname" value="OA3802"/>: 指定中間表所在數(shù)據(jù)庫名
<set property="username" value="sa"/>: 指定中間表所在數(shù)據(jù)庫帳號
<set property="password" value="123"/>:指定中間表所在數(shù)據(jù)庫密碼
以上的配置和think.properties中的參數(shù)差不多,應該不難理解。
<set property="sql" value="insert into OutBox(ReceiverMobileNo,Msg,SendTime,IsChinese,ExpressLevel,Sender) values(?,?,getDate(),1,1,1)"/>: 指定往中間表插入數(shù)據(jù)使用的sql語句。例子中的這條sql是根據(jù)一個客戶的需求寫的,客戶提供的中間表結構是:
表名:OutBox
字段:ReceiverMobileNo, ----------------接受人
Msg, ----------------短信內(nèi)容
SendTime, -----------------發(fā)送時間
IsChinese, -----------------是否中文
ExpressLevel, -----------------緊急程度
Sender ----------------發(fā)送人
實際上廈門泛普OA短信接口只需要用到接受人和短信內(nèi)容兩個字段,這兩個字段的值不是固定的,由短信接口負責把數(shù)據(jù)傳過來,因此用?號表示他們的值。其他字段的值不用關心,可以隨便寫死一些數(shù)據(jù),這個例子里全部寫的是1,發(fā)送時間是用sql server自帶的函數(shù)getDate()獲取的。
不妨這樣理解,最簡單的中間表可以是這樣子的:
表名:someTable
字段:MobileNo,
messageBody
2. 修改OA/WEB-INF/prop/think_rtx.properties中的內(nèi)容為:
IsInitRTXOrg=true
IsDownLineNotify=true
#CurSmsServer=rtx
CurSmsServerIsValid=true
RTXServerPort=8036
RTXServerIP=
RTXServerOutIP=
也就是說只要把CurSmsServer=rtx用#號注釋掉就可以了。
下面是兩個建中間表的sql腳本供參考:
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下對應的sms.xml文件內(nèi)容為:
<module id="sms" version="1.0.0">
<service-point id="smssender" interface="think.sms.SmsService">
<invoke-factory>
<construct class="think.sms.JdbcSmsService">
<set property="type" value="oracle"/>
<set property="host" value="192.168.0.204"/>
<set property="port" value="1521"/>
<set property="dbname" value="think1"/>
<set property="username" value="OA40002"/>
<set property="password" value="OA"/>
<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>
客戶開發(fā)人員可以自己實現(xiàn)接口:
public class TestService implements SmsService{
public boolean sendSMS(String smsId,String number,String msg){
System.out.println("接受人:"+number);
System.out.println("測試短信:"+msg);
。。。
return true;
}
}
那么OA系統(tǒng)在發(fā)送短信時將會調用TestService中的sendSMS方法。
把這個實現(xiàn)部署到OA中,只需修改sms.xml就可以了,:
<module id="sms" version="1.0.0">
<service-point id="smssender" interface="think.sms.SmsService">
<invoke-factory>
<construct class="TestService">
</construct>
</invoke-factory>
</service-point>
</module>
紅色部分表示OA在發(fā)送短信是將調用TestService實現(xiàn)。
- 1OA系統(tǒng)可以讓用戶自行選擇是否采用并行會簽
- 2OA系統(tǒng)辦公管理系統(tǒng)的輔助功能介紹
- 3福建建筑工程審批進度管理軟件
- 4福建工程管理軟件口碑好
- 5福建省建設工程資料管理軟件
- 6協(xié)同OA軟件內(nèi)外協(xié)同一舉打通“信息孤島”
- 7XX集團OA項目需求問卷調查
- 8福建建筑工程oa建設管理軟件
- 9福建安裝工程管理軟件質量保障
- 10福建水利工程資料管理軟件
- 11廈門oa系統(tǒng)
- 12福建工程管理軟件
- 13福建建材工程管理軟件口碑好
- 14關于學習泛普OA辦公系統(tǒng)的家庭作業(yè).
- 15廈門oa辦公系統(tǒng)
- 16福建工程財務管理軟件
- 17福建工程建設項目管理軟件
- 18廈門泛普OA軟件權限整理三(人力資源)
- 19協(xié)同辦公管理系統(tǒng)的文檔接口使用說明
- 20福建建材工程管理軟件
- 21協(xié)同辦公管理系統(tǒng)公文的歸檔與查詢
- 22福建工程建設項目進度管理軟件
- 23福建工程檔案管理軟件
- 24福建建筑工程oa管理軟件
- 25泛普OA軟件電子公章、紅頭文件及打印的管理
- 26協(xié)同管理平臺母子流程互動實現(xiàn)方案
- 27協(xié)同OA對套流程的表單數(shù)據(jù)可以自動轉移
- 28福建精裝工程管理軟件
- 29福建工程監(jiān)理管理軟件
- 30協(xié)同OA辦公系統(tǒng)的短信接口實現(xiàn)過程
成都公司:成都市成華區(qū)建設南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務大廈18樓