zoukankan      html  css  js  c++  java
  • 工作流任务的消息处理

    最近自己在开发工作流系统,简单写一下工作流任务的消息处理的业务流程,记录一下。

    在工作流引擎产生一个任务需要某个人进行人工处理的时候,工作流先插入一条任务到 WF_T_TASK 表中,这条任务记录应该包括:

    任务ID,任务的状态(未处理),处理任务的角色(如部门经理),处理任务的人(如张三,属于部门经理这个角色),任务创建时间,任务创建人,任务最后更新时间,任务最更新人。

    任务对应的流程步骤实例ID(InstanceStepId),这样就能方便的找到任务所对应哪个流程,哪个流程实例,哪个步骤。

    然后需要在消息表中插入一条记录,消息表为 WF_T_MSG,消息应该包括:

    消息ID,消息的状态(未读),消息类型(系统消息),消息接收人(张三),消息标题,消息内容,

    消息创建时间(消息发送时间),消息创建人(消息发送人:工作流系统), 消息最后更新时间,消息最后更新人。

    消息标题:李四于2013-08-01发起的加班申请单流程(流程号:20130801132045000001)需要您的签核

    消息内容:李四于2013-08-01发起的加班申请单流程(流程号:20130801132045000001),在“部门经理签核”这个步骤需要您的签核,请点击以下链接进行签核:

    http://localhost/task/edit?taskid=123456-12312312-23232-2323213

    同时,发送邮件给张三,内容和消息一样。

    在插入消息表的同时,还应该发送实时消息给张三,服务端调用 Send(string userId, string message),发送消息给客户端。

    张三在主界面上能够看到类似“您有3条未读消息”,同时播放消息提醒。

    张三点击消息提示,就到到达消息处理页面 /Msg/Index?MsgType=未读,消息处理页面有3个选项卡,可以快速过滤消息,分别是未读,已读,全部。默认是到未读消息,消息按照发送时间进行排序。

    默认显示消息标题,消息发送人,消息发送时间。

    点击某一条未读消息,自动展开,地址是 /Msg/Edit?MsgId=1234567-1234-1234-12345678901,就是上面的消息。

     

  • 相关阅读:
    this.get_element .style为空或不是对象
    在server2008R2的IIS7中调试asp程序遇到的错误
    Server.Transfer 在两个窗体之间传递参数用法
    页面事务处理 ContextUtil.SetComplete(); 没有 MTS 对象上下文
    VS2008切换设计视图卡死 停止响应
    javascript对象小结
    [JavaScript] 最低公用标准的浏览器文档对象层次
    Linq 此提供程序只支持对返回实体或投影(包含所有标识列)的有序查询使用 问题的解决
    [Design] Factory Pattern
    [Database] SqlServer: Linq to Sql THE DATACONTEXT Change Processing
  • 原文地址:https://www.cnblogs.com/todd/p/3272348.html
Copyright © 2011-2022 走看看