周一至周五 : 08:30 - 17:30 客服专员电话/微信:18049979371 QQ:2982200781
微信咨询

扫码微信咨询

关注公众号

关注微信公众号

电话: 021 5161 9370
返回顶部
直接插入工作流数据
显示全部楼层 倒序浏览 发表日期 2020-07-07 17:44:52 3052次阅读 5次回复
因为很多朋友的企业已经有ERP系统或者OA系统,所以在使用快表的时候又不能直接放弃原来的系统,所以企业版有引用外部数据的功能,但是任务工作流还是得从快表操作,经过一段时间的查找资料与自己试验,做了直接从数据库方面操作的方法,下面放代码
  1. ALTER PROCEDURE [dbo].[插入YTG采购单工作流程-1]
  2. AS
  3. BEGIN
  4. INSERT INTO SYS_FLOWDETAIL(ID,WFID,NT,UUID,TUID,PUID,RID,RRID,NID,NN,PID,SDATE,TDATE,DP,LUID,ISLOCK,ISUNDO,ISBACK,ISREDO,ISMAIL,EXECMODE,BACKREMARK,VALIDDAY,TRANSFERDATA,AUID,AUNAME,ISJK,SIGNED)
  5. SELECT
  6. NEWID(),-- ID
  7. '2dd9a113-87eb-4e97-bcf7-c5347301b310' ,-- WFID  流程ID
  8. '2',--NT
  9. '09b5705e-7bbe-44a7-8ead-11f7f1a0c71e,',--UUID  发起人ID
  10. '09b5705e-7bbe-44a7-8ead-11f7f1a0c71e',--TUID   提交人ID
  11. '',--PUID
  12. '17804991-d315-4f38-8d55-ad2d77cf5a66',--RID   模版ID
  13. ID,--RRID  主表记录ID SELECT ID FROM T_395
  14. '3cf0e156-364e-466c-8434-dc5d172cffec',--NID   节点ID
  15. 'YTG采购单-建立单据',--NN  节点名称
  16. '起始',--PID
  17. GETDATE(),--SDATE
  18. GETDATE(),--TDATE
  19. '',--DP  流程简介
  20. '09b5705e-7bbe-44a7-8ead-11f7f1a0c71e',--LUID
  21. '0',--ISLOCK
  22. '1',--ISUNDO
  23. '1',--ISBACK
  24. '1',--ISREDO
  25. '1',--ISMAIL
  26. NULL,--EXECMODE
  27. NULL,--BACKREMARK
  28. NULL,--VALIDDAY
  29. '',--TRANSFERDATA
  30. '',--AUID
  31. '',--AUNAME
  32. '1',--ISJK
  33. '1'--SIGNED
  34. FROM T_427
  35. WHERE ID NOT IN (SELECT RRID FROM SYS_FLOWDETAIL GROUP BY RRID)
  36. END
复制代码
这个是第一步,就是工作流发起的那一步,原理就是将工作流数据插入到系统的工作流的数据表中
  1. ALTER PROCEDURE [dbo].[插入YTG采购单工作流程-3]
  2. AS
  3. BEGIN
  4. INSERT INTO SYS_FLOWDETAIL(ID,WFID,NT,UUID,TUID,PUID,RID,RRID,NID,NN,PID,SDATE,TDATE,DP,LUID,ISLOCK,ISUNDO,ISBACK,ISREDO,ISMAIL,EXECMODE,BACKREMARK,VALIDDAY,TRANSFERDATA,AUID,AUNAME,ISJK,SIGNED)
  5. select NEWID()
  6. ,'2dd9a113-87eb-4e97-bcf7-c5347301b310'--WFID
  7. ,'0'--NT
  8. ,'e4de1407-14f6-439d-b013-f8d909e8fc50,'--UUID 节点发起人ID
  9. ,''--TUID
  10. ,'09b5705e-7bbe-44a7-8ead-11f7f1a0c71e'--PUID
  11. ,'17804991-d315-4f38-8d55-ad2d77cf5a66'--RID 模版ID
  12. ,RRID--RRID
  13. ,'e466011f-531f-409d-8635-f6b58f875874'--NID  节点ID
  14. ,'YTG采购单-核准'--NN
  15. ,ID--PID
  16. ,GETDATE()
  17. ,NULL
  18. ,DP1
  19. ,''
  20. ,'0'
  21. ,'1'
  22. ,'1'
  23. ,'1'
  24. ,'1'
  25. ,'并列'
  26. ,NULL
  27. ,'0'
  28. ,''
  29. ,''
  30. ,''
  31. ,'1'
  32. ,NULL
  33. from
  34. (
  35. select (b.F_5583+','+b.F_5579+','+F_5585+','+F_5587) as DP1,a.* from SYS_FLOWDETAIL a LEFT JOIN T_427 b on a.RRID = b.ID
  36. where RRID in (select RRID from SYS_FLOWDETAIL group by RRID having count(2)=2)
  37. ) as b
  38. WHERE  PID NOT IN (SELECT ID FROM SYS_FLOWDETAIL GROUP BY ID)
  39. END
复制代码
这个是第二步,是工作流的第二节点的步骤,如果是并列,有几个用户处理,就得插入多少条数据,相对应的字段也得更改,如果是抢先,则一条即可。
将这两段代码,分别做成SQL脚本,然后让代理工具执行即可。
做好之后,PC端能接收到任务通知,也能办理任务,但是邮件,端口(企业微信,钉钉)等无法接收任务提醒,所以,还得做下面的任务提醒的功能
  1. ALTER PROCEDURE [dbo].[插入单据核准]
  2. AS
  3. BEGIN
  4. SET IDENTITY_INSERT SYS_AGENT ON--插入核准
  5. INSERT INTO SYS_AGENT(ID,FDID,DEST,TYPE,SUBJECT,RETRY,SEQ,STATUS,MAILTITLE,GENERATETIME,SENDTIME,URL)
  6. SELECT NEWID(),
  7. ID,--任务工作流的ID
  8. 'yujianding',--办理人的微信帐号
  9. '3',--端口,邮件或者其他的方式,自行更改
  10. NN +char(10)+ DP,--任务通知信息
  11. '0',
  12. '1',--随便填
  13. '0',--这个是关键,填0是发送失败,填1是发送成功,必须填0,插入数据是插入发送失败的消息,目的是让代理工具自动重新发送任务提醒
  14. '',
  15. GETDATE(),
  16. GETDATE(),
  17. 'index/create/dataupdate/id/'+RRID+'/rid/'+RID+'/nid/'+NID+'/fdid/'+ID+'/nt/0/flowtype/Handle' --发送地址
  18. FROM SYS_FLOWDETAIL
  19. WHERE UUID='e4de1407-14f6-439d-b013-f8d909e8fc50,' AND (NN +char(10)+ DP) NOT IN (SELECT SUBJECT FROM SYS_AGENT GROUP BY SUBJECT)
  20. SET IDENTITY_INSERT SYS_AGENT OFF
  21. END
复制代码
同样将此代码做成SQL脚本,用代理工具执行即可。
以上的代码,请将对应代码换成自己数据库中的字段代码。
以上方法,只适用于企业版,其他版本未试验,不做评价!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则  允许回帖邮件提醒楼主

快表软件是国内较早研究表格类软件开发平台的团队之一,迄今已有十多年的行业经验.致力于为企事业单位提供实用可靠的数字化平台。
  • 微信公众号

  • 微信小商店

  • 微信客服

  • Powered by Discuz! X3.4 | Copyright © 2022-2024, XiRong Soft. | 快表软件
  • 沪ICP备13033196号 | 营业执照 |上海西戎软件科技有限公司|沪公网安备31011502002146号|沪ICP备13033196号 |