Запуская Рабочий процесс SharePoint путем обновления элемента списка через Веб-сервис Списка

Другое событие NullPointerException возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

16
задан Brock Adams 24 November 2011 в 04:54
поделиться

4 ответа

Наконец, мы прошли через процессы услуг по поддержке в Microsoft и получили решение!

Первый, Microsoft заявила это, чтобы быть ошибкой. Это - незначительная ошибка, потому что существует хорошее обходное решение, таким образом, может потребоваться некоторое более длительное время, пока эта ошибка не будет исправлена (специалист по поддержке сказал что-то со следующим пакетом обновления Одер следующая версия (!)).

, Но теперь для проблемы.

reaseon

Позволяют нам смотреть на код CAML от моего вопроса:

<Method ID='1' Cmd='Update'>
  <Field Name='ID'>1</Field>
  <Field Name='myDummyPropertyField'>NewValue</Field>
</Method>

По любой причине менеджер по Рабочему процессу не работает с идентификатором, мы вошли во вторую строку. Странный, все другие команды SharePoint работают с идентификатором, но не менеджером Рабочего процесса. Менеджер по Рабочему процессу работает с "полностью определенным" названием документа. Так, потому что мы не имели никакой подсказки и не сделали ввел любое полностью определенное название документа, значения по умолчанию менеджера по Рабочему процессу к названию библиотеки текущего документа. И теперь сообщение об ошибке начинает иметь смысл:

The object specified does not belong to a list.

, Конечно, объект (библиотека документа) не принадлежит списку, это - список.

решение

Мы должны добавить еще одну строку к нашему Запросу CAML:

<Field Name='FileRef'>/sites/mySite/myDocLib/myFolder/myDocument.txt</Field>

FileRef передает полностью определенное название документа менеджеру по Рабочему процессу, который - теперь полностью счастливый - запускает рабочий процесс объекта.

Быть осторожными, необходимо включать весь абсолютный путь сервера, опуская имя сервера (найденный, например, в свойстве ServerRelativePath SPItem).

Полная работа Запрос CAML:

 <Method ID='1' Cmd='Update'>
    <Field Name='ID'>1</Field>
    <Field Name='FileRef'>/sites/mySite/myDocLib/myFolder/myDocument.txt</Field>
    <Field Name='myDummyPropertyField'>NewValue</Field>
  </Method>

будущее

, Возможно, это недокументированное поведение будет зафиксировано в одном из предстоящих пакетов обновления, возможно, нет. Microsoft Support принесла извинения и собирается выпустить Статью MSDN об этой теме. В течение следующего месяца я надеюсь, что эта статья о stackoverflow поможет разработчикам в той же ситуации.

спасибо за чтение!

11
ответ дан 30 November 2019 в 22:55
поделиться

Мы столкнулись с подобной проблемой с Рабочим процессом Одобрения. Для решения его мы записали наш собственный Получатель События и присоединили его к списку. В зависимости от того, был ли объект обновлен или отредактирован, мы затем запустили Рабочий процесс Одобрения.

Hope это помогает...

3
ответ дан 30 November 2019 в 22:55
поделиться

Я встретился с этой проблемой также и узнал, что, после того как рабочий процесс запустился, это не может быть перезапущено автоматически, неважно, как Вы обновляете объект. Можно, однако, вручную запустить рабочий процесс снова, так много раз, как Вам нравится.

0
ответ дан 30 November 2019 в 22:55
поделиться

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

0
ответ дан 30 November 2019 в 22:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: