2011-01-13 1 views
1

Я работаю с организатором контента Sharepoint 2010 и программно задаю свойство условий.Sharepoint 2010 Content Organizer Условие Строка xml

Это свойство EcmDocumentRouterRule.ConditionsString, который принимает строковое представление следующего фрагмента XML:

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

У меня есть Тип содержимого с колонки под названием «Crisp Name». Когда его значение «quavers», оно должно выполнить какое-то действие. Я думаю, что проблема заключается в получении правильной стоимости оператора, но я не знаю, какой из них следует использовать. Правило Organizer контента создается успешно, но когда я пытаюсь его редактировать в Sharepoint, я получаю ошибку времени выполнения. Если я удалю это условие из своего кода, я могу просмотреть и отредактировать правило в Sharepoint, как ожидалось. Мне нужно условие, чтобы использовать Equals, попробовал несколько вариантов, в том числе «==» и «Eq», не уверенный, что здесь отсутствует.

Это вполне насущная потребность любая помощь будет принята с благодарностью

ответ

0

Спасибо за то, что willfg полезно знать для справки. Однако после того, как вы перешли к чему-то еще, но в новой коллекции сайтов со свежим типом контента, новым столбцом, оказалось, что моя проблема связана с чувствительностью к регистру на идентификаторе столбца - это должен быть более строчный. Я попробовал «Equal» и «IsEqual», и оба они правильно добавили это условие. В обоих случаях я смог просматривать и редактировать правило с помощью пользовательского интерфейса. Спасибо за ваше время, хотя высоко ценится

0

Вы пробовали «равно» без с? Я ценю, что это может быть довольно тривиальное предложение. Это, кажется, намекают здесь, но не указано явно:

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

Вы создаете сами программно правила? Я пытаюсь сделать это в данный момент, и они появляются успешно в списке, но работают, только если я затем снова сохраню их через пользовательский интерфейс.

+0

Спасибо за willfg ответ - Действительно пытались «равно» оба случая, но не кости. Как ни странно, это была та же самая страница, которую я использовал, чтобы построить мое правило. Да, я строю правила программно, но нужно убедиться, что синтаксис условия правильный, чтобы начать. Было бы полезно знать, где правила сохраняются после их создания из пользовательского интерфейса. – user574204

+0

Он хранится в «Правилах организатора контента» (скрыто). То, что вы могли бы попробовать, это создать правило через пользовательский интерфейс, а затем получить доступ к нему с помощью powershell: $ web = get-spweb (); $ list = get-splist («Правила организатора контента»); $ List.item [0]. – willfg

0

Нашли это, вы хотите «IsEqual». Сделал это, обратившись к элементу списка с помощью powershell, как описано.

$ web = get-spweb (weburl); $ list = $ web.lists ["Правила организатора контента"]; $ list.items [0] >> c: \ arule.txt

Затем вы можете посмотреть в файле условия.

+0

Спасибо за то, что willfg полезно знать для справки. Однако после того, как вы перешли к чему-то еще, но в новой коллекции сайтов со свежим типом контента, новым столбцом, оказалось, что моя проблема связана с чувствительностью к регистру на идентификаторе столбца - это должен быть более строчный. Я попробовал «Equal» и «IsEqual», и оба они правильно добавили это условие. В обоих случаях я смог просматривать и редактировать правило с помощью пользовательского интерфейса. Спасибо за ваше время, хотя и очень ценятся – user574204

1

Я использовал следующий синтаксис и он работал отлично:

$spListItem["RoutingConditions"] ='<Conditions><Condition Column="9ce114d1-0f9d-4825-8a74-a9fc891723c2|ProjectId|Project Id" Operator="IsEqual" Value="123456" /></Conditions>'