Категория Архивы: InfoPath 2007 // Сервер форм

Сравнение без учета регистра в InfoPath

Я написал статью для SharePointBriefing.com и они поставили его живут сегодня.

Вот дразнилку:

image

Проверить это.

</конец>

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

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Бирки Technorati:

Быстрый хит: Чтение InfoPath XML непосредственно из SPListItem в SharePoint

Я был работает над проектом, где мне нужно извлекать вложения из формы InfoPath. Есть некоторые хорошие ресурсы для разбора формы InfoPath (которые являются просто XML-файлов, так что на самом деле довольно легко).

В то время как я строил проекта, Я начал загрузки формы InfoPath и сохранив его на мой локальный жесткий диск. Мой код c# чтении непосредственно из этого экземпляра. Однако, формы InfoPath действительно живут внутри в библиотеке форм SharePoint. Я сделал немного половину сердцем поиска, чтобы узнать, как читать его непосредственно из библиотеки и почти сдался, в этом случае я бы сохранить форму в локальный каталог temp и прочитать его оттуда. Однако, Существует не нужно идти через эти обручи, как вы можете прочитать его непосредственно из библиотеки. Этот маленький фрагмент показывает, как:

/// Класс определения вещи здесь, включая:
частные SPFile mySharePointFile; /* Частью SPList */
// Здесь находится более код и внутри метода класса у нас:
XmlTextReader textReader;
textReader = Новые функции XmlTextReader(mySharePointFile.OpenBinaryStream());

textReader.WhitespaceHandling = WhitespaceHandling.Нет;

textReader.Read();

// Если узел имеет значение

во время (textReader.Read())
{

... и так далее и так далее...

Они основные бит выше, что мы можем читать InfoPath непосредственно через OpenBinaryStream() вызов метода на SPFile как параметр в конструктор на XmlTextReader. Он прекрасно работает.

</конец>

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

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Бирки Technorati:

Программно извлекать вложения из форм InfoPath (Включая их имена!)

У меня есть счет записи решение для клиента, который использует InfoPath и рабочего процесса. В один момент во время процесса утверждения, Мне нужно для получения электронной почты, который имеет все, что хорошее данных InfoPath, а также вложения, сами так, что (вздох) кто-то может считать, что данные и вручную восстановить его в приложение базы данных Oracle.

Это не очень трудно получить в или разобрать формы InfoPath. Я не знаю, как для обработки вложений, Однако. После часа или двух ковыряться в интернетах (вечность!) Я нашел эту статью: http://support.microsoft.com/kb/892730

Он обеспечивают удобный код для извлекать вложения из узла в форме. (Вам все еще нужно найти узел и все, что, но это просто синтаксического анализа XML).

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

Я на самом деле обнаружил, что довольно рано, но я был отложен ее раздвоение личности. С одной стороны, статьи * говорит * это хорошо для InfoPath 2007. Тем не менее, код и инструкции являются все о Visual Studio 2003 и ссылки на InfoPath 2003.

Нижняя линия, код, который статья условии работает хорошо для меня (пока что). Я могу получить мои формы InfoPath, Я могу разобрать его, Я могу найти и декодировать вложение, и я знаю его имя. Что еще можно одним спросить жизни?

</конец>

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

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Бирки Technorati: ,,

Если вы беспокоитесь, что среде SharePoint может быть tad нездоровым, Позвольте мне помочь вам исправить с проверка здоровья.

Управление группами утверждения с InfoPath в среде FBA

У меня есть процесса утверждения расходов, что мне нужно реализовать с помощью InfoPath в проверке подлинности на основе форм (FBA) окружающей среды с использованием служб форм (веб InfoPath).

Существует две группы утверждения и как работает процесс:

  • Пользователь заполняет отчет о расходах и представляет ее на утверждение.
  • Что вызывает email к первой группе уровня утверждающего.
  • Первого уровня утверждающего обзоры и утверждает или отклоняет доклад.
  • Если первый уровень человек утверждает его, система уведомляет второго уровня утверждающего.

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

В среде FBA имя пользователя() функция всегда возвращает пустой, к сожалению. Что я сделал настройки настраиваемого списка под названием «Утверждение групп».

Я не добавлять какие-либо дополнительные столбцы в список.

Когда форма открывается, Она имеет правило, как это:

image

«Установите значение поля» находится здесь:

image

В основном это говорю: Запрос утверждения группы настраиваемого списка и фильтр, запрашивающие, глядя на любой строке где Title в значение = «NORDIC».

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

Закройте петли, защита отдельных элементов в списке Группа утверждения. Во время выполнения, Если текущий пользователь не имеет надлежащей безопасности доступа к этому элементу затем запрос не возвращает его, Длина строки будет равен нулю, и теперь вы знаете, текущий пользователь не является частью этой группы. Вы можете использовать этот факт при необходимости в форме.

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

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

</конец>

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

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Бирки Technorati: ,

InfoPath // Одним из объяснений "необработанного исключения при отображении формы System.Xml.XmlException: Неожиданный конец файла при разборе имя произошла. “

Я сегодня работает в InfPath форме и побежал против старого друга, «Необработанное исключение при отображении формы System.Xml.XmlException: Неожиданный конец файла при разборе имя произошла".

Это случилось со мной, долгое время назад, и я не знаю, что именно я сделал, чтобы решить ее. Честно говоря, Я думаю, что переход на новый проект и никогда не видел это одно решена (Моя замены пришлось иметь дело с этой головной боли). Помните, что это был дьявол проблемы. Я провел несколько неудачных дней, справиться с ним. С тех пор, Я видел это прийти на форумах MSDN по крайней мере один раз за последний год и действительно не видел ответ для него.

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

В моем случае, Эта проблема была вызвана эти шаги:

  1. Добавьте новый элемент в источнике данных как текстовое поле.
  2. Поместите его на форму.
  3. Изменить его отображения в раскрывающемся списке.
  4. Скажите раскрывающегося списка для извлечения значений из пользовательского списка SharePoint.

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

</конец>

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

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Бирки Technorati:

Вставлять примечания для разработчиков приложений внутри формы InfoPath

Я до сих пор живет в мире формы InfoPath и мне нужно было сделать один из этих «small» изменений в форму,, к сожалению, влезает именования, которое я принял с ним две недели назад. Я подумал, «кто-то будет смотреть на эту вещь в год от теперь и говорю, «То, что думал пол? По Jove, его именования не имеет смысла!”

Я понял, что я мог бы создать представление в форме для этого и затем, Снова, понял, что я мог делать что-то вроде это все вместе. Я добавил представление «Заметки разработчика» в форме InfoPath как таковой:

image

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

</конец>

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

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Бирки Technorati:

Управление представления InfoPath

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

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

image

Я желаю что я делал это все вместе.

</конец>

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

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Бирки Technorati:

Услуги формы InfoPath, Аутентификация на основе форм (FBA) и уникальные имена файлов

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

Колодец, Эта функция не работает в среде выполнения агента FBA (по крайней мере, не из коробки). И, После некоторых размышлений, с помощью имя пользователя в том, что я планировал бы не гарантирует уникальное имя файла в любом случае.

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

image

image

Преимуществом этого подхода является, что имя файла задается только один раз. (Я не показывать его на снимке экрана, но поставить условие на правило только огонь, когда «myFilename» является пустым). Я использовал, чтобы задать имя файла на уровне источника данных. Обычно, Я хотел бы сделать что-то (Бад) Типа того:

image

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

Таким образом, как раздражает, как агент FBA может быть в целом и с InfoPath в частности, Это заставило меня переосмыслить небольшой, но очень важные технические детали и подход, что я бы не сделал иначе!

</конец>

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

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Бирки Technorati:

Быстрый и простой: Сделать только чтение формы InfoPath (Служба InfoPath Forms Services в Мосс)

Существует общий сценарий бизнес, как этот:

  • Пользователь заполняет формы InfoPath.
  • Отправляет форму.
  • Длительный рабочий процесс от ударов.
  • Во время выполнения рабочего процесса, Мы не хотим кому бы то ни было изменять содержимое формы.

Этот пример office.microsoft.com Описывает, как создать отдельный вид"" и Марк весь вид как доступное только для чтения. Это реальные подход, но имеет тот недостаток, что вы эффективно создали две версии всей той же формы и должны теперь держать их в синхронизации вручную. При добавлении поля в представление редактирования, Затем необходимо добавить его в представление нередактируемой также. Со временем, с разными разработчиками, Там может быть некоторое расхождение.

Эта альтернатива может работать лучше в некоторых случаях:

  • Добавление нового поля в форму под названием «IsEditable».
  • Его значение по умолчанию присвоено значение true.
  • Поощрять его при публикации Мосс.
  • В рабочем процессе, Установите значение IsEditble равным false.
  • Вернуться к форме.
  • Добавить правило, "после открытой формы", отключить кнопку ваш сохранить, когда IsEditable имеет значение false.

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

В одном проекте, Я создал состояние рабочего процесса"" вид. По мере развития процесса, Он будет обновлять особый статус поля, которые способствовали из формы. Когда пользователь открывает форму, "открытой формы" правило автоматически переключается на мнение и пользователь имеет приятный мало резюме статуса.

</конец>

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

Переключить вид на основе идентификатора пользователя В формы InfoPath

Мы имели развитые формы InfoPath с несколькими представлениями для поддержки новой Прокат / процесс адаптации. Когда компания нанимает нового лица, ИТ-отдел и другие группы необходимо принять меры (Настройка заработной платы, разрешить доступ к соответствующим приложениям, Найдите стол, и т.д.). Мы используем на форме, но различное представление формы для каждого из этих функций.

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

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

Шаги являются:

1. В режиме конструктора, перейти к инструменты-> Параметры формы-> Открытие и сохранение.

2. Выберите «правила».

3. Создайте новое правило, действия которого является «Перейти для просмотра" и состояние которых использует имя пользователя() функция.

имя пользователя() Возвращает «простой" имя пользователя без домена. Если войти в SharePoint с использованием учетных данных «domainpagalvin», имя пользователя() Возвращает «pagalvin».

Выбор контактов обеспечивает три бита информации для контакта. «AccountID" часть наиболее полезен для этого сценария. Единственное, что делает это даже немного проблема в том, что выбор контактов (в моей среде все равно) Возвращает идентификатор домена и пользователя, как и в «domainpagalvin». Это мешает нам делать условие равенства прямо вперед с AccountID («domainpagalvin») никогда не будет равным имени пользователя() («pagalvin»).

Мы можем обойти это с помощью "содержит" Оператор: AccountID содержит имя пользователя().

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

Мы бы действительно как автоматически переключить представление для других пользователей на основе членства в группе безопасности их объявление. Например, Когда членом «это аналитика" Группа обращается к форме, автоматически переключиться на вид аналитика ИТ. Нас не было времени для его реализации, но моя первая мысль является создание веб-службы, которая будет иметь метод как «IsMemberOfActiveDirectorySecurityGroup», Передайте имя пользователя() и возвращение обратно true или false. Кто-нибудь есть другие, более умная идея? Есть ли какой-либо функции SharePoint, которые мы можем использовать из InfoPath сделать это определение?

</конец>

Бирки Technorati: