讀者來信讀者有話直說

Windows 備份

看到您在 2008 年發表的 Windows Server® 2008 相關報導 (2008 年 3 月份的《TechNet Magazine》,technet.microsoft.com/magazine/cc268370) 之後,我非常興奮,於是就到上市發表會買了一套,打算用在家庭網路。安裝過程相當順利,但是到了備份卻把我難住了。

雖然作業系統本身有支援磁帶機,但新的 Windows Server Backup 卻不支援,而 NT 備份又已經移除 (我把個人資料連同 Active Directory® 和 Exchange Server 2007 一起備份到磁帶機當中)。

雖然知道 Microsoft® Data Protection Manager (DPM) 對我的安裝有害,我還是努力根據網路上的提示下載它。但是 DPM 並未安裝在 Windows Server 2008 上,而我又找不到它們的手動安裝指示。到底小型安裝都是怎麼備份的呢?

—Ravi S.

DPM 的確是磁帶備份的解決方案,因為 Windows Server 2008 中的新解決方案,就是針對磁碟儲存體設計的。再過幾個月,DPM 就會正式支援 Windows Server 2008 了。

—Karandeep Anand (Microsoft 資深領導程式經理)

問卷工作流程

我在 2008 年 2 月份<建置強大的問卷基礎結構>(technet.microsoft.com/magazine/cc194407) 一文的「單獨使用 WSS」一節當中,看到下面這一句:「您還可以選擇是否在問卷中指定工作流程。」

據我瞭解,Windows® SharePoint® Services 3.0 (WSS) 和 Microsoft Office SharePoint Server 2007 (MOSS) 並不支援與問卷回覆有關的工作流程。我曾試過把工作流程關聯到問卷回覆,雖然 SharePoint Designer 接受這項關聯性,但是工作流程總是會出現「啟動失敗」錯誤。我曾看過一篇知識庫文章 (support.microsoft.com/kb/926370) 清楚寫著,與問卷回覆相關聯的工作流程並不在支援之列。

我知道我可以把事件接收器連結到問卷,然後起始其他流程,但其實這並不是 SharePoint 一般參照的工作流程。難道這句話錯了嗎?還是我漏看了哪一句嗎?

—Matt B.

您所參考的段落是在講述 WSS 如何提供精靈,讓逐步流程建立問卷。當中它也討論了各種選項 (分支邏輯、開放式/封閉式問題等等)。

而指派工作流程的確是精靈提供的選項,所以「您還可以選擇是否在問卷中指定工作流程」這句話並非完全不對。您是可以指派它,只是結果正如您所說的,問卷中的工作流程就是無法運作,即使這個選項因為某些原因而被包含在內也一樣。我這麼解釋吧。

當您把工作流程關聯到問卷,並且啟動它時,您會接到一則「啟動失敗」的錯誤。根據活動的記錄顯示:

RunWorkflow: System.ArgumentException: Invalid field name.
{<<< GUID>>>} at ...

這個 GUID 代表工作流程執行個體。這個做法是可以確保您觸發正確的工作流程,只是「問卷」清單類型並不支援工作流程屬性。理由很簡單,因為它沒寫進程式中。所以當工作流程努力以 MakeActivation 方法啟動,並且執行下面這個動作時:

internal static void MakeActivation(SPWorkflow workflow, SPWorkflowEvent e)
{e.EventData = new object[ ] { workflow.InstanceId, new SPWorkflowActivation 
Properties(workflow, e.RunAsUserId, associationData, initiationData) };
...
}

它會呼叫 SPWorkflowActivationProperties,如下所示:

internal SPWorkflowActivationProperties(SPWorkflow workflow, 
int runAsUserId, string associationData, string initiationData)
{
...
this.m_itemGuid = new Guid((string) 
this.Item[SPBuiltInFieldId.GUID]);
...
}

所以如果它認為 GUID 字串是問卷當中的一個屬性 (顯然它應該是一項內建屬性),但是問卷卻沒有工作流程式 GUID 專屬的屬性時,結果一樣行不通。

其實這個問題是有相對因應措施的,所以您的思考方式也沒有錯。 因應措施的做法是建立一份觸發工作流程的自訂清單,然後利用 ItemEventReceiver,將事件接收器連結到問卷,接著事件接收器會在自訂清單中建立一個項目來觸發工作流程。不過您也沒說錯,這兩者不完全相同。我就長話短說吧 — 沒錯,你說得很對;它其實沒什麼用。

—Pav Cherny (《SharePoint 內幕》和《TechNet Magazine》的專欄作家)

© 2008 Microsoft Corporation 和 CMP Media, LLC.保留所有權利;未經允許,嚴禁部分或全部複製.