管理软件预警通知(Notification)功能的实现案例分析

摘要:
警报通知功能是管理软件的通用功能。警报通知的工具可以是电子邮件、短信或电话。这种自动邮件通知方法在邮件流行的企业中非常常见。首先,上图显示了通知的主界面。左侧是通知操作。ListView列出了模块名称和要通知的消息。超过系统指定的登录尝试次数后,JamesLi的帐户被锁定,无法继续尝试登录。该程序使用SQL Server的Job和SQLMail功能来实现消息通知功能。虽然标题是TaskManager,但它实际上是一个用于管理任务消息通知的程序。

预警通知的功能对于管理软件比较常见。比如,开发部填写购买10台电脑的采购申请单,需要通知经理和财务经理审批;又如供应商把10台电脑送到公司,货物经过仓库部门入库,仓库需要通知申请购买的部门来领取电脑。这种具有通知功能的软件模块,在管理软件中非常普遍。用形象的词语表达是push,用一种方式来推动和告知相关的主体来参与系统的某项活动(审批,领料)。 比较直接的方式一般是直接打电话给经理,告诉他需要在系统中审批一下物料请购,这种方式效果好,如果同时与邮件配合使用,效果更佳。
预警通知的工具可以是邮件,短信,电话。从实现方法上讲,根据我的理解,有下面的几个实现例子供参考。
1  系统自动发送电子邮件通知
如下图,已经填写了加班申请单,需要通知经理审批。系统自动发送一封邮件到经理的邮箱中。
 image
经理批准了加班后,系统又自动发送一封邮件到申请加班的员工的邮箱中,可以加班。
 image
这种自动邮件的通知方式,在邮件盛行的企业中相当通用。
与直接打电话相比教,打电话的好处是直接,方便。但是有时候被电话通知的人可能不在电话旁边,或是一直在忙,你用电话的方式去打扰他(一般是上级),这种打扰带有是催促的意味,有点不合适。

在一些关键的业务流程活动中,电话沟通有时候是无效的。比如,负责项目的工程师一开始根据客户的需求,通知采购员购买Yudo的热流道系统,采购员根据项目工程师的电话通知,下单购买Yudo的热流道系统,PO单很快就被打印出来并传到Yudo供应商那里。项目进行到一半,由于负责任的原因,项目的工程师再次向采购员确认Eden的热流道系统有没有到货时,采购员不相信自己的耳朵,怎么这次说的是Eden的热流道。熟悉模具行业的朋友应该知道,热流道系统在模具的成本中占有相当重的比重。个人细节不用深究,我想表达的主题是,电话沟通有时候是无效的。把邮件发给我吧,先留下你的证据,我再来做事。

2  金蝶ERP的方现方式
我不是故意给金蝶做广告,我是想表达,金蝶ERP在中国的ERP市场占有相当的比重,有它的道理。常常研究现有的成熟的做法,比起闭门造车,效果往往会事半功倍。
在进入金蝶ERP的主界面后,在右下边有一个消息窗口,打开消息管理器,如下图
image 
这是ERP系统发送给当前登陆用户的所有通知消息。
金蝶的消息撰写界面如下
image
用这种方式通知自己的经理批准加班申请,主动撰写通知,然后发送给经理。
我猜测这个模块的设计意图,不是我所说的这个用途。
请注意上面的收件箱和发件箱的两个子节点:普通消息和工作流消息。我所说的发送邮件通知经理批准加班的消息,也可能就在ERP系统中申请加班后,系统自动发送通知消息给经理。这种消息通知,可以把它写到工作流消息中去,当加班申请提交后自动触发,也可以以我演示的方式,手动撰写消息,指定消息接收人为经理。这种设计方式,弥补了上面第一种的邮件发送方式的不足。第一种方法实现的邮件由系统自动发送,只是实现了这里所说的工作流消息。金蝶ERP还实现了自定义的消息,如上图,可以撰写自定义的消息。金蝶ERP的消息还不依赖电子邮件,购买邮件客户端(Outlook,Foxmail)还需要一笔费用。

3  XX系统的实现方式
设计管理软件,我们会先研究现有的工作方式,工作流程,然后再设计相关的工具来实现软件流程化管理。这个设计思路一般包含有三个方面
1) input  数据输入
2 )process flow/workflow 工作流程
3)   performance/report  报表,绩效
这种方法贯穿于软件开发的整个过程。feedback也算一个步骤,但是重要性比上面三项要小很多。
之所以提到这个方法,是因为下面将会介绍一种由老外设计的消息通知结构,可能符合国外的工作习惯。
而上面的方法也是一个外国同事介绍给我的,可能会增进理解下面的设计方法。
先上个图,一图解千言
image 
这是通知(Notification)的主界面,左边是通知动作,ListView列出模块名称和需要通知的消息。右边是接受消息的人员,
下面的面板显示了已经发送的通知消息的历史记录。
我举一个例子帮助理解上面各部分的含义。对于EMP-LoginAttempt模块,有一条通知消息是Exceed Login Attempt Limit(登陆尝试超过系统设定的最大次数),在右边选择相应的接受消息的人员。当James Li登陆系统,可能因为一大把年纪了,
忘记了密码,一直不能进入系统。在超过系统规定的尝试登陆次数后,James Li的帐号被锁定,
无法继续尝试登陆。与此同时,系统会触发一封通知消息,告诉James Li已经超过了系统规定的最大登陆次数,帐号被锁定。这里的通知消息是邮件,

可以应用SQL Server实现的邮件发送方法,也可以使用指定的SMTP服务器来发送邮件。SQLMail可发送的消息包括文本串,附加文件或SQL语句的执行结果集。应用SQLMail的扩展存储过程,邮件消息可以从一个触发器或一个存储过程中发送,并且通过SQLServer提供的任务和警告等功能,可以根据需要在不同的时间和情况下发送。这是SQL Mail的优势,但是需要安装一个基于MAPI的客户端,比如Outlook。
这种设计有点工作流的含义,当某个系统事件发生后,自动触发一项系统活动。
如果说看了第一种实现方法还不太明白通知的总体结构,看了这个界面后,应该可以从全局上把握这种通知功能的结构。需要建几个表,有什么技术要求,如何实现,都已经很明显的摆在界面上了。
这个程序运用SQL Server的Job和SQL Mail功能,实现消息通知功能。如果配置SQL Mail麻烦,可以直接指定SMTP发送邮件服务器。这种设计是考虑到有的员工可能不属于公司的正式编制,没有公司配置的统一邮件(公司配置的邮件系统一般是Exchange Server,这样做的好处太多),这时可以通过指定SMTP服务器也达到同样的效果。

4  XX系统的实现方式
这个系统的设计者也是老外,它的设计方法深深的打上外国人的思维模式。 image
虽然标题是Task Manager,实际上它也是用于管理任务消息通知的程序。
左侧面板是命令操作区,可以新建一项任务,接收任务,右边是消息面板,分为当前未处理的消息或任务,和已经处理过的消息或任务,分别放在New Task和Accepted Task面板中。
让我们来看一下,如何新建一个任务消息通知
image
还是以上面的加班申请为例,已经写好了加班申请,在系统中新建一个消息通知经理审批加班。
如上图所示,Assign页面是选择加班的审批经理。
从程序实践方面来讲,这种方式是数据库的实现主式,和金蝶ERP的方式相似,不和邮件关联。

提到Task Manager,SQL Server也实现了与任务管理类似的功能,叫Task Pad.
打开SQL企业管理器,选择一个数据库,在右边的查看视图中点击右键,View—>Taskpad
image
这是个SQL的任务管理工具窗体,提供查看数据库和表的信息,创建新的任务(Table,View,Job之类)的引导窗口,它和Windows Task Manager的相似程度很高。
看了这两个界面,也许就会熟悉有关Task的界面设计模式。是的,他们长的都很相似。

通过发送邮件或新建一条数据库记录,或发送手机短信,再参考上面提到的四种实现方式,
可以实现一个带预警提醒功能的模块。依据各自的喜好和应用情景,选择不同的实现方式。
从程序实现方面来讲,自动发送邮件最简单,结合工作流和自动发送的方式实现起来比较复杂。
这类功能通常是一个管理软件必备的功能。也可以综合这几种情况,实现一个基于消息通知的中间件,
也许会有市场。这就好比权限管理,组织机构管理,把这个模块做好做稳定,还是有相当的市场的。拿不出手就自己用在项目开发中,
让工作轻松,每天少加班及时回家;如果可以拿得出手,自认为各方面比较成熟(架构,编码,应用场景)就到网上吆喝叫卖。

免责声明:文章转载自《管理软件预警通知(Notification)功能的实现案例分析》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇String与byte[]字节数组中文转换乱码问题前端—JavaScript下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

手机投屏到电脑教程,高清、高帧率、无延时投屏

手机投屏到电脑的方法有很多,今天讨论一下高清、高帧率、无延时投屏,可以用于游戏演示,直播等等。 一般投屏大致可以分为三类: 1. 通过互联网的数据传输,效率低,基本不考虑,几乎是一帧一帧传。 2. 通过WiFi投屏,基本能实现高清,但是考量到网络速度和复杂的网络环境,其实并不好用,可以用来演示文档,但是像是游戏、直播这种就不适用。 只要方法: a. 第三方...

Android下音视频对讲演示程序(声学回音消除、噪音抑制、语音活动检测、自动增益控制、自适应抖动缓冲)(2021年11月10日更新)

Android下音视频对讲演示程序 必读说明 简介 本软件根据《道德经》为核心思想而设计,实现了两个设备之间通过TCP或UDP协议进行全双工实时音视频对讲,并做了以下增强处理: 支持8000Hz、16000Hz、32000Hz、48000Hz的音频。 支持声学回音消除,通过本人自己设计的音频输入输出帧同步方法、自适应设置回音延迟方法、三重声学回音消除...

OpenStack镜像制作笔记 以windows8.1amd64为例

by hyc 目录 1.下载win8_64位的iso文件 2.下载对应电脑的vnc 3.下载Xshell软件 4.连接成功后,在Xshell下安装软件包 5.下载FileZillaClient软件 6.驱动下载 7.镜像的安装与制作 8.用vnc远程安装系统 9.安装完后进行一些设置 9.1设置MTU 9.2关闭防火墙 9.3开启任何人远程访问 9.4更...

Atlassian JIRA服务器模板注入漏洞复现(CVE-2019-11581)

0x00 漏洞描述 Atlassian Jira是澳大利亚Atlassian公司的一套缺陷跟踪管理系统。该系统主要用于对工作中各类问题、缺陷进行跟踪管理。 Atlassian Jira Server和Jira Data Center存在服务端模板注入漏洞,成功利用此漏洞的攻击者可对运行受影响版本的Jira Server或Jira Data Center的...

Xcode10趟坑之路

https://www.jianshu.com/p/12558d39ba08 先默念别有太多坑啊 跑起来吧 结果没有跑起来 1.第一个坑 Showing Recent Messages :-1: Multiple commands produce '/Users/wanglei/Library/Developer/Xcode/DerivedData/JMT...

SAP ERP 与 Oracle ERP 比较

本报告对SAP和ORACLE两家公司的ERP产品,从公司实力、软件功能、产品成熟度、产品技术和产品实施等几个纬度进行比较,以使企业能够更好的了解哪个产品更适合自己。     1:软件产品的成熟度     § SAP:经过近30年与全球大企业用户的合作,SAP系统积累了大量先进企业的业务管理流程。对于用户来说,只需根据在系统中挑选适当的业务流程,在软件中进...