我试图更改文档内容类型。我必须使用工作流程,最好的方法是在sharepoint desingner中创建工作流程。我知道如何在视觉工作室中进行编程
答案 0 :(得分:6)
我知道这是一个老问题,但我想出来了:
您可以使用SPD工作流程(SPD 2007或2010)执行此操作。您可以通过两种方式调用内容类型字段:
在工作流程中,使用“If [field] equals [value]”或“Set [field] to [value]”
对于“If”语句,该字段将被称为“内容类型”。 “Set”语句字段将被称为“Content Type ID”。在任何一种情况下,您都可以根据可用的内容类型分配值。
您需要在列表或库设置上启用内容类型。以下是基于自定义列表记录应付帐款条目的示例工作流程:
列表栏:请求类型(选择列,包括报销,部门费用,其他)
列出内容类型:默认,应付帐款,应收帐款
If [Request Type] equals [Reimbursement]
then Set [Content Type ID] to [Accounts Payable]
当工作流触发时,如果“请求类型”列等于“报销”,它将仅将“内容类型”设置为“应付帐款”。
答案 1 :(得分:1)
我刚刚通过SharePoint Designer 2010中的工作流程更改了列表项的内容类型。当我从当前列表添加“设置项目”并选择“内容类型ID”时,下拉列表允许我从不同的内容类型中进行选择。我没有丢失任何数据,可能是因为我的内容类型使用了一些相同的字段。
答案 2 :(得分:0)
我很确定你不能,当然不是来自SP Designer的工作流程。
您必须记住,SharePoint无法确定两个内容类型(之前和之后)具有相同类型的列,即使它们确实存在,也无法轻松地将旧内容类型中的值映射到新。
由于您注意到可以在Visual Studio中编程,因此我检查了有关SharePoint对象模型的选项。 SPListItem或SPFile上没有可用于更改关联内容类型的方法。所以,据我所知,你可以使用自定义代码从旧的listitem中读取值并创建一个新的(使用新的contenttype关联)。
我不确定这是否是我想做的事情,除了你丢失旧的礼节项目中的Created和Modified信息这一事实。
但是,是的,这是你唯一的选择,我想......
答案 3 :(得分:0)
当然,您可以使用SPD工作流程来更改项目的内容类型。当然,项目所在的库必须配置为接受这两种类型。这是一个使用此应用程序的链接: http://www.sharepoint911.com/blogs/laura/Lists/Posts/Post.aspx?List=daba3a3b-c338-41d8-bf52-cd897d000cf3&ID=43&Web=dbb90e85-b54c-49f4-8e97-6d8258116ca0