Категория Архивы: Рабочий процесс SharePoint

Создание сайтов (SPWeb) через рабочий процесс SharePoint Designer

Этот блог вступления — это скорее "в области возможного" Вход vs. информация о конкретных.

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

Я большой поклонник декларативного рабочего процесса, а также слабый visual studio программист рабочего процесса, Поэтому я хотел бы встретиться с помощью SharePoint Designer требование.

Я планирую написать об этом более подробно (и мы надеемся представить группе пользователей или два в наступающем году), Но вот общего решения:

  • Создайте настраиваемое действие, которое интегрируется с СДПГ.
  • Настраиваемое действие позволяет ППД для вызова веб-службы и передать ему строку XML.
  • Веб-служба находит строку в списке пользовательских и создает новый сайт в соответствии данных для нового клиента с использованием настраиваемого определения сайта.
  • Веб-служба затем обновляет пользовательский список с некоторой информацией, такие как ссылки на новый сайт.

Мы рассмотрели другие подходы, Например, обработчики событий и рабочего процесса visual studio на основе. ЧП подход дает нашим пользователям немного больше контроля над процессом. Предоставлено, Существует много кода C# в этом решении, но завернутые внутрь декларативного рабочего процесса, Таким образом мы получаем некоторые из преимуществ декларативного рабочего процесса во время подключения к службе на создание сайта.

All we need now is an easy tool to automatically migrate SPD workflows around as easily as we can for visual studio workflows and we’ll really be cooking with gas 🙂 I understand that some folk are out there working on this problem and I hope they have some good success with it soon.

</конец>

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

Интеграция рабочих процессов SharePoint Designer с веб-службами

Я играл с пользовательских действий для SharePoint Designer для некоторое время (Смотрите здесь для некоторых подробный материал, Если это вас интересует).

В моем текущем проекте, нам необходимо сделать некоторые довольно тяжелую работу, и мы хотим использовать декларативный СПД рабочий процесс для управления связанного бизнес-процесса.

Длинная история короткой, Это вполне возможно. Я продлил мой проект Codeplex для вызова «вспомогательные службы" и теперь мы можем вызывать веб-службы непосредственно из рабочего процесса SPD.

Вот подпись:

 государственные Строка Диспетчер(
        GUID WebID, // Принят среды выполнения
        GUID SiteID, // Принят среды выполнения
        Строка ListID, // Принят RTE (не знаю, почему это строка, не GUID)
        int ListItemID, // Принят RTE.
        Строка XmlMessage) // Мимо пользователя, как было объявлено в СДПГ.

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

К сожалению, Это очевидно, что билет до «Loosey гуси" Anti-pattern земля, но это лучше, чем врезаться в кирпичную стену 🙂

Это антишаблоном, если вы делаете это, даже если вы знаете, что это антишаблоном?

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

</конец>

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

Бирки Technorati: ,

СДПГ рабочий процесс “Получить данные от пользователя”: Изменение формы созданные задачи

Я работаю над проектом, который использует пять различных рабочих потоков SharePoint Designer для обработки некоторых утверждения документа. СПД предоставляет "собирать данные от пользователя" действий, что мы можем запрашивать пользователя информации, такие как ли они одобряют это, некоторые комментарии и возможно спросить то, что они на обед еще ночью,.

Формы являются прекрасно функциональных. Они привязаны к список задач как тип содержимого. Они являются 100% генерируемые системой. Это их сила и слабость. Если мы можем жить с формой по умолчанию, Затем мы хорошо идти. Однако, у нас не слишком много контроля над как СПД создает форму. Если нам не нравится, что поведение по умолчанию, Мы должны прибегать к различные уловки для того чтобы получить вокруг него (Например, Установка приоритета задачи).

Мне необходимо предоставить ссылку на эти формы задач, которые открыли свойства представления (DispForm.asxp) "соответствующего пункта" в новом окне. Это обеспечивает доступ одним щелчком к мета-данные соответствующего пункта. Это то, что я имею в виду:

изображение

К счастью, Мы можем сделать это и это не очень трудно. В целом, Сгорите вверх СДПГ, Перейдите в каталог, что дома файлы рабочего процесса и откройте ASPX-файл, который вы хотите изменить. Это просто классический Инструкции XSL преобразования, и если вы сброшенные с itemstyle.xsl, Поиск или другие сценарии XSL, Это будет легко для вас. На самом деле, Я нашел его быть вообще проще, так как созданные формы несколько легче следовать по сравнению с основной веб-части результатов поиска (или кошмарный CWQP).

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

Тест 1:

  • Измените файл ASPX вручную.
  • Проверить его (Убедитесь, что ваши изменения были должным образом сохранены и не разорвать все).
  • Открыть рабочий процесс и добавить действие не связаны (такие, как «журнал истории»).
  • Сохранение рабочего процесса.

Результат: В этом случае, СДПГ не заново создать формы.

Тест 2:

  • Сделать то же самое, как #1 Кроме непосредственно изменить "сбор данных от пользователя" действия.

Результат: Это создает форму с нуля, перезаписывания изменения.

Заключительный примечания:

  • По крайней мере два действия СДПГ создавать формы, как этот: «Получить данные от пользователя" и «Назначить сделать элемент». Оба этих действия’ формы можно изменить вручную.
  • Я имел возможность создать мою ссылку для dispform.aspx, так как, в этом случае, связаны элемент всегда имеет свой ID, встроенных в связанный элемент URL. Я был в состоянии извлечь его, а затем построить <href> Основываясь на нее, чтобы обеспечить функцию доступа к данным мета одним щелчком. Маловероятно, что ваш URL следует этому правилу. Могут существовать и другие способы, чтобы получить идентификатор соответствующего пункта, но у меня не было, что мост, так что я не знаю, если получает на другую сторону пропасти.
  • Я не расследовать, но я бы не удивился, если есть какой-то файл шаблона в 12 куст, я мог бы изменить затрагивает как СДПГ генерирует формы по умолчанию (так же, как мы можем изменить оповещение шаблоны).

</конец>

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

Решение (вроде): Установить приоритет на задачу с помощью SharePoint Designer

У меня есть бизнес-сценарий как этот:

  • Пользователь загружает документ в библиотеку документов.
  • Она выбирает тип содержимого и вводит метаданные при необходимости. Одна из полей данных meta представляет собой флаг, «Срочный».
  • Это запускает рабочий процесс SharePoint Designer,, среди прочего, использует "собирать данные от пользователя" действия.

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

Мне было нужно для создания представления списка задач, который показал срочные запросы на утверждение.

Решение: Поместить слово «срочный:" в название этих задач.

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

  1. Сбор данных действий не предоставляет механизм для обновления любого поля за исключением названия (Эти дополнительные поля, для которых вы хотите для сбора данных и).
  2. "Назначение пункта" действия есть такая же проблема.
  3. Это позволяет вставить элемент в список (т.е.. вставить элемент в списке задач напрямую) но это не блокирующих действий. Это означает, что рабочий процесс не будет ждать для пользователя, чтобы завершить эту задачу.

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

  1. Запуск рабочего процесса в списке задач, сам, таким образом, чтобы при создании новой задачи, Он как-то крест ссылки обратно в документ, который начал первый рабочий процесс, pull out значение срочных флага и обновление приоритет при необходимости.
  2. Сделать что-то подобное с приемника событий. Создавать задачи, Найдите соответствующий документ и обновление приоритет при необходимости.
  3. Используйте "создать элемент списка" действий в связи с "ждать изменения полей" действий и приемника событий. Если мы создадим элемент списка, Мы можем указать все поля, которые мы хотим. Использование приемника событий для обновления исходного элемента, когда пользователь завершает задачу и «ждать изменения поля" будет выполнено условие действия и рабочий процесс будет проходить. (По некоторым причинам, Я более или менее поселились на этом подходе, прежде чем мудро погулять прочь в то время как).

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

Но, по крайней мере это решение, которое не требует получателей событий или пользовательские действия СДПГ.

Если кто-то решил это более умным способом, Пожалуйста, дайте мне знать.

</конец>

Быстро и легко: Автоматически открывать формы InfoPath из SharePoint Designer электронной почты

ОБНОВЛЕНИЕ: Madjur Ahuja указывает эту ссылку от Обсуждение новостей: http://msdn2.microsoft.com/en-us/library/ms772417.aspx. Это довольно окончательным.

===

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

Этот монстр URL строительных работ для меня:

HTTP://server/sites/departments/Technical Services/InformationTechnology/HelpDesk/_layouts/FormServer.aspx?XmlLocation=/sites/departments/Technical Services/InformationTechnology/HelpDesk/REC REM RED Forms/REC2007-12-18T11_33_48.XML&Источник = http % 3A % 2F % 2Fserver % 2Ecorp % 2Edomain % 2Ecom % 2Fsites % 2Fdepartments % 2FTechnical % 2520Services % 2FInformationTechnology % 2FHelpDesk % 2FREC % 2520REM % 2520RED % 2520Forms % 2FForms % 2FAllItems % 2Easpx&DefaultItemOpen = 1

Замените на имя формы текста полужирным красным, как показано на следующем снимке экрана:

изображение

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

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

</конец>

Говорит мне, Мосс “Доступ запрещен” для редактирования задачи рабочего процесса, Но у меня действительно есть доступ К

Я осуществляться рабочего процесса с помощью SharePoint Designer в сайте, который является главным образом только для чтения "NT_AUTHORITYAuthenticated пользователей" (т.е.. Каждый). Существует библиотека форм для формы InfoPath. Существует списка задач рабочего процесса, так что когда работает рабочий процесс, Он может назначать задачи людям.

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

Я тест с моим низким привилегии тестовой учетной записи.

Можно я заполните и сохраните форму в библиотеку? –> ДА

Можно получить задачу из ссылки электронной почты? –> ДА

Я могу увидеть связь задач рабочего процесса редактирования –> ДА

Можно я нажмите на эту ссылку? –> NO … Отсутствует разрешение.

Почему я могу увидеть ссылку edit, что лишает меня разрешение, когда я нажимаю на него? Это не как это должно работать…

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

Наконец, Поиск Интернет. Я нахожу это весьма маловероятно ветке форума MSDN: http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=1838253&SiteID=17

Плакаты, по-видимому, о том, что простой акт экспорта рабочий процесс в блюде диска будут устраняться проблема безопасности Мосс? Я вряд ли могу поверить, что я только что ввели. Я вспоминаю Южный парк эпизод о 9/11 заговор, где Стэн просит наш Preznit, "Действительно?" снова и снова.

Таким образом, ничего не потеряет, Я запустить СДПГ, Щелкните правой кнопкой мыши на рабочий процесс и сохранить его на моем c:\ привод. Это было бы c:\ диск на моем ноутбуке. Я ищу через мое плечо все время, так что никто не будет спрашивать меня, "почему вы спасаете этот рабочий процесс для вашего ноутбука?"

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

Я настоящим назначить это будет наиболее странных рабочего процесса обхода из 2007.

</конец>

SharePoint Designer, Текущий элемент “Кодированные абсолютный URL-адрес” и HTTPS

Мы часто хотим отправить по электронной почте, которая включает в себя гиперссылки на элемент или документ, который вызвал рабочего процесса. Мы можем использовать текущий элемент "закодированы абсолютный URL-адрес" для этой цели. Однако, Он всегда кажется, чтобы использовать "http" для URL-адреса протокола. Если ваш сайт работает на HTTPS, то он не будет работать для вас.

изображение

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

Для ее решения, Создание настраиваемого действия, которое предоставляет функцию заменить строку для использования в рабочем процессе. В качестве альтернативы, Используйте 3rd партия такое средство как отличные пакет здесь: http://www.codeplex.com/spdwfextensions 🙂

</конец>

SharePoint Designer электронной почты отправляет ???? в электронной почте

Иногда спрашивают пользователей форума: Почему SharePoint Designer поставить ???? в моей электронной почте вместо значения поля?

Одна из причин, по которой это происходит это потому, что переменная, на которую вы ссылаетесь является null.

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

<конец />

Сравнение / Тест для пустых даты в SharePoint Designer рабочий процесс

Сценарий: В рабочем процессе SharePoint Designer, Вам нужно определить, является ли пустым поле даты.

Проблема: СПД не обеспечивает прямой метод для сравнения дат для ничего, кроме даты. Нельзя создать условие как это: «Если [DateField] равно пустой».

Решение: Преобразование даты в строку. Использовать сравнение строк, чтобы определить, если дата является пустым.

Снимки экрана:

На следующих снимках экрана показано, как это сделать. В этом случае, в поле на элемент, «Экологические разрешения:Первые позволяют Дата напоминание», представлен и рабочего процесса запускает в ответ.

изображение

изображение

Примечания:

Когда я попытался это, Я был приятно удивлен узнать, что он работает. Я был обеспокоен тем, что SharePoint Designer может запретить строку назначения (Переменная:StringReminderDateDate) но она позволяет это.

Я был также обеспокоен тем, что позволяет ему, значение может быть null и либо взорвать WF во время выполнения или возможно повышение глобальной температуры 1/2 степень, но эти опасения необоснованны.

</конец>

Рабочий процесс SharePoint Designer настраиваемого действия — Наблюдения О <FieldBind Конструктор Type =”Класс StringBuilder” … />

Просто быстро наблюдения, что существует весьма важное различие между этими двумя определениями:

<Поле FieldBind = "InParam1" DesignerType = "StringBuilder" ID = "2" Текст = «Параметр Input # 1» />

сравнению с:

<Поле FieldBind = "InParam1" ID = "2" Текст = «Параметр Input # 1» />

Первый показывает как это в СДПГ:

изображение

во время последнего шоу, как этот:

изображение

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

Это наблюдение: Класс StringBuilder позволяет создавать строки (Очевидно, что) смешивая воедино строковых литералов и данные рабочего процесса (через "добавить подстановку" кнопку в левом нижнем углу). Когда вы используете кнопку Добавить подстановку, Вставляет маркер в форме"[%маркер %]". Когда SharePoint вызывает настраиваемое действие, (Код C# в моем случае), SharePoint проходит сам маркер, не значение маркера. Если вы используете тип конструктора по умолчанию (второй тип), SharePoint расширяет маркер и передает фактическое значение маркера в ваши действия.

Класс StringBuilder = плохо, по умолчанию тип конструктора = хорошее.

Конечно, Это не то, что я имею в виду действительно. Только не пытайтесь и передать параметр для пользовательских действий, когда конструктор типа = StringBuilder. Используйте тип конструктора по умолчанию и цепь StringBuilder для него вверх-противостоьте если вам нужно построить сложные строки в рабочем (Кстати это именно то, что один делает для создания динамической теме для действия электронной почты, но это тема для другой записи блога, Хар Хар).

<конец />