<?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>SCORCH Dev</title>
	<atom:link href="http://opalis.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://opalis.wordpress.com</link>
	<description></description>
	<lastBuildDate>Tue, 07 May 2013 23:47:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='opalis.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>SCORCH Dev</title>
		<link>http://opalis.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://opalis.wordpress.com/osd.xml" title="SCORCH Dev" />
	<atom:link rel='hub' href='http://opalis.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Parse Orchestrator Export</title>
		<link>http://opalis.wordpress.com/2013/04/19/parse-orchestrator-export/</link>
		<comments>http://opalis.wordpress.com/2013/04/19/parse-orchestrator-export/#comments</comments>
		<pubDate>Fri, 19 Apr 2013 19:40:04 +0000</pubDate>
		<dc:creator>randorfer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://opalis.wordpress.com/?p=963</guid>
		<description><![CDATA[I am happy to report that the Parse Orchestrator Export tool is now available for public consumption! This has been a back burner project for me for quite a while now and is actually one of a suite of projects<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://opalis.wordpress.com/2013/04/19/parse-orchestrator-export/">Read more &#8250;</a></div><!-- end of .read-more --><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=opalis.wordpress.com&#038;blog=17857751&#038;post=963&#038;subd=opalis&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I am happy to report that the Parse Orchestrator Export tool is now available for public consumption! This has been a back burner project for me for quite a while now and is actually one of a suite of projects I inherited from Robert Hearn when he left Microsoft. I blogged earlier about its default functionality (<a href="http://opalis.wordpress.com/2013/04/11/parse-orchestrator-export-tool/">http://opalis.wordpress.com/2013/04/11/parse-orchestrator-export-tool/</a>) and will use this post to expand a bit on the new functionality. The project is available at <a href="http://scorch.codeplex.com/releases/view/104915">http://scorch.codeplex.com/releases/view/104915</a>
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041913_1939_parseorches1.png?w=605" alt="" />
	</p>
<h1>What is it?<br />
</h1>
<p>It is a GUI application that looks at exports from your Orchestrator environment and allows you to perform multiple actions on them before re-importing them into the same environment or another Orchestrator Environment
</p>
<p>Primary Functions
</p>
<ol>
<li>
<div>Display a Graphical Representation of an Export
</div>
<ol>
<li>We use this internally while doing change control to ensure that all Global Configurations are properly configured in the destination Orchestrator Environment
</li>
</ol>
</li>
<li>
<div>Sanitize Export
</div>
<ol>
<li>This will remove all un-referenced global Settings and Configurations
</li>
<li><a href="http://blogs.technet.com/b/orchestrator/archive/2012/05/15/3497985.aspx">http://blogs.technet.com/b/orchestrator/archive/2012/05/15/3497985.aspx</a>
				</li>
<li><a href="http://opalis.wordpress.com/2013/04/11/parse-orchestrator-export-tool/">http://opalis.wordpress.com/2013/04/11/parse-orchestrator-export-tool/</a>
				</li>
</ol>
</li>
<li>
<div>Apply Link Best Practices
</div>
<ol>
<li>Modifies the links of an export to give them appropriate names and colors
</li>
<li><a href="http://opalis.wordpress.com/2013/04/12/orchestrator-link-best-practices/">http://opalis.wordpress.com/2013/04/12/orchestrator-link-best-practices/</a>
				</li>
</ol>
</li>
<li>
<div>Set Max Parallel
</div>
<ol>
<li>Allows for Bulk setting of Runbook Job Concurrency
</li>
<li><a href="http://opalis.wordpress.com/2013/04/17/bulk-set-orchestrator-max-policy-requests/">http://opalis.wordpress.com/2013/04/17/bulk-set-orchestrator-max-policy-requests/</a>
				</li>
</ol>
</li>
<li>
<div>Turn On / Off Generic Logging
</div>
<ol>
<li>Turns Off or On Generic Logging for All Runbooks
</li>
<li><a href="http://opalis.wordpress.com/2013/04/11/parse-orchestrator-export-tool/">http://opalis.wordpress.com/2013/04/11/parse-orchestrator-export-tool/</a>
				</li>
</ol>
</li>
<li>
<div>Turn On / Off Object Specific Logging
</div>
<ol>
<li>Turns Off or On Object Specific Logging for All Runbooks
</li>
<li><a href="http://opalis.wordpress.com/2013/04/11/parse-orchestrator-export-tool/">http://opalis.wordpress.com/2013/04/11/parse-orchestrator-export-tool/</a>
				</li>
</ol>
</li>
<li>
<div>Analyze Export
</div>
<ol>
<li>
<div>Iterates through the Export File and checks for common misconfigurations
</div>
<ol>
<li>Multiple Link objects between the same source and destination objects
</li>
<li>Trigger Policies that do not have all of the input parameters for the target policy defined
</li>
</ol>
</li>
</ol>
</li>
<li>
<div>Modify Name
</div>
<ol>
<li>Changes the name of any Runbook / Folder / Object / Global Configuration
</li>
</ol>
</li>
</ol>
<h1>Modify Name<br />
</h1>
<p>This is one of the most exciting functions of this tool in my opinion. This, coupled with &#8220;Set Max Parallel&#8221; makes it very simple to set Job Concurrency in bulk. It also makes it very easy to &#8216;duplicate&#8217; runbooks and have them maintain their own unique sets of global settings / configurations for connecting to resources
</p>
<h2>Max Parallel Example<br />
</h2>
<p>Say I wanted I had a Runbook that is called from SCCM task sequences through our Web Service. I probably want each one of my Runbooks to be able to be called by different machines being re-imaged. By default though, each Runbook has it concurrency set to 1. This means that all of my requests will &#8216;stack up&#8217; behind one another (ie if I have 5 machines that make a call to my workflow for shutting off Port Authentication they would be handled one at a time in the order they were received even though they could all run at the same time). To change this behavior we can go in with the Runbook designer to each Runbook and set &#8216;Job Concurrency&#8217; to something other than one
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041913_1939_parseorches2.png?w=605" alt="" />
	</p>
<p>Or, if we want to do it in bulk we can use the Export to to change a folder name then click &#8216;Set Max Parallel&#8217; and it will change the setting for all of our Runbooks!
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041913_1939_parseorches3.png?w=605" alt="" />
	</p>
<p>
 </p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041913_1939_parseorches4.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041913_1939_parseorches5.png?w=605" alt="" />
	</p>
<p><img align="left" src="http://opalis.files.wordpress.com/2013/04/041913_1939_parseorches6.png?w=605" alt="" /><br />And now all the Runbooks under that folder have their concurrency set to 5! More information about &#8216;Set Max Parallel&#8217; can be found at <a href="http://opalis.wordpress.com/2013/04/17/bulk-set-orchestrator-max-policy-requests/">http://opalis.wordpress.com/2013/04/17/bulk-set-orchestrator-max-policy-requests/</a>
	</p>
<h2>Runbook Duplication<br />
</h2>
<p>The most interesting use of &#8216;Modify Name&#8217; I think though is the ability duplicate a Runbook in such a way that it can live in the same environment as its base Runbook without sharing any references. Imagine if you will a scenario where we have a Runbook that will be called by a task sequence. The first version of these Runbooks *should* be pointed at &#8216;development&#8217; infrastructure – a test Active Directory domain, a test SCCM instances etc etc – the though becomes how do we make a &#8216;production&#8217; version of this without much effort and while keeping our development version? Modify Name to the rescue!
</p>
<h3>Step 1: Export your Runbook<br />
</h3>
<h3>Step 2: Sanitize your Runbook with the tool<br />
</h3>
<h3>Step 3: Modify Global Names to Ensure Uniqueness<br />
</h3>
<p>If there is anything in your export folder that you need to have a &#8216;separate&#8217; instance of for the &#8216;new&#8217; version then simply change its name using Modify Name (it will update both the element name and all references to that name). We usually will re-name the Root Runbook Folder, the Root Variable Folder and all Global Configurations
</p>
<h4>Renaming Root Runbook Folder<br />
</h4>
<p><img src="http://opalis.files.wordpress.com/2013/04/041913_1939_parseorches7.png?w=605" alt="" />
	</p>
<p>Supply the New Name and Click Ok
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041913_1939_parseorches8.png?w=605" alt="" />
	</p>
<h4>Renaming Root Variable Folder<br />
</h4>
<p>We also rename the root Variable folder, this means that we will have two totally separate versions of all variables and we can update them independently
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041913_1939_parseorches9.png?w=605" alt="" />
	</p>
<h4>Renaming Global Configurations<br />
</h4>
<p>We can also rename Global Configurations (those things under &#8216;Options -&gt; Integration Pack&#8217;) meaning we don&#8217;t have to go in and &#8216;re-point / reconfigure&#8217; all of our objects to change a global configuration
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041913_1939_parseorches10.png?w=605" alt="" />
	</p>
<p>Now we have unique versions in our export file of everything that we want to be independent of the other version. We can no re-import and go about our day!
</p>
<p>Hopefully everyone finds this useful!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/opalis.wordpress.com/963/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/opalis.wordpress.com/963/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=opalis.wordpress.com&#038;blog=17857751&#038;post=963&#038;subd=opalis&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://opalis.wordpress.com/2013/04/19/parse-orchestrator-export/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ae266ef5f14fba3403ab9eaf8111e22a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">randorfer</media:title>
		</media:content>

		<media:content url="http://opalis.files.wordpress.com/2013/04/041913_1939_parseorches1.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041913_1939_parseorches2.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041913_1939_parseorches3.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041913_1939_parseorches4.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041913_1939_parseorches5.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041913_1939_parseorches6.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041913_1939_parseorches7.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041913_1939_parseorches8.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041913_1939_parseorches9.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041913_1939_parseorches10.png" medium="image" />
	</item>
		<item>
		<title>Bulk Set Orchestrator Max Policy Requests</title>
		<link>http://opalis.wordpress.com/2013/04/17/bulk-set-orchestrator-max-policy-requests/</link>
		<comments>http://opalis.wordpress.com/2013/04/17/bulk-set-orchestrator-max-policy-requests/#comments</comments>
		<pubDate>Wed, 17 Apr 2013 15:42:22 +0000</pubDate>
		<dc:creator>randorfer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://opalis.wordpress.com/?p=943</guid>
		<description><![CDATA[In orchestrator there is a concept of &#8216;Max Policy Requests&#8217; per Runbook that you create. The idea is to allow you to control how many instances can be &#8216;inside&#8217; any given Runbook at one time. There are many reasons to<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://opalis.wordpress.com/2013/04/17/bulk-set-orchestrator-max-policy-requests/">Read more &#8250;</a></div><!-- end of .read-more --><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=opalis.wordpress.com&#038;blog=17857751&#038;post=943&#038;subd=opalis&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>In orchestrator there is a concept of &#8216;Max Policy Requests&#8217; per Runbook that you create. The idea is to allow you to control how many instances can be &#8216;inside&#8217; any given Runbook at one time. There are many reasons to set this value to different values or to leave it to the default of 1. The purpose of this post however is not to discuss the &#8216;why&#8217; of this setting, rather to discuss a way we have developed internally for setting this in bulk. We have developed an internal naming convention for our Runbooks and our Folders that makes it obvious what this setting is set to for all Runbooks. We end our Folder and Runbook names with &#8220;- MP:NUMBER&#8221;. The MP here stands for Max Policy.
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041713_1542_bulksetorch11.png?w=605" alt="" />
	</p>
<h1>Setting from a Runbook in the Disable in AD folder – Defaults to 20<br />
</h1>
<p><img src="http://opalis.files.wordpress.com/2013/04/041713_1542_bulksetorch21.png?w=605" alt="" />
	</p>
<h1>Setting from a Runbook in the Disable in AD folder – Defaults to 5<br />
</h1>
<p><img src="http://opalis.files.wordpress.com/2013/04/041713_1542_bulksetorch31.png?w=605" alt="" />
	</p>
<h1>Setting from a Runbook in the Disable in AD SCOM – Automated Process does not change value<br />
</h1>
<p><img src="http://opalis.files.wordpress.com/2013/04/041713_1542_bulksetorch41.png?w=605" alt="" />
	</p>
<h1>How to use the automated process?<br />
</h1>
<p>This functionality has been built into the Parse Orchestrator Export Tool (available at <a href="https://scorch.codeplex.com/releases/view/104915">https://scorch.codeplex.com/releases/view/104915</a>)
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041713_1542_bulksetorch51.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041713_1542_bulksetorch61.png?w=605" alt="" />
	</p>
<p>And into the Orchestrator Administration Integration Pack (Available at <a href="https://scorch.codeplex.com/releases/92063" rel="nofollow">https://scorch.codeplex.com/releases/92063</a>)
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041713_1542_bulksetorch71.png?w=605" alt="" />
	</p>
<p>Enjoy!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/opalis.wordpress.com/943/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/opalis.wordpress.com/943/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=opalis.wordpress.com&#038;blog=17857751&#038;post=943&#038;subd=opalis&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://opalis.wordpress.com/2013/04/17/bulk-set-orchestrator-max-policy-requests/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ae266ef5f14fba3403ab9eaf8111e22a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">randorfer</media:title>
		</media:content>

		<media:content url="http://opalis.files.wordpress.com/2013/04/041713_1542_bulksetorch11.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041713_1542_bulksetorch21.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041713_1542_bulksetorch31.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041713_1542_bulksetorch41.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041713_1542_bulksetorch51.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041713_1542_bulksetorch61.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041713_1542_bulksetorch71.png" medium="image" />
	</item>
		<item>
		<title>Orchestrator Link Best Practices</title>
		<link>http://opalis.wordpress.com/2013/04/12/orchestrator-link-best-practices/</link>
		<comments>http://opalis.wordpress.com/2013/04/12/orchestrator-link-best-practices/#comments</comments>
		<pubDate>Fri, 12 Apr 2013 16:49:39 +0000</pubDate>
		<dc:creator>randorfer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://opalis.wordpress.com/?p=934</guid>
		<description><![CDATA[I think that everyone understands that labeling and color coding your links is a wonderful best practice; it really makes everything much easier to follow. The problem is that I am pretty lazy and hate actually changing these properties. So,<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://opalis.wordpress.com/2013/04/12/orchestrator-link-best-practices/">Read more &#8250;</a></div><!-- end of .read-more --><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=opalis.wordpress.com&#038;blog=17857751&#038;post=934&#038;subd=opalis&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I think that everyone understands that labeling and color coding your links is a wonderful best practice; it really makes everything much easier to follow. The problem is that I am pretty lazy and hate actually changing these properties. So, to fix this problem I have updated the Orchestrator Administration project to include functionality for setting what we internally have defined as best practices for link modifications on exports. The two sub projects of this project have been updated to reflect this change (that is the integration pack for exporting runbooks <a href="https://scorch.codeplex.com/releases/view/92063" rel="nofollow">https://scorch.codeplex.com/releases/view/92063</a> and the parse orchestrator export GUI tool <a href="https://scorch.codeplex.com/releases/view/104915">https://scorch.codeplex.com/releases/view/104915</a>).
</p>
<h1>What are the Best Practices<br />
</h1>
<p>We defined the best practices as follows
</p>
<ol>
<li>If a link comes from an object that is flattened, modify the name of the link to reflect
</li>
<li>If a link has a delay modify the name to show the delay and if a color is not set change it to blue
</li>
<li>If a link is a &#8216;success&#8217; of previous object change it to green and add success to the name
</li>
<li>If the link is a &#8216;always continue&#8217; (success, warning, failure) of previous object update link name to always and change color to green width 2
</li>
<li>If the link is a &#8216;failure&#8217; or &#8216;failure or warning&#8217; of previous object update link name to failure and set color to red
</li>
<li>If there are other criteria (multiple criteria or based on property of previous object) set link to orange and add custom criteria to the end
</li>
</ol>
<h1>What does it look like?<br />
</h1>
<p>Here is an example of a runbook pre-export and link modification<br /><img src="http://opalis.files.wordpress.com/2013/04/041213_1649_orchestrato1.png?w=605" alt="" />
	</p>
<p>And post modification
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041213_1649_orchestrato2.png?w=605" alt="" />
	</p>
<h1>How to set it up on the export runbook object<br />
</h1>
<p>Set the optional property
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041213_1649_orchestrato3.png?w=605" alt="" />
	</p>
<h1>How to use it on the Parse Orchestrator Export Tool<br />
</h1>
<p><img src="http://opalis.files.wordpress.com/2013/04/041213_1649_orchestrato4.png?w=605" alt="" />
	</p>
<h1>Enjoy!<br />
</h1>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/opalis.wordpress.com/934/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/opalis.wordpress.com/934/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=opalis.wordpress.com&#038;blog=17857751&#038;post=934&#038;subd=opalis&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://opalis.wordpress.com/2013/04/12/orchestrator-link-best-practices/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ae266ef5f14fba3403ab9eaf8111e22a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">randorfer</media:title>
		</media:content>

		<media:content url="http://opalis.files.wordpress.com/2013/04/041213_1649_orchestrato1.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041213_1649_orchestrato2.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041213_1649_orchestrato3.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041213_1649_orchestrato4.png" medium="image" />
	</item>
		<item>
		<title>Parse Orchestrator Export Tool</title>
		<link>http://opalis.wordpress.com/2013/04/11/parse-orchestrator-export-tool/</link>
		<comments>http://opalis.wordpress.com/2013/04/11/parse-orchestrator-export-tool/#comments</comments>
		<pubDate>Thu, 11 Apr 2013 21:15:24 +0000</pubDate>
		<dc:creator>randorfer</dc:creator>
				<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://opalis.wordpress.com/?p=914</guid>
		<description><![CDATA[I have just release a new tool called Parse Orchestrator Export available on the community codeplex site (https://scorch.codeplex.com/releases/view/104915). There are two files for download, the GUI tool and a general administration .dll it references, you will need both (just put<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://opalis.wordpress.com/2013/04/11/parse-orchestrator-export-tool/">Read more &#8250;</a></div><!-- end of .read-more --><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=opalis.wordpress.com&#038;blog=17857751&#038;post=914&#038;subd=opalis&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I have just release a new tool called Parse Orchestrator Export available on the community codeplex site (<a href="https://scorch.codeplex.com/releases/view/104915">https://scorch.codeplex.com/releases/view/104915</a>). There are two files for download, the GUI tool and a general administration .dll it references, you will need both (just put them in the same folder)
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches1.png?w=605" alt="" />
	</p>
<h1>What does this tool do?<br />
</h1>
<p>That&#8217;s a great question! It looks at a Orchestrator Export File – point it to one and click &#8216;Parse&#8217;
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches2.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches3.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches4.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches5.png?w=605" alt="" />
	</p>
<p>Now you can see all of the cool things that were included in your export and some additional features are shown
</p>
<h2>Sanitize Export<br />
</h2>
<p>This will modify the export file and remove all of the unreferenced global settings and configurations (as you can see above this export has a lot of them)
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches6.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches7.png?w=605" alt="" />
	</p>
<p>Now that the clean is done lets re-parse!
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches8.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches9.png?w=605" alt="" />
	</p>
<h2>Turn On / Off Object Specific Logging<br />
</h2>
<p>This will turn on or off the Object Specific Logging flag for all runbooks
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches10.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches11.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches12.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches13.png?w=605" alt="" />
	</p>
<h2>Turn On / Off Generic Logging<br />
</h2>
<p>This will turn on or off the Generic Logging flag for all runbooks
</p>
<h1>Enjoy!</h1>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/opalis.wordpress.com/914/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/opalis.wordpress.com/914/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=opalis.wordpress.com&#038;blog=17857751&#038;post=914&#038;subd=opalis&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://opalis.wordpress.com/2013/04/11/parse-orchestrator-export-tool/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ae266ef5f14fba3403ab9eaf8111e22a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">randorfer</media:title>
		</media:content>

		<media:content url="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches1.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches2.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches3.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches4.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches5.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches6.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches7.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches8.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches9.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches10.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches11.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches12.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041113_2115_parseorches13.png" medium="image" />
	</item>
		<item>
		<title>Orchestrator Performance: Impact of Logging</title>
		<link>http://opalis.wordpress.com/2013/04/11/orchestrator-performance-impact-of-logging/</link>
		<comments>http://opalis.wordpress.com/2013/04/11/orchestrator-performance-impact-of-logging/#comments</comments>
		<pubDate>Thu, 11 Apr 2013 16:43:30 +0000</pubDate>
		<dc:creator>randorfer</dc:creator>
				<category><![CDATA[Infrastructure]]></category>

		<guid isPermaLink="false">http://opalis.wordpress.com/?p=855</guid>
		<description><![CDATA[We all know that turning on logging will have an effect on the overall performance of our Runbooks and environments, the question is, how much of an impact does it have? Below you will find the section from Microsoft&#8217;s administration<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://opalis.wordpress.com/2013/04/11/orchestrator-performance-impact-of-logging/">Read more &#8250;</a></div><!-- end of .read-more --><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=opalis.wordpress.com&#038;blog=17857751&#038;post=855&#038;subd=opalis&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>We all know that turning on logging will have an effect on the overall performance of our Runbooks and environments, the question is, how much of an impact does it have? Below you will find the section from Microsoft&#8217;s administration guide</p>
<p><span style="font-family:Arial;font-size:18pt;"><strong>How to Benchmark<a name="z0755be30364847c0a009e2f0ff85040d"></a><br />
</strong></span></p>
<p>Orchestrator runbook activities can be thought of as having two distinct types of code: platform code and domain code. The term <em>domain code</em> is used to identify code within a runbook activity that is typically not associated with the Orchestrator platform itself (with notable exceptions, such as <strong>Invoke Runbook</strong>, <strong>Junction</strong>, and others). For example, the <strong>Invoke Web Service</strong> standard activity would contain Orchestrator platform code (the &#8220;plumbing&#8221; of the activity) as well as domain code unique to invoking a SOAP-based web service. The platform code will be very similar for most activities, since it is built on a common framework. However, there will potentially be great variation in domain code for different activities.</p>
<p><span style="font-family:Arial;font-size:14pt;"><strong>Data Logging<br />
</strong></span></p>
<p>Another aspect of runbook performance is data logging. For the purpose of understanding performance consider two logging configurations: Default logging and Common Published Data logging. Default logging results in approximately 524 bytes of data being written to the Orchestrator database each time an activity is run. Logging of common published data writes approximately 6,082 bytes of data (12 times the default logging level). There is a notable difference in performance between these logging levels.</p>
<p>Consider the scenario where the same runbook activity is run twice, once with data logging at the default level and once with logging of common published data enabled. The domain code should take the same amount of time to complete. However, the platform code will take longer to run with common published data logging enabled. Essentially, the platform code has to support logging 12 times more data with common published data enabled than it did when running at the default logging level.</p>
<p>The Standard Activity <strong>Compare Values</strong> can been used to create benchmarks of an Orchestrator environment.</p>
<p style="margin-left:18pt;"><img alt="" src="http://opalis.files.wordpress.com/2013/04/041113_1706_orchestrato1.gif?w=605" /><span style="font-family:Arial;font-size:10pt;"><strong>To create a runbook that can be used to benchmark your Orchestrator environment<br />
</strong></span></p>
<div style="margin-left:18pt;">
<table style="border-collapse:collapse;" border="0">
<col style="width:552px;" />
<tbody valign="top">
<tr>
<td>
<p style="margin-left:18pt;"><span style="font-family:Arial;font-size:10pt;">1.    Create a new runbook.<br />
</span></p>
<p style="margin-left:18pt;"><span style="font-family:Arial;font-size:10pt;">2.    Add a <strong>Compare Values</strong> activity from the Standard Activity palette. Double-click the activity to configure it.<br />
</span></p>
<p style="margin-left:18pt;"><span style="font-family:Arial;font-size:10pt;">3.    Click the <strong>General</strong> tab and configure this activity to compare strings (the default value).<br />
</span></p>
<p style="margin-left:18pt;"><span style="font-family:Arial;font-size:10pt;">4.    Click the <strong>Details</strong> tab, type the value <strong>STRING</strong> in the <strong>Test</strong> box and select <strong>is empty</strong>.<br />
</span></p>
<p style="margin-left:18pt;"><span style="font-family:Arial;font-size:10pt;">5.    Click <strong>Finish</strong> to save the updates to the activity.<br />
</span></p>
<p style="margin-left:18pt;"><span style="font-family:Arial;font-size:10pt;">6.    Right-click the activity and select <strong>Looping</strong>.<br />
</span></p>
<p style="margin-left:18pt;"><span style="font-family:Arial;font-size:10pt;">7.    Select the <strong>Enable</strong> checkbox and enter the number <strong>0</strong> (zero) for <strong>Delay between attempts</strong>.<br />
</span></p>
<p style="margin-left:18pt;"><span style="font-family:Arial;font-size:10pt;">8.    Click the <strong>Exit</strong> tab.<br />
</span></p>
<p style="margin-left:18pt;"><span style="font-family:Arial;font-size:10pt;">9.    Change the default exit condition. Click <strong>Compare Values</strong>, check the <strong>Show Common Published Data</strong> checkbox, and select <strong>Loop: Number of attempts</strong>. Click <strong>OK</strong> to save this change.<br />
</span></p>
<p style="margin-left:18pt;"><span style="font-family:Arial;font-size:10pt;">10.    Select <strong>value</strong> from the updated exit condition and type the number <strong>10000</strong> (ten-thousand). Click <strong>OK</strong> to save this change.<br />
</span></p>
<p style="margin-left:18pt;"><span style="font-family:Arial;font-size:10pt;">11.    Click <strong>Finish</strong> to save these updates.<br />
</span></p>
<p style="margin-left:18pt;"><span style="font-family:Arial;font-size:10pt;">12.    Click <strong>Check In</strong> to save the changes to the Orchestrator database.</span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p>This simple one-activity runbook will run a <strong>Compare Values</strong> activity 10,000 times. <strong>Compare Values</strong> is a very simple activity whose domain code is quite minimal. This runbook can be invoked under a variety of circumstances to characterize the overall performance of a given Orchestrator runtime environment.</p>
<p>This runbook can be used to experiment with different configurations of Orchestrator. For example, supposed you wanted to determine the performance of four Runbook Servers deployed to different data centers.</p>
<div>
<table style="border-collapse:collapse;" border="0">
<col style="width:107px;" />
<col style="width:130px;" />
<col style="width:112px;" />
<col style="width:118px;" />
<col style="width:119px;" />
<tbody valign="top">
<tr style="background:#d9d9d9;">
<td style="padding-left:6px;padding-right:6px;border-top:solid gray 1.5pt;border-left:solid gray 1.5pt;border-bottom:solid gray .5pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:9pt;"><strong>Data Center</strong></span></td>
<td style="padding-left:6px;padding-right:6px;border-top:solid gray 1.5pt;border-left:none;border-bottom:solid gray .5pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:9pt;"><strong>Logging Configuration</strong></span></td>
<td style="padding-left:6px;padding-right:6px;border-top:solid gray 1.5pt;border-left:none;border-bottom:solid gray .5pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:9pt;"><strong>Platform Code Run Time (seconds)</strong></span></td>
<td style="padding-left:6px;padding-right:6px;border-top:solid gray 1.5pt;border-left:none;border-bottom:solid gray .5pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:9pt;"><strong>ms/Activity</strong></span></td>
<td style="padding-left:6px;padding-right:6px;border-top:solid gray 1.5pt;border-left:none;border-bottom:solid gray .5pt;border-right:solid gray 1.5pt;"><span style="font-family:Arial;font-size:9pt;"><strong>Scale Factor</strong></span></td>
</tr>
<tr>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:solid gray 1.5pt;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Location 1</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Default logging</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">819</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">82</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray 1.5pt;"><span style="font-family:Arial;font-size:10pt;">1.0 (reference)</span></td>
</tr>
<tr>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:solid gray 1.5pt;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Location 1</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Logging common published data</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">2012</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">201</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray 1.5pt;"><span style="font-family:Arial;font-size:10pt;">2.5</span></td>
</tr>
<tr>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:solid gray 1.5pt;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Location 2</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Default logging</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">1229</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">123</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray 1.5pt;"><span style="font-family:Arial;font-size:10pt;">1.5</span></td>
</tr>
<tr>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:solid gray 1.5pt;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Location 2</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Logging common published data</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">3686</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">369</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray 1.5pt;"><span style="font-family:Arial;font-size:10pt;">4.5</span></td>
</tr>
<tr>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:solid gray 1.5pt;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Location 3</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Default logging</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">2457</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">426</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray 1.5pt;"><span style="font-family:Arial;font-size:10pt;">3.0</span></td>
</tr>
<tr>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:solid gray 1.5pt;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Location 3</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Logging common published data</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">4422</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">442</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray 1.5pt;"><span style="font-family:Arial;font-size:10pt;">5.4</span></td>
</tr>
<tr>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:solid gray 1.5pt;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Location 4</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Default logging</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">1474</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">147</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray 1.5pt;"><span style="font-family:Arial;font-size:10pt;">1.8</span></td>
</tr>
<tr>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:solid gray 1.5pt;border-bottom:solid gray 1.5pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Location 4</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray 1.5pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Logging common published data</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray 1.5pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">2654</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray 1.5pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">265</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray 1.5pt;border-right:solid gray 1.5pt;"><span style="font-family:Arial;font-size:10pt;">3.2</span></td>
</tr>
</tbody>
</table>
</div>
<p>Notice the significant decrease in platform performance caused by logging of common published data. The worst scenario appears to be logging of common published data at Location 2. On the surface, this appears to be a clear and relevant conclusion.</p>
<p>However, it should be noted that these figures reflect the overhead of the platform code, not the domain code. Domain code runtimes can be significantly longer. For example, the <strong>Create VM from Template</strong> activity in the Virtual Machine Manager Integration Pack may run for several minutes as the VM is created. Expanding on the previous example, consider the platform code costs on a runbook activity that takes 1 minute to run (1 minute = 60,000 milliseconds) regardless of location.</p>
<div>
<table style="border-collapse:collapse;" border="0">
<col style="width:113px;" />
<col style="width:135px;" />
<col style="width:118px;" />
<col style="width:108px;" />
<col style="width:112px;" />
<tbody valign="top">
<tr style="background:#d9d9d9;">
<td style="padding-left:6px;padding-right:6px;border-top:solid gray 1.5pt;border-left:solid gray 1.5pt;border-bottom:solid gray .5pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:9pt;"><strong>Data Center</strong></span></td>
<td style="padding-left:6px;padding-right:6px;border-top:solid gray 1.5pt;border-left:none;border-bottom:solid gray .5pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:9pt;"><strong>Logging Configuration</strong></span></td>
<td style="padding-left:6px;padding-right:6px;border-top:solid gray 1.5pt;border-left:none;border-bottom:solid gray .5pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:9pt;"><strong>Platform Code Run Time (seconds)</strong></span></td>
<td style="padding-left:6px;padding-right:6px;border-top:solid gray 1.5pt;border-left:none;border-bottom:solid gray .5pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:9pt;"><strong>% Domain Code</strong></span></td>
<td style="padding-left:6px;padding-right:6px;border-top:solid gray 1.5pt;border-left:none;border-bottom:solid gray .5pt;border-right:solid gray 1.5pt;"><span style="font-family:Arial;font-size:9pt;"><strong>% Platform Code</strong></span></td>
</tr>
<tr>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:solid gray 1.5pt;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Location 1</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Default logging</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">819</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">98.6%</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray 1.5pt;"><span style="font-family:Arial;font-size:10pt;">1.4%</span></td>
</tr>
<tr>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:solid gray 1.5pt;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Location 1</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Logging common published data</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">2012</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">96.7%</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray 1.5pt;"><span style="font-family:Arial;font-size:10pt;">3.3%</span></td>
</tr>
<tr>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:solid gray 1.5pt;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Location 2</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Default logging</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">1229</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">98.0%</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray 1.5pt;"><span style="font-family:Arial;font-size:10pt;">2.0%</span></td>
</tr>
<tr>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:solid gray 1.5pt;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Location 2</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Logging common published data</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">3686</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">93.9%</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray 1.5pt;"><span style="font-family:Arial;font-size:10pt;">6.1%</span></td>
</tr>
<tr>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:solid gray 1.5pt;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Location 3</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Default logging</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">2457</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">95.9%</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray 1.5pt;"><span style="font-family:Arial;font-size:10pt;">4.1%</span></td>
</tr>
<tr>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:solid gray 1.5pt;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Location 3</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Logging common published data</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">4422</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">92.6%</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray 1.5pt;"><span style="font-family:Arial;font-size:10pt;">7.4%</span></td>
</tr>
<tr>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:solid gray 1.5pt;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Location 4</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Default logging</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">1474</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">97.5%</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray .75pt;border-right:solid gray 1.5pt;"><span style="font-family:Arial;font-size:10pt;">2.5%</span></td>
</tr>
<tr>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:solid gray 1.5pt;border-bottom:solid gray 1.5pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Location 4</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray 1.5pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">Logging common published data</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray 1.5pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">2654</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray 1.5pt;border-right:solid gray .75pt;"><span style="font-family:Arial;font-size:10pt;">95.6%</span></td>
<td style="padding-left:6px;padding-right:6px;border-top:none;border-left:none;border-bottom:solid gray 1.5pt;border-right:solid gray 1.5pt;"><span style="font-family:Arial;font-size:10pt;">4.4%</span></td>
</tr>
</tbody>
</table>
</div>
<p>A clearer picture begins to emerge from the data. The scenario where logging of common published data is enabled at Location 2 continues to be the worst performer. However, the platform code and logging only accounts for 6% of the total runtime. While this is a significant figure, the best-case scenario is 1.4%. Essentially, the time spent in the domain code in the example far outweighs the time spent running platform code. To put this in perspective, if you were able to completely eliminate the platform code costs, you would only see runbook performance improvements in the range of 1.4 to 7.4%.</p>
<p>Of course most real-world scenarios will be different. Activity behavior may change depending on what the domain code is told to do. For example, a <strong>Clone VM from Template</strong> activity may take one minute to clone a VM from Server Template A, but take 5 minutes to clone a VM from Server Template B. Also, Runbook Servers may reside on different networks with different performance characteristics which can potentially impact both domain code performance as well as Orchestrator data logging performance.</p>
<p>To summarize:</p>
<p style="margin-left:18pt;"><span style="font-size:10pt;"><span style="font-family:Symbol;">    </span><span style="font-family:Arial;">Make careful decisions about when to log published data.<br />
</span></span></p>
<p style="margin-left:18pt;"><span style="font-size:10pt;"><span style="font-family:Symbol;">    </span><span style="font-family:Arial;">Carefully consider the impact of logging common published data. Remember that the number of times activities run determines the volume of logged data. A runbook with a small number of activities run many times can result in more data logging than a larger runbook run a small number of times.<br />
</span></span></p>
<p style="margin-left:18pt;"><span style="font-size:10pt;"><span style="font-family:Symbol;">    </span><span style="font-family:Arial;">Do not enable logging of activity specific published data in production environments.<br />
</span></span></p>
<p style="margin-left:18pt;"><span style="font-size:10pt;"><span style="font-family:Symbol;">    </span><span style="font-family:Arial;">Develop an understanding of how much time your runbooks spend running domain code compared to running platform code.<br />
</span></span></p>
<p style="margin-left:18pt;"><span style="font-size:10pt;"><span style="font-family:Symbol;">    </span><span style="font-family:Arial;">Estimate platform code costs using the techniques outlined in this document. Use as a reference in considering where to make improvements in runbook performance.<br />
</span></span></p>
<p style="margin-left:18pt;"><span style="font-size:10pt;"><span style="font-family:Symbol;">    </span><span style="font-family:Arial;">Use the techniques outlined in this document to gain a deeper understanding of the relative performance of your different runtime environments. Identify opportunities for improvement by making normalized comparisons of your measurements.<br />
</span></span></p>
<h1>Using this information</h1>
<p>Given these considerations we have internal policies that say we will turn on logging (Object Specific) in our central QA environment and turn it off in our Central Production environments to maximize performance. We do two things to make sure we have logging turned on in development environment exports and turned off from QA environments. We do this by changing the logging flags on our nightly backup jobs (discussed at <a href="http://opalis.wordpress.com/2012/08/06/automating-the-export-and-tfs-check-in-of-workflows/">http://opalis.wordpress.com/2012/08/06/automating-the-export-and-tfs-check-in-of-workflows/</a>)</p>
<h2>Development Environment</h2>
<p><img alt="" src="http://opalis.files.wordpress.com/2013/04/041113_1706_orchestrato2.png?w=605" align="left" /></p>
<h2>QA Environment</h2>
<p><img alt="" src="http://opalis.files.wordpress.com/2013/04/041113_1706_orchestrato3.png?w=605" /></p>
<p>We also have jobs that run in our production environments that periodically run a SQL query to disable logging on all Runbooks in the environment</p>
<h2>Query to find Runbooks with Logging Turned on</h2>
<pre><code><span style="color:#70ad47;">--Find all Runbooks with Object Specific Logging Enabled 
</span><code>select * from POLICIES where LogSpecificData = 1
</code></code></pre>
<pre><code><span style="color:#70ad47;">--Find all Runbooks with Common Data Logging Enabled
</span><code>select * from POLICIES where LogCommonData = 1
</code></code></pre>
<h2>Query to turn off logging</h2>
<pre><code><span style="color:#70ad47;">--Turn Off Common Logging for All Runbooks
</span>
Use Orchestrator 
DECLARE @id UNIQUEIDENTIFIER 
DECLARE @name NVARCHAR(MAX)
DECLARE curs CURSOR FOR
SELECT 
UniqueId, Name
FROM
POLICIES
WHERE
LogCommonData = 1
OPEN curs
FETCH NEXT FROM curs
INTO @id, @name
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'Turning Off Common Data Logging For : ' + @name
UPDATE POLICIES
SET LogCommonData = 0
WHERE UniqueID = @id
FETCH NEXT FROM curs 
    INTO @id, @name
END
CLOSE curs
DEALLOCATE curs
</code>
</pre>
<pre><code><span style="color:#70ad47;">--Turn Off Object Specific Logging for All Runbooks
</span>
Use Orchestrator 
DECLARE @id UNIQUEIDENTIFIER 
DECLARE @name NVARCHAR(MAX)
DECLARE curs CURSOR FOR
SELECT 
UniqueId, Name
FROM
POLICIES
WHERE
LogSpecificData = 1
OPEN curs
FETCH NEXT FROM curs
INTO @id, @name
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'Turning Off Specific Data Logging For : ' + @name
UPDATE POLICIES
SET LogSpecificData = 0
WHERE UniqueID = @id
FETCH NEXT FROM curs 
    INTO @id, @name
END
CLOSE curs
DEALLOCATE curs</code></pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/opalis.wordpress.com/855/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/opalis.wordpress.com/855/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=opalis.wordpress.com&#038;blog=17857751&#038;post=855&#038;subd=opalis&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://opalis.wordpress.com/2013/04/11/orchestrator-performance-impact-of-logging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ae266ef5f14fba3403ab9eaf8111e22a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">randorfer</media:title>
		</media:content>

		<media:content url="http://opalis.files.wordpress.com/2013/04/041113_1706_orchestrato1.gif" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041113_1706_orchestrato2.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041113_1706_orchestrato3.png" medium="image" />
	</item>
		<item>
		<title>Undeleting Orchestrator Objects</title>
		<link>http://opalis.wordpress.com/2013/04/10/undeleting-orchestrator-objects/</link>
		<comments>http://opalis.wordpress.com/2013/04/10/undeleting-orchestrator-objects/#comments</comments>
		<pubDate>Wed, 10 Apr 2013 20:08:32 +0000</pubDate>
		<dc:creator>randorfer</dc:creator>
				<category><![CDATA[Infrastructure]]></category>

		<guid isPermaLink="false">http://opalis.wordpress.com/?p=824</guid>
		<description><![CDATA[Have you ever accidentally deleted a Runbook or Folder in Orchestrator and wanted to recover it? Fret not, Orchestrator doesn&#8217;t &#8216;really&#8217; delete things, rather it marks them as &#8216;Deleted&#8217; in its database. So, if you would like to recover a<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://opalis.wordpress.com/2013/04/10/undeleting-orchestrator-objects/">Read more &#8250;</a></div><!-- end of .read-more --><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=opalis.wordpress.com&#038;blog=17857751&#038;post=824&#038;subd=opalis&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Have you ever accidentally deleted a Runbook or Folder in Orchestrator and wanted to recover it? Fret not, Orchestrator doesn&#8217;t &#8216;really&#8217; delete things, rather it marks them as &#8216;Deleted&#8217; in its database. So, if you would like to recover a deleted object simply find it in the DB and switch the flag! Before beginning I should say that you should use this purely as a reference and not supported in any way shape or form
</p>
<h1>Step 1: Accidently Delete Something (this could be a Runbook, Folder, Variable etc.)<br />
</h1>
<p><img src="http://opalis.files.wordpress.com/2013/04/041013_2014_undeletingo1.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041013_2014_undeletingo2.png?w=605" alt="" />
	</p>
<h1>Step 2: Find the Folder you deleted<br />
</h1>
<p>Useful SQL Query to help you along
</p>
<p>
<pre><code>Use Orchestrator
Select UniqueID, ParentID, LastModified, Deleted from FOLDERS where Name like 'Central Workflows'
</code></pre>
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041013_2014_undeletingo3.png?w=605" alt="" />
	</p>
<h1>Step 3: Recover the deleted folder</h1>
<p>
<pre><code>Use Orchestrator
UPDATE FOLDERS set Deleted = 0 where UniqueID = '97627FD3-2CD0-4B88-BA90-6B1BA8C6E4EC'
</code></pre>
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041013_2014_undeletingo4.png?w=605" alt="" /></p>
<h1>Step 4: Recover child items<br />
</h1>
<p>Find Folders deleted around this time
</p>
<p>
 </p>
<p>
<pre><code>use Orchestrator
select * from FOLDERS where Deleted = 1 and LastModified &gt; '2013-04-10 19:38:00.000' and LastModified &lt; '2013-04-10 19:40:00.800'
</code></pre>
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041013_2014_undeletingo5.png?w=605" alt="" />
	</p>
<p>Changed their deleted bit to 0
</p>
<p>
<pre><code>use Orchestrator
UPDATE FOLDERS Set Deleted = 0 where Deleted = 1 and LastModified &gt; '2013-04-10 19:38:00.000' and LastModified &lt; '2013-04-10 19:40:00.800'
</code></pre>
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041013_2014_undeletingo6.png?w=605" alt="" />
	</p>
<p>Find the deleted Runbooks
</p>
<p>
 </p>
<p>
<pre><code>use Orchestrator
select * from POLICIES where Deleted = 1 and LastModified &gt; '2013-04-10 19:38:01.000' and LastModified &lt; '2013-04-10 19:38:04.800'
</code></pre>
</p>
<p>
 </p>
<p>Recover the Deleted Runbooks
</p>
<p>
<pre><code>use Orchestrator
UPDATE POLICIES Set Deleted = 0 where Deleted = 1 and LastModified &gt; '2013-04-10 19:38:00.000' and LastModified &lt; '2013-04-10 19:40:00.800'
</code></pre>
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041013_2014_undeletingo7.png?w=605" alt="" /></p>
<p>
 </p>
<p>Find the Deleted Objects and Recover Them
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041013_2014_undeletingo8.png?w=605" alt="" /></p>
<h1>Rejoice that Orchestrator doesn&#8217;t delete things!</h1>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/opalis.wordpress.com/824/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/opalis.wordpress.com/824/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=opalis.wordpress.com&#038;blog=17857751&#038;post=824&#038;subd=opalis&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://opalis.wordpress.com/2013/04/10/undeleting-orchestrator-objects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ae266ef5f14fba3403ab9eaf8111e22a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">randorfer</media:title>
		</media:content>

		<media:content url="http://opalis.files.wordpress.com/2013/04/041013_2014_undeletingo1.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041013_2014_undeletingo2.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041013_2014_undeletingo3.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041013_2014_undeletingo4.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041013_2014_undeletingo5.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041013_2014_undeletingo6.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041013_2014_undeletingo7.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041013_2014_undeletingo8.png" medium="image" />
	</item>
		<item>
		<title>Service Manager and Orchestrator: Multiple User Selects</title>
		<link>http://opalis.wordpress.com/2013/04/08/service-manager-and-orchestrator-multiple-user-selects/</link>
		<comments>http://opalis.wordpress.com/2013/04/08/service-manager-and-orchestrator-multiple-user-selects/#comments</comments>
		<pubDate>Mon, 08 Apr 2013 20:38:32 +0000</pubDate>
		<dc:creator>randorfer</dc:creator>
				<category><![CDATA[Infrastructure]]></category>

		<guid isPermaLink="false">http://opalis.wordpress.com/?p=803</guid>
		<description><![CDATA[Now that we understand how to do a people picker sort control (Server Side filter query results control) the next question is how to differentiate multiple selections of the same sort of Object. For example, if I have a request<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://opalis.wordpress.com/2013/04/08/service-manager-and-orchestrator-multiple-user-selects/">Read more &#8250;</a></div><!-- end of .read-more --><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=opalis.wordpress.com&#038;blog=17857751&#038;post=803&#038;subd=opalis&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><span style="font-family:Times New Roman;font-size:12pt;">Now that we understand how to do a people picker sort control (Server Side filter query results control) the next question is how to differentiate multiple selections of the same sort of Object. For example, if I have a request for re-imaging a person&#8217;s machine and I need to know the user who will be managing the end user&#8217;s computer and the end user the computer should be imaged for I need a way to differentiate which is which. The way we have decided to do this internally is by adding additional &#8216;Manual Activities&#8217; to attach these to (each unique user selection will be attached to a separate Manual Activity). We then have the Orchestrator Runbook access the related object and update the Manual Activity to &#8216;skipped&#8217;. Here is what it all ends up looking like!<br />
</span></p>
<h1>The Service Request<br />
</h1>
<p>Step one is creating the SR and adding the activities. We add 4 activities, an OrchestratorRunbook (our way of calling out to Orchestrator discussed at <a href="http://opalis.wordpress.com/2013/04/03/triggering-orchestrator-runbook-from-service-manager/">http://opalis.wordpress.com/2013/04/03/triggering-orchestrator-runbook-from-service-manager/</a>) and 3 Manual activities
</p>
<ul>
<li>
<div><span style="font-size:12pt;">OrchestratorRunbook<br />
</span></div>
<ul>
<li><span style="font-size:12pt;">Used for initiating the Orchestrator Runbook<br />
</span></li>
<li><span style="font-size:12pt;">Has 40 &#8216;input property&#8217; fields to map values to from the Request Offering<br />
</span></li>
</ul>
</li>
<li>
<div><span style="font-size:12pt;">Manual Activity one: Managed By User Selection<br />
</span></div>
<ul>
<li><span style="font-size:12pt;">Used for holding the user selected in the managed by Query Result control<br />
</span></li>
</ul>
</li>
<li>
<div><span style="font-size:12pt;">Manual Activity two: End User Selection<br />
</span></div>
<ul>
<li><span style="font-size:12pt;">Used for holding the end user selected in the end user Query Result control<br />
</span></li>
</ul>
</li>
<li>
<div><span style="font-size:12pt;">Manual Activity three: Computer Selection<br />
</span></div>
<ul>
<li><span style="font-size:12pt;">Used for holding the computer selected in the Computer Selection Query Result control<br />
</span></li>
</ul>
</li>
</ul>
<p><img src="http://opalis.files.wordpress.com/2013/04/041013_1834_servicemana1.png?w=605" alt="" /><span style="font-size:12pt;"><br />
		</span></p>
<h1>Request Offering<br />
</h1>
<p>In the request offering on the Query Result Controls we set them to relate their outputs to the correct Manual Activity
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041013_1834_servicemana2.png?w=605" alt="" />
	</p>
<h1>Runbook<br />
</h1>
<p>Now in our Runbook we can get all of the related Manual activity, filter down to an individual one and select the object output!
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041013_1834_servicemana3.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041013_1834_servicemana4.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/041013_1834_servicemana5.png?w=605" alt="" />
	</p>
<p>And now we can uniquely identify which user is which and which computer is which <span style="font-family:Wingdings;">J</span>
	</p>
<p>
 </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/opalis.wordpress.com/803/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/opalis.wordpress.com/803/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=opalis.wordpress.com&#038;blog=17857751&#038;post=803&#038;subd=opalis&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://opalis.wordpress.com/2013/04/08/service-manager-and-orchestrator-multiple-user-selects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ae266ef5f14fba3403ab9eaf8111e22a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">randorfer</media:title>
		</media:content>

		<media:content url="http://opalis.files.wordpress.com/2013/04/041013_1834_servicemana1.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041013_1834_servicemana2.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041013_1834_servicemana3.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041013_1834_servicemana4.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/041013_1834_servicemana5.png" medium="image" />
	</item>
		<item>
		<title>Service Manager People Picker Control</title>
		<link>http://opalis.wordpress.com/2013/04/08/service-manager-people-picker-control/</link>
		<comments>http://opalis.wordpress.com/2013/04/08/service-manager-people-picker-control/#comments</comments>
		<pubDate>Mon, 08 Apr 2013 19:21:19 +0000</pubDate>
		<dc:creator>randorfer</dc:creator>
				<category><![CDATA[Infrastructure]]></category>

		<guid isPermaLink="false">http://opalis.wordpress.com/?p=774</guid>
		<description><![CDATA[When we began creating our internal service request catalog one of the biggest challenges we encountered was deciding how to allow requesters to select &#8216;users&#8217; for various request offerings. For example, in our request for creating new Active Directory Groups,<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://opalis.wordpress.com/2013/04/08/service-manager-people-picker-control/">Read more &#8250;</a></div><!-- end of .read-more --><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=opalis.wordpress.com&#038;blog=17857751&#038;post=774&#038;subd=opalis&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>When we began creating our internal service request catalog one of the biggest challenges we encountered was deciding how to allow requesters to select &#8216;users&#8217; for various request offerings. For example, in our request for creating new Active Directory Groups, we wanted the requester to be able to choose who the &#8216;Managed By&#8217; user would be for the request. The challenge here is that we have around 30,000 users that are valid for this selection and the default query result object will only display the first 2,000 results.
</p>
<p>The first idea floated around the office was to simply overwrite the max number of results returned for this control to 30,000. This is doable and explained at <a href="http://blogs.technet.com/b/servicemanager/archive/2011/11/08/advanced-query-results-customization-for-request-offerings.aspx">http://blogs.technet.com/b/servicemanager/archive/2011/11/08/advanced-query-results-customization-for-request-offerings.aspx</a> but puts a large load on the SM database. It also pulls back the full dataset (30,000 user CI items) to the end users web page; this means that the control takes a <strong>long</strong> time to load. What we really wanted was a people picker type control like users are used to from SharePoint that does server side filtering based on their inputs and returns smaller datasets.
</p>
<p>After a fair amount of reading / searching the blogosphere I came across a post by Nathan Lasnoski about using tokens from previous selection in query results to lower the number of results loaded by the query result object <a href="http://blog.concurrency.com/infrastructure/service-manager-request-query-result-filtering/">http://blog.concurrency.com/infrastructure/service-manager-request-query-result-filtering/</a> which got us really close. We no longer needed to increase the number of query results returned to 30,000 so the control loaded a bit faster (still, loading 3,000 results initially takes a while so it wasn&#8217;t optimal) but we still had a rather large User Experience problem results initially loaded into the control. This tempted our users to believe that all results were being loaded and to just use the &#8216;search for instances&#8217; functionality of the Query Result Control instead of specifying any filter criteria (ie the user name). My initial thought was to just set the default values of the text controls to something invalid, but, as far as I know this isn&#8217;t possible with text controls.
</p>
<p>At this point a whiteboard became involved. I wrote up the properties that we wanted from the control and information we knew and tried to figure out how to accomplish it
</p>
<p>Desired Properties:
</p>
<ul>
<li>A single text input box that an end user places the name (ID or friendly) into.
</li>
<li>A query result control that only display&#8217;s results based on the input in the above box
</li>
<li>The query result control should be blank if the input box is blank
</li>
</ul>
<h1>Solution<br />
</h1>
<p>The ultimate solution designed was based on Nathan&#8217;s idea and an extension of the AD User class. The class was extended to include a property that is always blank in our environment. This allows us to add an additional filter criteria to our query results control, only display AD Users who AD User Property [Blank] does not equal the token from the text box (ie only display AD Users when the text box is not blank). Our requests now load quickly (no data is loaded into the Query Result initially) and our users are not confused by seeing &#8216;partial&#8217; datasets not based on their filter criterion.
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040813_1926_servicemana1.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040813_1926_servicemana2.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040813_1926_servicemana3.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040813_1926_servicemana4.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040813_1926_servicemana5.png?w=605" alt="" />
	</p>
<h1>Wrinkle<br />
</h1>
<p>The one problem with this model is that by default blank properties are defined in the SM database as &#8216;null&#8217; not the SQL empty string. This means that doing any comparisons between them and a text field (ie, the token from Filter Users) will result in NO results being returned. To work around this we have a nightly job that updates our extension database class field &#8216;blank&#8217; and sets it to the SQL empty string. For us this query is below, it will be different in your environment but if you dig around in your SQL DB I am sure you can figure it out. As always, direct modification of the SQL tables is a &#8216;at your own risk&#8217; operation but, for our use case it seems to work without adverse effect.
</p>
<p>
<pre><code>update MT_ClassExtension_378d3dfe_23d5_4f39_8218_5335167ad8c9 set Blank_60EC6C94_0BE6_2C63_90B7_4FB40CB9255D = '' where Blank_60EC6C94_0BE6_2C63_90B7_4FB40CB9255D is null
</code></pre>
</p>
<p>
 </p>
<p>To do this refresh we have an Orchestrator Runbook running the above query 1 time per day after our &#8216;AD Sync&#8217; connector has finished
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040813_1926_servicemana6.png?w=605" alt="" /></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/opalis.wordpress.com/774/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/opalis.wordpress.com/774/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=opalis.wordpress.com&#038;blog=17857751&#038;post=774&#038;subd=opalis&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://opalis.wordpress.com/2013/04/08/service-manager-people-picker-control/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ae266ef5f14fba3403ab9eaf8111e22a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">randorfer</media:title>
		</media:content>

		<media:content url="http://opalis.files.wordpress.com/2013/04/040813_1926_servicemana1.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040813_1926_servicemana2.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040813_1926_servicemana3.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040813_1926_servicemana4.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040813_1926_servicemana5.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040813_1926_servicemana6.png" medium="image" />
	</item>
		<item>
		<title>Triggering Orchestrator Runbook from Service Manager</title>
		<link>http://opalis.wordpress.com/2013/04/03/triggering-orchestrator-runbook-from-service-manager/</link>
		<comments>http://opalis.wordpress.com/2013/04/03/triggering-orchestrator-runbook-from-service-manager/#comments</comments>
		<pubDate>Wed, 03 Apr 2013 21:24:51 +0000</pubDate>
		<dc:creator>randorfer</dc:creator>
				<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Management Pack]]></category>
		<category><![CDATA[Orchestrator]]></category>
		<category><![CDATA[ScorchLauncher]]></category>
		<category><![CDATA[Service Manager]]></category>
		<category><![CDATA[Web Service]]></category>

		<guid isPermaLink="false">http://opalis.wordpress.com/?p=701</guid>
		<description><![CDATA[Challenge The default syncing mechanism for integrating Service Manager and Orchestrator is based on discovery through connectors and initiation by Runbook Guid. This is great for demos and simple implementations of Service Manager and Orchestrator, you just connect the two,<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://opalis.wordpress.com/2013/04/03/triggering-orchestrator-runbook-from-service-manager/">Read more &#8250;</a></div><!-- end of .read-more --><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=opalis.wordpress.com&#038;blog=17857751&#038;post=701&#038;subd=opalis&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<h1>Challenge<br />
</h1>
<p><span style="font-family:Times New Roman;font-size:12pt;">The default syncing mechanism for integrating Service Manager and Orchestrator is based on discovery through connectors and initiation by Runbook Guid. This is great for demos and simple implementations of Service Manager and Orchestrator, you just connect the two, click on a Runbook and say create Runbook Automation Activity template and you are off to the races.<br />
</span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">The problems begin to arise if your environment is a bit more complicated. In our environment we have 8 Orchestrator development environments, 1 Orchestrator quality assurance environment and 2 mirrored production environments (web services behind a F5 VIP that points to the currently active environment). In this sort of staged out environment things become less clear, how do you update your Runbook activity templates when the environment moves from a development environment to the QA environment while minimizing the configuration changes? How can you initiate a Runbook in a mirrored production environment where the Guids between the two environments are different but everything else is the same?<br />
</span></p>
<h1>Solution: A new Activity Type to replace Runbook Activity Templates<br />
</h1>
<p><span style="font-family:Times New Roman;font-size:12pt;">The cool part about most Microsoft products lately is that if you don&#8217;t like the default functionality you are not stuck with it. What we did was create a new class (OrchestratorRunbook) that is based on the activity class. This class has a number of properties that are specific to the Runbook, what Web Service URL should be used to initiate it, what is its path, what is the path to a command line tool for initiating the Runbook and 20 string properties for mapping input values to.<br />
</span></p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo1.png?w=605" 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;">There is then a workflow that fires off when an instance of the activity is changed to the &#8216;In Progress&#8217; or &#8216;Re-Run&#8217; status<br />
</span></p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo2.png?w=605" 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;">This workflow runs a PowerShell script that calls the ScorchLauncher command line utility for initiating Runbooks through the Orchestrator web service <a href="http://scorch.codeplex.com/releases/view/102637">http://scorch.codeplex.com/releases/view/102637</a> which has built-in retry logic if the web service is temporarily un-available.<br />
</span></p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo3.png?w=605" alt="" /><span style="font-family:Times New Roman;font-size:12pt;"><br />
		</span></p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo4.png?w=605" 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 script it is running is<br />
</span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
</span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">write-host &#8220;Scorch Launcher Path: $scorchLauncherPath&#8221;<br />
</span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">write-host &#8220;Webserver URL: $orchestratorSVCUrl&#8221;<br />
</span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">write-host &#8220;Runbook Path: $runbookPath&#8221;<br />
</span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">write-host &#8220;ReferenceID: $ReferenceID&#8221;<br />
</span></p>
<p>
 </p>
<p><span style="font-family:Times New Roman;font-size:12pt;">if($userName -and $userDomain -and $userPassword) {<br />
</span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">Write-Host &#8220;Passed Username [$Username] Domain [$userDomain] and Password&#8221;<br />
</span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">Write-Host  $scorchLauncherPath -WebServerURL &#8220;$orchestratorSVCUrl&#8221; -RunbookPath &#8220;$runbookPath&#8221; -InputParameters &#8220;ReferenceID|$ReferenceID&#8221; -Username &#8220;$userName&#8221; -Domain &#8220;$userDomain&#8221; -Password &#8220;Password&#8221; -WaitForExit $true<br />
</span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">&amp; $scorchLauncherPath -WebServerURL &#8220;$orchestratorSVCUrl&#8221; -RunbookPath &#8220;$runbookPath&#8221; -InputParameters &#8220;ReferenceID|$ReferenceID&#8221; -Username &#8220;$userName&#8221; -Domain &#8220;$userDomain&#8221; -Password &#8220;$userPassword&#8221; -WaitForExit $true<br />
</span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">}<br />
</span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">else {<br />
</span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">Write-Host &#8220;Not Passed User Name&#8221;<br />
</span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">Write-Host $scorchLauncherPath -WebServerURL &#8220;$orchestratorSVCUrl&#8221; -RunbookPath &#8220;$runbookPath&#8221; -InputParameters &#8220;ReferenceID|$ReferenceID&#8221; -WaitForExit $true<br />
</span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">&amp; $scorchLauncherPath -WebServerURL &#8220;$orchestratorSVCUrl&#8221; -RunbookPath &#8220;$runbookPath&#8221; -InputParameters &#8220;ReferenceID|$ReferenceID&#8221; -WaitForExit $true<br />
</span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">}<br />
</span></p>
<p>
 </p>
<p><span style="font-family:Times New Roman;font-size:12pt;">#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
</span></p>
<p>
 </p>
<p><span style="font-family:Times New Roman;font-size:12pt;">As you can see the script passes a single parameter to the target Runbook called &#8220;ReferenceID&#8221; (you need to have a initialize data on your connecting Runbook with this input parameter defined). The unique Guid of this activity will be passed to your Runbook, from there you can use objects from the SCSM 2012 integration pack to get the rest of your data. Specifically you can use the &#8216;Get Object&#8217; to read the rest of the input values or &#8216;Get Related Object&#8217; to get the related Service Request and its properties.<br />
</span></p>
<p>
 </p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo5.png?w=605" alt="" /><span style="font-family:Times New Roman;font-size:12pt;"><br />
		</span></p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo6.png?w=605" alt="" /><span style="font-family:Times New Roman;font-size:12pt;"><br />
		</span></p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo7.png?w=605" alt="" /><span style="font-family:Times New Roman;font-size:12pt;"><br />
		</span></p>
<p>
 </p>
<h1>Creating the SCSM Request Offering Suite<br />
</h1>
<p>Now that we have the class created in a sealed management pack we can create instances of it in any other management pack! Internally we have a best practice to make a new management pack per service offering, so, for testing and demo purposes I will create a new unsealed management pack. Each unsealed management pack will need one template instance of this OrchestratorRunbook class created initially, after that you simply add an instance of that template to each new Service Request Template instance and configure it to the Service Request specifications (target it at the correct Runbook and Web Service)
</p>
<h2>Creating the Initial OrchestratorRunbook Activity Template<br />
</h2>
<p>Since I am making a new Service Offering for this example I need to create a new OrchestratorRunbook template instance
</p>
<p>
 </p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo8.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo9.png?w=605" alt="" />
	</p>
<p>In our base template we set the Activity status to Pending initially, this is to avoid a race condition inside of Service Manager (discussed here <a href="http://social.technet.microsoft.com/Forums/en-US/administration/thread/0f4a187d-ad74-473e-ab25-5f21f8ec5218">http://social.technet.microsoft.com/Forums/en-US/administration/thread/0f4a187d-ad74-473e-ab25-5f21f8ec5218</a>). We can also change the default Orchestrator Web Service URL or Runbook Path, both of these properties can and be over written when an instance of this template is added to a Service Request.
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo10.png?w=605" alt="" />
	</p>
<h2>Creating the service request<br />
</h2>
<p>Now that we have the activity template created we can create our Service Requests and add in instances of this OrchestratorRunbook activity to trigger off our runbooks!
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo11.png?w=605" alt="" />
	</p>
<p>Just like normal, when we want to trigger a Runbook we go to the &#8216;Activities&#8217; portion of the SR Template and add in a new instance the OrchestratorRunbook Activity  template class we created. We can now define, on a SR to SR basis (and update easily) what web service it is initialized through (huge for multi-instance Orchestrator deployments) and the path of the Orchestrator Runbook!
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo12.png?w=605" alt="" /><strong><br />
		</strong></p>
<h2>Creating the Service Request Offering<br />
</h2>
<p>Now that we have the Service Request setup we can create a Service Request Offering to display the SR on the self-service portal
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo13.png?w=605" alt="" />
	</p>
<p>Setup your input prompts as normal
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo14.png?w=605" alt="" />
	</p>
<p>The OrchestratorRunbook Activity has 20 fields to map inputs to.
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo15.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo16.png?w=605" alt="" />
	</p>
<h2>Use the Request Offering!<br />
</h2>
<p>Now that the Request Offering is created you can do all of your normal activities, add it to a Service Offering, secure who can access it and initiate it!
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo17.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo18.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo19.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo20.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo21.png?w=605" alt="" />
	</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo22.png?w=605" alt="" />
	</p>
<h1>Conclusion<br />
</h1>
<p>So, what does all this mean? We have a new way to trigger Runbooks that is not tied to the &#8216;connector&#8217; framework and Runbook Activity Template model from Microsoft.
</p>
<ul>
<li>
<div>This gives us a more flexible solution for environments with Multiple Orchestrator and / or Service Manager environments
</div>
<ul>
<li>All that is stored in these classes is strings, not references to connectors which are Service Manager and Orchestrator environment specific).
</li>
</ul>
</li>
<li>We can reduce the number of steps to create a Request offering down to two
</li>
</ul>
<ol style="margin-left:54pt;">
<li>
<div>Create Service Request
</div>
<ol>
<li>add and configure OrchestratorRunbook activity
</li>
</ol>
</li>
<li>Create Request Offering
</li>
</ol>
<ul>
<li>If we need to change what environment a Runbook is triggered from we don&#8217;t have to re-create anything. Just find the Service Request that references it, open up the OrchestratorRunbook Activity instance and change the web server URL
</li>
<li>
<div>We can utilize &#8216;Cool&#8217; functions inside of Service Manager, like Copy Request Offering to make QA / Production versions of our Request Offerings
</div>
<ul>
<li>
<div>This creates a new Request Offering and New Service Request
</div>
<ul>
<li>We can point the new Service Request to a QA / Production Orchestrator environment by just switching the web service URL
</li>
<li>Easy way to create &#8216;dev / qa / production&#8217; versions of everything from the UI (Service Manager Request Offerings) to tie to our Orchestrator Tiers
</li>
</ul>
<p style="margin-left:18pt;"><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo23.png?w=605" alt="" />
					</p>
<p style="margin-left:18pt;"><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo24.png?w=605" alt="" />
					</p>
<p style="margin-left:18pt;"><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo25.png?w=605" alt="" />
					</p>
</li>
</ul>
</li>
</ul>
<h1>Setup<br />
</h1>
<p>So, how do you go about getting all of this setup? The management pack / InitiateRunbook.dll file is available on the Orchestrator public integration pack codeplex site at <a href="https://scorch.codeplex.com/releases/view/104608">https://scorch.codeplex.com/releases/view/104608</a> &#8212; as with everything this is a use at your own risk solution, try it in a development / test environment first.
</p>
<h2>Step 1: Register MP<br />
</h2>
<ul>
<li>
<div>Just like normal register the integration pack into your environment, both the sealed and unsealed versions are available on the codeplex site
</div>
<ul>
<li>Register a sealed version so you can reference it from unsealed management packs
</li>
</ul>
</li>
</ul>
<h2>Step 2: Deploy the InitiateRunbook.dll<br />
</h2>
<ul style="margin-left:38pt;">
<li>Since this MP relies on a workflow there is a .dll file that needs to be deployed to your service manager management server.
</li>
<li>
<div>Stop your Management Service
</div>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo26.png?w=605" alt="" />
			</p>
</li>
<li>
<div>Copy the .dll file out to the Service Manager installation folder
</div>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo27.png?w=605" alt="" />
			</p>
</li>
<li>
<div>Start your Management Service
</div>
<p><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo28.png?w=605" alt="" />
			</p>
</li>
</ul>
<h2>Step 3: Deploy the scorchLauncher Utility<br />
</h2>
<p>Copy the scorchLauncher utility and its dependencies to the path that you will reference with your OrchestratorRunbook template. By default this is c:\Orchestrator\ScorchLauncher.exe on your Service Manager Management server
</p>
<ul style="margin-left:38pt;">
<li>
<div>scorchLauncher and its dependencies are available at <a href="https://scorch.codeplex.com/releases/view/102637">https://scorch.codeplex.com/releases/view/102637</a>
			</div>
<p style="margin-left:36pt;"><img src="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo29.png?w=605" alt="" />
			</p>
</li>
</ul>
<p>
 </p>
<h2>Step 4: Enjoy and Give Feedback<br />
</h2>
<p>Feedback can be given on the <a href="http://scorch.codeplex.com">http://scorch.codeplex.com</a> project!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/opalis.wordpress.com/701/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/opalis.wordpress.com/701/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=opalis.wordpress.com&#038;blog=17857751&#038;post=701&#038;subd=opalis&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://opalis.wordpress.com/2013/04/03/triggering-orchestrator-runbook-from-service-manager/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ae266ef5f14fba3403ab9eaf8111e22a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">randorfer</media:title>
		</media:content>

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo1.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo2.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo3.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo4.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo5.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo6.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo7.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo8.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo9.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo10.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo11.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo12.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo13.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo14.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo15.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo16.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo17.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo18.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo19.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo20.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo21.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo22.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo23.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo24.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo25.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo26.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo27.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo28.png" medium="image" />

		<media:content url="http://opalis.files.wordpress.com/2013/04/040513_1715_triggeringo29.png" medium="image" />
	</item>
		<item>
		<title>MVP Award!</title>
		<link>http://opalis.wordpress.com/2013/04/03/mvp-award/</link>
		<comments>http://opalis.wordpress.com/2013/04/03/mvp-award/#comments</comments>
		<pubDate>Wed, 03 Apr 2013 18:43:52 +0000</pubDate>
		<dc:creator>randorfer</dc:creator>
				<category><![CDATA[General Information]]></category>

		<guid isPermaLink="false">http://opalis.wordpress.com/?p=697</guid>
		<description><![CDATA[I got word Monday that I have been awarded an MVP award from Microsoft. Thank you everyone who has helped me along the way!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=opalis.wordpress.com&#038;blog=17857751&#038;post=697&#038;subd=opalis&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I got word Monday that I have been awarded an MVP award from Microsoft. Thank you everyone who has helped me along the way!
</p>
<p><img src="http://opalis.files.wordpress.com/2013/04/040313_1847_mvpaward1.gif?w=605" alt="" /></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/opalis.wordpress.com/697/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/opalis.wordpress.com/697/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=opalis.wordpress.com&#038;blog=17857751&#038;post=697&#038;subd=opalis&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://opalis.wordpress.com/2013/04/03/mvp-award/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ae266ef5f14fba3403ab9eaf8111e22a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">randorfer</media:title>
		</media:content>

		<media:content url="http://opalis.files.wordpress.com/2013/04/040313_1847_mvpaward1.gif" medium="image" />
	</item>
	</channel>
</rss>
