任务列表字段数据库位置从2007年到2010年更改
题
我目睹了
我刚刚注意到从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,因此使用源来查找关联的字段映射。无论是源都会根据旧列表或新列表不同。这次这次是旧的何种原因,无论是什么方式,它都意味着分配给我的任务现在被遗漏了。只能看到目前的三个选项
- 创建一个脚本以更新所有当前任务列表以反映新的任务列表定义。不理想,没有小任务。 前进确保确保使用任务列表模板创建的所有列表被修改如前所述(删除/添加CT和字段)。
- 将过滤器放入xslt并遭受性能!
我意识到第2号可以模板,但原来的模板仍然仍然存在并远离MS模板可能易于在未来的问题!!
这有人见证过吗?我知道真的不是对它的答案。只是建议/意见。
解决方案
在花很多时间目睹以上时。事实证明,只需将“DESCHEDEDTO”放在ViewFields部分的查询中修复了问题!
即使我未使用该字段,也通过添加它来修复问题。底层字段仍然不同,但是SharePoint毕竟毕竟和巨大的查询产生了引用每个Web / List的正确字段。
sweeeet。