設定移轉工具
適用版本: Project Server 2010
上次修改主題的時間: 2015-03-09
本文提供有關如何設定初始化 (.ini) 檔案的資訊,好讓移轉工具在進行 Microsoft Office Project Server 2003 資料移轉至 Microsoft Office Project Server 2007 時使用。本文也提供用許多 SQL 查詢,可讓您搜尋 Project Server 2003 資料庫中特定狀態的專案,以納入移轉設定檔。
本文內容:
移轉設定檔概觀
移轉設定參數
移轉設定檔範例
查詢 Project Server 2003 資料庫中的專案
移轉設定檔概觀
一般而言,要呼叫移轉工具是使用類似以下的命令列:
D:\Program Files\Microsoft Office\OFFICE12>P12MigrationTool.exe -c d:\migration\ProjectServer2007Migrate.ini
執行移轉工具之前,您必須在文字編輯器中以手動方式編輯移轉設定檔。這個檔案是用來設定一些參數,如:指定升級記錄檔的位置、要移轉的專案、執行 Microsoft SQL Server (也就是 Office Project Server 2007 資料庫所在之處) 的電腦等等。
範例移轉設定檔 (名為 ProjectServer2007Migrate.ini.sample) 是安裝在移轉工具所在的目錄。您可以將這個範例檔案更新成正確的設定參數,然後在執行移轉工具時指向此檔案。範例檔案會包括一些說明每個參數可用設定選項的註解。
下列各節提供有關移轉設定檔的詳細資訊。
移轉設定參數
下列是您可以在移轉設定檔中設定的參數。
參數 | 描述 |
---|---|
[General] |
一般設定區段。以下列出這個區段可用的參數。 |
BatchName= |
您可以多次執行移轉工具 (例如,以批次方式移轉專案),因此,需為每次的移轉工具執行作業指定唯一名稱。每次執行移轉工具所產生的記錄檔會根據指定的 BatchName 參數來命名。如果未指定唯一名稱,每次所產生的記錄檔將覆寫先前的記錄檔。 |
LogFileNamePrefix= |
識別移轉記錄檔的首碼。記錄檔名稱是由 LogFileNamePrefix 和表示啟動移轉作業的時間戳記所組成。例如,有個記錄檔名為 batch1-20060314-1542.log,則表示:
這種能對記錄檔名加上首碼的作法對於進行多次移轉 (例如,採用逐步移轉方式) 非常好用。 |
LogFilePath= |
識別移轉工具所產生之記錄檔的路徑。移轉工具會將詳細資訊寫入記錄檔。記錄檔是您在執行移轉工具遇到問題時,找出相關資訊進行疑難排解的主要依據。如果移轉工具無法寫入記錄檔,就會停止執行,因此您絕對可在記錄檔中找到更多關於移轉執行作業的資訊。 |
MigrateAll= |
Save:Project Server 2003 中的所有專案都會移轉至 Office Project Server 2007,但都不會發佈。 Publish:Project Server 2003 中的所有專案都會移轉至 Office Project Server 2007,而在 Project Server 2003 中發佈的專案會自動在 Office Project Server 2007 中發佈。 若要忽略 MigrateAll 參數,請對 注意 如果您要遵循執行移轉工具的最佳作法,也就是先移轉非專案資料 (企業通用範本、企業資源和 Project Web Access 資料) 再移轉專案,請將 MigrateAll 參數變成註解。此外,您也必須確認 [Project Names to Save and Publish] 和 [Project Names to Publish] 區段中沒有指定任何專案。 重要 如果 [Project Names to Save and Publish] 或 [Project Names to Publish] 區段中指定了任何專案名稱,則 MigrateAll= 的設定就會予以忽略。 |
FixUpSecurityCategories= |
如果 FixUpSecurityCategories 設為 Yes,一旦移轉專案之後,這些專案就會自動加入至安全性類別。如果此參數設為 No,專案移轉之後並不會加入至任何安全性類別。如果 Office Project Server 2007 的類別明顯不同於 Project Server 2003 的類別,而且您想以手動方式將專案加入至安全性類別,通常就會將此參數設為 No。 |
StopProjectMigrationIfStatusUpdatesPending= |
根據預設,StopProjectMigrationIfStatusUpdatesPending 的值為 Yes。如果設為 Yes,則所有具有等候中更新的專案,就不會進行移轉。如果設為 No,即使專案具有等候中更新,也會一律進行移轉。如果客戶希望不論是否專案有等候中更新都一律移轉,No 選項會很好用。這類情況之一是您有舊專案需要移轉,但卻沒有有效專案經理可負責這些等候處理的更新。 |
NeverPublishMasterProjects= |
根據預設,NeverPublishMasterProjects 的值是設為 Yes。此設定可確保主專案不會不慎發佈出去。這項設定適用於客戶在 Project Server 2003 中設定 [永遠不要發佈主專案] 選項的情況。 如果希望主專案是在移轉後才發佈,請將 NeverPublishMasterProjects 設為 No。但即使您指定了這個設定,仍要以手動方式將主專案放入 [Project Names to Save and Publish] 區段中。 注意 在 Office Project Server 2007 中發佈主專案並不會重複計算可用性。 |
[Project Names to Save] |
輸入要在移轉後儲存的專案名稱。在此區段中指定的專案一律不會予以發佈。 注意 您必須指定完整名稱 (如 MSP_PROJECTS 資料表 PROJ_NAME 資料欄中所儲存的名稱)。 |
[Project Names to Save and Publish] |
輸入要在移轉後儲存和發佈的專案名稱。 注意 只有 Project Server 2003 中的已發佈專案 (副檔名為 .PUBLISHED) 才可以發佈到 Office Project Server 2007。如果您指定的是加上版本編號的專案,則只會儲存該專案,並不會予以發佈。 注意 您必須指定專案的完整名稱 (如 MSP_PROJECTS 資料表 PROJ_NAME 資料欄中所儲存的名稱)。 注意 如果您指定了主專案,也設定 neverPublishMasterProjects=false,這樣就會自動發佈子專案 (如果已經移轉或會在移轉執行作業中移轉)。同時也請注意,在 Project Server 2010 中發佈主專案並不會重複計算可用性。 |
[Excluded Project Names] |
指定任何要在移轉過程中明確排除的專案。若大部分專案 (並非所有專案) 都要移轉,這個選項通常會與 MigrateAll 設定搭配使用。 注意 您必須指定專案的完整名稱 (如 MSP_PROJECTS 資料表 PROJ_NAME 資料欄中所儲存的名稱)。 |
[Project Server 2007] |
Office Project Server 2007 設定區段。以下列出這個區段可用的參數。 |
Project2007PWAServer= |
輸入 Microsoft Project Web App URL。例如:Project2007PWAServer=http://Project2007PWAServer/pwa |
Project2007SQLServer= |
輸入主控 Office Project Server 2007 資料庫的 SQL Server 執行個體名稱。 重要 根據預設,Project Server 2003 資料庫應該與 Office Project Server 2007 同屬一個 SQL Server 執行個體。若要執行這項操作,請將 Project Server 2003 資料庫備份並還原到主控 Office Project Server 2007 資料庫的 SQL Server 執行個體中。如果這對您來說有權限上的限制,則請參考 [Project Server 2003] 區段中的 Project2003LinkedSQLServer 屬性。 |
DraftDB = |
輸入 Office Project Server 2007 草稿資料庫的名稱。 |
PublishedDB = |
輸入 Office Project Server 2007 的發佈資料庫名稱。 |
[Project Server 2003] |
Project Server 2003 設定區段。以下列出這個區段可用的參數。 |
Project2003ProjectTablesDB = |
如果您 Project Server 2003 資料庫採用的是單一資料庫設定 (而不是分割資料庫設定),請在這個組態設定和其後的 Project2003WebTablesDB= 設定中輸入此資料庫名稱。 注意 移轉工具不會移轉 SQL Server Analysis Services Cube 資料表。您必須在移轉後重新建立 Cube。 |
Project2003WebTablesDB= |
如果 Project Server 2003 資料庫採用分割資料庫設定,請輸入網頁資料表資料庫的名稱。如前文所述,如果 Project Server 2003 採用單一資料庫設定,請在此參數和 Project2003ProjectTablesDB= 設定中輸入此資料庫名稱。 |
Project2003LinkedSQLServer=SQLServerName |
預設不會啟用這個設定 (Project2003LinkedSQLServer= 設定會變成註解)。如果未指定此參數,移轉工具會假設 Project 2003 資料庫位於主控 Office Project Server 2007 SQL Server 的電腦上。如果存放 Project 2003 資料庫的 SQL Server 電腦無法位於主控 Office Project Server 2007 資料庫的電腦上,您可以使用這項設定指定存放 Project Server 2003 資料庫的電腦。不過,要使這項設定有效運作,您必須將 Project Server 2003 資料庫加入成連結到 Office Project Server 2007 SQL Server 的伺服器。若要設定 SQL 連結的伺服器連線,請參閱移轉前工作文章<在 SQL Server 設定連結的伺服器>。 |
移轉設定檔範例
下列是設定好的移轉設定檔範例。
[General]
LogFilePath=C:\ProjectServer2007Migration
LogFileNamePrefix=Batch1
MigrateAll=Publish
FixUpSecurityCategories=yes
StopProjectMigrationIfStatusUpdatesPending=yes
NeverPublishMasterProjects=yes
[Project Names to Save]
Project1.published
Project2.Target
[Project Names to Save and Publish]
Project3.Published
Project4.Published
[Excluded Project Names]
Project5.Published
Project6.Target
[Project Server 2007]
Project2007PWAServer=http://Project2007pwaserver/pwa
Project2007SQLServer=Project2007sqlserver
DraftDB=Project2007ProjectServerDraft
PublishedDB=Project2007ProjectServerPublished
[Project Server 2003]
Project2003ProjectTablesDB=Project2003ProjDB
Project2003WebTablesDB=Project2003WebDB
;Project2003LinkedSQLServer=LinkedSQLServerName
注意
與移轉工具一起安裝的移轉設定檔會包含一些說明可用設定選項的註解。這些註解可以協助您正確設定此檔案。完成設定之後,您可以將這些註解保留在檔案中。
查詢 Project Server 2003 資料庫中的專案
若想在 Project Server 2003 資料庫中搜尋要放入移轉設定檔以下任何區段的專案,本小節所列的 SQL Server 指令碼會對您非常有幫助。
[Project Names to Save]
[Project Names to Save and Publish]
[Excluded Project Names]
查詢作業所產生的專案名稱便可複製到移轉設定檔的適當區段中 (如果需要的話)。
尚未開始的專案
SELECT p.PROJ_NAME FROM dbo.MSP_PROJECTS p
INNER JOIN dbo.MSP_TASKS t ON (t.PROJ_ID = p.PROJ_ID AND t.TASK_UID = 0)
WHERE p.PROJ_TYPE = 0 AND t.TASK_PCT_COMP = 0 AND t.TASK_PCT_WORK_COMP = 0
已完成的專案
SELECT p.PROJ_NAME FROM dbo.MSP_PROJECTS p
INNER JOIN dbo.MSP_TASKS t ON (t.PROJ_ID = p.PROJ_ID AND t.TASK_UID = 0)
WHERE p.PROJ_TYPE = 0 AND t.TASK_PCT_COMP = 100 AND t.TASK_PCT_WORK_COMP = 100
尚未完成的專案
SELECT p.PROJ_NAME FROM dbo.MSP_PROJECTS p
INNER JOIN dbo.MSP_TASKS t ON (t.PROJ_ID = p.PROJ_ID AND t.TASK_UID = 0)
WHERE p.PROJ_TYPE = 0 AND (t.TASK_PCT_COMP != 100 OR t.TASK_PCT_WORK_COMP != 100)
正在進行中的專案
SELECT p.PROJ_NAME FROM dbo.MSP_PROJECTS p
INNER JOIN dbo.MSP_TASKS t ON (t.PROJ_ID = p.PROJ_ID AND t.TASK_UID = 0)
WHERE p.PROJ_TYPE = 0 AND (t.TASK_PCT_COMP > 0 OR (t.TASK_STOP_DATE > t.TASK_START_DATE AND t.TASK_DUR > 0))
專案大綱代碼「Project Status」等於「Opportunity」的專案
在下列查詢中,請將要查詢的大綱代碼與值替換成此範例所用的「Project Status」和「Opportunity」值。
SELECT p1.PROJ_NAME
FROM dbo.MSP_FIELD_ATTRIBUTES fa
INNER JOIN dbo.MSP_ATTRIBUTE_STRINGS ats ON (fa.PROJ_ID = ats.PROJ_ID AND fa.AS_ID = ats.AS_ID AND fa.ATTRIB_ID = 206)
INNER JOIN dbo.MSP_PROJECTS p ON (p.PROJ_ID = fa.PROJ_ID AND p.PROJ_TYPE = 2)
INNER JOIN dbo.MSP_OUTLINE_CODES oc ON (p.PROJ_ID = oc.PROJ_ID AND oc.OC_FIELD_ID = fa.ATTRIB_FIELD_ID)
INNER JOIN dbo.MSP_CODE_FIELDS cf ON (cf.CODE_FIELD_ID = oc.OC_FIELD_ID AND cf.CODE_UID = oc.CODE_UID)
INNER JOIN dbo.MSP_PROJECTS p1 ON (p1.PROJ_ID = cf.PROJ_ID)
WHERE ats.AS_VALUE like '%Project Status%' AND oc.OC_CACHED_FULL_NAME like 'Opportunity'
專案範本
SELECT p.PROJ_NAME FROM dbo.MSP_PROJECTS p WHERE PROJ_TYPE = 1