微软项目管理[EPM]数据库应用举例1: 找到所有正在进行的项目
2005-07-29 15:59
726 查看
关键字:
microsoft project server
enterprise project outline code
涉及的表
先通过定义的大纲代码名称找到大纲代码的FieldID
declare @tFieldValue varchar(300)
set @tFieldValue = 'Project Status'
declare @FieldID int –定义大纲的域字段
--取得全局项目的Proj_ID
declare @GlobalProjID int
SELECT @GlobalProjID=PROJ_ID FROM MSP_PROJECTS WITH (NOLOCK, INDEX=I_MSP_PROJECTS_PROJ_TYPE) WHERE PROJ_TYPE = 2
SELECT
@FieldID = A.ATTRIB_FIELD_ID
FROM MSP_FIELD_ATTRIBUTES A,MSP_ATTRIBUTE_STRINGS B
WHERE
A.PROJ_ID = B.PROJ_ID
AND A.AS_ID = B.AS_ID
AND A.ATTRIB_FIELD_ID >= 188744529
AND A.ATTRIB_FIELD_ID <= 188744768
AND A.ATTRIB_ID = 206
AND A.PROJ_ID = @GlobalProjID
and b.AS_VALUE = @tFieldValue
--ORDER BY A.ATTRIB_FIELD_ID
ATTRIB_FIELD_ID AS_VALUE
--------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
188744589 Project Status
It is 188744589
在根据全局项目@GlobalProjID和大纲代码的@FieldID,以及设置的状态值取得CODE_UID
declare @stautsValue varchar(300)
set @stautsValue='In progress'
declare @code_uid int
select
@code_uid = CODE_UID
FROM MSP_OUTLINE_CODES
WHERE
PROJ_ID = @GlobalProjID AND
OC_CACHED_IS_VALID > 0 AND OC_FIELD_ID IN (@FieldID) AND CODE_UID > 0
--ORDER BY OC_FIELD_ID,CODE_UID
and cast(OC_NAME as varchar(300)) = @stautsValue
print @code_uid
再根据这个@code_uid 到表MSP_CODE_FIELDS 来查看所有在运行的项目
select * from MSP_WEB_PROJECTS
where
PROJ_ID
in
(
select Proj_ID from MSP_CODE_FIELDS
where code_uid = @code_uid
microsoft project server
enterprise project outline code
涉及的表
表名 | 说明 |
MSP_WEB_PROJECTS | 项目表 |
MSP_CODE_FIELDS | 大纲代码Field_ID和Code_UID对应表 |
MSP_OUTLINE_CODES | 大纲代码表 |
MSP_FIELD_ATTRIBUTES | 定义域属性;该表包含与域属性(如自定义 WBS、自定义域名称别名和自定义域公式等)有关的数据。 |
MSP_ATTRIBUTE_STRINGS | 该表存储在 MSP_FIELD_ATTRIBUTES 中所定义的自定义 WBS 代码定义、别名和公式 |
declare @tFieldValue varchar(300)
set @tFieldValue = 'Project Status'
declare @FieldID int –定义大纲的域字段
--取得全局项目的Proj_ID
declare @GlobalProjID int
SELECT @GlobalProjID=PROJ_ID FROM MSP_PROJECTS WITH (NOLOCK, INDEX=I_MSP_PROJECTS_PROJ_TYPE) WHERE PROJ_TYPE = 2
SELECT
@FieldID = A.ATTRIB_FIELD_ID
FROM MSP_FIELD_ATTRIBUTES A,MSP_ATTRIBUTE_STRINGS B
WHERE
A.PROJ_ID = B.PROJ_ID
AND A.AS_ID = B.AS_ID
AND A.ATTRIB_FIELD_ID >= 188744529
AND A.ATTRIB_FIELD_ID <= 188744768
AND A.ATTRIB_ID = 206
AND A.PROJ_ID = @GlobalProjID
and b.AS_VALUE = @tFieldValue
--ORDER BY A.ATTRIB_FIELD_ID
ATTRIB_FIELD_ID AS_VALUE
--------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
188744589 Project Status
It is 188744589
在根据全局项目@GlobalProjID和大纲代码的@FieldID,以及设置的状态值取得CODE_UID
declare @stautsValue varchar(300)
set @stautsValue='In progress'
declare @code_uid int
select
@code_uid = CODE_UID
FROM MSP_OUTLINE_CODES
WHERE
PROJ_ID = @GlobalProjID AND
OC_CACHED_IS_VALID > 0 AND OC_FIELD_ID IN (@FieldID) AND CODE_UID > 0
--ORDER BY OC_FIELD_ID,CODE_UID
and cast(OC_NAME as varchar(300)) = @stautsValue
print @code_uid
再根据这个@code_uid 到表MSP_CODE_FIELDS 来查看所有在运行的项目
select * from MSP_WEB_PROJECTS
where
PROJ_ID
in
(
select Proj_ID from MSP_CODE_FIELDS
where code_uid = @code_uid
相关文章推荐
- 微软项目管理[EPM]数据库应用举例2: 取得一个项目的某大纲代码的值
- 微软项目管理[EPM]数据库剖析1:如何取得全局项目有哪些自定义的大纲代码定义
- 微软项目管理[EPM]数据库剖析2:如何取得全局项目中某个大纲代码的列表值
- 微软项目管理[EPM]数据库剖析3:如何取得某个项目的某个大纲代码的值
- 微软项目管理[EPM]数据库剖析4:项目大纲代码的四张表
- 微软企业项目管理(EPM)解决方案
- 微软WCF应用高级进阶(分布式+异步调用+安全+通信模式)配销售管理平台项目实战
- 微软业务生产力平台基础架构优化(BPIO)中企业项目管理(EPM)模型概述
- Django项目开发举例之应用的管理界面(3)
- 微软企业项目管理(EPM)解决方案
- 微软业务生产力平台基础架构优化(BPIO)之企业项目管理(EPM)解决方案
- 《孙子兵法》在敏捷项目管理中的应用(1)
- 手机软件项目管理7—三方应用导入流程
- Java Maven项目之Nexus私服搭建和版本管理应用
- 微软发布RC版 IIS部署工具和IIS数据库管理工具
- 数据库中的存储过程在C#项目中的使用举例
- 浅谈项目进度管理工具iDevTool的实现与应用
- 项目管理中三分法的应用
- 用xml代替数据库的一个小项目--学生管理系统
- 项目管理实践【六】自动同步数据库