我目睹了

我刚刚注意到从2007年到2010年升级后与SharePoint讨厌的东西。

SharePoint 2007中的任务列表架构首先具有“分配给”字段。这基本上意味着“分配到”字段进入数据库级别的“Int1”字段。

在SharePoint 2010中,任务列表架构首先具有前任。猜猜新列表的意思是什么?前身列进入数据库级别的“Int1”字段,并将“分配给”落入'int2'。

更改任务内容上的字段排序仅帮助使用“空白自定义列表”并直接添加内容类型。这样做会在列表模式中订购列表模式的字段与2007年看起来像!但是“任务列表定义”忽略了它,并使用自己的架构作为起点。要使用与SharePoint 2007使用相同的底层数据字段的任务列表,您基本上需要重新编写(删除和添加)列表中的内容类型/字段,从而将架构重置为重新排序的内容类型的模式。

为什么这件事?

很多你可能想知道为什么我甚至关心SQL字段,因为我不应该触摸它们等等。很好,我不应该小心,但微软已经让我!!!

我们使用dataformwebpart从所有站点卷起不完整的任务。使用SharePoint Designer创建。为横向站点递归位设置了各种选项,但它的主要是CAML查询,这部分导致头痛。

<Eq>
    <FieldRef Name="AssignedTo" />
    <Value Type="Integer"><UserID Type="Integer"/></Value>
</Eq>
.

上面已知基于[ME]来过滤,并工作,即适用于2007年创建的所有站点!任何新列表中的任务都没有! ......我现在知道这是因为生成的底层SQL正在进行:

int1 = [id]
.

......而不是:

int1 = [id] or int2 = [id]
.

我不确定(还是)SharePoint在内部构建SQL,但我可能会在某个时候调查它,因为它显然必须将CAML转换为SQL,因此使用源来查找关联的字段映射。无论是源都会根据旧列表或新列表不同。这次这次是旧的何种原因,无论是什么方式,它都意味着分配给我的任务现在被遗漏了。只能看到目前的三个选项

  1. 创建一个脚本以更新所有当前任务列表以反映新的任务列表定义。不理想,没有小任务。 前进确保确保使用任务列表模板创建的所有列表被修改如前所述(删除/添加CT和字段)。
  2. 将过滤器放入xslt并遭受性能!

    我意识到第2号可以模板,但原来的模板仍然仍然存在并远离MS模板可能易于在未来的问题!!

    这有人见证过吗?我知道真的不是对它的答案。只是建议/意见。

有帮助吗?

解决方案

在花很多时间目睹以上时。事实证明,只需将“DESCHEDEDTO”放在ViewFields部分的查询中修复了问题!

即使我未使用该字段,也通过添加它来修复问题。底层字段仍然不同,但是SharePoint毕竟毕竟和巨大的查询产生了引用每个Web / List的正确字段。

sweeeet。

许可以下: CC-BY-SA归因
scroll top