KeyWeb

При разработке Workflow в Visual Studio встала задача кастомизации Task формы, таким образом назрело решение - создать новую форму в InfoPath и привязать эту форму к текущему рабочему процессу.

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

Создание формы

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

  • свойства формы;
  • публикация формы;

У меня получилась такая форма:

myform

Настройка формы

  • Свойства формы необходимо выставить значения Security and Trust - Domain;
  • Совместимость - Web Browse Form;

formprops

formprops2

Публикация формы

  • Publish form to a network location of file share;

publish

  • Следующее поле необходимо оставить пустым;

publish2

  • В появившемся предупреждении необходимо нажать Ок;
  • В финальном окне необходимо нажать - Publish;
  • Должно появиться сообщение о успешной публикации;

publish5

Добавление формы в проект

Предполагается что проект уже создан, необходимо только "подцепить" форму.

  • Добавляем новый модуль - Add - New Item... с названием - Forms;

addmodule

  • В модуль добавляем опубликованную форму - Add - Existing Item...

existingitem

Конфигурация - Feature1.Template.xml

<feature id="e8df4fe3-9e06-40aa-bf6c-08c387be9adc" scope="Site" receiverassembly="Microsoft.Office.Workflow.Feature, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" receiverclass="Microsoft.Office.Workflow.Feature.WorkflowFeatureReceiver">
  <properties>
    <property key="GloballyAvailable" value="true">
   </property>
  <elementmanifests>
    <elementmanifest location="Workflow1\Elements.xml">
    <elementmanifest location="Forms\Elements.xml">
 <elementfile location="Forms\TeamTask.xsn">
    </elementfile>
</elementmanifest>
</elementmanifest></elementmanifests></properties></feature>

Конфигурация - Elements.xml (Workflow)

<elements>
  <workflow name="ReportWF - Workflow1" description="My SharePoint Workflow" id="19cebc4d-d68c-4204-8646-b9325c3a4afd" codebesideclass="ReportWF.Workflow1.Workflow1" codebesideassembly="$assemblyname$" tasklistcontenttypeid="0x01080100C9C9515DE4E24001905074F980F93160" modificationurl="_layouts/ModWrkflIP.aspx">
    <categories>
    <metadata>
      <associationcategories>List</associationcategories>
      <task0_formurn>urn:schemas-microsoft-com:office:infopath:TeamTask:-myXSD-2010-11-23T09-53-29
      <statuspageurl>_layouts/WrkStat.aspx</statuspageurl>
    </metadata>
  </categories>
</workflow>
</elements>

Где Task0_FormURN - ID созданной формы.

Конфигурация - Elements.xml (Forms)

<elements>
  <module name="Forms" url="FormServerTemplates" rootwebonly="TRUE">
  <file path="Forms\TeamTask.xsn" url="Forms/TeamTask.xsn" type="GhostableInLibrary">
</file>
</module>
</elements>

После запуска рабочего процесса и инициализации задачи:

testtask

Детали данной задачи уже можно просмотреть в новой форме:

pubform

Добавить комментарий


Обновить
Защитный код

KeyWeb

Сейчас 62 гостей и ни одного зарегистрированного пользователя на сайте

Вверх
Вниз