Категория Архивы: Разработки SharePoint

Простое объяснение: “Значение не попадает в ожидаемый диапазон.”

ОБНОВЛЕНИЕ: Оставил анонимный плакат большой комментарий о внутренних имен. Будьте уверены прочитать его.

При работе с приемниками событий и другой код, ссылающийся на элементы списка SharePoint через объектную модель, Я часто делают ошибки, которые создают эту ошибку во время выполнения:

Ошибка при загрузке и запуске приемника событий Conchango.xyzzyEventReceiver в xyzzy, Версия = 1.0.0.0, Культура = нейтральных, PublicKeyToken = 0dc50a750396c3ac. Дополнительная информация приведена ниже. : Значение не попадает в ожидаемый диапазон.

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

Свойства.ListItem[«Срок»]

Когда я неправильно или использовать неверный регистр при ссылке на поле, SharePoint генерирует выше упомянутые ошибки во время выполнения. Например, Это неправильно:

Свойства.ListItem[«Срок»]

</конец>

Подписаться на мой блог.

Бирки Technorati:

Быстрый & Легко: Создайте папку и присвойте тип контента (Или, KPI и съесть их слишком)

Для того, чтобы обойти проблемы КПИ Я писал о здесь, Я сделал несколько испытаний и обнаружил что КПИ работа против папки с мета-данных таким же образом, что они работают против документы или элементы списка. Я доказал это путем создания нового типа контента на основе типа содержимого папки и затем добавлены несколько полей. Я создал некоторые показатели и доказал себе, что ключевые индикаторы производительности работают как ожидалось. Это была хорошая новость. Это не идеальный, потому что бур вниз вы получаете от ключевого показателя эффективности против папок это не совсем то, что вы хотите. Это не слишком много недостатков, в моем случае, потому что 1) конечные пользователи не знают ничего лучшего и 2) бур вниз идет в папку. Они щелкните имя папки, и они находятся на элементе. Это два клика вместо одного, который не конец света.

Это текли красиво с работой, которую я делал. Я создаю папку для каждого документа, который получает загружены. Это делается через приемник событий. В результате, Это кусок пирога, чтобы сохранить родительской папки мета-данные в синхронизации с данными KPI-управляемых метаданных из файла сам так как сантехника уже на месте. This allows me to have my KPI’s and eat them too 🙂

Я изменил приемник событий, чтобы добавить папку и затем задать тип контента этой новой папки мой пользовательский тип контента КПИ friendly. Этот бит кода сделал трюк:

 SPFolderCollection srcFolders = targetWeb.GetFolder(«Документы").Вложенные папки;
  SPFolder addedFolder = srcFolders.Add(Свойства.ListItem.ID.ToString());
  SPContentTypeId kpiCT = Новые функции SPContentTypeId("0x0120002A666CAA9176DC4AA8CBAA9DC6B4039F");
  addedFolder.Item[«Идентификатор типа контента"] = kpiCT;
  addedFolder.Item.Update();

Чтобы найти фактический идентификатор типа контента, Я получить этот тип контента через настройки сайта и копировать/вставить его из URL-адреса, как показано:

изображение

</конец>

Подписаться на мой блог!

Быстро и легко: Получить SPFolder SPListItem в приемник событий

Я ненавижу впустить его, но я боролся с этим один день. Мой приемника событий необходимо обновить поля родительской папки. Это немного показывает как это сделать:

частные void UpdateParentFolder(SPItemEventProperties Свойства)
{

SPFolder thisItemFolder = свойства.ListItem.File.ParentFolder;
thisItemFolder.Item[«Состояние утверждения ZZ"] = «Хорошие новости, Каждый!";
thisItemFolder.Item.Update();


} // UpdateParentFolder

В этом случае, Я работаю с библиотекой документов и свойства идут от событие ItemAdded.

Хитрость заключается в том, что вы не можете получить SPFolder элемент непосредственно из самого элемента (т.е.. Свойства.ListItem.Folder имеет значение null). Вместо этого, Перейдите к файлу связанного элемента списка и получить файл в папку.

</конец>

Подписаться на мой блог!

Бирки Technorati:

Еще еще один приемник событий отладки трюк

Я уверен, что я не первый человек, чтобы прийти с этим. Однако, Я не заметил кто-нибудь опубликовать трюк, как это, так как я начал, уделяя пристальное внимание к сообществу в июле. Таким образом, Я думал, что я бы разместить его эта подсказка быстро и легко отладки.

Я работаю на приемник событий, который начало для создания этой ошибки в 12 куст:

Ошибка при загрузке и запуске приемника событий Conchango.xyzzyEventReceiver в xyzzy, Версия = 1.0.0.0, Культура = нейтральных, PublicKeyToken = blahbalhbalh. Дополнительная информация приведена ниже. : Ссылка на объект не указывает на экземпляр объекта.

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

Я попробовал Это решение чтобы мои pdb туда с надеждой что SharePoint 12 куст будет показать трассировки стека, но не повезло. Я не знаю, если это возможно, и если кто-то делает, Пожалуйста, дайте мне знать 🙂

Я знаю, что это можно Напишите ваши собственные сообщения журнала 12 куст. Честно говоря, Я хотел что-то чуть менее страшно и быстрее осуществлять.

Это произошло на меня, что я мог по крайней мере получить некоторые сведения основные трассировки, ловя и снова бросали универсального исключения, как это:

  Попробуйте {
    UpdateEditionDate(Свойства);
  }
  улов (Исключение e)
  {
    бросать Новые функции Исключение(«Диспетчер, UpdateEditionDate(): Исключение: [" + e.ToString() + "].");
  }

Это показало вверх в 12 куст константы выглядит так:

Ошибка при загрузке и запуске приемника событий Conchango.xyzzyEventReceiver в xyzzy, Версия = 1.0.0.0, Культура = нейтральных, PublicKeyToken = blahblahblah. Дополнительная информация приведена ниже. : Диспетчер, UpdateEditionDate(): Исключение: [System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта. в Conchango.xyzzyManagementEventReceiver.UpdateEditionDate(SPItemEventProperties свойства) в Conchango.xyzzyManagementEventReceiver.Dispatcher(SPItemEventProperties свойства, Строка eventDescription)].

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

</конец>

Подписаться на мой блог!

Решение: SPQuery не папки поиска

На прошлой неделе я реализации «развивается" решение для клиента, который использует BDC и SPQuery и побежал в некоторые трудности с помощью SPQuery против библиотеки документов, содержащей папки. Нижняя линия: назначить «рекурсивные" в атрибут представления запроса.

Мой сценарий:

  • В понедельник, Я загрузить документ и предоставить некоторые мета-данных.
  • Следующей недели, Загрузить новый документ. Большая часть этого нового документа мета-данных основывается на документе, который я загрузил в понедельник (который мы называем «главный документ»).
  • Мы создали веб службы фасада, который обеспечивает BDC-понятный интерфейс в список, так что пользователи могут легко найти этот понедельник документ через поиск по названию.
  • Столбец данных BDC предоставляет дружественный пользовательский интерфейс. (Это является частью моей попыткой с помощью BDC для столбца подстановок более дружественным).

Окончательный фасадной службой BDC использует запрос как это сделать подстановки:

 // Используется U2U инструмент для оказания помощи в создании этого запроса CAML.
      oQuery.Query =
        "<Где>";

      Если (titleFilter.Length > 0)
        oQuery.Query  =
          "  <И>";

      oQuery.Query  =
        "    <И>" +
        "      <GEQ>" +
        "        <Имя FieldRef =  "DocumentId" />" +
        "        <Тип значения =  «Text»>" + minId + "</Значение>" +
        "      </GEQ>" +
        "      <Leq>" +
        "        <Имя FieldRef =  "DocumentId" />" +
        "        <Тип значения =  «Text»>" + maxId + "</Значение>" +
        "      </Leq>" +
        "    </И>";

      Если (titleFilter.Length > 0)
        oQuery.Query  =
          "    <Содержит>" +
          "      <Имя FieldRef =  "Title" />" +
          "      <Тип значения =  «Text»>" + titleFilter + "</Значение>" +
          "    </Содержит>" +
          "  </И>";
      oQuery.Query  =
        "</Где>";

На начальном этапе развития, Это работало большой. Однако, Мы ввели папки в каталог, чтобы решить некоторые проблемы и вдруг, мой выбор BDC не возвращает никаких результатов. Я это отслеживается вниз тот факт, что SPQuery никогда не будет возвращать любые результаты. Мы использовали папки прежде всего для того, чтобы позволить несколько файлов с тем же именем, чтобы быть загружены, но с различными мета-данных. Когда загружается файл, Мы создаем папку на основе идентификатора элемента списка и затем переместить файл там (Я писал о том, что Здесь; у нас были неоднозначные результаты с таким подходом, но в целом, Он работает хорошо). Пользователь не заботятся о папках и на самом деле, не очень понимаю, что есть любые папки. Мы настроили все представления в библиотеке для отображения элементов независимо от папки.

Я ударил эту проблему дважды, как техническое осуществление эволюционировали и решить его по-разному каждый раз. В первый раз, Я не использовал оператор в запросе. Без оператора CONTAINS, Я был в состоянии решить эту проблему, указав вид на SPQuery contructor. Вместо использования конструктора по умолчанию:

SPList oList = web.Списки[«Документы"];

SPQuery oQuery = Новые функции SPQuery();

Я вместо этого использовать конструктор, который указан вид:

SPList oList = web.Списки[«Документы"];

SPQuery oQuery = Новые функции SPQuery(oList.Views[«Все документы"]);

Была решена и я начал получать мои результаты.

Затем я добавил оператор CONTAINS в смеси, и он сломал снова. Получается, что оператор CONTAINS, так что насколько я могу сказать, не работать с тем так же, как простой GEQ / LEQ операторы. Я сделал некоторое ища и узнал, что ViewAttributes запроса должно быть присвоено «Рекурсивные», как и в:

oQuery.ViewAttributes = «Область = "Recursive"";

Что решена проблема для CONTAINS. На самом деле, Это также решить мою оригинальный проблему поиска и если я указал рекурсивным атрибутов в первый раз, Я бы не бежал в этот вопрос снова.

Тот факт, что на основе представления SPQuery работает для некоторых операторов (GEQ/LEQ) и не другие (СОДЕРЖИТ), Вместе с тем, что ключевые индикаторы производительности, похоже, не работать на всех с папки содержащих документ библиотеки приводит меня к мнению, что SPQuery имеет некоторые проблемы ортогональности.

Особая благодарность:

  • Хорошие люди на U2U и их инструмент запроса.
  • Великий Майкл Хоффер "обучение на практике" столб блога, Комментарии и ответы.

</конец>

Подписаться на мой блог!

Ошибка Мосс KPI? Список индикаторов, привязали к библиотеке документов С папками

ОБНОВЛЕНИЕ 02/29/08: Я решил эту проблему, создав папку и затем присвоить тип контента папки, которая имеет мета-данные, необходимые для ключевых индикаторов производительности. Я описал, в немного более подробно здесь.

Мы осуществили техническое решение, где пользователи загружать документы в библиотеку документов. Приемника событий создает каталог и файл перемещается в каталог (с помощью метода похож на то, что я писал о Здесь). Мы успешно переходите вокруг потенциальных проблем, вызванных приемники событий, которые переименовать загруженные файлы (главным образом потому, что пользователи никогда не начать их документ, нажав на «New" но вместо этого создать документы локально, а затем загружать их).

Мета-данные для этих документов включает в себя да/нет столбец сайта под названием «срочный" и еще один столбец сайта под названием «Статус». Нам нужно для удовлетворения бизнес-требований, который показывает процент «срочный" документы, чей статус «Ожидание».

Это обычно просто сделать и я описал, что-то очень много, как это в SharePoint Бигл с большим количеством снимков экрана, если вы заинтересованы.

В двух словах, Я сделал следующие:

  • Создать представление о библиотеке doc, под названием «В ожидании».
  • Настройте вид игнорировать структуру папок.
  • Создание списка ключевых индикаторов производительности.
  • Создание индикатора в списке, который указывает на doc lib и что «в ожидании" вид.

Это просто не работает. Ключевой показатель эффективности отражает мои цели (Например. пять срочных документов) но всегда показывает фактическое количество срочных документов как ноль. Как ни парадоксально, Если вы просверлите вплоть до деталей, Это показывает пять срочных документов в списке. Я создал очень простой сценарий с двумя документами, одна папка и один не. Вот снимок экрана:

изображение

Выше снимке экрана ясно показывает, что существует два документа в представлении, но «стоимость" один. «CamlSchema" с пустого документа Id находится в корневой папке и другой находится в папке с именем «84».

Мне кажется, что даже несмотря на то, что вы укажите представление, ключевой индикатор производительности не честь «отображать все элементы без папок" Установка и вместо этого, сводится к корневой папке.

Если я ошибаюсь, Пожалуйста напишите мне или оставить комментарий.

</конец>

Подписаться на мой блог!

Решение проблемы: “FileNotFoundException” С моим приемником функция.

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

Использование командной строки, Я мог бы установить функцию с без ошибок (Но смотрите ниже скрытые ошибки). Когда я попытался развернуть функцию на сайте, Мосс жаловался на "FileNotFoundException" Ошибка. Эта запись в блоге описывает, как я решил ее.

Это ошибка, которая Мосс показал мне в веб-браузере:

Функция ' b2cb42e3-4f0a-4380-aaba-1ef9cd526f20’ не может быть установлен, так как загрузка событий приемника Ассамблеи "xyzzyFeatureReceiver_0" не удалось: System.IO.FileNotFoundException: Не удалось загрузить файл или сборку ' xyzzyFeatureReceiver_0’ или один из его зависимостей. Система не может найти указанный файл.
Имя файла: ' xyzzyFeatureReceiver_0’
в System.Reflection.Assembly.nLoad(AssemblyName имя файла, Строки кода, Свидетельства assemblySecurity, LocationHint Ассамблея, StackCrawlMark& stackMark, Логическое throwOnFileNotFound, Логическое forIntrospection)
в System.Reflection.Assembly.InternalLoad(AssemblyName параметр assemblyRef, Свидетельства assemblySecurity, StackCrawlMark& stackMark, Логическое forIntrospection)
в System.Reflection.Assembly.InternalLoad(Строки параметр assemblyString, Свидетельства assemblySecurity, StackCrawlMark& stackMark, Логическое forIntrospection)
в System.Reflection.Assembly.Load(Строки параметр assemblyString)
в Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
ПРЕДУПРЕЖДЕНИЕ: Включено ведение журнала привязки Ассамблея OFF.
Для включения журнала отказа Ассамблеи bind, Установите значение реестра [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) Кому 1.
Примечание: Есть некоторые производительности, связанные с регистрацией отказа Ассамблеи bind.
Чтобы отключить эту функцию, Удалите значение реестра [HKLMSoftwareMicrosoftFusion!EnableLog].

Устранение проблем с службы Windows SharePoint Services.

Я знаю, как намеренно вызвать эту ошибку: не устанавливать сборку в глобальный кэш сборок. Но, Он был в GAC. Я обычно установить сборки в GAC, перетащив их в c:\windowsassembly папку с помощью проводника windows. Я никогда не чувствовал 100% комфортабельный делать, потому что я всегда думал что gacutil существовала по причине … так что я попытался что. Он сделал никакой разницы.

Я искал Интернет и нашел этот пост: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

Плакат случилось с использовать же корня кусок кода (из WSS внутри книги из этого списка) так что было обнадеживающим. Однако, предложение украшения с Ассамблее [Ассамблея: ] Директива не имеет смысла для меня. Я попробовал его в любом случае, и я был прав. Он сделал никакой разницы.

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

Следующая, Я пошел на проблемы предоставления журнал неудачи bind Ассамблея"" (После полезной и точной инструкции) и это то, где вещи начали получать интересные. Журнал показывает мне, что среда выполнения ищет повсюду на этом сервере для моей сборки. Кажется, даже искать его в моей аптечке. Но … Он не будет его поиск в глобальном кэше сборок.

Я положил на моем Зимняя куртка и идти поиск Internets снова и найти, что кто-то имел эту проблему слишком. Продолжительные дискуссии в этой публикации Питерс покинуть в ничто, и я не могу найти решение.

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

Не удается создать объект функция приемника от Ассамблеи «xyzzyFeatureReceiver_0», Тип "Conchango.xyzzyFeatureReceiver" для функции b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Значение не может быть пустым.
Имя параметра: Тип
в System.Activator.CreateInstance(Тип type, Логический параметр nonPublic)
в System.Activator.CreateInstance(Тип type)
в Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Устранение проблем с службы Windows SharePoint Services.

Время одной последней поездки в Интернет!

На этот раз я узнать, достаточно предсказуемо, этой ошибки Мосс потому, что данная сборка не находится в глобальном кэше сборок.

Я хочу получить что-то положительное из этого и пытаются чувствовать себя немного горд, что я создал Беглец сборок MSIL, но он не работает. Я просто раздражает. Я считаю себя бормотание "курица или яйцо" под мое дыхание.

Я, наконец, решили Пунт. Я создать совершенно новый проект и копировать/вставить код из incredible-cloaked-from-the-GAC-assembly проекта не работающие над этот новый проект. (Я смотрю на сборки флага, под названием что-то вроде "скрыть от Ассамблеи, в том случае, если установлена в глобальный кэш сборок" но не могу найти один).

Я установить и активировать ее и … Он работает! Таким образом, После всего этого, Мне пришлось в основном ' перезагрузки’ Мой проект. Это еще одна причина, почему я ненавижу компьютеров.

Я узнал что-то полезное из этого. Я была установка компонентов с использованием командной строки stsadm весь день и были с использованием "-сила" вариант по привычке. По некоторым причинам, Я не использовать параметр - force когда я установил новый проект. На этот раз, Я сделал на самом деле, действительно, забудьте скопировать этот новый проект сборки в GAC. В результате, Я получил "FielNotFoundException" Ошибка. На этот раз, Я получил его от stsadm, не тогда, когда я пытался активировать функцию через веб-браузер. Таким образом, -сила на самом деле играет две роли. Это позволяет повторно установить существующий компонент. Она также позволяет установить функцию багги, которая не может работать во время выполнения путем подавления ошибки. Он, вероятно, говорит столько в помощь где-то, но я не заметил.

</конец>

Быстрый & Легко: Переименуйте загруженный файл, с помощью объектной модели SharePoint через получатель событий

ОБНОВЛЕНИЕ: Это работает, но есть существенные ограничения, которые описаны в комментарии. Это все еще может быть полезным в некоторых свержению.

ОБНОВЛЕНИЕ 2: В моем текущем проекте, Пользователи всегда загружать документы. В результате, Я не столкнуться с проблемой, где MS Word выполняется и думает, что файл был переименован на нем. Я побежал в проблему, "файл был изменен кем-то еще" и решить это через простой семафор типа флаг. Пользователи должны изменить поле данных мета от его значения по умолчанию для что-то другое. Itemupdated() приемник ищет допустимое значение до фактического выполнения rename и с тех пор, У меня не было никаких проблем. Ваш пробег может варьироваться.

У меня есть клиент требование, чтобы изменить имя файлов, загруженных в определенной библиотеке документов в соответствие с конкретной именования. API не поддерживает переименование»()" метод. Вместо этого, Мы используем "MoveTo(…)". Вот немного минимального кода для выполнения этой:

 государственные Переопределение void ItemAdded(SPItemEventProperties Свойства)
        {
            SPFile f = свойства.ListItem.File;

            f.moveTo(Свойства.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc");
            f.Update();

        }

Только хитростью является «свойства. ListItem.ParentList.RootFolder.Url». MoveTo() метод требует URL-адреса. Это пюре строка указывает меня к корневой папке моей текущей библиотеки документов. Это позволяет мне избежать любого жесткого кодирования в моем приемник событий.

Это более полезным версия, которая делает то же самое, но присваивает имя файла «Титул»:

 государственные Переопределение void ItemAdded(SPItemEventProperties Свойства)
        {
            DisableEventFiring();

            // Присвойте название данного пункта на имя самого файла.
 // ПРИМЕЧАНИЕ: Это назначение должно иметь место до того, как мы изменить сам файл.
 // Вызов обновление() на SPFile кажется недействительным свойства в
 // Некоторые чувства.  Обновления для "название" не удалось пока что изменения (и обновление() звонок)
 // были перемещены за изменения в имени файла.
            Свойства.ListItem["Название"] = Свойства.ListItem.File.Name;

            Свойства.ListItem.Update();

            SPFile f = свойства.ListItem.File;

            // Получить расширение файла.  Нам нужно, что позже.
 Строка spfileExt = Новые функции FileInfo(f.Name).Расширение;

            // Переименуйте файл Идентификатор элемента списка и использовать расширение файла для сохранения
 // Эта часть его нетронутым.
            f.moveTo(Свойства.ListItem.ParentList.RootFolder.Url +
                "/" + Свойства.ListItem["ID"] + spfileExt);

            // Совершить переезд.
            f.Update();

            EnableEventFiring();
        }

Быстрый Подсказка: Веб-часть запроса содержимого, Значение столбца подстановок и XSL

У меня есть имя столбца в тип содержимого с именем «Недвижимость места».

Этот столбец имеет тип «поиск».

Я изменил <CommonViewFields> и ItemStyle.xsl для отображения столбца.

Простой <XSL:стоимость-выберите =…> Возвращает внутреннее значение, которое включает в себя данные порядковый номер, Например:

1;#Майами

Чтобы получить значение ориентированной на человека, использовать xsl подстроки после, как показано:

<XSL:( @ Real_x005F_x0020_Estate_x005F_x0020_Location, «#») ">< / xsl:Стоимость от >(@ Real_x005F_x0020_Estate_x005F_x0020_Location,’#’)"></XSL:Стоимость от>

Использовать этот метод, когда вы работаете с подстановочными значениями в преобразований XSL и нужно получить значение ориентированной на человека.

<конец />

Бирки Technorati: , ,

Быстро и легко: Определяет внутреннее имя столбца из столбца узла

ОБНОВЛЕНИЕ: Джереми Thake есть blogged об этом и поставить вверх некоторые код для консольного приложения Это показывает внутренние имена.

Я пытался получить запрос содержимого веб-части для отображения даты из задачи и потому что экран метка «Срок», Я предположил, что имя столбца для использования в <CommonViewFields> — «Due_x0020_Date».

Неправильно!

Имя реального столбца в данном случае был «DueDate».

Как узнали? Я перечитал Хизер Соломон в блоге запись на изменении CQWP Показать дополнительные столбцы данных. Она описывает этот процесс на шаге #13. Доверяю. Это правильно. По крайней мере, Это был правильный для меня. Я не доверял его сначала для другого столбца с именем гораздо больше.

Я говорю "доверяю" потому что я не доверяю и вероятно впустую вблизи два часа бодаться головой к стене. После того, как я решил DueDate»" имя, Я хотел бы добавить еще одно поле для <CommonViewFields>. С использованием метода Соломона, Я получаю имя столбца как «XYZ_x0020_Project_x0020_Due_x00».

Я подумал, Это, безусловно, усеченное имя. Я пошел вперед и снимите усеченного его без успеха. Наконец я использовал казалось бы усеченное имя, и она работала.

Бонус Подсказка: Когда я работал с CQWP, Если я добавил Бад внутреннее имя для <CommonViewFields>, CQWP скажет мне, что запрос вернулись результаты не. Но, Если я добавил в тип данных в имени поля, Он будет возвращать результат. Добавление данных тип фактически масках является проблемой, так как я ссылки на несуществующие поле. Я мог бы добавить, но когда я попытался показать его значение, Я всегда хотел бы получить чистую.

Это не скрывать ошибки:

<CommonViewFields>Due_x0020_Date;</CommonViewfields>

Это маскировать ошибки:

<CommonViewFields>Due_x0020_Date,DateTime;</CommonViewfields>

</конец>