开发环境: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 群发短信配置开发(二)之短信群发配置》的更多相关文章

  1. cordova开发插件,并在android studio中开发、调试

    之前用过cordova Lib包装H5页面,自己写插件,但做法是野路子,不符合cordova插件的开发思路,这次项目又需要包装H5页面,同时需要自定义插件.所以又折腾了一次cordova自定义插件. ...

  2. 五、K3 WISE 开发插件《K3 Wise 群发短信配置开发(一)之短信平台配置》

    开发环境:K/3 Wise 13.0 目录 一.创建短信数据库 二.配置短信接口 三.设置帐套关键字 四.查询短信余额 一.创建短信数据库 打开帐套管理: 账号默认为Admin,密码不填: 菜单“系统 ...

  3. 四、K3 WISE 开发插件《工业单据老单插件开发新手指导》

    开发环境:K/3 Wise 13.0.K/3 Bos开发平台.Visual Basic 6.0 =============================================== 目录 一 ...

  4. 【开发者portal在线开发插件系列五】命令的响应,即命令结果的上报(mid的使用)

    基础篇 [开发者portal在线开发插件系列一]profile和基本上下行消息 [开发者portal在线开发插件系列二]多条上下行消息(messageId的使用) 基础场景见上面两个帖子,这里单独介绍 ...

  5. NotePad++安装和配置C/C++开发插件

    NotePad++ - 安装和配置C/C++开发插件 | NotePad++ - Install and Configure plugins for develop C/C++ http://aofe ...

  6. {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)

    Django基础七之Ajax 本节目录 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) 一 Ajax简介 ...

  7. sublime text3前端开发插件配置以及使用(个人喜爱)

    第一步下载软件接着Ctrl +~ (回车)把下面安装包管理添加到sublimeimport urllib.request,os; pf = 'Package Control.sublime-packa ...

  8. {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)

    {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)   Django基础七之 ...

  9. eclipse SE增加Web开发插件

    最近接触了些java项目,之前安装了eclipse SE版本.没有Web开发插件,调试不了Web代码.点击“Window”--“Preference” 左边菜单栏是找不到“Server”项来配置服务器 ...

随机推荐

  1. svn -- svn简介

    一.为什么需要SVN 你们在做中级项目中,都是采用小组合作开发的?那么说说你们在后期整合中遇到问题? 主要应用于: 1.协作开发 2.远程协作 3.版本回退 二.什么是SVN l svn全称SubVe ...

  2. Java NIO案例

    Java 网络IO编程总结(BIO.NIO.AIO均含完整实例代码)   http://blog.csdn.net/anxpp/article/details/51512200 Java NIO框架N ...

  3. Ubuntu 14.04 LTS 配置 Juno 版 Keystone

    keystone配置概况 采用包安装方式安装的keystone,重要的文件结构有如下: /etc/keystone/ - 包含keystone所有的配置信息 /var/log/keystone/ - ...

  4. R语言ggplot2 简介

    ggplot2是一个绘制可视化图形的R包,汲取了R语言基础绘图系统(graphics) 和l attice包的优点,摒弃了相关的缺点,创造出来的一套独立的绘图系统: ggplot2 有以下几个特点: ...

  5. UIStatusBarStyle PreferredStatusBarStyle does not work on iOS 7

    Q: In my iPhone application built with Xcode 5 for iOS 7 I set UIViewControllerBasedStatusBarAppeara ...

  6. 【玩转Golang】 自定义json序列化对象时,非法字符错误原因

    由于前台web页面传来的日期对象是这样的格式“2010-11-03 15:23:22”,所以我安装网上查来的办法,自定义包装了time.Time对象,实现自己的Marshal和UnMarshal方法 ...

  7. input框取消光标颜色手机端不生效

    <style> input{ color:transparent; } </style> <input value="我要隐藏光标"> //文字 ...

  8. Python集成开发环境PyCharm调试

    Run/Debug配置: 设置断点:在行号后单击(再单击取消) 启动调试:Shift+F9 单步执行:F8 进入函数:F7 跳出函数:Shift+F8 运行到下一个断点:F9 调试中查看: 退出调试: ...

  9. mysql中json_replace函数的使用?通过json_replace对json对象的值进行替换

    需求描述: 在看mysql中关于json的内容,通过json_replace函数可以实现对json值的替换, 在此记录下. 操作过程: 1.查看带有json数据类型的表 mysql> selec ...

  10. HTML5标签canvas图像处理

    摘要: canvas可以读取图片后,使用drawImage方法在画布内进行重绘.本文介绍canvas的图像处理 drawImage drawImage() 方法在画布上绘制图像.画布或视频.drawI ...