1

我正在使用 Sharepoint 2010 内容管理器并以编程方式设置条件属性。

它是 EcmDocumentRouterRule.ConditionsString 属性,它接受以下 xml 片段的字符串表示:

<Conditions><Condition Column='F38E4008-F1C7-476C-8FB1-17C0A363D16B|Crisp Name|Crisp Name' Operator='Equals' Value='quavers' /></Conditions>

我有一个名为“Crisp Name”的列的内容类型。当它的值为'quavers'时,它应该执行一些动作。我认为问题在于获得正确的运算符值,但我不知道应该使用哪一个。内容管理器规则已成功创建,但是当我尝试在 Sharepoint 中对其进行编辑时,出现运行时错误。如果我从我的代码中删除此条件,我可以按预期在 Sharepoint 中查看和编辑规则。我需要使用 Equals 的条件,尝试了一些变体,包括 '==' 和 'Eq' 不确定这里缺少什么。

这是一个非常紧迫的要求,任何帮助将不胜感激

4

4 回答 4

1

我使用了以下语法并且效果很好:

$spListItem["RoutingConditions"] ='<Conditions><Condition Column="9ce114d1-0f9d-4825-8a74-a9fc891723c2|ProjectId|Project Id" Operator="IsEqual" Value="123456" /></Conditions>'
于 2011-09-06T21:27:00.053 回答
0

您是否尝试过没有 s 的“Equal”?我很欣赏这可能是一个微不足道的建议。这似乎在这里暗示但没有明确说明:

http://msdn.microsoft.com/en-us/library/microsoft.office.recordsmanagement.recordsrepository.ecmdocumentrouterrule.aspx

您是否以编程方式自己创建规则?我目前正在尝试执行此操作,它们成功出现在列表中,但只有当我通过 UI 再次保存它们时才有效。

于 2011-01-13T13:28:36.643 回答
0

找到它,你想要“IsEqual”。如上所述,通过使用 powershell 访问列表项来做到这一点。

$web = get-spweb(weburl); $list = $web.lists["内容管理器规则"]; $list.items[0] >> c:\arule.txt

然后,您可以在文件中查找条件。

于 2011-01-13T14:18:23.887 回答
0

感谢您提供有用的信息以供参考。然而,在再次浏览内容但在具有新内容类型、新列的新网站集上之后,事实证明我的问题与列功能 ID 的大小写敏感有关 - 它需要小写。我尝试了 'Equal' 和 'IsEqual' 并且都正确添加了条件。在这两种情况下,我都能够通过 UI 查看和编辑规则。感谢您的宝贵时间,但非常感谢

于 2011-01-13T19:58:57.833 回答