Microsoft has published a very good Walkthrough on how to create a Workflow for SharePoint 2007 and using InfoPath Forms for custom user interaction.
But they where a bit vague on explaining the configuration surrounding the InfoPath Forms, as they left out how to register the Form in SharePoint. Here are some clarifications.
- The InfoPath Form Template ID that are used in workflow.xml/Elements/MetaData/*_FormURN elements are found in InfoPath,
File > Properties. The "Properties" menu item exists only when opening InfoPath in Design-mode, todo that right click on the xsn file and select "Design" in the context menu.
- Before installing your feature it's always good to verify that the published form will work correctly in your SharePoint instance using the StsAdm tool:
"stsadm -o verifyformtemplate -filename MyFeature\MyForm.xsn"
If you have created your Workflow project from the Visual Studio 2005 "SharePoint Server Seq. Workflow" project there is an installation .bat file created called PostBuildActions.bat which contains this line, but it's commented. You just need to uncomment it and change the path to your form.
- When installing the feature you should put the Template Form(s) inside your feature folder. (...\web server extensions\12\TEMPLATE\FEATURES\MyFeature\)
- You need to register your InfoPath Forms in SharePoint, which is done thru the feature.xml, by putting a Property element with the "RegisterForms" directive, and the relative path to the form(s) from your feature folder. This example registers all forms in the feature root folder.
<Feature Id="54178F4E-80E6-4c26-835C-2533060FFD74" .... >
<Property Key="RegisterForms" Value="*.xsn" />
Walkthrough: Creating Office SharePoint Server 2007 Workflows in Visual Studio 2005
MSDN Articles: InfoPath Forms for Workflows