2011-08-30 82 views
4

为外部数据类型列强制唯一值 - 我知道它不可能立即可用。验证重复项的外部数据类型列是什么?工作流程?其他?为SharePoint中的外部数据类型列强制唯一值

+0

外部数据类型来自经由SQL服务器。用户可以将项目添加到通过某个密钥的共享点列表。该键链接到来自外部数据列的其他字段。 Sharepoint不应接受具有重复密钥的元素。 – marcinn

回答

0

好吧,外部列表不能有工作流或事件接收器来验证数据,所以在SharePoint中这样做实际上会非常复杂。我的意见是,你应该在将数据导入到SP之前验证你的数据。如果你的数据源是一个数据库,然后添加一个约束,如果它是一个Web服务,那么外部系统应该强制唯一,如果它是一个自定义的外部内容类型,你可以通过代码强制执行它。

+0

我有简单的自定义列表。该列表具有带有某个数字的外部列(这是一些键)。我的外部数据源 - sql server有一个包含主键的表。该主键用于将自定义列表条目与来自外部的一些数据连接起来。 – marcinn

0

尽管在MS文档中似乎没有提到它,但您可以使用PowerShell强制实施“外部数据”类型的唯一性。我刚刚尝试了下面的示例,它适用于SP2013农场。

https://msdn.microsoft.com/en-us/library/office/ee536168%28v=office.14%29.aspx?f=255&MSPPError=-2147217396

从Office例DEV中心

SPSite site = new SPSite("http://localhost"); 
SPWeb web = site.OpenWeb(); 

SPList custList = web.Lists["Customers"]; 
SPField custPhone = custList.Fields["Phone Number"]; 

custPhone.Indexed = true; 
custPhone.EnforceUniqueValues = true; 

/// You must call the Update() method 
/// when you change the EnforceUniqueValues property 
custPhone.Update(); 
相关问题