Foxtable(狐表)用户栏目专家坐堂 → [求助]流程审批并发处理


  共有4835人关注过本帖树形打印复制链接

主题:[求助]流程审批并发处理

帅哥哟,离线,有人找我吗?
jialihaha
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:996 积分:6630 威望:0 精华:0 注册:2014/10/20 11:06:00
  发帖心情 Post By:2022/3/25 17:17:00 [只看该作者]

只要数据表设计符合流程的记录,就可以做,跟异步同步都没啥关系吧

 回到顶部
帅哥,在线噢!
cd_tdh
  22楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3106 积分:20733 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2022/3/25 17:20:00 [只看该作者]

以下是引用jialihaha在2022/3/25 17:17:00的发言:
只要数据表设计符合流程的记录,就可以做,跟异步同步都没啥关系吧

是的,那这个只是审核流程设计问题,另外就是判断问题,用不用异步没关系


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  23楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2216 积分:18225 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2022/3/25 17:26:00 [只看该作者]

Dim dic As new Dictionary(of String,List(of String)) '定义一个字典,以业务ID为键,审核流水集合作为值

'当接收到客户端传来的信息时,就做下面的这个处理
Dim s As String = "业务ID|环节ID,审核意见"
Dim BusiID As String = s.Split("|")(0)  '业务ID
Dim Auditer As String = s.Split("|")(1)  '业务ID对应的审核意见

If dic.ContainsKey(BusiID) = False Then
    Dim lst As new List(of String)
    lst.add(Auditer)
    dic.add(BusiID ,lst)
Else
    Dim lst As  List(of String) = dic(BusiID )
    lst.add(Auditer)
    dic.add(BusiID ,lst)
End If

''接下来处理这些业务ID的审核流水
For Each x As String In dic.Keys
    Dim lst As List(of String) = dic(x)
    Functions.AsyncExecute("执行判断",x,lst)  '这里定义一个函数来判断下一步是否能执行等等
    dic.Remove(x)  ''' 好象这样是不行的,不能在遍历字典的时候清除键
Next


'''似乎可以这样。但是这样会导致一个问题,就是最后加进来的流水会优先处理,是不是先排进来的一直在等待?
For i As Integer = dic.Count - 1 To 0 Step -1
    Dim x As String = dic.Keys(i)
    Output.Show(dic(x))
    dic.Remove(x)
Next
'执行判断的函数

[此贴子已经被作者于2022/3/25 17:35:08编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107661 积分:547620 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/25 17:37:00 [只看该作者]

do while dic.Keys.count > 0
dim x As String = dic.Keys(0)
    Dim lst As List(of String) = dic(x)
    Functions.AsyncExecute("执行判断",x,lst)  '这里定义一个函数来判断下一步是否能执行等等
    dic.Remove(x)  ''' 好象这样是不行的,不能在遍历字典的时候清除键
loop

 回到顶部
总数 24 上一页 1 2 3