






















本着懒人的原则,提供最简单的解决方案!Let's go~~
(文中采用的RTX版本为3.61,ES版本为7.1.7)
方案思路:
1.首先做一张数据表来存储消息队列,并利用RTX的SDK写一个程序来每隔一段时间从该表中取出消息队列发送出去;
2.然后为ES的ESSys数据库里面存储待办工作流信息的数据表写一个触发器,让它有新增数据的时候自动往1楼的表里面写入消息队列。
设计方案:
1.首先要解决RTX帐号和ES帐号的映射问题。很简单,在RTX和ES里面新建用户的时候,帐号不都是可以手工定义的嘛,就统一用员工工号呗~
如果两个系统都已经有帐号了,而且还是不统一的,那就改ES里面的帐号吧,把它向RTX统一。(推荐做法)
如果觉得更改ES的帐号对用户影响太大,还要另发通知,那就不改帐号,把手机或电子邮件改成RTX帐号吧~~(懒人嘛
)
2.接下来做消息队列的数据表,为了配置权限简单,就单独建一个数据库<RTX>吧,然后在数据库中建一个数据表<MSG_Queue>,数据字典如下:
| 列名 | 数据类型 | 长度 | 允许空 | 默认值 | 说明 |
| MsgID | bigint | 8 | 主键。自动编号。 | ||
| DelayTime |
smallint | 2 | √ | 0 | 消息框在桌面停留时间(秒),默认为手动关闭。 |
| Receiver | varchar | 20 | 接收者,用户名称或号码。 | ||
| MsgInfo | varchar | 500 | 消息提醒内容。 | ||
| Title | varchar | 10 | √ | 消息提醒标题。(建议5个汉字的宽度以内) | |
| AssType | tinyint | 1 | √ | 0 | 保留。 |
| Type | tinyint | 1 | √ | 0 | 消息提醒类别。0:普通消息,1:紧急消息。 |
| SendMode | tinyint | 1 | √ | 0 | 发送模式。0:普通模式,1:发送给所有人。 |
再创建一个独立的SQL帐号RTX,密码也是RTX,配置权限为可以读写数据表<MSG_Queue>,这个帐号用来在RTX接口程序中使用。
3. 开始写RTX接口程序。我用记事本写的VBS脚本,懒得配置软件开发环境,也不用编译,修改起来简单,充分体现开源精神!(懒人嘛
)
不罗嗦,直接贴代码,有问题请教SDK~
SendNotify.vbs
脚本需要在RTX服务器上运行,且SDK Server服务必须启动。(推荐做法)
如果在其它计算机上运行脚本,需要安装RTX的SDK,配置SDK安装目录下RTXServerAPI.ini中RTX服务器的IP地址,还要修改RTX SDK Server的IP限制(修改RTX服务器安装目录下 SDKProperty.XML)。
OK,改完了配置就把服务重启一下,然后往消息队列表随便写点什么内容,测试一下脚本运行是否正常,再歇一会儿~~![]()
4.开始写触发器。打开查询分析器,登陆到ES数据库,选中ESSys数据库,然后执行以下SQL脚本。
FG_TR_MessageQueue
由于我的RTX数据库和ESSys数据库不在同一台服务器上,因此SQL脚本中涉及到用触发器修改远程数据库的问题,需要对服务器的MDTC安全选项进行配置;如果在同一台数据库上那就不需要了,简单修改一下SQL脚本的相关代码就可以。
MSDTC安全选项的配置如果不对,在ES中保存工作流表单时就会出现“新事务不能登录到指定的事务管理器中”的错误。我的配置方式如下图,安全性低,不推荐模仿,仅供参考。
管理工具—— 组件服务——我的电脑——属性
源服务器(ESSys所在的服务器)
目标服务器(RTX数据库所在服务器)
如果设置为“要求对双方进行验证”,那么安全性就有保障了,不过我不知道在这种情况下DTC登陆帐户应该如何设置,万望高手赐教!!![]()
OK,基本上大功告成了,江湖惯例,上效果图~
相关代码下载:SendNotify_V1_fix.rar
(最近发现消息不能群发所有人,原来是SendNotify.vbs中关于iSendMode的处理参数写错了,请重新下载,抱歉抱歉~)
PS:老大说我的这个设计架构对RTX服务器的耦合度太高,应该让RTX服务器对其它应用服务器透明,所有配置只在RTX服务器这边完成,其它应用服务器只提供各自的消息队列表,我觉得蛮有道理的,不过那样就不能用脚本来写程序了,所有应用服务器的后台数据库密码要明文写在脚本里面太不安全了,过段时间用其它语言写一个像模像样的程序吧,最好还是运行后在桌面右下角有图标的~~
抛砖引玉,如果看官从中获得了一点点启发,那我就很欣慰了,如果你把我后面想做的事都做了,就把代码发我一份吧~~ (懒人嘛
)
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。