<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>FredSpace &#187; Workflow</title>
	<atom:link href="http://fyeomans.wordpress.com/tag/workflow/feed/" rel="self" type="application/rss+xml" />
	<link>http://fyeomans.wordpress.com</link>
	<description>Random thoughts from Fred</description>
	<lastBuildDate>Mon, 16 Nov 2009 05:20:45 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='fyeomans.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/9185ad3826bfb4a84a39ad9bd8cbe9a4?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>FredSpace &#187; Workflow</title>
		<link>http://fyeomans.wordpress.com</link>
	</image>
			<item>
		<title>Working with Association Data in MOSS Workflows</title>
		<link>http://fyeomans.wordpress.com/2009/07/29/working-with-association-data-in-moss-workflows/</link>
		<comments>http://fyeomans.wordpress.com/2009/07/29/working-with-association-data-in-moss-workflows/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 14:39:26 +0000</pubDate>
		<dc:creator>Fred</dc:creator>
				<category><![CDATA[MOSS]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Workflow]]></category>
		<category><![CDATA[Accessing]]></category>
		<category><![CDATA[Association]]></category>
		<category><![CDATA[Custom]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Initiation]]></category>

		<guid isPermaLink="false">http://fyeomans.wordpress.com/2009/07/29/working-with-association-data-in-moss-workflows/</guid>
		<description><![CDATA[I received a couple of comments in response to me previous post on Custom Association and Custom Initiation forms regarding how to use the Association and Initiation data collected, from within the workflow code. I had answered in my responses that you just access the AssociationData and InitiationData members of the WorkflowProperties, which return the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fyeomans.wordpress.com&blog=730098&post=382&subd=fyeomans&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I received a couple of comments in response to me previous post on Custom Association and Custom Initiation forms regarding how to use the Association and Initiation data collected, from within the workflow code. I had answered in my responses that you just access the <em>AssociationData</em> and <em>InitiationData</em> members of the <em>WorkflowProperties</em>, which return the data as XML strings. You then just work with that XML as required. </p>
<p>Here I will present some sample code for actually working with the XML coming from the custom <em>AssociationData</em>.</p>
<p>First, I would like to step back though and look at designing the Association Data. Typically when working with any InfoPath form, I start from the data side, and develop an XML Schema for the data (ideally, this is done as part of the overall design of the solution being developed, and includes all of the data design for the solution). The code snippet below shows the schema I developed for this example.</p>
<blockquote><p>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;     <br />&lt;xs:schema targetNamespace=&quot;<a href="http://t4g.com/TestSchema.xsd&quot;">http://t4g.com/TestSchema.xsd&quot;</a>      <br />&#160;&#160;&#160; elementFormDefault=&quot;qualified&quot;      <br />&#160;&#160;&#160; xmlns=&quot;<a href="http://t4g.com/TestSchema.xsd&quot;">http://t4g.com/TestSchema.xsd&quot;</a>      <br />&#160;&#160;&#160; xmlns:mstns=&quot;<a href="http://t4g.com/TestSchema.xsd&quot;">http://t4g.com/TestSchema.xsd&quot;</a>      <br />&#160;&#160;&#160; xmlns:xs=&quot;<a href="http://www.w3.org/2001/XMLSchema&quot;">http://www.w3.org/2001/XMLSchema&quot;</a>      <br />&gt; </p>
<p>&#160; &lt;xs:element name=&quot;AssociationInitiationData&quot; type=&quot;AssociationInitiationDataType&quot; /&gt;     <br />&#160; &lt;xs:complexType name=&quot;AssociationInitiationDataType&quot;&gt;      <br />&#160;&#160;&#160; &lt;xs:sequence&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;xs:element name=&quot;TaskDescription&quot; type=&quot;xs:string&quot; /&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;xs:element name=&quot;AssignTo&quot; type=&quot;xs:string&quot; /&gt;      <br />&#160;&#160;&#160; &lt;/xs:sequence&gt;      <br />&#160; &lt;/xs:complexType&gt;       <br />&lt;/xs:schema&gt;</p>
</blockquote>
<p>Note that this schema represents both the Association Data structure, as well as the Initiation Data. It is necessary for these two to share a schema and namespace, though the Association form need not populate all of the fields. </p>
<p>A Custom Association Form can then be developed in InfoPath based upon this schema, and deployed as described in my previous post. </p>
<p>Now, how do we access this Association Data from within our workflow?</p>
<p> I implemented a simple serializable class matching the schema, as shown below.&#160; </p>
<blockquote><p>[Serializable()]     <br />public class AssociationData      <br />{      <br />&#160;&#160;&#160; private String _TaskDescription;      <br />&#160;&#160;&#160; private String _AssignTo; </p>
<p>&#160;&#160;&#160; public String TaskDescription     <br />&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; get      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return this._TaskDescription;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; set      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this._TaskDescription = value;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160; } </p>
<p>&#160;&#160;&#160; public String AssignTo     <br />&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; get      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return this._AssignTo;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; set     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this._AssignTo = value;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160; }      <br />}</p>
</blockquote>
<p>I also implemented a helper class (creatively named) to support loading the Association Data into this class (note that this helper handles both the Initiation and Association data):</p>
<blockquote><p>public class Helper     <br />{      <br />&#160;&#160;&#160; public static InitiationData DeserializeInitiationData(string xmlString)      <br />&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; using (MemoryStream stream =      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; new MemoryStream(Encoding.UTF8.GetBytes(xmlString)))      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; XmlSerializer serializer =      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; new XmlSerializer(typeof(InitiationData), &quot;<a href="http://t4g.com/TestSchema.xsd&quot;);">http://t4g.com/TestSchema.xsd&quot;);</a>      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; InitiationData data =      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; (InitiationData)serializer.Deserialize(stream);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return data;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160; } </p>
<p>&#160;&#160;&#160; public static AssociationData DeserializeAssociationData(string xmlString)     <br />&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; using (MemoryStream stream =      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; new MemoryStream(Encoding.UTF8.GetBytes(xmlString)))      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; XmlSerializer serializer =      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; new XmlSerializer(typeof(AssociationData), &quot;<a href="http://t4g.com/TestSchema.xsd&quot;);">http://t4g.com/TestSchema.xsd&quot;);</a>      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; AssociationData data =      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; (AssociationData)serializer.Deserialize(stream);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return data;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160; } </p>
<p>} </p>
</blockquote>
<p>Given these two classes, it is then simple to access the Association Data from within the workflow. For example, add a private member to the workflow class:</p>
<blockquote><p>private AssociationData _associationData; </p>
</blockquote>
<p>Then from within the <em>onWorkflowActivated</em> activity, add the following code:</p>
<blockquote><p>String AssociationDataXml = workflowProperties.AssociationData;     <br />_associationData = Helper.DeserializeAssociationData(AssociationDataXml); </p>
</blockquote>
<p>The association data can then be accessed from within our <em>_associationData </em>object as required. The Schema, and the AssociationData class definition, can be modified as required to add additional fields. </p>
<p>I was considering another post about doing the same thing for InitiationData, but it works exactly the same way. So unless someone really insists, I will not bother. </p>
Posted in MOSS, SharePoint, Workflow Tagged: Accessing, Association, Custom, Data, Initiation, MOSS, SharePoint, Workflow <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/fyeomans.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fyeomans.wordpress.com/382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/fyeomans.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/fyeomans.wordpress.com/382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/fyeomans.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/fyeomans.wordpress.com/382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/fyeomans.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/fyeomans.wordpress.com/382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/fyeomans.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/fyeomans.wordpress.com/382/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fyeomans.wordpress.com&blog=730098&post=382&subd=fyeomans&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://fyeomans.wordpress.com/2009/07/29/working-with-association-data-in-moss-workflows/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7273bb3c332576b15874f9a1b0fc91b1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Fred</media:title>
		</media:content>
	</item>
		<item>
		<title>First look at SharePoint 2010 for Developers</title>
		<link>http://fyeomans.wordpress.com/2009/07/20/first-look-at-sharepoint-2010-for-developers/</link>
		<comments>http://fyeomans.wordpress.com/2009/07/20/first-look-at-sharepoint-2010-for-developers/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 10:54:29 +0000</pubDate>
		<dc:creator>Fred</dc:creator>
				<category><![CDATA[MOSS]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Workflow]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://fyeomans.wordpress.com/?p=375</guid>
		<description><![CDATA[The past week has seen quite a bit of new information being published by Microsoft regarding Office 2010 and SharePoint 2010. This is just the start, I am sure, and by the time Office 2010 is released next year, we will probably all be getting sick of hearing about it (jk). A good place to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fyeomans.wordpress.com&blog=730098&post=375&subd=fyeomans&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The past week has seen quite a bit of new information being published by Microsoft regarding Office 2010 and SharePoint 2010. This is just the start, I am sure, and by the time Office 2010 is released next year, we will probably all be getting sick of hearing about it (jk). A good place to start getting a feel for SharePoint 2010 is to look at <a href="http://sharepoint.microsoft.com/2010/Sneak_Peek/Pages/default.aspx">SharePoint 2010 Sneak Peek videos</a> recently posted by Microsoft. </p>
<p>I had a look late last week at the new features from a general perspective – see my <a href="http://www.legalitprofessionals.com/index.php/col/columns-fred/704-a-first-look-at-sharepoint-2010">column</a> over at Legal IT Professionals. In this post I want to have a look at some of the new features for developers. I will give my take on what I saw in the videos, and also mention a few things that I was hoping to see but didn’t. </p>
<p>The Developer Sneak Peek Video covers a number of features of SharePoint 201 for developers:</p>
<ul>
<li>Visual Studio 2010 SharePoint tools </li>
<li>Language Integrated Query (LINQ) for SharePoint </li>
<li>Developer Dashboard </li>
<li>Business Connectivity Services </li>
<li>Client Object Model (OM) </li>
<li>Silverlight Web Part </li>
</ul>
<p>The Visual Studio SharePoint tools are intended to improve programmer productivity when developing for SharePoint. A major new feature is the Visual Web Part Designer. As the name implies, this tool lets you visually design your web part UI, rather than coding it or using something like SmartPart. While the demonstration in the video is extremely simple, this tool should greatly improve the process of developing Web Parts for SharePoint 2010.</p>
<p>The support for Feature and Solution packaging seems to be greatly improved as well, and actually looks like it is a real Visual Studio tool rather than an afterthought. </p>
<p>Microsoft has also added a SharePoint node to the Server Explorer in Visual Studio. This allows you to look at the structure and content of the SharePoint site you are targeting without having to bounce back and forth between IE and Visual Studio. </p>
<p>Another big feature is the Business Connectivity Services design tools for Visual Studio. This is a set of tools for implementing BCS entities from within Visual Studio, allowing a developer to do more sophisticated BCS development than is possible from SharePoint Designer. </p>
<p>Moving beyond Visual Studio, there are a number of other important enhancements for developers. </p>
<p>One of these enhancements is the Developer Dashboard. This is a component which is enabled by a sight administrator, and can be added to any SharePoint page to support development and debugging. It provides diagnostic information regarding including the detailed page request, timing information, information on Stored procedures called, as well as details regarding resource usage, authenticated user, web part timings, etc. This should be a big help in troubleshooting issues.</p>
<p>Another addition is the addition of the Client Object Model, a client-side API for interacting with data on the SharePoint server using JavaScript, .NET code, or Silverlight. </p>
<p>Speaking of Silverlight, there is now a built-in Silverlight Web Part to facilitate deployment of rich UI components. The video shows a nice demonstration using Silverlight, the Silverlight Web Part, and the Client Object Model.&#160;&#160; </p>
<p>While I definitely like what I see for developers in SharePoint 2010, there are a number of things I want to see but didn’t:</p>
<ol>
<li>The Visual Web Part Designer is great. I am curious, though, whether this tool will have any support for developing connectable web parts more easily? Creating the visual part of the Web Part is wonderful, but most useful web parts need to provide or consume connections. </li>
<li>Another thought on the Web Part Designer – does it have support for developing async behaviours, or does it still have to be duck-taped together? </li>
<li>Is there better support for development of Site Definitions, List Definitions, Content Types, etc.? This has remained a manual, tedious, and hence error-prone process. Similarly, is there support for editing of CAML for queries, etc.? </li>
<li>SharePoint Workflow development support. The tools for workflow development in SharePoint 2007 are “ok” as far as they go, but there remain a fair number of very manual, very “cludgey” steps that make it non-trivial to implement real-world workflows, including the mechanisms for developing and using custom ASP.NET association, initiation, and task forms. </li>
<li>Speaking of workflow, the execution environment for workflow in SharePoint is missing some pieces, most notably the tracking service. What has been added? </li>
<li>Rumour has it that SharePoint 2010 will be running over .NET 3.5, <strong>not</strong> .NET 4.0. Say it ain’t so! So SharePoint Workflow will not take advantage of the performance improvements in .NET 4.0 – what’s the point? </li>
<li>Does the Silverlight Web Part support connections? Or must any data flow into or out of the web part be done from within the Silverlight? </li>
</ol>
<p>Well, those are my first thoughts on SharePoint 2010 for developers. I can’t wait to see/learn more over the coming months.</p>
Posted in MOSS, SharePoint, SharePoint 2010, Software Development, Technology, Workflow Tagged: 2010, Development, SharePoint, Tools, Workflow <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/fyeomans.wordpress.com/375/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fyeomans.wordpress.com/375/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/fyeomans.wordpress.com/375/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/fyeomans.wordpress.com/375/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/fyeomans.wordpress.com/375/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/fyeomans.wordpress.com/375/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/fyeomans.wordpress.com/375/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/fyeomans.wordpress.com/375/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/fyeomans.wordpress.com/375/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/fyeomans.wordpress.com/375/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fyeomans.wordpress.com&blog=730098&post=375&subd=fyeomans&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://fyeomans.wordpress.com/2009/07/20/first-look-at-sharepoint-2010-for-developers/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7273bb3c332576b15874f9a1b0fc91b1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Fred</media:title>
		</media:content>
	</item>
		<item>
		<title>New column up on Legal IT Professionals</title>
		<link>http://fyeomans.wordpress.com/2009/06/03/new-column-up-on-legal-it-professionals/</link>
		<comments>http://fyeomans.wordpress.com/2009/06/03/new-column-up-on-legal-it-professionals/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 08:44:26 +0000</pubDate>
		<dc:creator>Fred</dc:creator>
				<category><![CDATA[Legal Technology]]></category>
		<category><![CDATA[MOSS]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Workflow]]></category>
		<category><![CDATA[Foundation]]></category>
		<category><![CDATA[Legal]]></category>
		<category><![CDATA[Legal IT Professionals]]></category>
		<category><![CDATA[WF]]></category>

		<guid isPermaLink="false">http://fyeomans.wordpress.com/?p=361</guid>
		<description><![CDATA[My new column &#8211; If I had Workflow Foundation, would I have finished this column on time? - is up on Legal IT Professionals
Posted in Legal Technology, MOSS, SharePoint, Workflow Tagged: Foundation, Legal, Legal IT Professionals, SharePoint, WF, Workflow      <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fyeomans.wordpress.com&blog=730098&post=361&subd=fyeomans&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>My new column &#8211; <a href="http://www.legalitprofessionals.com/index.php/col/columns-fred/557-if-i-had-">If I had Workflow Foundation, would I have finished this column on time?</a> - is up on Legal IT Professionals</p>
Posted in Legal Technology, MOSS, SharePoint, Workflow Tagged: Foundation, Legal, Legal IT Professionals, SharePoint, WF, Workflow <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/fyeomans.wordpress.com/361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fyeomans.wordpress.com/361/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/fyeomans.wordpress.com/361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/fyeomans.wordpress.com/361/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/fyeomans.wordpress.com/361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/fyeomans.wordpress.com/361/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/fyeomans.wordpress.com/361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/fyeomans.wordpress.com/361/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/fyeomans.wordpress.com/361/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/fyeomans.wordpress.com/361/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fyeomans.wordpress.com&blog=730098&post=361&subd=fyeomans&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://fyeomans.wordpress.com/2009/06/03/new-column-up-on-legal-it-professionals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7273bb3c332576b15874f9a1b0fc91b1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Fred</media:title>
		</media:content>
	</item>
		<item>
		<title>Coming soon…MOSS Workflow Examples &#8211; Custom Task Forms (using InfoPath)</title>
		<link>http://fyeomans.wordpress.com/2009/04/23/coming-soon%e2%80%a6moss-workflow-examples-custom-task-forms-using-infopath/</link>
		<comments>http://fyeomans.wordpress.com/2009/04/23/coming-soon%e2%80%a6moss-workflow-examples-custom-task-forms-using-infopath/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 17:31:31 +0000</pubDate>
		<dc:creator>Fred</dc:creator>
				<category><![CDATA[MOSS]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Custom]]></category>
		<category><![CDATA[InfoPath]]></category>
		<category><![CDATA[Task Form]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://fyeomans.wordpress.com/?p=354</guid>
		<description><![CDATA[The next post in this series will be coming soon, I hope &#8211; maybe the end of April.
UPDATE: Still working on this &#8211; billable work is getting in the way   I am also working on doing the next one as a webcast rather than a long text tutorial. I am curious, what do [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fyeomans.wordpress.com&blog=730098&post=354&subd=fyeomans&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The next post in this series will be coming soon, I hope &#8211; maybe the end of April.</p>
<p>UPDATE: Still working on this &#8211; billable work is getting in the way <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  I am also working on doing the next one as a webcast rather than a long text tutorial. I am curious, what do you think is the best approach to this, text or video?</p>
<p style="text-align:center;"><a name="pd_a_1614334"></a><div class="PDS_Poll" id="PDI_container1614334" style="display:inline-block;"></div><script type="text/javascript" language="javascript" charset="utf-8" src="http://static.polldaddy.com/p/1614334.js"></script>
		<noscript>
		<a href="http://answers.polldaddy.com/poll/1614334/">View This Poll</a><br/><span style="font-size:10px;"><a href="http://answers.polldaddy.com">answers</a></span>
		</noscript> </p>
Posted in MOSS, SharePoint Tagged: Custom, InfoPath, MOSS, SharePoint, Task Form, Workflow <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/fyeomans.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fyeomans.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/fyeomans.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/fyeomans.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/fyeomans.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/fyeomans.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/fyeomans.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/fyeomans.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/fyeomans.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/fyeomans.wordpress.com/354/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fyeomans.wordpress.com&blog=730098&post=354&subd=fyeomans&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://fyeomans.wordpress.com/2009/04/23/coming-soon%e2%80%a6moss-workflow-examples-custom-task-forms-using-infopath/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7273bb3c332576b15874f9a1b0fc91b1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Fred</media:title>
		</media:content>
	</item>
		<item>
		<title>MOSS Workflow Examples &#8211; Custom Initiation/Instantiation Form (using InfoPath)</title>
		<link>http://fyeomans.wordpress.com/2009/04/06/moss-workflow-examples-custom-initiationinstantiation-form-using-infopath/</link>
		<comments>http://fyeomans.wordpress.com/2009/04/06/moss-workflow-examples-custom-initiationinstantiation-form-using-infopath/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 19:34:30 +0000</pubDate>
		<dc:creator>Fred</dc:creator>
				<category><![CDATA[MOSS]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Workflow]]></category>
		<category><![CDATA[Custom]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[InfoPath]]></category>
		<category><![CDATA[Initiation]]></category>
		<category><![CDATA[Instantiation]]></category>
		<category><![CDATA[WF]]></category>

		<guid isPermaLink="false">http://fyeomans.wordpress.com/?p=324</guid>
		<description><![CDATA[Previously, I posted a guide to creating and deploying a very simple custom Association form for a MOSS workflow. This time, I will walk through the steps to create a custom Initiation form, and also a bit of detail on consuming the data from the Initiation form from your workflow code. To reiterate what I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fyeomans.wordpress.com&blog=730098&post=324&subd=fyeomans&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Previously, I posted a guide to creating and deploying a very simple custom Association form for a MOSS workflow. This time, I will walk through the steps to create a custom Initiation form, and also a bit of detail on consuming the data from the Initiation form from your workflow code. To reiterate what I said in the Association form walkthrough, what I am creating here is not a form you would use in a real workflow &#8211; the intent is to demonstrate the process with as much noise and detail stripped away as possible.</p>
<p>As I describe in my other post, the Association form is displayed when you connect your Workflow Template to a document/form library, list, or content type (the action known as creating an association). The Initiation form is displayed when the user actual starts or instantiates the workflow on an item in a list or document library. The intent is to collect startup information for the workflow. The information collected by the Instantiation form may be the same as on the Association form (allowing the user to override the defaults) or it may be completely different information. Have a look at  <a title="http://msdn.microsoft.com/en-us/library/ms481192.aspx" href="http://msdn.microsoft.com/en-us/library/ms481192.aspx">http://msdn.microsoft.com/en-us/library/ms481192.aspx</a> if you would like to see Microsoft&#8217;s definitions.</p>
<p>Before we start, have a look at my <a href="http://fyeomans.wordpress.com/2009/03/18/moss-workflow-examples-%e2%80%93-setting-up-the-environment/">previous post</a> describing my base environment for creating these examples.</p>
<p><strong>1) Create a new site</strong></p>
<p>I used a new web application, and a new site collection created using the Team Site template. I named my site InitiationFormDemo;</p>
<p><strong>2) Create Form Library</strong></p>
<p>On this new site, create a Form Library (which I named Workflow Form Library);</p>
<p><strong>3) Create Task List</strong></p>
<p>Also create a new Task List. I called mine Workflow Tasks. At this point, your site home page should look something like the picture below.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/04/initiationformdemosite.jpg"><img style="display:inline;border-width:0;" title="Initiation Form Demo Site" src="http://fyeomans.files.wordpress.com/2009/04/initiationformdemosite-thumb.jpg?w=732&#038;h=335" border="0" alt="Initiation Form Demo Site" width="732" height="335" /></a></p>
<p><strong>4) Create Workflow Project</strong></p>
<p>Launch Visual Studio 2008. Create a new project. Expand the C# project tree, select Workflow, and select the SharePoint 2007 Sequential Workflow. Name the project “MyWorkflow”. The create project dialog should look like the picture below.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/createworkflowproject.jpg"><img style="display:inline;border-width:0;" title="Create Workflow Project" src="http://fyeomans.files.wordpress.com/2009/03/createworkflowproject-thumb.jpg?w=726&#038;h=520" border="0" alt="Create Workflow Project" width="726" height="520" /></a></p>
<p><strong>5) Set the properties for the project as shown below</strong></p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/workflowprojectsettings1.jpg"><img style="display:inline;border-width:0;" title="Workflow Project Settings 1" src="http://fyeomans.files.wordpress.com/2009/03/workflowprojectsettings1-thumb.jpg?w=645&#038;h=467" border="0" alt="Workflow Project Settings 1" width="645" height="467" /></a></p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/workflowprojectsettings2.jpg"><img style="display:inline;border-width:0;" title="Workflow Project Settings 2" src="http://fyeomans.files.wordpress.com/2009/03/workflowprojectsettings2-thumb.jpg?w=640&#038;h=483" border="0" alt="Workflow Project Settings 2" width="640" height="483" /></a></p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/workflowprojectsettings3.jpg"><img style="display:inline;border-width:0;" title="Workflow Project Settings 3" src="http://fyeomans.files.wordpress.com/2009/03/workflowprojectsettings3-thumb.jpg?w=633&#038;h=460" border="0" alt="Workflow Project Settings 3" width="633" height="460" /></a></p>
<p><strong>6) Finish Creating Workflow Project</strong></p>
<p>Click finish. Normally, we would change the workflow name in the project, add some activities, some code, etc., but this is not necessary for this example. The project should look something like this.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/workflowproject.jpg"><img style="display:inline;border-width:0;" title="Workflow Project" src="http://fyeomans.files.wordpress.com/2009/03/workflowproject-thumb.jpg?w=485&#038;h=341" border="0" alt="Workflow Project" width="485" height="341" /></a></p>
<p><strong>7) Create Custom Initiation Form in InfoPath</strong></p>
<p>Now we will create the InfoPath Initiation Form. Launch InfoPath and select Design a Form Template. Select the settings as shown below (Form Template, Blank, Enable browser-compatible features only).</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/infopath1.jpg"><img style="display:inline;border-width:0;" title="InfoPath 1" src="http://fyeomans.files.wordpress.com/2009/03/infopath1-thumb.jpg?w=506&#038;h=309" border="0" alt="InfoPath 1" width="506" height="309" /></a></p>
<p><strong>8 ) Design the Custom Initiation Form</strong> <strong>- Create Data Source for Submission</strong></p>
<p>In the InfoPath Designer, select <strong>Tools | Data Connections…</strong> and click the <strong>Add</strong> button. Create the new data connection as shown in the following pictures.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/infopath2.jpg"><img style="display:inline;border-width:0;" title="InfoPath 2" src="http://fyeomans.files.wordpress.com/2009/03/infopath2-thumb.jpg?w=703&#038;h=502" border="0" alt="InfoPath 2" width="703" height="502" /></a></p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/infopath3.jpg"><img style="display:inline;border-width:0;" title="InfoPath 3" src="http://fyeomans.files.wordpress.com/2009/03/infopath3-thumb.jpg?w=700&#038;h=465" border="0" alt="InfoPath 3" width="700" height="465" /></a></p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/infopath4.jpg"><img style="display:inline;border-width:0;" title="InfoPath 4" src="http://fyeomans.files.wordpress.com/2009/03/infopath4-thumb.jpg?w=697&#038;h=484" border="0" alt="InfoPath 4" width="697" height="484" /></a></p>
<p>Click <strong>Finish</strong> and <strong>Close</strong> to get back to the main InfoPath window.</p>
<p><strong>9) Create a Custom Field for the Form</strong></p>
<p>In the Task Pane, under <strong>Design Tasks</strong>, click on <strong>Data Source</strong>. Right click on myFields, and select <strong>Add</strong> to add a new field to the schema. Create a new field as shown below, and click <strong>Ok</strong>.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/infopath5.jpg"><img style="display:inline;border-width:0;" title="InfoPath 5" src="http://fyeomans.files.wordpress.com/2009/03/infopath5-thumb.jpg?w=310&#038;h=226" border="0" alt="InfoPath 5" width="310" height="226" /></a></p>
<p><strong>10) Add the Custom Field to the Form</strong></p>
<p>Drag and drop the My Setting field onto the design surface, to create label and text box for it. Also add a Button control, and change its label to “Submit”. Your form should look something like the picture below.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/infopath6.jpg"><img style="display:inline;border-width:0;" title="InfoPath 6" src="http://fyeomans.files.wordpress.com/2009/03/infopath6-thumb.jpg?w=539&#038;h=401" border="0" alt="InfoPath 6" width="539" height="401" /></a></p>
<p><strong>11) Add Logic to the Submit Button</strong></p>
<p>Double click on your Submit button to display the Button Properties dialog. Click on the <strong>Rules…</strong> button, and click <strong>Add</strong> and then <strong>Add Action</strong>. Select options as shown below, and click <strong>Ok</strong>.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/infopath7.jpg"><img style="display:inline;border-width:0;" title="InfoPath 7" src="http://fyeomans.files.wordpress.com/2009/03/infopath7-thumb.jpg?w=361&#038;h=312" border="0" alt="InfoPath 7" width="361" height="312" /></a></p>
<p>Click <strong>Add Action</strong> again, and set the options as shown below, and click <strong>Ok</strong>.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/infopath8.jpg"><img style="display:inline;border-width:0;" title="InfoPath 8" src="http://fyeomans.files.wordpress.com/2009/03/infopath8-thumb.jpg?w=361&#038;h=272" border="0" alt="InfoPath 8" width="361" height="272" /></a></p>
<p>You should now have two actions, as shown below.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/infopath9.jpg"><img style="display:inline;border-width:0;" title="InfoPath 9" src="http://fyeomans.files.wordpress.com/2009/03/infopath9-thumb.jpg?w=355&#038;h=254" border="0" alt="InfoPath 9" width="355" height="254" /></a></p>
<p><strong>12) Set Form Security Level</strong></p>
<p>Finally, we must set the form trust to Domain. Select<strong> Tools | Form Options…</strong>, and select <strong>Security and Trust</strong>. Unselect the checkbox <strong>Automatically determine security level (recommended)</strong>, and click the <strong>Domain</strong> radio button, as shown below, and click <strong>Ok</strong>.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/infopath10.jpg"><img style="display:inline;border-width:0;" title="InfoPath 10" src="http://fyeomans.files.wordpress.com/2009/03/infopath10-thumb.jpg?w=528&#038;h=451" border="0" alt="InfoPath 10" width="528" height="451" /></a></p>
<p><strong>13) Save the Form Template</strong></p>
<p>Save the form to disk (<strong>File | Save</strong>). You can save it anywhere you want, as long as it is not your Visual Studio project folder. I just save mine to a Forms folder in My Documents. Name the form MyInitiationForm.xsn for this example (in practice you can name it whatever makes sense).</p>
<p><strong>14) Publish the Form Template</strong></p>
<p>Now we want to publish the form. This did not entirely make sense to me, but when you select <strong>File | Publish…</strong>, on the first page of the publish dialog we will select <strong>To a Network Location</strong> even though we will actually publish it to our Visual Studio workflow project folder.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/publish1.jpg"><img style="display:inline;border-width:0;" title="Publish 1" src="http://fyeomans.files.wordpress.com/2009/03/publish1-thumb.jpg?w=471&#038;h=350" border="0" alt="Publish 1" width="471" height="350" /></a></p>
<p>Click <strong>Next</strong>, and then browse to the location where you will publish the form. In this case, we want to publish to your workflow project folder, as shown.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/publish2.jpg"><img style="display:inline;border-width:0;" title="Publish 2" src="http://fyeomans.files.wordpress.com/2009/03/publish2-thumb.jpg?w=531&#038;h=422" border="0" alt="Publish 2" width="531" height="422" /></a></p>
<p>Type a name for your form (I used MyInitiationForm.xsn), click <strong>Ok</strong>, and <strong>Next</strong>. On the next form, <strong>clear the text box and click Next (this is important, the form will not work if you do not clear that text box!)</strong></p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/publish3.jpg"><img style="display:inline;border-width:0;" title="Publish 3" src="http://fyeomans.files.wordpress.com/2009/03/publish3-thumb.jpg?w=537&#038;h=402" border="0" alt="Publish 3" width="537" height="402" /></a></p>
<p>When you click <strong>Next</strong>, a warning will pop up, as shown below. Click <strong>Ok</strong> to continue.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/publish4.jpg"><img style="display:inline;border-width:0;" title="Publish 4" src="http://fyeomans.files.wordpress.com/2009/03/publish4-thumb.jpg?w=579&#038;h=78" border="0" alt="Publish 4" width="579" height="78" /></a></p>
<p>Click <strong>Publish</strong> and <strong>Close</strong>, and then exit InfoPath.</p>
<p><strong>15) Retrieve Form ID to Use in Workflow Project</strong></p>
<p>In Windows Explorer, navigate to your workflow project folder, right click on the InfoPath form you just published there, and select <strong>Design</strong>. When the form opens in design mode, select <strong>File | Properties… </strong>to display the properties dialog shown below.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/04/getformid.jpg"><img style="display:inline;border-width:0;" title="Get Form ID" src="http://fyeomans.files.wordpress.com/2009/04/getformid-thumb.jpg?w=400&#038;h=486" border="0" alt="Get Form ID" width="400" height="486" /></a></p>
<p>Select the ID as shown, and copy it to the clipboard. Click <strong>Ok</strong> and exit InfoPath.</p>
<p><strong>16) Modify Workflow Project to Reference Custom Initiation Form</strong></p>
<p>Go back to Visual Studio 2008, and open you workflow project if it is not still open. Open the <em>workflow.xml</em> file. The default file looks like this:</p>
<blockquote><p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243; ?&gt;</p>
<p>&lt;!&#8211; Customize the text in square brackets.<br />
Remove brackets when filling in, e.g.<br />
Name=&#8221;[NAME]&#8221; ==&gt; Name=&#8221;MyWorkflow&#8221; &#8211;&gt;</p>
<p>&lt;Elements xmlns=&#8221;<a href="http://schemas.microsoft.com/sharepoint/&quot;">http://schemas.microsoft.com/sharepoint/&#8221;</a>&gt;<br />
  &lt;Workflow<br />
     Name=&#8221;MyWorkflow&#8221;<br />
     Description=&#8221;My SharePoint Workflow&#8221;<br />
     Id=&#8221;0d94af3a-45e7-4035-b351-9a10fc41018d&#8221;<br />
     CodeBesideClass=&#8221;MyWorkflow.Workflow1&#8243;<br />
     CodeBesideAssembly=&#8221;MyWorkflow, Version=1.0.0.0, Culture=neutral, PublicKeyToken=96c40524715e44e9&#8243;&gt;</p>
<p>&lt;Categories/&gt;<br />
    &lt;MetaData&gt;<br />
      &lt;!&#8211; Tags to specify InfoPath forms for the workflow; delete tags for forms that you do not have &#8211;&gt;<br />
      &lt;!&#8211;&lt;Association_FormURN&gt;[URN FOR ASSOCIATION FORM]&lt;/Association_FormURN&gt;<br />
       &lt;Instantiation_FormURN&gt;[URN FOR INSTANTIATION FORM]&lt;/Instantiation_FormURN&gt;<br />
      &lt;Task0_FormURN&gt;[URN FOR TASK (type 0) FORM]&lt;/Task0_FormURN&gt;<br />
      &lt;Task1_FormURN&gt;[URN FOR TASK (type 1) FORM]&lt;/Task1_FormURN&gt;&#8211;&gt;<br />
      &lt;!&#8211; Modification forms: create a unique guid for each modification form &#8211;&gt;<br />
      &lt;!&#8211;&lt;Modification_[UNIQUE GUID]_FormURN&gt;[URN FOR MODIFICATION FORM]&lt;/Modification_[UNIQUE GUID]_FormURN&gt;<br />
      &lt;Modification_[UNIQUE GUID]_Name&gt;[NAME OF MODIFICATION TO BE DISPLAYED AS A LINK ON WORKFLOW STATUS PAGE&lt;/Modification_[UNIQUE GUID]_Name&gt;<br />
      &#8211;&gt;<br />
      &lt;StatusPageUrl&gt;_layouts/WrkStat.aspx&lt;/StatusPageUrl&gt;<br />
    &lt;/MetaData&gt;<br />
  &lt;/Workflow&gt;<br />
&lt;/Elements&gt;</p></blockquote>
<p>Paste the ID from your InfoPath form properties into the &lt;Instantiation_FormURN&gt; element, and uncomment the element (be careful that the other commented out elements stay that way – or delete the ones you are not using as I did):</p>
<blockquote><p>&lt;Instantiation_FormURN&gt;urn:schemas-microsoft-com:office:infopath:MyInitiationForm:-myXSD-2009-04-06T02-58-49&lt;/Instantiation_FormURN&gt;</p></blockquote>
<p>Of course, your actual URN will be different than mine.</p>
<p>Add the following new attribute to the &lt;Workflow&gt; element:</p>
<blockquote><p>InstantiationUrl=&#8221;_layouts/IniWrkflIP.aspx&#8221;&gt;</p></blockquote>
<p>Your <em>workflow.xml</em> file should now look something like this:</p>
<blockquote><p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243; ?&gt;</p>
<p>&lt;!&#8211; Customize the text in square brackets.<br />
Remove brackets when filling in, e.g.<br />
Name=&#8221;[NAME]&#8221; ==&gt; Name=&#8221;MyWorkflow&#8221; &#8211;&gt;</p>
<p>&lt;Elements xmlns=&#8221;<a href="http://schemas.microsoft.com/sharepoint/&quot;">http://schemas.microsoft.com/sharepoint/&#8221;</a>&gt;<br />
  &lt;Workflow<br />
     Name=&#8221;MyWorkflow&#8221;<br />
     Description=&#8221;My SharePoint Workflow&#8221;<br />
     Id=&#8221;0d94af3a-45e7-4035-b351-9a10fc41018d&#8221;<br />
     CodeBesideClass=&#8221;MyWorkflow.Workflow1&#8243;<br />
     CodeBesideAssembly=&#8221;MyWorkflow, Version=1.0.0.0, Culture=neutral, PublicKeyToken=96c40524715e44e9&#8243;<br />
     InstantiationUrl=&#8221;_layouts/IniWrkflIP.aspx&#8221;&gt;</p>
<p>&lt;Categories/&gt;<br />
    &lt;MetaData&gt;<br />
      &lt;!&#8211; Tags to specify InfoPath forms for the workflow; delete tags for forms that you do not have &#8211;&gt;<br />
      &lt;Instantiation_FormURN&gt;urn:schemas-microsoft-com:office:infopath:MyInitiationForm:-myXSD-2009-04-06T02-58-49&lt;/Instantiation_FormURN&gt;<br />
      &lt;StatusPageUrl&gt;_layouts/WrkStat.aspx&lt;/StatusPageUrl&gt;<br />
    &lt;/MetaData&gt;<br />
  &lt;/Workflow&gt;<br />
&lt;/Elements&gt;</p></blockquote>
<p>Save the file and close it.</p>
<p><strong>17) Make Sure the Custom Initiation Form will get Copied With the Workflow Feature</strong></p>
<p>Next, open the <em>feature.xml</em> file. It will look something like</p>
<blockquote><p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243; ?&gt;</p>
<p>&lt;Feature  Id=&#8221;15fdd97f-db32-44c1-96cc-cab49acecd36&#8243;<br />
      Title=&#8221;MyWorkflow feature&#8221;<br />
      Description=&#8221;My SharePoint Workflow Feature&#8221;<br />
      Version=&#8221;12.0.0.0&#8243;<br />
      Scope=&#8221;Site&#8221;<br />
      ReceiverAssembly=&#8221;Microsoft.Office.Workflow.Feature, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&#8221;<br />
      ReceiverClass=&#8221;Microsoft.Office.Workflow.Feature.WorkflowFeatureReceiver&#8221;<br />
      xmlns=&#8221;<a href="http://schemas.microsoft.com/sharepoint/&quot;">http://schemas.microsoft.com/sharepoint/&#8221;</a>&gt;<br />
  &lt;ElementManifests&gt;<br />
    &lt;ElementManifest Location=&#8221;workflow.xml&#8221; /&gt;<br />
  &lt;/ElementManifests&gt;<br />
  &lt;Properties&gt;<br />
    &lt;Property Key=&#8221;GloballyAvailable&#8221; Value=&#8221;true&#8221; /&gt;</p>
<p>&lt;!&#8211; Value for RegisterForms key indicates the path to the forms relative to feature file location &#8211;&gt;<br />
    &lt;!&#8211; if you don&#8217;t have forms, use *.xsn &#8211;&gt;<br />
    &lt;Property Key=&#8221;RegisterForms&#8221; Value=&#8221;*.xsn&#8221; /&gt;<br />
  &lt;/Properties&gt;<br />
&lt;/Feature&gt;</p></blockquote>
<p>Find the &lt;ElementManifests&gt; tag, and under that, add a new &lt;ElementFile&gt; element inside it as shown:</p>
<blockquote><p>&lt;ElementManifests&gt;<br />
  &lt;ElementManifest Location=&#8221;workflow.xml&#8221; /&gt;<br />
  &lt;ElementFile Location=&#8221;MyInitiationForm.xsn&#8221;/&gt;<br />
&lt;/ElementManifests&gt;</p></blockquote>
<p>Save the file and close it.</p>
<p><strong>18 ) Rebuild your workflow solution, and deploy it.</strong></p>
<p><strong>19) Test it Out</strong></p>
<p>Back in IE, navigate to your form library. Since I’ve not created a custom association form in this example, you can create the association using the default form (if you have set up your project to auto-associate, you will not need to do this manually).</p>
<p>Since we want to initiate a workflow, first we need to add a document to the library. I just clicked upload and selected a random file from my desktop. Hover over the file you uploaded and left-click to bring up the context menu. Select <strong>Workflow</strong> from the menu. Then click on <strong>MyWorkflow</strong> to start the workflow. This should bring up your custom instantiation form as shown below.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/04/startworkflow.jpg"><img style="display:inline;border-width:0;" title="Start Workflow" src="http://fyeomans.files.wordpress.com/2009/04/startworkflow-thumb.jpg?w=651&#038;h=449" border="0" alt="Start Workflow" width="651" height="449" /></a></p>
<p>Enter some text, and click <strong>Submit</strong>. You will see an animation showing that MOSS is working, and then you will be brought back to the Form Library page. The status of your workflow should show as complete, since the workflow does not actually do anything.</p>
<p><strong>20) Accessing the Initiation Form data in your workflow</strong></p>
<p>I will now quickly show how to access your initiation data from your workflow. We will simple pull out the string entered and log it.</p>
<p>Open your workflow project in Visual Studio, and open your workflow in design view. Add a new logToHistoryListActivity as shown below, and set the HistoryDescription property as shown (set it to a String Field named HistoryDescription in your workflow). </p>
<p><a href="http://fyeomans.files.wordpress.com/2009/04/addlogtohistorylist.jpg"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="Add LogToHistoryList" src="http://fyeomans.files.wordpress.com/2009/04/addlogtohistorylist-thumb.jpg?w=319&#038;h=264" border="0" alt="Add LogToHistoryList" width="319" height="264" /></a> <a href="http://fyeomans.files.wordpress.com/2009/04/logtohistorylistproperties.jpg"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="LogToHistoryList Properties" src="http://fyeomans.files.wordpress.com/2009/04/logtohistorylistproperties-thumb.jpg?w=445&#038;h=258" border="0" alt="LogToHistoryList Properties" width="445" height="258" /></a></p>
<p>Right click your logToHistoryListActivity and select <strong>Generate Handlers.</strong> In the event handler, add code as show below:</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/04/logtohistorylistactivitycode.jpg"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="logTohistoryListActivity Code" src="http://fyeomans.files.wordpress.com/2009/04/logtohistorylistactivitycode-thumb.jpg?w=782&#038;h=134" border="0" alt="logTohistoryListActivity Code" width="782" height="134" /></a> </p>
<p>Rebuild and deploy your workflow, and execute it as in Step 19. Click on the <strong>Completed</strong> link as shown below.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/04/completedlink.jpg"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="Completed Link" src="http://fyeomans.files.wordpress.com/2009/04/completedlink-thumb.jpg?w=785&#038;h=95" border="0" alt="Completed Link" width="785" height="95" /></a></p>
<p>In the <strong>Workflow Status</strong> you will now see a history event as shown below, and the initiation string is shown as an XML string, with a &lt;MySetting&gt; element and the string I entered. To use this data in a workflow, you would parse the XML and go from there (or generate a class from the schema and load the XML into that).</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/04/workflowstatus.jpg"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="Workflow Status" src="http://fyeomans.files.wordpress.com/2009/04/workflowstatus-thumb.jpg?w=788&#038;h=484" border="0" alt="Workflow Status" width="788" height="484" /></a></p>
<p>Well, there it is. A custom Initiation form using InfoPath.</p>
<p> </p>
<p>Next time – custom Task forms!</p>
Posted in MOSS, SharePoint, Uncategorized, Workflow Tagged: Custom, How To, InfoPath, Initiation, Instantiation, MOSS, SharePoint, WF, Workflow <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/fyeomans.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fyeomans.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/fyeomans.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/fyeomans.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/fyeomans.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/fyeomans.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/fyeomans.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/fyeomans.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/fyeomans.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/fyeomans.wordpress.com/324/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fyeomans.wordpress.com&blog=730098&post=324&subd=fyeomans&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://fyeomans.wordpress.com/2009/04/06/moss-workflow-examples-custom-initiationinstantiation-form-using-infopath/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7273bb3c332576b15874f9a1b0fc91b1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Fred</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/04/initiationformdemosite-thumb.jpg" medium="image">
			<media:title type="html">Initiation Form Demo Site</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/createworkflowproject-thumb.jpg" medium="image">
			<media:title type="html">Create Workflow Project</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/workflowprojectsettings1-thumb.jpg" medium="image">
			<media:title type="html">Workflow Project Settings 1</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/workflowprojectsettings2-thumb.jpg" medium="image">
			<media:title type="html">Workflow Project Settings 2</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/workflowprojectsettings3-thumb.jpg" medium="image">
			<media:title type="html">Workflow Project Settings 3</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/workflowproject-thumb.jpg" medium="image">
			<media:title type="html">Workflow Project</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/infopath1-thumb.jpg" medium="image">
			<media:title type="html">InfoPath 1</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/infopath2-thumb.jpg" medium="image">
			<media:title type="html">InfoPath 2</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/infopath3-thumb.jpg" medium="image">
			<media:title type="html">InfoPath 3</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/infopath4-thumb.jpg" medium="image">
			<media:title type="html">InfoPath 4</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/infopath5-thumb.jpg" medium="image">
			<media:title type="html">InfoPath 5</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/infopath6-thumb.jpg" medium="image">
			<media:title type="html">InfoPath 6</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/infopath7-thumb.jpg" medium="image">
			<media:title type="html">InfoPath 7</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/infopath8-thumb.jpg" medium="image">
			<media:title type="html">InfoPath 8</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/infopath9-thumb.jpg" medium="image">
			<media:title type="html">InfoPath 9</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/infopath10-thumb.jpg" medium="image">
			<media:title type="html">InfoPath 10</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/publish1-thumb.jpg" medium="image">
			<media:title type="html">Publish 1</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/publish2-thumb.jpg" medium="image">
			<media:title type="html">Publish 2</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/publish3-thumb.jpg" medium="image">
			<media:title type="html">Publish 3</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/publish4-thumb.jpg" medium="image">
			<media:title type="html">Publish 4</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/04/getformid-thumb.jpg" medium="image">
			<media:title type="html">Get Form ID</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/04/startworkflow-thumb.jpg" medium="image">
			<media:title type="html">Start Workflow</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/04/addlogtohistorylist-thumb.jpg" medium="image">
			<media:title type="html">Add LogToHistoryList</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/04/logtohistorylistproperties-thumb.jpg" medium="image">
			<media:title type="html">LogToHistoryList Properties</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/04/logtohistorylistactivitycode-thumb.jpg" medium="image">
			<media:title type="html">logTohistoryListActivity Code</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/04/completedlink-thumb.jpg" medium="image">
			<media:title type="html">Completed Link</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/04/workflowstatus-thumb.jpg" medium="image">
			<media:title type="html">Workflow Status</media:title>
		</media:content>
	</item>
		<item>
		<title>Coming soon&#8230;MOSS Workflow Examples &#8211; Custom Initiation Form (using InfoPath)</title>
		<link>http://fyeomans.wordpress.com/2009/04/02/coming-soonmoss-workflow-examples-custom-initiation-form-using-infopath/</link>
		<comments>http://fyeomans.wordpress.com/2009/04/02/coming-soonmoss-workflow-examples-custom-initiation-form-using-infopath/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 15:48:33 +0000</pubDate>
		<dc:creator>Fred</dc:creator>
				<category><![CDATA[MOSS]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Custom]]></category>
		<category><![CDATA[InfoPath]]></category>
		<category><![CDATA[Initiation]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://fyeomans.wordpress.com/?p=329</guid>
		<description><![CDATA[Just an update &#8211; I will be posting the Custom Intiation Form example soon (hopefully this weekend).
Screenshots take forever! (or I am just not very good at it)
Posted in MOSS, SharePoint Tagged: Custom, InfoPath, Initiation, MOSS, SharePoint, Workflow      <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fyeomans.wordpress.com&blog=730098&post=329&subd=fyeomans&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Just an update &#8211; I will be posting the Custom Intiation Form example soon (hopefully this weekend).</p>
<p>Screenshots take forever! (or I am just not very good at it)</p>
Posted in MOSS, SharePoint Tagged: Custom, InfoPath, Initiation, MOSS, SharePoint, Workflow <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/fyeomans.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fyeomans.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/fyeomans.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/fyeomans.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/fyeomans.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/fyeomans.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/fyeomans.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/fyeomans.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/fyeomans.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/fyeomans.wordpress.com/329/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fyeomans.wordpress.com&blog=730098&post=329&subd=fyeomans&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://fyeomans.wordpress.com/2009/04/02/coming-soonmoss-workflow-examples-custom-initiation-form-using-infopath/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7273bb3c332576b15874f9a1b0fc91b1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Fred</media:title>
		</media:content>
	</item>
		<item>
		<title>MOSS Workflow Examples – Custom Association Form (using InfoPath)</title>
		<link>http://fyeomans.wordpress.com/2009/03/18/moss-workflow-examples-%e2%80%93-custom-association-form-using-infopath/</link>
		<comments>http://fyeomans.wordpress.com/2009/03/18/moss-workflow-examples-%e2%80%93-custom-association-form-using-infopath/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 04:57:13 +0000</pubDate>
		<dc:creator>Fred</dc:creator>
				<category><![CDATA[MOSS]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Association]]></category>
		<category><![CDATA[Custom]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[InfoPath]]></category>
		<category><![CDATA[WF]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://fyeomans.wordpress.com/?p=307</guid>
		<description><![CDATA[In this post, I will walk through the creation and deployment of a very basic Association form for a MOSS workflow. Note that I am not trying to be realistic and create an association form that you might use in a real workflow – I am simply trying to show the mechanics, with as much [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fyeomans.wordpress.com&blog=730098&post=307&subd=fyeomans&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In this post, I will walk through the creation and deployment of a very basic Association form for a MOSS workflow. Note that I am not trying to be realistic and create an association form that you might use in a real workflow – I am simply trying to show the mechanics, with as much noise as possible stripped away.</p>
<p>First, I would like to explain what role the Association form plays in a MOSS workflow. When you design a workflow in Visual Studio, you are creating a workflow template, which gets deployed as a feature to SharePoint. You cannot actually do anything with your workflow template until you link it to a SharePoint List, Library, or Content Type. This link is called an Association. When you create the Association through the MOSS user interface, your custom Association form is displayed after the built in form. This allows you to select default values for various parameters for your workflow.</p>
<p>Ok, that’s the best I can do explaining that. If you want to read Microsoft’s description, have a look at <a title="http://msdn.microsoft.com/en-us/library/ms481192.aspx" href="http://msdn.microsoft.com/en-us/library/ms481192.aspx">http://msdn.microsoft.com/en-us/library/ms481192.aspx</a>.</p>
<p>So, how do you actually create and use a custom Association form?</p>
<p>Before we start, have a look at my <a href="http://fyeomans.wordpress.com/2009/03/18/moss-workflow-examples-%e2%80%93-setting-up-the-environment/">previous post</a> describing my base environment for creating these examples.</p>
<p><strong>1) Create a new site</strong></p>
<p>I used a new web application, and a new site collection created using the Team Site template. I named my site AssociationFormDemo;</p>
<p><strong>2) Create Form Library</strong> </p>
<p>On this new site, create a Form Library (which I named Workflow Form Library);</p>
<p><strong>3) Create Task List</strong></p>
<p>Also create a new Task List. I called mine Workflow Tasks. At this point, your site home page should look something like the picture below.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/image1.jpg"><img style="display:inline;border-width:0;" title="Image 1" src="http://fyeomans.files.wordpress.com/2009/03/image1-thumb.jpg?w=727&#038;h=340" border="0" alt="Image 1" width="727" height="340" /></a> </p>
<p><strong>4) Create Workflow Project</strong></p>
<p>Launch Visual Studio 2008. Create a new project. Expand the C# project tree, select Workflow, and select the SharePoint 2007 Sequential Workflow. Name the project “MyWorkflow”. The create project dialog should look like the picture below.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/createworkflowproject.jpg"><img style="display:inline;border-width:0;" title="Create Workflow Project" src="http://fyeomans.files.wordpress.com/2009/03/createworkflowproject-thumb.jpg?w=726&#038;h=520" border="0" alt="Create Workflow Project" width="726" height="520" /></a></p>
<p><strong>5) Set the properties for the project as shown below</strong></p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/workflowprojectsettings1.jpg"><img style="display:inline;border-width:0;" title="Workflow Project Settings 1" src="http://fyeomans.files.wordpress.com/2009/03/workflowprojectsettings1-thumb.jpg?w=645&#038;h=467" border="0" alt="Workflow Project Settings 1" width="645" height="467" /></a></p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/workflowprojectsettings2.jpg"><img style="display:inline;border-width:0;" title="Workflow Project Settings 2" src="http://fyeomans.files.wordpress.com/2009/03/workflowprojectsettings2-thumb.jpg?w=640&#038;h=483" border="0" alt="Workflow Project Settings 2" width="640" height="483" /></a></p>
<p> <a href="http://fyeomans.files.wordpress.com/2009/03/workflowprojectsettings3.jpg"><img style="display:inline;border-width:0;" title="Workflow Project Settings 3" src="http://fyeomans.files.wordpress.com/2009/03/workflowprojectsettings3-thumb.jpg?w=633&#038;h=460" border="0" alt="Workflow Project Settings 3" width="633" height="460" /></a></p>
<p><strong>6) Finish Creating Workflow Project</strong></p>
<p>Click finish. Normally, we would change the workflow name in the project, add some activities, some code, etc., but this is not necessary for this example. The project should look something like this.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/workflowproject.jpg"><img style="display:inline;border-width:0;" title="Workflow Project" src="http://fyeomans.files.wordpress.com/2009/03/workflowproject-thumb.jpg?w=485&#038;h=341" border="0" alt="Workflow Project" width="485" height="341" /></a></p>
<p><strong>7) Checkpoint</strong> </p>
<p>To make sure everything is ok up to this point, select <strong>Build | Build Solution</strong>, and then <strong>Build | Deploy Solution</strong> If both are successful, you can navigate (in IE) to your form library created in <strong>Step 2</strong>. Select <strong>Settings | Form Library Settings</strong>, which will display the Customize Form Library page.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/formlibrarysettings.jpg"><img style="display:inline;border-width:0;" title="Form Library Settings" src="http://fyeomans.files.wordpress.com/2009/03/formlibrarysettings-thumb.jpg?w=696&#038;h=450" border="0" alt="Form Library Settings" width="696" height="450" /></a></p>
<p>Select Workflow settings. The display should be as shown below:</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/image.png"><img style="display:inline;border-width:0;" title="image" src="http://fyeomans.files.wordpress.com/2009/03/image-thumb.png?w=692&#038;h=504" border="0" alt="image" width="692" height="504" /></a></p>
<p>Click on <strong>MyWorkflow</strong> to display the default Association form, as shown below. Note that the buttons at the bottom are <strong>Ok</strong> and <strong>Cancel</strong>. Click <strong>Cancel</strong> to close the form.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/defaultassociationform.jpg"><img style="display:inline;border-width:0;" title="Default Association Form" src="http://fyeomans.files.wordpress.com/2009/03/defaultassociationform-thumb.jpg?w=692&#038;h=446" border="0" alt="Default Association Form" width="692" height="446" /></a></p>
<p><strong>8 ) Create Custom Association Form in InfoPath</strong></p>
<p>Now we will create the InfoPath Association Form. Launch InfoPath and select Design a Form Template. Select the settings as shown below (Form Template, Blank, Enable browser-compatible features only).</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/infopath1.jpg"><img style="display:inline;border-width:0;" title="InfoPath 1" src="http://fyeomans.files.wordpress.com/2009/03/infopath1-thumb.jpg?w=506&#038;h=309" border="0" alt="InfoPath 1" width="506" height="309" /></a></p>
<p><strong>9) Design the Custom Association Form</strong> <strong>- Create Data Source for Submission</strong></p>
<p>In the InfoPath Designer, select <strong>Tools | Data Connections…</strong> and click the <strong>Add</strong> button. Create the new data connection as shown in the following pictures.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/infopath2.jpg"><img style="display:inline;border-width:0;" title="InfoPath 2" src="http://fyeomans.files.wordpress.com/2009/03/infopath2-thumb.jpg?w=703&#038;h=502" border="0" alt="InfoPath 2" width="703" height="502" /></a></p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/infopath3.jpg"><img style="display:inline;border-width:0;" title="InfoPath 3" src="http://fyeomans.files.wordpress.com/2009/03/infopath3-thumb.jpg?w=700&#038;h=465" border="0" alt="InfoPath 3" width="700" height="465" /></a></p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/infopath4.jpg"><img style="display:inline;border-width:0;" title="InfoPath 4" src="http://fyeomans.files.wordpress.com/2009/03/infopath4-thumb.jpg?w=697&#038;h=484" border="0" alt="InfoPath 4" width="697" height="484" /></a> </p>
<p>Click <strong>Finish</strong> and <strong>Close</strong> to get back to the main InfoPath window.</p>
<p><strong>10) Create a Custom Field for the Form</strong></p>
<p>In the Task Pane, under <strong>Design Tasks</strong>, click on <strong>Data Source</strong>. Right click on myFields, and select <strong>Add</strong> to add a new field to the schema. Create a new field as shown below, and click <strong>Ok</strong>.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/infopath5.jpg"><img style="display:inline;border-width:0;" title="InfoPath 5" src="http://fyeomans.files.wordpress.com/2009/03/infopath5-thumb.jpg?w=310&#038;h=226" border="0" alt="InfoPath 5" width="310" height="226" /></a></p>
<p><strong>11) Add the Custom Field to the Form</strong></p>
<p>Drag and drop the My Setting field onto the design surface, to create label and text box for it. Also add a Button control, and change its label to “Submit”. Your form should look something like the picture below.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/infopath6.jpg"><img style="display:inline;border-width:0;" title="InfoPath 6" src="http://fyeomans.files.wordpress.com/2009/03/infopath6-thumb.jpg?w=539&#038;h=401" border="0" alt="InfoPath 6" width="539" height="401" /></a></p>
<p><strong>12) Add Logic to the Submit Button</strong></p>
<p>Double click on your Submit button to display the Button Properties dialog. Click on the <strong>Rules…</strong> button, and click <strong>Add</strong> and then <strong>Add Action</strong>. Select options as shown below, and click <strong>Ok</strong>.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/infopath7.jpg"><img style="display:inline;border-width:0;" title="InfoPath 7" src="http://fyeomans.files.wordpress.com/2009/03/infopath7-thumb.jpg?w=361&#038;h=312" border="0" alt="InfoPath 7" width="361" height="312" /></a></p>
<p>Click <strong>Add Action</strong> again, and set the options as shown below, and click <strong>Ok</strong>.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/infopath8.jpg"><img style="display:inline;border-width:0;" title="InfoPath 8" src="http://fyeomans.files.wordpress.com/2009/03/infopath8-thumb.jpg?w=361&#038;h=272" border="0" alt="InfoPath 8" width="361" height="272" /></a></p>
<p>You should now have two actions, as shown below.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/infopath9.jpg"><img style="display:inline;border-width:0;" title="InfoPath 9" src="http://fyeomans.files.wordpress.com/2009/03/infopath9-thumb.jpg?w=355&#038;h=254" border="0" alt="InfoPath 9" width="355" height="254" /></a></p>
<p><strong>13) Set Form Security Level</strong></p>
<p>Finally, we must set the form trust to Domain. Select<strong> Tools | Form Options…</strong>, and select <strong>Security and Trust</strong>. Unselect the checkbox <strong>Automatically determine security level (recommended)</strong>, and click the <strong>Domain</strong> radio button, as shown below, and click <strong>Ok</strong>.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/infopath10.jpg"><img style="display:inline;border-width:0;" title="InfoPath 10" src="http://fyeomans.files.wordpress.com/2009/03/infopath10-thumb.jpg?w=528&#038;h=451" border="0" alt="InfoPath 10" width="528" height="451" /></a></p>
<p><strong>14) Save the Form Template</strong></p>
<p>Save the form to disk (<strong>File | Save</strong>). You can save it anywhere you want, as long as it is not your Visual Studio project folder. I just save mine to a Forms folder in My Documents. Name the form MyAssociationForm.xsn for this example (in practice you can name it whatever makes sense).</p>
<p><strong>15) Publish the Form Template</strong></p>
<p>Now we want to publish the form. This did not entirely make sense to me, but when you select <strong>File | Publish…</strong>, on the first page of the publish dialog we will select <strong>To a Network Location</strong> even though we will actually publish it to our Visual Studio workflow project folder.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/publish1.jpg"><img style="display:inline;border-width:0;" title="Publish 1" src="http://fyeomans.files.wordpress.com/2009/03/publish1-thumb.jpg?w=471&#038;h=350" border="0" alt="Publish 1" width="471" height="350" /></a></p>
<p>Click <strong>Next</strong>, and then browse to the location where you will publish the form. In this case, we want to publish to your workflow project folder, as shown.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/publish2.jpg"><img style="display:inline;border-width:0;" title="Publish 2" src="http://fyeomans.files.wordpress.com/2009/03/publish2-thumb.jpg?w=531&#038;h=422" border="0" alt="Publish 2" width="531" height="422" /></a></p>
<p>Type a name for your form (I used MyAssociationForm.xsn), click <strong>Ok</strong>, and <strong>Next</strong>. On the next form, <strong>clear the text box and click Next (this is important, the form will not work if you do not clear that text box!)</strong></p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/publish3.jpg"><img style="display:inline;border-width:0;" title="Publish 3" src="http://fyeomans.files.wordpress.com/2009/03/publish3-thumb.jpg?w=537&#038;h=402" border="0" alt="Publish 3" width="537" height="402" /></a></p>
<p>When you click <strong>Next</strong>, a warning will pop up, as shown below. Click <strong>Ok</strong> to continue.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/publish4.jpg"><img style="display:inline;border-width:0;" title="Publish 4" src="http://fyeomans.files.wordpress.com/2009/03/publish4-thumb.jpg?w=579&#038;h=78" border="0" alt="Publish 4" width="579" height="78" /></a></p>
<p>Click <strong>Publish</strong> and <strong>Close</strong>, and then exit InfoPath.</p>
<p><strong>16) Retrieve Form ID to Use in Workflow Project</strong></p>
<p>In Windows Explorer, navigate to your workflow project folder, right click on the InfoPath form you just published there, and select <strong>Design</strong>. When the form opens in design mode, select <strong>File | Properties… </strong>to display the properties dialog shown below.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/properties.jpg"><img style="display:inline;border-width:0;" title="Properties" src="http://fyeomans.files.wordpress.com/2009/03/properties-thumb.jpg?w=406&#038;h=496" border="0" alt="Properties" width="406" height="496" /></a></p>
<p>Select the ID as shown, and copy it to the clipboard. Click <strong>Ok</strong> and exit InfoPath.</p>
<p><strong>17) Modify Workflow Project to Reference Custom Association Form</strong></p>
<p>Go back to Visual Studio 2008, and open you workflow project if it is not still open. Open the <em>workflow.xml</em> file. The default file looks like this:</p>
<blockquote><p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243; ?&gt;</p>
<p>&lt;!&#8211; Customize the text in square brackets.<br />
Remove brackets when filling in, e.g.<br />
Name=&#8221;[NAME]&#8221; ==&gt; Name=&#8221;MyWorkflow&#8221; &#8211;&gt;</p>
<p>&lt;Elements xmlns=&#8221;<a href="http://schemas.microsoft.com/sharepoint/&quot;">http://schemas.microsoft.com/sharepoint/&#8221;</a>&gt;<br />
  &lt;Workflow<br />
     Name=&#8221;MyWorkflow&#8221;<br />
     Description=&#8221;My SharePoint Workflow&#8221;<br />
     Id=&#8221;0d94af3a-45e7-4035-b351-9a10fc41018d&#8221;<br />
     CodeBesideClass=&#8221;MyWorkflow.Workflow1&#8243;<br />
     CodeBesideAssembly=&#8221;MyWorkflow, Version=1.0.0.0, Culture=neutral, PublicKeyToken=96c40524715e44e9&#8243;&gt;</p>
<p>    &lt;Categories/&gt;<br />
    &lt;MetaData&gt;<br />
      &lt;!&#8211; Tags to specify InfoPath forms for the workflow; delete tags for forms that you do not have &#8211;&gt;<br />
      &lt;!&#8211;&lt;Association_FormURN&gt;[URN FOR ASSOCIATION FORM]&lt;/Association_FormURN&gt;<br />
       &lt;Instantiation_FormURN&gt;[URN FOR INSTANTIATION FORM]&lt;/Instantiation_FormURN&gt;<br />
      &lt;Task0_FormURN&gt;[URN FOR TASK (type 0) FORM]&lt;/Task0_FormURN&gt;<br />
      &lt;Task1_FormURN&gt;[URN FOR TASK (type 1) FORM]&lt;/Task1_FormURN&gt;&#8211;&gt;<br />
      &lt;!&#8211; Modification forms: create a unique guid for each modification form &#8211;&gt;<br />
      &lt;!&#8211;&lt;Modification_[UNIQUE GUID]_FormURN&gt;[URN FOR MODIFICATION FORM]&lt;/Modification_[UNIQUE GUID]_FormURN&gt;<br />
      &lt;Modification_[UNIQUE GUID]_Name&gt;[NAME OF MODIFICATION TO BE DISPLAYED AS A LINK ON WORKFLOW STATUS PAGE&lt;/Modification_[UNIQUE GUID]_Name&gt;<br />
      &#8211;&gt;<br />
      &lt;StatusPageUrl&gt;_layouts/WrkStat.aspx&lt;/StatusPageUrl&gt;<br />
    &lt;/MetaData&gt;<br />
  &lt;/Workflow&gt;<br />
&lt;/Elements&gt;</p></blockquote>
<p>Paste the ID from your InfoPath form properties into the &lt;Association_FormURN&gt; element, and uncomment the element (be careful that the other commented out elements stay that way – or delete the ones you are not using as I did):</p>
<blockquote><p>&lt;Association_FormURN&gt;urn:schemas-microsoft-com:office:infopath:MyAssociationForm:-myXSD-2009-03-18T03-04-06&lt;/Association_FormURN&gt;</p></blockquote>
<p>Of course, your actual URN will be different than mine.</p>
<p>Add the following new attribute to the &lt;Workflow&gt; element:</p>
<blockquote><p>AssociationUrl=&#8221;_layouts/CstWrkflIP.aspx&#8221;&gt;</p></blockquote>
<p>Your <em>workflow.xml</em> file should now look something like this:</p>
<blockquote><p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243; ?&gt;</p>
<p>&lt;!&#8211; Customize the text in square brackets.<br />
Remove brackets when filling in, e.g.<br />
Name=&#8221;[NAME]&#8221; ==&gt; Name=&#8221;MyWorkflow&#8221; &#8211;&gt;</p>
<p>&lt;Elements xmlns=&#8221;<a href="http://schemas.microsoft.com/sharepoint/&quot;">http://schemas.microsoft.com/sharepoint/&#8221;</a>&gt;<br />
  &lt;Workflow<br />
     Name=&#8221;MyWorkflow&#8221;<br />
     Description=&#8221;My SharePoint Workflow&#8221;<br />
     Id=&#8221;0d94af3a-45e7-4035-b351-9a10fc41018d&#8221;<br />
     CodeBesideClass=&#8221;MyWorkflow.Workflow1&#8243;<br />
     CodeBesideAssembly=&#8221;MyWorkflow, Version=1.0.0.0, Culture=neutral, PublicKeyToken=96c40524715e44e9&#8243;<br />
     AssociationUrl=&#8221;_layouts/CstWrkflIP.aspx&#8221;&gt;</p>
<p>    &lt;Categories/&gt;<br />
    &lt;MetaData&gt;<br />
      &lt;!&#8211; Tags to specify InfoPath forms for the workflow; delete tags for forms that you do not have &#8211;&gt;<br />
      &lt;Association_FormURN&gt;urn:schemas-microsoft-com:office:infopath:MyAssociationForm:-myXSD-2009-03-18T03-04-06&lt;/Association_FormURN&gt;<br />
      &lt;StatusPageUrl&gt;_layouts/WrkStat.aspx&lt;/StatusPageUrl&gt;<br />
    &lt;/MetaData&gt;<br />
  &lt;/Workflow&gt;<br />
&lt;/Elements&gt;</p></blockquote>
<p>Save the file and close it.</p>
<p><strong>18) Make Sure the Custom Association Form will get Copied With the Workflow Feature</strong></p>
<p>Next, open the <em>feature.xml</em> file. It will look something like</p>
<blockquote><p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243; ?&gt;</p>
<p>&lt;Feature  Id=&#8221;15fdd97f-db32-44c1-96cc-cab49acecd36&#8243;<br />
      Title=&#8221;MyWorkflow feature&#8221;<br />
      Description=&#8221;My SharePoint Workflow Feature&#8221;<br />
      Version=&#8221;12.0.0.0&#8243;<br />
      Scope=&#8221;Site&#8221;<br />
      ReceiverAssembly=&#8221;Microsoft.Office.Workflow.Feature, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&#8221;<br />
      ReceiverClass=&#8221;Microsoft.Office.Workflow.Feature.WorkflowFeatureReceiver&#8221;<br />
      xmlns=&#8221;<a href="http://schemas.microsoft.com/sharepoint/&quot;">http://schemas.microsoft.com/sharepoint/&#8221;</a>&gt;<br />
  &lt;ElementManifests&gt;<br />
    &lt;ElementManifest Location=&#8221;workflow.xml&#8221; /&gt;<br />
  &lt;/ElementManifests&gt;<br />
  &lt;Properties&gt;<br />
    &lt;Property Key=&#8221;GloballyAvailable&#8221; Value=&#8221;true&#8221; /&gt;</p>
<p>    &lt;!&#8211; Value for RegisterForms key indicates the path to the forms relative to feature file location &#8211;&gt;<br />
    &lt;!&#8211; if you don&#8217;t have forms, use *.xsn &#8211;&gt;<br />
    &lt;Property Key=&#8221;RegisterForms&#8221; Value=&#8221;*.xsn&#8221; /&gt;<br />
  &lt;/Properties&gt;<br />
&lt;/Feature&gt;</p></blockquote>
<p>Find the &lt;ElementManifests&gt; tag, and under that, add a new &lt;ElementFile&gt; element inside it as shown:</p>
<blockquote><p>&lt;ElementManifests&gt;<br />
  &lt;ElementManifest Location=&#8221;workflow.xml&#8221; /&gt;<br />
  &lt;ElementFile Location=&#8221;MyAssociationForm.xsn&#8221;/&gt;<br />
&lt;/ElementManifests&gt;</p></blockquote>
<p>Save the file and close it.</p>
<p><strong>19) Rebuild your workflow solution, and deploy it.</strong></p>
<p><strong>20) Test it Out</strong></p>
<p>Back in IE, navigate to your form library settings page, click <strong>Workflow Settings</strong>, and click on your workflow to launch the association page as you did in <strong>Step 7</strong>. You should see the built in Association form as shown below.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/results1.jpg"><img style="display:inline;border-width:0;" title="Results 1" src="http://fyeomans.files.wordpress.com/2009/03/results1-thumb.jpg?w=698&#038;h=473" border="0" alt="Results 1" width="698" height="473" /></a></p>
<p>Note that where we previously had an <strong>Ok</strong> button, now there is a <strong>Next</strong> button. Clicking this button brings us to our custom Association form, as shown.</p>
<p><a href="http://fyeomans.files.wordpress.com/2009/03/results2.jpg"><img style="display:inline;border-width:0;" title="Results 2" src="http://fyeomans.files.wordpress.com/2009/03/results2-thumb.jpg?w=603&#038;h=352" border="0" alt="Results 2" width="603" height="352" /></a>  </p>
<p>Enter some text, and click <strong>Submit</strong>. This will bring us back to the Workflow Settings page. Click on your workflow again, and click <strong>Next</strong>. Note that the text you entered was persisted.</p>
<p> </p>
<p>Ok, in this example I have walked through the creation of a custom Association Form for a SharePoint workflow. I know I have gone into a lot of detail. Writing it, I felt like it was too much detail. I think this is a symptom of already knowing how to do it. I <strong>know</strong> that this much detail would have been useful when I was trying to figure this out the first time – and may be useful in 6 months when I have forgotten it all.</p>
<p>Next time I will show how to create a custom Instantiation form. Much of it is similar, so I may not go into as much detail on those parts. Then there will be <strong>new</strong> things to worry about, like how to get at the settings from the instantiation form inside you workflow code.</p>
Posted in MOSS, SharePoint Tagged: Association, Custom, How To, InfoPath, MOSS, SharePoint, WF, Workflow <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/fyeomans.wordpress.com/307/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fyeomans.wordpress.com/307/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/fyeomans.wordpress.com/307/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/fyeomans.wordpress.com/307/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/fyeomans.wordpress.com/307/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/fyeomans.wordpress.com/307/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/fyeomans.wordpress.com/307/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/fyeomans.wordpress.com/307/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/fyeomans.wordpress.com/307/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/fyeomans.wordpress.com/307/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fyeomans.wordpress.com&blog=730098&post=307&subd=fyeomans&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://fyeomans.wordpress.com/2009/03/18/moss-workflow-examples-%e2%80%93-custom-association-form-using-infopath/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7273bb3c332576b15874f9a1b0fc91b1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Fred</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/image1-thumb.jpg" medium="image">
			<media:title type="html">Image 1</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/createworkflowproject-thumb.jpg" medium="image">
			<media:title type="html">Create Workflow Project</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/workflowprojectsettings1-thumb.jpg" medium="image">
			<media:title type="html">Workflow Project Settings 1</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/workflowprojectsettings2-thumb.jpg" medium="image">
			<media:title type="html">Workflow Project Settings 2</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/workflowprojectsettings3-thumb.jpg" medium="image">
			<media:title type="html">Workflow Project Settings 3</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/workflowproject-thumb.jpg" medium="image">
			<media:title type="html">Workflow Project</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/formlibrarysettings-thumb.jpg" medium="image">
			<media:title type="html">Form Library Settings</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/image-thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/defaultassociationform-thumb.jpg" medium="image">
			<media:title type="html">Default Association Form</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/infopath1-thumb.jpg" medium="image">
			<media:title type="html">InfoPath 1</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/infopath2-thumb.jpg" medium="image">
			<media:title type="html">InfoPath 2</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/infopath3-thumb.jpg" medium="image">
			<media:title type="html">InfoPath 3</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/infopath4-thumb.jpg" medium="image">
			<media:title type="html">InfoPath 4</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/infopath5-thumb.jpg" medium="image">
			<media:title type="html">InfoPath 5</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/infopath6-thumb.jpg" medium="image">
			<media:title type="html">InfoPath 6</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/infopath7-thumb.jpg" medium="image">
			<media:title type="html">InfoPath 7</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/infopath8-thumb.jpg" medium="image">
			<media:title type="html">InfoPath 8</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/infopath9-thumb.jpg" medium="image">
			<media:title type="html">InfoPath 9</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/infopath10-thumb.jpg" medium="image">
			<media:title type="html">InfoPath 10</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/publish1-thumb.jpg" medium="image">
			<media:title type="html">Publish 1</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/publish2-thumb.jpg" medium="image">
			<media:title type="html">Publish 2</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/publish3-thumb.jpg" medium="image">
			<media:title type="html">Publish 3</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/publish4-thumb.jpg" medium="image">
			<media:title type="html">Publish 4</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/properties-thumb.jpg" medium="image">
			<media:title type="html">Properties</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/results1-thumb.jpg" medium="image">
			<media:title type="html">Results 1</media:title>
		</media:content>

		<media:content url="http://fyeomans.files.wordpress.com/2009/03/results2-thumb.jpg" medium="image">
			<media:title type="html">Results 2</media:title>
		</media:content>
	</item>
		<item>
		<title>MOSS Workflow Examples – Setting up the environment</title>
		<link>http://fyeomans.wordpress.com/2009/03/18/moss-workflow-examples-%e2%80%93-setting-up-the-environment/</link>
		<comments>http://fyeomans.wordpress.com/2009/03/18/moss-workflow-examples-%e2%80%93-setting-up-the-environment/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 04:52:02 +0000</pubDate>
		<dc:creator>Fred</dc:creator>
				<category><![CDATA[MOSS]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[InfoPath]]></category>
		<category><![CDATA[WF]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://fyeomans.wordpress.com/?p=254</guid>
		<description><![CDATA[This is the first in what I intend will be a series of posts on various verytactical aspects of implementing workflow in MOSS 2007. What will be talking about is code, not the strategic, big picture things like planning, requirements, usability, governance, etc. I will talk about those in other posts, but not this series.
So, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fyeomans.wordpress.com&blog=730098&post=254&subd=fyeomans&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This is the first in what I intend will be a series of posts on various <strong>very</strong>tactical aspects of implementing workflow in MOSS 2007. What will be talking about is code, not the strategic, big picture things like planning, requirements, usability, governance, etc. I will talk about those in other posts, but not this series.</p>
<p>So, why write about this at all? I mean, there should be lots of content out there in blog posts, MS documentation, tutorials, etc., right? Well there is content out there, but I found I had problems figuring things out, for a few reasons:</p>
<ol>
<li>Much of the documentation and examples are written referring to Visual Studio 2005 with the appropriate addons. While this is useful, and is pretty close to using VS2008, there are enough differences that it is a pain trying figure out what they are, when you are also trying to figure out what you are doing in MOSS, WF, and InfoPath.</li>
<li>Many of the tutorials try to cover too many things at once. I like to have tutorials and examples that show <strong>one</strong> thing, in a very limited context, so that I can see exactly what is happening. I appreciate the need for and value of end-to-end examples, but I tend to need both.</li>
<li>This is purely selfish – I am notoriously bad at losing things (actually, I am very good at losing things), including links to stuff I find useful. So, these posts are at least partially for my own benefit – if I write down the instructions in my own blog, then I should be able to find them (if not, I probably have much more serious issues to deal with).</li>
</ol>
<p>So, to start off, I am going to describe my base environment, which will serve as the starting point for most of my examples. I like to always start from a known baseline for these kind of examples. I have a base environment, and if I am using Microsoft Virtual PC, I make a copy of it to work through a given example. If I am using VMWare, I use snapshots.</p>
<p>My environment consists of the following (all fully patched):</p>
<ol>
<li>A Microsoft VPC running Windows Server 2003 R2</li>
<li>MOSS 2007 (Enterprise – need Forms Server)</li>
<li>InfoPath 2007</li>
<li>Visual Studio 2008</li>
<li>Visual Studio 2008 extensions for Windows SharePoint Services 3.0 (version 1.2)</li>
</ol>
<p>In this environment, I have created a simple Team Site. Within this, I will add lists and libraries as required for my different examples.</p>
<p>In my next post, I will walk through creating a very simple workflow with a custom Association form developed in InfoPath (I will do a custom ASPX Association form later if I get time.)</p>
Posted in MOSS, SharePoint Tagged: How To, InfoPath, MOSS, SharePoint, WF, Workflow <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/fyeomans.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fyeomans.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/fyeomans.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/fyeomans.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/fyeomans.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/fyeomans.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/fyeomans.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/fyeomans.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/fyeomans.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/fyeomans.wordpress.com/254/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=fyeomans.wordpress.com&blog=730098&post=254&subd=fyeomans&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://fyeomans.wordpress.com/2009/03/18/moss-workflow-examples-%e2%80%93-setting-up-the-environment/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7273bb3c332576b15874f9a1b0fc91b1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Fred</media:title>
		</media:content>
	</item>
	</channel>
</rss>