我在Sharepoint 2010中有一个奇怪的分类过滤,但我可以在所有3台服务器上复制它。
以下是该场景的演绎方式:
现在,此时我运行导入作业,将项目添加到另一个列表中。第二个列表还有一个指向termSet的托管元数据字段。
列表1过滤不起作用。列表2过滤,绝对不起作用。
究竟发生了什么。我选择一个顶级术语,它应该包括所有子项。在大量插入使用术语集中的术语的列表项之前,它完美地完成了这一操作。在插入之后,当我选择顶级术语时,我得到一个空的设置,并且没有包含后代的按钮。
我正在调查这个隐藏的列表,这与我注意到的过滤有很大关系。过滤主要检查这一点(尚不确定如何/为什么)。
其他人有这个问题吗?关于此的唯一文档来源是Microsoft Sharepoint Evangelical Blogs(Marketing),没有详细解释为什么这不起作用。
请协助。
答案 0 :(得分:5)
规则1:在处理Sharepoint时,永远不要相信它能够工作。
if (fRecursive && (numArray.Length > 300))
{
int[] numArray2 = numArray;
object[] data = new object[] { termSetId.ToString(), termId.ToString(), numArray2.Length.ToString(CultureInfo.InvariantCulture) };
ULS.SendTraceTag(0x66367766, ULSCat.msoulscat_DLC_DM, ULSTraceLevel.Medium, "Disable recursive term clause: Too many descendent IDs for term. Termset[{0}]Term[{1}] Descendent ID count[{2}]", data);
numArray = TaxonomyField.GetWssIdsOfTerm(SPContext.Current.Site, termStoreId, termSetId, termId, false, 500);
MetadataNavigationContext current = MetadataNavigationContext.Current;
if (current != null)
{
current.ForceTreeDescendentsOff();
}
}
(numArray.Length > 300)
从Sharepoint.Taxonomy反映,请注意current.ForceTreeDescendentsOff();
因此,如果您可能需要从Taxonomy过滤器返回超过300条记录,则似乎无法执行此操作。非常适合企业解决方案。