2024年4月12日发(作者:)

泛微OA数据库维护笔记

本文介绍泛微OA系统流程相关表结构,以及常用的查询、修改流程数据、导出流程数据的

操作:

这里主要介绍流程的数据存放结构及如果通过流程类型获取到流程的字段信息,流程的载体

分为表单和单据两类,表单和单据的区别在于:所有使用表单的流程数据存放在同一个表中,

而单据每个单据对应着一张独立的数据表

1.表单

一、对于表单而言流程的数据信息存放在三个数据表中

Workflow_requestbase:该表存放了流程的基本信息:标题,创建人,创建

时间,流程类型等等

Workflow_form:该表存储了流程的具体信息通过REQUESTID字段和

Workflow_requestbase表关联

Workflow_formdetail:该表存放了流程的明细信息,同样通过REQUESTID

字段和Workflow_requestbase表关联

二、通过流程的类型如何获取该流程使用了Workflow_form和

Workflow_formdetail表中哪些字段

在Workflow_form和Workflow_formdetail表中存放了大量字段,所有

使用表单的流程的字段都在这两个表中,如何获取每个流程使用了那些字

段呢?

A、 找到流程的类型ID,假定为wfid

B、 找到流程用了哪个表单 select formid from workflow_base where

id=wfid and isbill=’0’

C、 获得该表单用到了哪些主字段:

select (

select fieldlable from workflow_fieldlable where

workflow_d=workflow_

ldid and langurageid=7 and

workflow_=workflow_

id) as name, (select fieldname from workflow_formdict

where id=fieldid) from workflow_formfield where

formid=上面获取的FORMID and (isdetail is null or

isdetail=’’)

哪些明细字段:

select (select fieldname from

workflow_formdictdetail where id=fieldid) from

workflow_formfield where formid=上面获取的FORMID and

isdetail=’1’

➢ 下面是查询出差申请流程“表单”数据的步骤:

select * from workflow_base where workflowname like '%出差申请%'

得到表单ID Formid=4 和WorkFlowID=10

select * from Workflow_requestbase where WORKFLOWID=10 and requestname like

'%李四-2014-11-17%'

得到所有申请记录 以及具体的RequestID=29176

select * from Workflow_form where requestid=29176

得到具体表单内容

2.单据

对于表单而言流程的数据信息存放在三个数据表中

Workflow_requestbase:该表存放了流程的基本信息:标题,创建人,创建

时间,流程类型等等

Workflow_form:该表只存放Workflow_requestbase和单据表之间的关系信

各单据主表:该表存储了流程的具体信息通过REQUESTID字段和

Workflow_requestbase表关联,如何获取该表呢:

A、 找到流程的类型ID,假定为wfid

B、 找到流程用了哪个单据 select formid form workflow_base

where id=wfid and isbill=’1’

C、 通过单据ID可以获取到该单据使用的字段

Select * from workflow_billfield where billid= formid

D、 通过单据ID找到其用了那个表存储流程主信息,那个表存

储流程明细信息

select tablename from workflow_bill where id=

formid

select tablename from workflow_billdetailtable

where id=

formid

各单据主明细表:该表存放了流程的明细信息,同样通过REQUESTID字

段和Workflow_requestbase表关联

➢ 下面是查询名片申请流程“单据”数据的步骤:

select * from workflow_base where workflowname like '%名片%'

得到表单ID Formid=-39 和WorkFlowID=ID=161

Select * from workflow_billfield where billid= -39

得到表单字段

Select ame, ame

from workflow_billfield b

left join HtmlLabelInfo l

on abel = d and geid=7

where billid = -39

得到表单字段名称

select tablename from workflow_bill where id= -39

得到主表名称

select tablename from workflow_billdetailtable where id= -39

得到明细表名称

select * from Workflow_requestbase where WORKFLOWID=161 and requestname like

'%张三-2014-04-23%'

得到所有申请记录 以及具体的RequestID=4134

select * from formtable_main_39 where requestid=4134

得到表单内容

1、 流程的其他信息表结构

流程处理人情况表

Workflow_currentoperator:此表存储了流程当前未操作者,已操作者等信息

workflow_requestlog

流程处理意见表:此表存储了流程处理人处理过

的审批意见

workflow_requestviewlog 流程的查看日志

workflow_requestb

workflow_kflow_kflow_currento

workflow_requestL

➢ 如何查询浏览按钮的数据列表(以医药信息为例)

select * from MODEINFO where modename='医院信息'

找到FormID =-85

select * from workflow_bill where id=-85

找到表名 formtable_main_85

select * from formtable_main_85

此表即为数据

如何查询下拉框选项列表数据(以省份信息为例)

select * from workflow_SelectItem where fieldid=8472

查询字段的下拉选项 先找到表单中的省份字段ID =8472

➢ 例子:导出表单流程数据

select * from workflow_base where workflowname like '经销协议申请%'

得到表单ID Formid=-41 和WorkFlowID=ID=959

Select * from workflow_billfield where billid= -41 and fieldname='wtcp'

得到表单字段

select tablename from workflow_bill where id=-41

得到主表名称 formtable_main_41

select tablename from workflow_billdetailtable where id=-41

得到明细表名称

select * from Workflow_requestbase where WORKFLOWID=959

得到所有申请记录 以及具体的RequestID=26710

select xsmbb,xsmb2 from formtable_main_41 where requestid=31245

得到表单内容

select xsmb2 from formtable_main_41_dt1 where mainid=1181

如何查字段名称

Select ame, ame

from workflow_billfield b

left join HtmlLabelInfo l

on abel = d and geid=7

where billid = -41 and ame='销售目标2'

如何查“浏览按钮”的明细信息

select * from MODEINFO where modename='省份信息'

找到FormID =-85

select * from workflow_bill where id=-58

找到表名 formtable_main_85

select * from formtable_main_58 where id=2

此表即为数据

查下拉列表

select * from workflow_SelectItem where fieldid=6288

➢ 查询某人有哪些流程

本例子是通过查询流程的当前处理人表来实现的,如果某人没有处理过一条流程,则查不出

此人有哪些流程

select distinct me,owname,me

from Workflow_currentoperator w

join hrmresource r on = and me='张三'

join workflow_base b on owid=

join workflow_nodebase n on =

join workflow_type t on owtype=

order by typename,workflowname

➢ 批量设置超时

/*批量更新超时设置。Isbulidcode为是否自动生成编号,用来区分第一个节点。*/

update workflow_nodelink set nodepasshour=24,nodepassminute=0,isremind=1,

remindhour=2,remindminute=0,flowremind=1,isnodeoperator=1,isother=1,remindobjectids

='30'

where workflowid =918

and isreject is null

and isbulidcode is null