<?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/"
	>

<channel>
	<title>Razor .Net</title>
	<atom:link href="http://www.markus-alt.de/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.markus-alt.de/blog</link>
	<description>.Net, SharePoint, Powershell and Coffee</description>
	<lastBuildDate>Thu, 30 Sep 2010 10:02:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>My Nintex Workflow Workshop at Collaboration Days</title>
		<link>http://www.markus-alt.de/blog/?p=392</link>
		<comments>http://www.markus-alt.de/blog/?p=392#comments</comments>
		<pubDate>Thu, 30 Sep 2010 09:57:39 +0000</pubDate>
		<dc:creator>Markus</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[collabdays]]></category>
		<category><![CDATA[collaboration days]]></category>
		<category><![CDATA[luzern]]></category>
		<category><![CDATA[Nintex]]></category>
		<category><![CDATA[nintex workflow]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://www.markus-alt.de/blog/?p=392</guid>
		<description><![CDATA[I´m happy to announce that my workshop is now online and open for registration @ http://www.collaborationdays.ch
	

	
In this half day workshop I´ll pick up real life scenarios and explain how easy and quick you can create, deploy and maintain your SharePoint workflows using Nintex Workflow 2010. You´ll also see how you can enhance your workflow experience [...]]]></description>
			<content:encoded><![CDATA[<p>I´m happy to announce that my workshop is now online and open for registration @ <a href="http://www.collaborationdays.ch/" target="_blank">http://www.collaborationdays.ch</a>
	</p>
<p><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/09/093010_0957_MyNintexWor1.png" alt=""/>
	</p>
<p>In this half day workshop I´ll pick up real life scenarios and explain how easy and quick you can create, deploy and maintain your SharePoint workflows using Nintex Workflow 2010. You´ll also see how you can enhance your workflow experience with a set of features that are not available when Nintex Workflow is not at hand.
</p>
<p>The workshop will take place on Tuesdays, 30<sup>th</sup> November 2010. Hope to see you there!
</p>
<p>
 </p>
<p>
 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.markus-alt.de/blog/?feed=rss2&amp;p=392</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amazing promotion video (Nintex)</title>
		<link>http://www.markus-alt.de/blog/?p=360</link>
		<comments>http://www.markus-alt.de/blog/?p=360#comments</comments>
		<pubDate>Thu, 15 Jul 2010 06:15:32 +0000</pubDate>
		<dc:creator>Markus</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[drawing]]></category>
		<category><![CDATA[fitzmaurice]]></category>
		<category><![CDATA[Nintex]]></category>
		<category><![CDATA[promotion]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://www.markus-alt.de/blog/?p=360</guid>
		<description><![CDATA[Mike Fitzmaurice is not just a Nintex expert, obviously he´s a very good drawer too J
	
Do not miss this great video he did to promote the product!


	

 
You can download the video herehttp://nintexdownload.com/video/NW2010Whiteboard.wmv
	

 
]]></description>
			<content:encoded><![CDATA[<p>Mike <a href="http://mikefitzmaurice.wordpress.com/about/" target="_blank">Fitzmaurice</a> is not just a Nintex expert, obviously he´s a very good drawer too <span style="font-family:Wingdings">J</span>
	</p>
<p>Do not miss this great video he did to promote the product!
</p>
<p><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/07/071510_0615_Amazingprom11.png" alt=""/>
	</p>
<p>
 </p>
<p>You can download the video here<br/><a href="http://nintexdownload.com/video/NW2010Whiteboard.wmv">http://nintexdownload.com/video/NW2010Whiteboard.wmv</a>
	</p>
<p>
 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.markus-alt.de/blog/?feed=rss2&amp;p=360</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://nintexdownload.com/video/NW2010Whiteboard.wmv" length="63801993" type="video/x-ms-wmv" />
		</item>
		<item>
		<title>Let your Nintex workflows talk to eachother</title>
		<link>http://www.markus-alt.de/blog/?p=351</link>
		<comments>http://www.markus-alt.de/blog/?p=351#comments</comments>
		<pubDate>Tue, 13 Jul 2010 12:51:06 +0000</pubDate>
		<dc:creator>Markus</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Nintex]]></category>
		<category><![CDATA[Retrieve Data]]></category>
		<category><![CDATA[Store Data]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://www.markus-alt.de/blog/?p=351</guid>
		<description><![CDATA[In this post I´ll discover more functionality that comes along with Nintex Workflow 2010. Imagine you have a parent-child relation within your workflows and the parent workflow depends on data that is created inside the child workflow.

With former edition of Nintex Workflow it was absolutely impossible to get control of any workflow data within a [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family:Times New Roman; font-size:12pt">In this post I´ll discover more functionality that comes along with Nintex Workflow 2010. Imagine you have a parent-child relation within your workflows and the parent workflow depends on data that is created inside the child workflow.<br />
</span></p>
<p><span style="font-family:Times New Roman; font-size:12pt">With former edition of Nintex Workflow it was absolutely impossible to get control of any workflow data within a running external WF instance. You could help yourself out with list columns to store the data and then later look it up manually. Fortunately this has changed now! There´s two new actions we need to take a closer look at: <strong>Store Data</strong> &amp; <strong>Retrieve Data</strong>!<br />
</span></p>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/07/071310_1451_Letyourwork11.png" alt=""/><span style="font-family:Times New Roman; font-size:12pt"><br />
		</span></p>
<p><span style="font-family:Times New Roman; font-size:12pt">With these activities it is possible to look into a running workflow instance and collect data from other workflows. You need to know that you <span style="text-decoration:underline"><strong>cannot</strong></span> read &#8220;classic&#8221; workflow variable values, you have to store the value in special property bag with the help of the new <strong>Store Data</strong> action.<br />
</span></p>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/07/071310_1451_Letyourwork21.png" alt=""/><span style="font-family:Times New Roman; font-size:12pt"><br />
		</span></p>
<h3>Workflow instance to store to<br />
</h3>
<p><span style="font-family:Times New Roman; font-size:12pt">This parameter defines the workflow instance ID of the workflow where you want to store the data. This can be any instance ID on the same SharePoint Site. You can catch the instance ID when you start another workflow (Action or Webservice).<br />
</span></p>
<h3>Store as<br />
</h3>
<p><span style="font-family:Times New Roman; font-size:12pt">This parameter defines the name of the data you want to store within the WF. Imagine this as a hashtable or dictionary like approach where you can add values.<br />
</span></p>
<h3>Variable to store<br />
</h3>
<p><span style="font-family:Times New Roman; font-size:12pt">Here you have to pass the variable that holds the data you want to store!<br />
</span></p>
<h2>The parent workflow<br />
</h2>
<p>In this scenario I`m using the Flexible Task Action to let the user decide which child workflow he wants to start (Calculation A, B or C).
</p>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/07/071310_1451_LetyourNint11.png" alt=""/>
	</p>
<p>The child WF then calculates some values and stores it right in the instance as variable value. From my parent WF I need to look into the child WF – that means I need the instance ID of that child WF. You can easily get that ID in using the Start Workflow action, it returns the ID as a parameter.
</p>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/07/071310_1451_LetyourNint21.png" alt=""/><span style="font-family:Times New Roman; font-size:12pt"><br />
		</span></p>
<p><span style="font-family:Times New Roman; font-size:12pt">The last thing we  need to do is to look up the calculated value from the child workflow. This is where we need the Retrieve Data action. Just pass in the workflow ID of the child WF instance and the right key to retrieve and store the value in a variable!<br />
</span></p>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/07/071310_1451_LetyourNint31.png" alt=""/><span style="font-family:Times New Roman; font-size:12pt"><br />
		</span></p>
<p><span style="font-family:Times New Roman; font-size:12pt">You can then use the &#8220;externalValue&#8221; variable wherever you need it inside the process!<br />
</span></p>
<p>
 </p>
<h2>The child workflow<br />
</h2>
<p>A child workflow is doing some &#8220;complex&#8221; calculation and stores the result in an instance variable. Keep in mind that this workflow is started from another (parent) workflow! It could look like this:
</p>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/07/071310_1451_LetyourNint41.png" alt=""/><span style="font-family:Times New Roman; font-size:12pt"><br />
		</span></p>
<p><span style="font-family:Times New Roman; font-size:12pt">I´ll pass a string to the WF instance variable. To keep it simple, I´ll just write &#8220;value from calculation WF is…&#8221; and store the final string in a new variable called &#8220;result&#8221;.<br />
</span></p>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/07/071310_1451_LetyourNint51.png" alt=""/><span style="font-family:Times New Roman; font-size:12pt"><br />
		</span></p>
<p><span style="font-family:Times New Roman; font-size:12pt">The configuration of the Store Data Action is pretty straight forward then. I´ll keep the data inside the current instance and will look it up from my parent &#8220;main&#8221; workflow! See &#8220;The parent workflow&#8221;.<br />
</span></p>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/07/071310_1451_LetyourNint61.png" alt=""/><span style="font-family:Times New Roman; font-size:12pt"><br />
		</span></p>
<p><span style="font-size:12pt"><span style="font-family:Times New Roman">That´s it. I´ll write the data to the History Log of my parent workflow. Let´s see if it works as expected </span><span style="font-family:Wingdings">J</span><span style="font-family:Times New Roman"><br />
			</span></span></p>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/07/071310_1451_LetyourNint7.png" alt=""/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.markus-alt.de/blog/?feed=rss2&amp;p=351</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nintex Workflow 2010 released</title>
		<link>http://www.markus-alt.de/blog/?p=331</link>
		<comments>http://www.markus-alt.de/blog/?p=331#comments</comments>
		<pubDate>Tue, 13 Jul 2010 06:56:41 +0000</pubDate>
		<dc:creator>Markus</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Nintex]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://www.markus-alt.de/blog/?p=331</guid>
		<description><![CDATA[
	
Yesterday Nintex released the latest version of its workflow product Nintex Workflow 2010! As you know, I´m sort of a Nintex guy and therefore the latest release needs to be mentioned on my blog. There´s lots of new things to discover, I´ll try to keep you up2date and share some experience regularly.

For further information, visit [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/07/071310_0656_NintexWorkf11.png" alt=""/>
	</p>
<p>Yesterday Nintex released the latest version of its workflow product Nintex Workflow 2010! As you know, I´m sort of a Nintex guy and therefore the latest release needs to be mentioned on my blog. There´s lots of new things to discover, I´ll try to keep you up2date and share some experience regularly.
</p>
<p>For further information, visit the <a href="http://www.nintex.com">official Nintex website</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markus-alt.de/blog/?feed=rss2&amp;p=331</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Document conversion with Nintex Workflow 2010</title>
		<link>http://www.markus-alt.de/blog/?p=329</link>
		<comments>http://www.markus-alt.de/blog/?p=329#comments</comments>
		<pubDate>Tue, 13 Jul 2010 06:51:30 +0000</pubDate>
		<dc:creator>Markus</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Conversion]]></category>
		<category><![CDATA[Nintex]]></category>
		<category><![CDATA[PDF]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Workflow]]></category>
		<category><![CDATA[XPS]]></category>

		<guid isPermaLink="false">http://www.markus-alt.de/blog/?p=329</guid>
		<description><![CDATA[With the latest release of Nintex Workflow 2010 there comes a new function to enable you to convert documents to other formats. If you are familiar with the new SharePoint Word Automation Services you recognize that this workflow activity encapsulates the service 1:1. Since the Word Automation Services are only available on SharePoint Server systems [...]]]></description>
			<content:encoded><![CDATA[<p>With the latest release of Nintex Workflow 2010 there comes a new function to enable you to convert documents to other formats. If you are familiar with the new SharePoint Word Automation Services you recognize that this workflow activity encapsulates the service 1:1. Since the Word Automation Services are only available on SharePoint Server systems (not on SharePoint Foundation) you can only use this activity on appropriate environments.
</p>
<p>Before you start, you need to configure the Word Automation Services. This is easy using the Central Administration configuration wizard.
</p>
<p><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/07/071310_0651_Documentcon12.png" alt=""/>
	</p>
<p>Once the services are set up, we can start building the workflow. Let&#8217;s create a small workflow that requires a document approval whereas the approver can decide if he wants to convert the document to PDF or XPS format.
</p>
<p><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/07/071310_0651_Documentcon22.png" alt=""/>
	</p>
<p>I use the Flexible Task activity to create the desired outcomes &#8220;Approve to PDF&#8221; and  &#8220;Approve to XPS&#8221;.
</p>
<p><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/07/071310_0651_Documentcon32.png" alt=""/>
	</p>
<p>In the &#8220;Libraries and Lists&#8221; category you can find a new action called &#8220;<strong>Convert document</strong>&#8220;.
</p>
<p>
 </p>
<p><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/07/071310_0651_Documentcon41.png" alt=""/>
	</p>
<p>Drag in onto the designer and open the configuration dialog. I want the converted documents to be saved in my &#8220;PDFs&#8221; library. A configuration could look like this.
</p>
<p>
 </p>
<p><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/07/071310_0651_Documentcon51.png" alt=""/>
	</p>
<p>You have the following converter format options:
</p>
<ul>
<li>Automatic
</li>
<li>Document (.docx)
</li>
<li>Document -97 (.doc)
</li>
<li>Document  &#8211; macro enabled (.docm)
</li>
<li>MIME HTML (.mhtml)
</li>
<li>PDF (.pdf)
</li>
<li>Rich Text Format (.rtf)
</li>
<li>Template (.dotx)
</li>
<li>Template -97 (.dot)
</li>
<li>Template – Macro enabled (.dotm)
</li>
<li>XML (.xml)
</li>
<li>XPS (.xps)
</li>
</ul>
<p>The rest works like a charm! Let the workflow run and see the result in the PDFs list <span style="font-family:Wingdings">J</span>
	</p>
<p><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/07/071310_0651_Documentcon6.png" alt=""/>
	</p>
<p><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/07/071310_0651_Documentcon7.png" alt=""/>
	</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markus-alt.de/blog/?feed=rss2&amp;p=329</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Handle Sub-Site items with Nintex Workflow</title>
		<link>http://www.markus-alt.de/blog/?p=308</link>
		<comments>http://www.markus-alt.de/blog/?p=308#comments</comments>
		<pubDate>Wed, 26 May 2010 21:32:01 +0000</pubDate>
		<dc:creator>Markus</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Nintex]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://www.markus-alt.de/blog/?p=308</guid>
		<description><![CDATA[If you have ever wondered whether it´s possible to use Nintex Workflow to create / update / delete / whatever SharePoint items on sub-sites, yes you can! It´s a bit tricky since the default action &#8220;Create Item&#8221; does not support this functionality, but that does not mean it´s impossible to do it.

You have a few [...]]]></description>
			<content:encoded><![CDATA[<p>If you have ever wondered whether it´s possible to use Nintex Workflow to create / update / delete / whatever SharePoint items on sub-sites, yes you can! It´s a bit tricky since the default action &#8220;Create Item&#8221; does not support this functionality, but that does not mean it´s impossible to do it.
</p>
<p>You have a few options:
</p>
<ol>
<li>Use SharePoint&#8217;s own web service methods to get control of subsite items
</li>
<li>Use the PowerActivity and handle subsite items via the SharePoint Object Model
</li>
</ol>
<p>I´ll give you a short introduction to both approaches. Let´s begin with option 1
</p>
<p><span style="font-size:14pt"><em>SharePoint Webservices &amp; Nintex Workflow<br />
</em></span></p>
<p>In this scenario I´m going to use a master list on a site collection to define meta data for the items I want to create on a list of a sub-site. We need some columns here:
</p>
<ul>
<li>Sub-Site Listname
</li>
<li>Sub-Site New Item Title
</li>
<li>Add any other metadata field you want to use in your sub-site list
</li>
</ul>
<p>This really easy workflow consists of two actions:
</p>
<p><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/05/052610_2131_HandleSubSi13.png" alt=""/>
	</p>
<p>Step 1:
</p>
<p>First we need to create the XML to feed the SOAP request in the webservice call. You should use the &#8220;build dynamic string&#8221;  action here. I´m using a reference to the &#8220;new item title&#8221; field here. To create a new item your XML should look similar to this:
</p>
<p><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/05/052610_2131_HandleSubSi22.png" alt=""/>
	</p>
<p>Step 2:
</p>
<p>Next we have to configure the webservice call. Let´s assume we want to create a new item, that means we have to use the UpdateListItems method of the lists web service. Keep in mind to use the sub-site url when defining the service url, in my case this is the url:
</p>
<p><a href="http://localhost/subsite/_vti_bin/lists.asmx">http://localhost/subsite/_vti_bin/lists.asmx</a>
	</p>
<p><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/05/052610_2131_HandleSubSi32.png" alt=""/>
	</p>
<p>SubSiteListname is a reference to the fieldvalue in my masterlist and xml is the variable filled in the build dynamic string action (step 1).
</p>
<p><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/05/052610_2131_HandleSubSi4.png" alt=""/>
	</p>
<p>Run the WF on any item…
</p>
<p><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/05/052610_2131_HandleSubSi5.png" alt=""/>
	</p>
<p>That´s it. In another post I will do the same thing using the PowerActivity!
</p>
<p>Markus</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markus-alt.de/blog/?feed=rss2&amp;p=308</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Set folder security with PowerActivity for Nintex Workflow</title>
		<link>http://www.markus-alt.de/blog/?p=287</link>
		<comments>http://www.markus-alt.de/blog/?p=287#comments</comments>
		<pubDate>Sun, 18 Apr 2010 13:13:13 +0000</pubDate>
		<dc:creator>Markus</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Nintex]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://www.markus-alt.de/blog/?p=287</guid>
		<description><![CDATA[In this second posting I`ll demonstrate with another example how you can make great use of Nintex Workflow and the PowerActivity. The first posting showed how you can use the PowerActivity against your Active Directory backend and how to update certain AD Account properties.

This time I`m going to use Nintex Workflow to create a shared [...]]]></description>
			<content:encoded><![CDATA[<p>In this second posting I`ll demonstrate with another example how you can make great use of Nintex Workflow and the PowerActivity. The <a href="http://www.markus-alt.de/blog/?p=275" target="_blank">first posting</a> showed how you can use the <a href="http://www.dataone.de/de/Loesungen/sharepointportale/Seiten/NintexWorkflowPowerActivity.aspx">PowerActivity</a> against your Active Directory backend and how to update certain AD Account properties.
</p>
<p>This time I`m going to use Nintex Workflow to create a shared network folder and set the folders security on the fly within the workflow. Imagine you have a workflow which has to create a user specific folder on a share. Further, the security settings of the new folder should be inherited from the parent folder plus the specific user needs to have full rights on his newly created folder. You would definitely have a hard time to get this done using Nintex´s default functionality. With the ability to wrap .Net functionality with PowerShell, we can use the .Net framework to handle our security requirements.
</p>
<pre class="brush: plain;">
$sharepath = &quot;\\server\share&quot;;
$folderName = &quot;userfolder&quot;;
$path = $sharepath + &quot;\&quot; + $folderName
$exists = [System.IO.Directory]::Exists($path)
if(!$exists)
{
$dir = [System.IO.Directory]::CreateDirectory($path)
$security = $dir.GetAccessControl()
$filesystemright = [System.Security.AccessControl.FileSystemRights]::FullControl
$inheritflags = [System.Security.AccessControl.InheritanceFlags]::ContainerInherit -band [System.Security.AccessControl.InheritanceFlags]::ObjectInherit
$propagationflags = [System.Security.AccessControl.PropagationFlags]::None $controlType = [System.Security.AccessControl.AccessControlType]::Allow
$fsa = new-object -typename System.Security.AccessControl.FileSystemAccessRule(&quot;domain\username&quot;;, $filesystemright, $inheritflags, $propagationflags, $controlType)
$security.SetAccessRule($fsa)
$dir.SetAccessControl($security)
}
</pre>
<p><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/04/041810_1513_Setfolderse11.png" alt=""/>
	</p>
<p>We can use the PowerActivity to determine if the folder already exists as well! The final workflow may look like this to get this done:
</p>
<p><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/04/041810_1513_Setfolderse21.png" alt=""/>
	</p>
<p><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/04/041810_1513_Setfolderse31.png" alt=""/>
	</p>
<p>You see the combination of Nintex, PowerShell and .Net Code can be very powerfull. In these two posting I did the following things and they work like a charme:
</p>
<ul>
<li>Update properties on Active Directory accounts
</li>
<li>Checked for existence of network folders
</li>
<li>Created network folders
</li>
<li>Set permissions on network folders
</li>
</ul>
<p>Greetz,
</p>
<p>Markus</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markus-alt.de/blog/?feed=rss2&amp;p=287</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Nintex Workflow, PowerShell and .Net</title>
		<link>http://www.markus-alt.de/blog/?p=275</link>
		<comments>http://www.markus-alt.de/blog/?p=275#comments</comments>
		<pubDate>Fri, 16 Apr 2010 21:08:59 +0000</pubDate>
		<dc:creator>Markus</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[Nintex]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://www.markus-alt.de/blog/?p=275</guid>
		<description><![CDATA[Today I´ve been with a customer and ran into a problem using the &#8220;Update AD Account&#8221; activity. One scenario was to manage AD Accounts with the help of SharePoint Lists and Nintex Workflow. Anyways, it was necessary to maintain the &#8220;AccountExpirationDate&#8221; property of AD accounts. Unfortunately there´s no way to do that by default with [...]]]></description>
			<content:encoded><![CDATA[<p>Today I´ve been with a customer and ran into a problem using the &#8220;Update AD Account&#8221; activity. One scenario was to manage AD Accounts with the help of SharePoint Lists and Nintex Workflow. Anyways, it was necessary to maintain the &#8220;AccountExpirationDate&#8221; property of AD accounts. Unfortunately there´s no way to do that by default with Nintex. If you take a look at the format of this attributes value, you understand why you cannot just assign a date here (i.e. via the &#8220;other&#8221; property option). Read <a href="http://www.rlmueller.net/AccountExpires.htm" target="_blank">this article</a> to understand the issue.
</p>
<p>So this is where PowerShell and the Power Activity for Nintex Workflow kick in! You could script down a complex algorithm to determine the correct &#8220;AccountExpirationDate&#8221; value – that looks sort of tricky, so I decided to go the easy way: the .Net way <img src='http://www.markus-alt.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  PowerShell can basically do anything that you could do with a .Net application.
</p>
<p>A lightweight version of the workflow looks like this:
</p>
<p><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/04/041610_2108_NintexWorkf1.png" alt=""/>
	</p>
<p>As I mentioned before, I decided to use .Net objects to get this done. To do operations against an Active Directory we need to load in the &#8220;System.DirectoryServices.AccountManagement.dll&#8221; assembly.
</p>
<p>The script came out like this. $var1 is mapped to a username field and $var2 is mapped to a date field of the corresponding SharePoint list.
<pre class="brush: powershell;">$path = $env:ProgramFiles + &amp;quot;\Reference Assemblies\Microsoft\Framework\v3.5\System.DirectoryServices.AccountManagement.dll&amp;quot;
[System.Reflection.Assembly]::LoadFile($path)
$ctxType = [System.DirectoryServices.AccountManagement.ContextType]::Domain
$ctx = new-object -typename System.DirectoryServices.AccountManagement.PrincipalContext($ctxType)
$identity = $var1
$user = [System.DirectoryServices.AccountManagement.UserPrincipal]::FindByIdentity($ctx, $identity) $user.AccountExpirationDate = $var2
$user.Save()</pre>
</p>
<p><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/04/041610_2308_NintexWorkf1.png" alt=""/>
	</p>
<p>This went really quick! Another cool way to use the <a href="http://www.dataone.de/de/Loesungen/sharepointportale/Seiten/NintexWorkflowPowerActivity.aspx">Power Activity</a><br />
		<span style="font-family:Wingdings"></span>
	</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markus-alt.de/blog/?feed=rss2&amp;p=275</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Automate Twitter with Nintex Workflow &#8211; II</title>
		<link>http://www.markus-alt.de/blog/?p=259</link>
		<comments>http://www.markus-alt.de/blog/?p=259#comments</comments>
		<pubDate>Thu, 04 Mar 2010 21:17:41 +0000</pubDate>
		<dc:creator>Markus</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Nintex]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://www.markus-alt.de/blog/?p=259</guid>
		<description><![CDATA[This is the third part of my series on Twitter Automation with Nintex Workflow 2007. If you don´t know what I´m talking about, read the first two parts here


Intro
		
Part I (connecting external system, webservices with Nintex Workflow)


In this part I´ll create a list structure within SharePoint. Let´s recapture what I´m trying to do. When this [...]]]></description>
			<content:encoded><![CDATA[<p>This is the third part of my series on Twitter Automation with Nintex Workflow 2007. If you don´t know what I´m talking about, read the first two parts here
</p>
<ul>
<li><a href="http://www.markus-alt.de/blog/?p=193">Intro</a>
		</li>
<li><a href="http://www.markus-alt.de/blog/?p=211">Part I</a> (connecting external system, webservices with Nintex Workflow)
</li>
</ul>
<p>In this part I´ll create a list structure within SharePoint. Let´s recapture what I´m trying to do. When this is done I want to have a sort of a, let´s call it &#8220;marketing machine&#8221; which will find Twitter users that are &#8220;tweeting&#8221; about specific keywords. To find the right users we need something like a search list where we will store the hashtags (=keywords) we are looking for. I´ll create a list called &#8220;Twitter Search&#8221; and add some fields to manage the search behavior of the workflows.
</p>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/03/030410_2117_AutomateTwi13.png" alt=""/>
	</p>
<p>Of course there´s a field &#8220;Hashtag&#8221;, additionally I added a field &#8220;Active&#8221; of type Boolean. I will use this field as a switch to tell a WF to ignore the hashtag on the next run. Remember that workflows will run scheduled and will never be started manually. To catch the users we find on Twitter I use another list, let´s name it &#8220;Following&#8221;.
</p>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/03/030410_2117_AutomateTwi22.png" alt=""/>
	</p>
<p>This &#8220;Following&#8221; list serves as a target list for the search WF hosted in the &#8220;Twitter Search&#8221; list. The &#8220;Search WF&#8221; will create items here. There´s also a Boolean field &#8220;Following&#8221;, I´m using this as an indicator when the username has been added successfully to my Twitter followers. On this list there will be a WF to actually ADD users to my timeline, whereas the WF on the other list will only look them up. I want to split that process because otherwise it would not be possible to use different schedulings for search and add functionalities.
</p>
<p>Last but not least I add another list called &#8220;Scheduling List&#8221;. This list will act as a controlling list, I´m going to define when and how often I want to run the Twitter search here.
</p>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/03/030410_2117_AutomateTwi3.png" alt=""/>
	</p>
<p>You see I have 3 items in this list, each one is packed with a WF schedule. At this point you have to know that any WF schedule is bound to a single SharePoint item. I´m using the &#8220;Search Hashtags&#8221; item to schedule the search. If you want to look up for Twitter users once per hour, a schedule could look like this. You find the scheduling option in the context menu of the SharePoint item.
</p>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/03/030410_2117_AutomateTwi4.png" alt=""/>
	</p>
<p>The scheduling for the other two listitems looks similar, the only difference is that I´m adding users every five hours. In the next part of this series, I´m going to describe the workflows in detail.
</p>
<p>
 </p>
<p>Cheers.
</p>
<p>Markus</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markus-alt.de/blog/?feed=rss2&amp;p=259</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Automate Twitter with Nintex Workflow &#8211; I</title>
		<link>http://www.markus-alt.de/blog/?p=211</link>
		<comments>http://www.markus-alt.de/blog/?p=211#comments</comments>
		<pubDate>Tue, 02 Mar 2010 08:32:28 +0000</pubDate>
		<dc:creator>Markus</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Nintex]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://www.markus-alt.de/blog/?p=211</guid>
		<description><![CDATA[In my last post I described how I´ll try use workflows and lists to build service-like behaviour to automatically add Twitter users to my &#8220;following&#8221; list.

To get this done, we need to take a closer look at how to use Nintex Workflow to place web requests and how Twitters own search engine is working.

The Twitter [...]]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://www.markus-alt.de/blog/?p=193">last post</a> I described how I´ll try use workflows and lists to build service-like behaviour to automatically add Twitter users to my &#8220;following&#8221; list.
</p>
<p>To get this done, we need to take a closer look at how to use Nintex Workflow to place web requests and how Twitters own search engine is working.
</p>
<p><strong><em>The Twitter Part </em></strong>
	</p>
<p>Let´s begin with Twitter search. There´s a special search page on Twitter, go <a href="http://search.twitter.com/">here</a>!
</p>
<p>If you place a search (i.e. for sharepoint), the url changes to <br/><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/02/022710_0832_AutomateTwi13.png" alt=""/>
	</p>
<p>…and we can see the HTML result for that search<br/><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/02/022710_0832_AutomateTwi23.png" alt=""/>
	</p>
<p>What we need is sort of an XML result, that´s much easier to analyze than plain HTML. Take a look at the right part of the page, I marked &#8220;Feed for this query&#8221;. If you click on that, you notice a new url:
</p>
<p><br/><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/02/022710_0832_AutomateTwi33.png" alt=""/>
	</p>
<p>   <br />
 </p>
<p>&#8220;search.atom&#8221; means we get an XML result, so we hook here and try to make a request to this url with Nintex! Also keep in mind the URL parameters.
</p>
<p><strong><em>The Nintex Part </em></strong>
	</p>
<p>We use the &#8220;Web Request&#8221; action to take a first shot. Drag it onto the Workflow Designer and open its configuration dialog.
</p>
<p style="text-align: center"><br/><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/02/022710_0832_AutomateTwi42.png" alt=""/>
	</p>
<p>There´s only a few mandatory fields we need to configure here:
</p>
<ul>
<li>URL
</li>
<li>Username and password (use a WF constant here)
</li>
<li>Create a WF variable to catch the web result
</li>
</ul>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/02/022710_0832_AutomateTwi51.png" alt=""/>
	</p>
<p>In the lower part of the action, you will find the &#8220;Store result in&#8221; option. Here we use a WF variable (of type &#8220;Text&#8221;) to save the result string from the response.
</p>
<p style="text-align: center"><br/><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/02/022710_0832_AutomateTwi61.png" alt=""/>
	</p>
<p>At this point I publish the WF and let it run manually. In a later post I will describe in detail how we have to design the workflow entirely. If we take a look at the value of our result parameter, we recognize the schema of the xml result.
</p>
<p><pre class="brush: xml;">
&lt;feed&gt;
  &lt;entry&gt;
   &lt;author&gt;
      &lt;name&gt;markusalt (Markus Alt) &lt;/name&gt;
      &lt;uri&gt;http://twitter.com/markusalt &lt;/uri&gt;
    &lt;/author&gt;
  &lt;/entry&gt;
&lt;/feed&gt;
</pre>
</p>
<p>As you can see, the schema is pretty easy. What we need to do next is to extract the username, either from the &lt;name&gt; or the &lt;uri&gt; node. We will need the username later to add a user to the &#8220;following&#8221; list. Nintex Workflow comes with an action called &#8220;Query XML&#8221; which fits our purpose.
</p>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/03/022710_1032_AutomateTwi13.png" alt=""/>
	</p>
<p>The beauty here is that you can use XPATH to extract data you need from the xml source. Since we understood the xml schema, we can build a tiny XPATH query to get to the data. A fitting XPATH epxression to the &lt;name&gt; node would be: //feed/entry/author/name
</p>
<p>The configuration dialog would look like this
</p>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/03/022710_1032_AutomateTwi23.png" alt=""/>
	</p>
<p>
 </p>
<p>You see I use a new WF variable (of type &#8220;Collection&#8221;) to store the result. We need to use a collection variable since we will most likely get more than one username from the query. So, at this moment the first WF looks like this
</p>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/03/022710_1032_AutomateTwi32.png" alt=""/>
	</p>
<p>There´s not that much happening so far. We build the query string based on a certain hashtag, post a search request to Twitter and try to get a collection of corresponding usernames into a variable. With the last action I simply &#8220;log&#8221; the value to the WF history as a comment. If we run the WF there will be no value in the variable (no usernames inside the variable).
</p>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/03/022710_1032_AutomateTwi4.png" alt=""/>
	</p>
<p>Surprised? Not really, because there is a default namespace living inside the XML – Xpath does not like that. We have to use a trick to get rid of that default namespace. If you want to find and replace such values within a Nintex Workflow, you have to use the &#8220;Regular Expression&#8221; action. In our case, we need to erase <strong>xmlns=http://www.w3.org/2005/Atom </strong>. Use the following configuration to do that:
</p>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/03/022710_1032_AutomateTwi5.png" alt=""/>
	</p>
<p><br/>With this action, we simply override our &#8220;result&#8221; variable with the same XML data as before, but without the default namespace! Finally WF looks like this
</p>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/03/022710_1032_AutomateTwi6.png" alt=""/>
	</p>
<p>If we start the WF one more time, we can see that the usernames are listed now within the workflow comments (cut off, because of a 255 character limitation of the comment field) <span style="font-family:Wingdings">J</span>
	</p>
<p style="text-align: center"><img src="http://www.markus-alt.de/blog/wp-content/uploads/2010/03/022710_1032_AutomateTwi7.png" alt=""/>
	</p>
<p>You see it´s a little tricky to get to webservice data at hand with Nintex, but if you know how to handle XML with the right WF Action it works like a charme! In the following parts, I will describe how we can create a generic SharePoint structure to handle multiple hashtags and how to use WF scheduling to automatically do searches and add users to the &#8220;following&#8221; list.
</p>
<p>Markus</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markus-alt.de/blog/?feed=rss2&amp;p=211</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

