微软项目管理[EPM]数据库应用举例2: 取得一个项目的某大纲代码的值
microsoft project server
enterprise project outline code
涉及的表
| 表名<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> | 說明 |
| MSP_WEB_PROJECTS | 項目表 |
| MSP_CODE_FIELDS | 大綱代碼Field_ID和Code_UID對應表 |
| MSP_OUTLINE_CODES | 大綱代碼表 |
| MSP_FIELD_ATTRIBUTES | 定義域屬性;該表包含與域屬性(如自定義 WBS、自定義域名稱別名和自定義域公式等)有關的數據。 |
| MSP_ATTRIBUTE_STRINGS | 該表存儲在 MSP_FIELD_ATTRIBUTES 中所定義的自定義 WBS 代碼定義、別名和公式。 |
?
?
-- 先取得FieldID
?
declare @tFieldValue varchar(300)
set @tFieldValue = 'Product Development Manager'
?
declare @FieldID int
?
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
?
print 'fieldid : ' + cast(@FieldID as varchar(30))
?
--在表MSP_CODE_FIELDS根據FieldID和項目ID得到code_uid
declare @code_uid int
SELECT @code_uid = CODE_UID FROM MSP_CODE_FIELDS
WHERE PROJ_ID = 22
and
code_Field_ID = @FieldID
--ORDER BY CODE_FIELD_ID,CODE_REF_UID
?
print @code_uid
?
--回到表MSP_OUTLINE_CODES找到對應值
select
OC_NAME
FROM MSP_OUTLINE_CODES
WHERE
PROJ_ID = @GlobalProjID
and code_uid =@code_uid
--AND OC_CACHED_IS_VALID > 0? AND OC_FIELD_ID IN (@FieldID) AND CODE_UID > 0
--ORDER BY OC_FIELD_ID,CODE_UID
總結
以上是生活随笔為你收集整理的微软项目管理[EPM]数据库应用举例2: 取得一个项目的某大纲代码的值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [黑客技术]提权总结21种办法篇
- 下一篇: linux cmake编译源码,linu