2010-12-20 69 views

回答

5

我知道這是一個老問題,但我想通了這一點:

您可以使用SPD工作流程做到這一點(SPD 2007或2010)。您可以撥打內容類型字段有兩種方式:

  1. 在工作流程中,使用「如果[字段]等於[價值]」或「設置[現場]至[值]」

  2. 對於「If」語句,該字段將被稱爲「內容類型」。 「設置」語句字段將被稱爲「內容類型ID」。無論哪種情況,您都可以根據可用內容類型分配值。

您確實需要在列表或庫設置上啓用內容類型。下面是基於自定義列表,記錄應付賬款項目上的工作流程示例:

列表列:請求類型(有報銷,部門費用的選擇選擇列,其他)

列表內容類型:默認,應付帳款應收賬款

If [Request Type] equals [Reimbursement] 
then Set [Content Type ID] to [Accounts Payable] 

當工作流火災,它只會設置內容類型,以應付帳款如果請求類型列等於報銷。

0

programatical我敢肯定你不能,肯定不是從SP Designer工作流。

您必須記住,SharePoint無法確定兩種內容類型(之前和之後)具有相同類型的列,即使它們確實無法輕鬆將舊內容類型的值映射到新的。

既然你指出,你可以在Visual Studio編程,我檢查你的選擇對於SharePoint對象模型。 SPListItem或SPFile上沒有方法可用於更改關聯的內容類型。所以,就我所知,您將被減少爲從舊的listitem讀取值,並使用自定義代碼創建一個新的(使用新的contenttype關聯)。

我不知道這件事情我倒是想做的事,除了這個事實,你會失去從舊列表項的創建和修改信息。

但是,是的,那是你唯一的選擇,我想......

0

我只是通過工作流程改變列表項的內容類型在SharePoint Designer 2010年當我從當前列表中添加的設置項,並選擇內容類型ID下拉讓我從不同的內容類型中進行選擇。我沒有丟失任何數據,可能是因爲我的內容類型使用了一些相同的字段。