五、K3 WISE 开发插件《K3 Wise 群发短信配置开发(二)之短信群发配置》
开发环境:K/3 Wise 13.0、Sql Server 2005
目录
一、开启Sql Server Agent代理服务
二、短信发送原理
三、编写存储过程
四、开启Sql Server作业
一、开启Sql Server Agent代理服务
打开“管理工具” -- “服务” --“Sql Server Agent(MSSQLSERVER)”,设置为“已启动”、“自动”:


二、短信发送原理
往K3Mobile数据库的两个表T_SMSMSGLOG、tb_sendmessage插入记录,K/3 Wise将自动发送数据到WeiNaDuo短信接口进行短信发送!
发送数据模板:
insert into tb_sendmessage(id,biztype,isRevertible,title,msgtype,receivers,ffuncnumber,issent,createtime,fsendstate)
Values('DB000000000001','k3-9AB20E12-60C4-448C-B60D-6DFC8BA7AC77',0,'还款提醒:XXX先生/女士,您的融资XX应还租金人民币15,300.00元,本期还款日为8月20日。若已还款请忽略。',0,'接收人手机号码','K3V10.3YDSW',0,'2014-08-29 10:26:09.937',0) insert into t_smsmsglog(fsender,freceiver,facctid,frecvphonenum,fsendphonenum,fsendtime,freceivetime,fcontent,fmidserver,frecman,frecmantype,fid)
values(0,-1,2,'接收人手机号码','短信中心','2014-08-29 10:26:09.937','1900-01-01 00:00:00.000','还款提醒:XXX先生/女士,您的融资XX应还租金人民币15,300.00元,本期还款日为8月20日。若已还款请忽略。','服务器IP地址','接收人姓名',1,'DB000000000001')
金蝶提供了“金蝶短信平台”,可以查看短信发送情况,短信平台地址:http://121.52.221.109:8090/Default.aspx

输入账号和密码后:

三、编写存储过程
数据库K3Mobile下,编写存储过程,本例存储过程为“pro_sms_ContractSchemeOutDateWarn”:


附上代码:
IF EXISTS(SELECT * FROM sysobjects WHERE NAME='pro_sms_ContractSchemeOutDateWarn' AND TYPE='p')
DROP PROCEDURE pro_sms_ContractSchemeOutDateWarn
GO
CREATE PROC pro_sms_ContractSchemeOutDateWarn
@OutDay int --过期提醒的天数
AS
SET NOCOUNT ON CREATE TABLE #ContractTemp
(
FID int identity(1,1),
FContractNO varchar(50),
FCustomerName varchar(50),
FSex varchar(50),
FMobilePhone varchar(50),
FReceiveDate datetime,
FAmountFor decimal(18,2)
)
--版本一:2014-8-31
--INSERT INTO #ContractTemp
--SELECT b.FContractNO,c.FName as FCustomerName,c.F_102 as FSex,c.FMobilePhone,a.FReceiveDate,a.FAmountFor from AIS20130715142849.dbo.t_RPContractScheme a
--left join AIS20130715142849.dbo.t_RPContract b on a.FContractID=b.FContractID
--Left Join AIS20130715142849.dbo.T_Organization c On b.FCustomer=c.FItemID
--where datediff(day,getdate(),a.freceivedate)=@OutDay and b.FStatus<>2 and b.FStatus<>1 and c.FMobilePhone is not null
--SELECT * FROM #ContractTemp
--版本二:2014-9-5,纠正“短信发送晚于付款时间2日”的错误;排除已结租合同(包括已审核、已关闭、实收金额合计累计+保证金>=应收金额累计)
INSERT INTO #ContractTemp
select t.FContractNO,c.FName as FCustomerName,c.F_102 as FSex,c.FMobilePhone,t1.FReceiveDate,t1.FAmountFor
from AIS20130715142849.dbo.t_RPContractScheme t1
left join (select a.FContractID,a.FContractNO,a.FStatus,a.Fcustomer,a.FDecimal,sum(b.famountfor) as famountfortotal,sum(famount12) as famount12total
from AIS20130715142849.dbo.t_rpcontract a
left join AIS20130715142849.dbo.t_rpcontractscheme b on a.fcontractid=b.fcontractid where a.fstatus<>1 and a.fstatus<>2
group by a.FContractID,a.fcontractno,a.FStatus,a.FCustomer,a.FDecimal) t ON t1.FContractID=t.FContractID
Left Join AIS20130715142849.dbo.T_Organization c On t.FCustomer=c.FItemID
where t.FAmount12Total+t.FDecimal<t.FAmountForTotal and t.FStatus<>1 and t.FStatus<>2
and datediff(day,getdate(),t1.freceivedate)=@OutDay and c.FMobilePhone is not null DECLARE @DBID varchar(50)
DECLARE @curIndex int
DECLARE @totalRows int
DECLARE @FCustomerName varchar(50)
DECLARE @FSex varchar(50)
DECLARE @FMobilePhone varchar(50)
DECLARE @FReceiveDate datetime
DECLARE @FAmountFor varchar(50)
DECLARE @FContractNO varchar(50)
SELECT @curIndex=1
SELECT @totalRows=COUNT(1) FROM #ContractTemp
WHILE(@curIndex<=@totalRows)
BEGIN
SELECT @DBID=null
SELECT @FCustomerName=null
SELECT @FSex=null
SELECT @FMobilePhone=null
SELECT @FReceiveDate=null
SELECT @FAmountFor=null
SELECT @FContractNO=null
SELECT @FCustomerName=FCustomerName FROM #ContractTemp WHERE FID=@curIndex
SELECT @FSex=CASE FSex WHEN 0 THEN '女士' WHEN 1 THEN '先生' ELSE '先生/女士' END FROM #ContractTemp WHERE FID=@curIndex
SELECT @FMobilePhone=FMobilePhone FROM #ContractTemp WHERE FID=@curIndex
SELECT @FReceiveDate=FReceiveDate FROM #ContractTemp WHERE FID=@curIndex
SELECT @FAmountFor=FAmountFor FROM #ContractTemp WHERE FID=@curIndex
SELECT @FAmountFor=CONVERT(varchar,CONVERT(money,@FAmountFor),1)
SELECT @FContractNO=FContractNO FROM #ContractTemp WHERE FID=@curIndex
SELECT @DBID=MAX(FID) FROM t_DBID
SELECT @DBID='DB'+REPLACE(SPACE(12-LEN(@DBID)),' ','')+CONVERT(varchar(50),@DBID+1) INSERT INTO TB_SENDMESSAGE
(ID,bizType,isRevertible,title,msgType,receivers,FFuncNumber)
VALUES(@DBID,'k3-9AB20E12-60C4-448C-B60D-6DFC8BA7AC77',0,'还款提醒:'+@FCustomerName+@FSex+',您的XX融资合同<'+@FContractNO+'>本期应还¥'+@FAmountFor+'元,还款日为'+CONVERT(varchar,MONTH(@FReceiveDate))+'月'+CONVERT(varchar,DAY(@FReceiveDate))+'日.若已还款请忽略.',0,'13774534210,13850040496,13959240595','K3V10.3YDSW') INSERT INTO T_SMSMSGLOG
(FID,FSender,FReceiver,FAcctID,FRecvPhoneNum,FSendPhoneNum,FContent,FSendTime,FReceiveTime,FMidServer,FRecMan,FRecManType)
VALUES(@DBID,0,-1,2,'13774534210,13850040496,13959240595','短信中心','还款提醒:'+@FCustomerName+@FSex+',您的XX融资合同<'+@FContractNO+'>本期应还¥'+@FAmountFor+'元,还款日为'+CONVERT(varchar,MONTH(@FReceiveDate))+'月'+CONVERT(varchar,DAY(@FReceiveDate))+'日.若已还款请忽略.',GetDate(),0,'127.0.0.1',@FCustomerName,1) INSERT INTO T_DBID(FType)VALUES('sms')
SELECT @curIndex=@curIndex+1
END
DROP TABLE #ContractTemp
GO --exec pro_sms_ContractSchemeOutDateWarn 2
--select * from t_dbid
--select * from TB_SENDMESSAGE where id like 'DB%'
--select * from t_smsmsglog where fid like 'DB%'
--delete from TB_SENDMESSAGE
--delete from t_smsmsglog
四、开启Sql Server作业




五、K3 WISE 开发插件《K3 Wise 群发短信配置开发(二)之短信群发配置》的更多相关文章
- cordova开发插件,并在android studio中开发、调试
之前用过cordova Lib包装H5页面,自己写插件,但做法是野路子,不符合cordova插件的开发思路,这次项目又需要包装H5页面,同时需要自定义插件.所以又折腾了一次cordova自定义插件. ...
- 五、K3 WISE 开发插件《K3 Wise 群发短信配置开发(一)之短信平台配置》
开发环境:K/3 Wise 13.0 目录 一.创建短信数据库 二.配置短信接口 三.设置帐套关键字 四.查询短信余额 一.创建短信数据库 打开帐套管理: 账号默认为Admin,密码不填: 菜单“系统 ...
- 四、K3 WISE 开发插件《工业单据老单插件开发新手指导》
开发环境:K/3 Wise 13.0.K/3 Bos开发平台.Visual Basic 6.0 =============================================== 目录 一 ...
- 【开发者portal在线开发插件系列五】命令的响应,即命令结果的上报(mid的使用)
基础篇 [开发者portal在线开发插件系列一]profile和基本上下行消息 [开发者portal在线开发插件系列二]多条上下行消息(messageId的使用) 基础场景见上面两个帖子,这里单独介绍 ...
- NotePad++安装和配置C/C++开发插件
NotePad++ - 安装和配置C/C++开发插件 | NotePad++ - Install and Configure plugins for develop C/C++ http://aofe ...
- {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)
Django基础七之Ajax 本节目录 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) 一 Ajax简介 ...
- sublime text3前端开发插件配置以及使用(个人喜爱)
第一步下载软件接着Ctrl +~ (回车)把下面安装包管理添加到sublimeimport urllib.request,os; pf = 'Package Control.sublime-packa ...
- {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)
{Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) Django基础七之 ...
- eclipse SE增加Web开发插件
最近接触了些java项目,之前安装了eclipse SE版本.没有Web开发插件,调试不了Web代码.点击“Window”--“Preference” 左边菜单栏是找不到“Server”项来配置服务器 ...
随机推荐
- Git -- 相关命令
git init : 将当前目录变成Git可以管理的仓库 git add :告诉Git,把文件添加到仓库 git commit -m "" :把文件提交到仓库 git status ...
- linux下时间同步的两种方法分享
方法1:与一个已知的时间服务器同步 复制代码 代码如下: ntpdate time.nist.gov 其中 time.nist.gov 是一个时间服务器. 删除本地时间并设置时区为上海 复制代码 代码 ...
- Jenkins使用简易教程
Jenkins是一款能提高效率的软件,它能帮你把软件开发过程形成工作流,典型的工作流包括以下几个步骤 开发 提交 编译 测试 发布 有了Jenkins的帮助,在这5步中,除了第1步,后续的4步都是自动 ...
- USBWebServer 中文便携版 快速搭建 PHP/MySQL 网站服务器环境
如果你是一位 WEB 开发者,或正在学习网页编程,你一定会发现,每到一台新电脑上想要在本地调试测试/运行网站代码都得搭建配置一遍 WAMP (Win.Apache.PHP.MySQL) 环境简直烦透了 ...
- 【主成份分析】PCA推导
### 主成份分析(Pricipal components analysis PCA) 假设空间$R^{n}$中有m个点{$x^{1},......,x^{n}$},希望压缩,对每个$x^{i}$都有 ...
- 近5年常考Java面试题及答案整理(一)
下列面试题都是在网上收集的,本人抱着学习的态度找了下参考答案,有不足的地方还请指正. 1.面向对象的特征有哪些方面? 抽象:将同类对象的共同特征提取出来构造类. 继承:基于基类创建新类. 封装:将数据 ...
- Lua环境配置和工具介绍
官网地址:http://www.lua.org/ Lua环境配置方式: (一)环境变量配置方式: (1)官网下载LuaDist,并解压缩到 c:\ (目录可自定义) 例如:C:\ environmen ...
- phpcms v9不限模型全站搜索
简单修改一下v9默认的搜索功能,可以不按模型搜索全站内容 下面是被修改后的search模块中的index.php文件 <?php defined('IN_PHPCMS') or exit('No ...
- Java位运算加密
创建一个类,通过位运算中的”^"异或运算符把字符串与一个指定的值进行异或运算,从而改变字符串每个字符的值,这样就可以得到一个加密后的字符串.当把加密后的字符串作为程序输入内容,再与那个指定的 ...
- SpringMVC由浅入深day01_6源码分析(了解)
6 源码分析(了解) 通过前端控制器源码分析springmvc的执行过程. 入口 第一步:前端控制器接收请求 调用doDiapatch 第二步:前端控制器调用处理器映射器查找 Handler 第三步: ...