分享几个Flowportal.Net BPM中的几个有用的Sql语句
时间:2022-06-18
本文章向大家介绍分享几个Flowportal.Net BPM中的几个有用的Sql语句,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
第一个要分享的是获取当前的申请状态以及当前的处理人,虽然我们很容易通过BPMInstProcSteps这张表找到FinishAt is Null的记录,但是如果直接用2表的关联查询会有并行流程的问题,另外当你把自己的申请数据独立开来,做跨数据的关联就有些不直观,索性写一个函数GetBPMCurrentStep(@TaskID),使用方法很简单,直接在自己的视图里面使用就行。
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后台运行,其实也不难,把自己的所有申请用到的表列出来,每个流程写一段语句,批量执行就行了。
--更新 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
- SQL*Loader-805的解决(r2笔记36天)
- 用python实现决策树ID3算法,对隐形眼镜类型预测
- 用GA算法设计22个地点之间最短旅程-R语言实现
- 开发 | 谷歌发布TensorFlow 1.4版本:支持分布式训练,迎来三大新变化
- 创建用户时的密码校验问题(r2第34天)
- 巧用xmltype解析clob数据(r2笔记33天)
- R语言-中国各城市PM2.5数据间的相关分析
- 妹子如何运用R语言数据分析选择心仪的对象?
- 生产环境大型sql语句调优实战第一篇(二) (r2笔记32天)
- 生产环境大型sql语句调优实战第一篇(一) (r2笔记第31天)
- 讨论 | 你是否遇到过你完全不能理解的机器学习概念?
- 【专业技术】C++里面重要的几个关键字的用法
- sql monitor的使用(一) (r2第30天)
- sql_profile的使用(一) (r2笔记29天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法