前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分享几个Flowportal.Net BPM中的几个有用的Sql语句

分享几个Flowportal.Net BPM中的几个有用的Sql语句

作者头像
崔文远TroyCui
发布2019-02-27 10:27:35
7490
发布2019-02-27 10:27:35
举报
文章被收录于专栏:远在上海远在上海

第一个要分享的是获取当前的申请状态以及当前的处理人,虽然我们很容易通过BPMInstProcSteps这张表找到FinishAt is Null的记录,但是如果直接用2表的关联查询会有并行流程的问题,另外当你把自己的申请数据独立开来,做跨数据的关联就有些不直观,索性写一个函数GetBPMCurrentStep(@TaskID),使用方法很简单,直接在自己的视图里面使用就行。

代码语言:javascript
复制
USE [WAIWorkflow]
GO
/****** Object:  UserDefinedFunction [dbo].[GetBPMCurrentStep]    Script Date: 05/24/2011 14:34:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[GetBPMCurrentStep](@TaskID nvarchar(50))
RETURNS nvarchar(Max)
AS
BEGIN
    DECLARE @r nvarchar(Max)
    SET @r = ''
    SELECT @r = @r + ',' + NodeName + '('+ OwnerAccount+')'
    FROM [BPMDB].[dbo].[BPMInstProcSteps]
    WHERE TaskID=@TaskID
  AND  [FinishAt] is null
  RETURN STUFF(@r, 1, 1, '')
END

第二个要分享的就是每个申请的摘要信息(下图),这个信息根据用户的需要可能需要增加一些字段或者删除一些字段,但是当更改以后,只对新的申请有效。老的申请只能通过自己写Sql后台运行,其实也不难,把自己的所有申请用到的表列出来,每个流程写一段语句,批量执行就行了。

代码语言:javascript
复制
--更新 NPD 的Task Description
update [BPMDB].[dbo].BPMInstTaskssetDescription = b.WAI_PN + ',' + b.Lester_Number
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormNPD b
where
a.TaskID=b.TaskID
--更新 FormADandEmail 的Task Description
update [BPMDB].[dbo].BPMInstTasks
set
Description = b.EmployeeID + ',' + b.ChineseName + ',' + b.EnglishName
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormADandEmail b
where
a.TaskID=b.TaskID
--更新 FormBaanSession 的Task Description
update [BPMDB].[dbo].BPMInstTasks
set
Description = b.EmployeeID + ',' + b.ChineseName + ',' + b.EnglishName
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormBaanSession b
where
a.TaskID=b.TaskID
--更新 FormComputer 的Task Description
update [BPMDB].[dbo].BPMInstTasks
set
Description = b.EmployeeID + ',' + b.ChineseName + ',' + b.EnglishName
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormComputer b
wherea.TaskID=b.TaskID
--更新 FormEmployeeOnBoard 的Task Description
update [BPMDB].[dbo].BPMInstTasksset
Description = b.EmployeeID + ',' + b.ChineseName + ',' + b.EnglishName
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormEmployeeOnBoard b
where
a.TaskID=b.TaskID
--更新 FormEmployeeResignation 的Task Description
update [BPMDB].[dbo].BPMInstTasks
set
Description = b.EmployeeID + ',' + b.ChineseName + ',' + b.EnglishName
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormEmployeeResignation b
where
a.TaskID=b.TaskID
--更新 FormSeat 的Task Description
update [BPMDB].[dbo].BPMInstTasks
set
Description = b.EmployeeID + ',' + b.ChineseName + ',' + b.EnglishName
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormSeat b
where
a.TaskID=b.TaskID
--更新 FormShortNumber 的Task Description
update [BPMDB].[dbo].BPMInstTasks
set
Description = b.EmployeeID + ',' + b.ChineseName + ',' + b.EnglishName+ ',' + b.Mobile
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormShortNumber b
where
a.TaskID=b.TaskID
--更新 FormTelephone 的Task Description
update [BPMDB].[dbo].BPMInstTasks
set
Description = b.EmployeeID + ',' + b.ChineseName + ',' + b.EnglishName
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormTelephone b
wherea.TaskID=b.TaskID
--更新 FormV** 的Task Descriptionupdate [BPMDB].[dbo].BPMInstTasks
set
Description = b.EmployeeID + ',' + b.ChineseName + ',' + b.EnglishName
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormV** b
where
a.TaskID=b.TaskID
--更新 FormWirelessCard 的Task Description
update [BPMDB].[dbo].BPMInstTasks
set
Description = b.EmployeeID + ',' + b.ChineseName + ',' + b.EnglishName
from     
  [BPMDB].[dbo].BPMInstTasks a, [WAIWorkflow].[dbo].FormWirelessCard b
where
a.TaskID=b.TaskID
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2011年5月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档