Thank you to Pete Zerger for contributing and collaborating on this posting. Pete is a System Center MVP and contributor to System Center Opalis Integration Server 6.3 Unleashed. The final installment of this three part series delves into other Opalis / Orchestrator functionality, discussing these policy authoring topics:
Opalis Integration Server (OIS) includes a number of features that facilitate creation of more complex, modular policies, which are described here. New to OIS and Orchestrator? Go back and read part 1 and part 2 in the series before continuing.
The default logic on a policy link in OIS is success, meaning that when the upstream object in the policy runs successfully, the next object in the policy is triggered. However, the filtering logic available in policy links lets you configure link conditions to evaluate published data (both numeric and string data) to add filtering and decision-making capabilities to policies. When an object runs, it can produce one or more data items. Each data item is evaluated by every link (attached to the source object), and each one of their link conditions. Only data items that satisfy the link conditions are passed to the downstream objects.
For example, the Query Database object runs and retrieves five rows of data from the database. These five rows of data will be evaluated by the link conditions. If only two of the data items satisfy the link conditions, the following object will run two times. That object does not need to subscribe to the previous object's data for this execution to happen. This was discussed in the "Rules of the Databus" section in part 1 of this series.
While the default link condition simply looks for successful execution of the previous object, more specific criteria can be configured - based on data output from the object-specific Published Data or through use of Common Published Data:
Note: Or Logic is not configurable. If And Logic is needed, you can use a combination of Include and Exclude logic to create logic similar an OR statement.
When reading datasheets related to OIS, you will see mention of "without scripts" and "no scripting required"; these are true, most of the time. At some point, you will encounter an automation need for which there is no OIS object. Fortunately, OIS includes the Run .Net Script object as a Foundation object; this can run scripts written in VB.Net, JScript, C#, and Windows PowerShell. The Run .Net Script object is compatible with .Net CLR version 2.0 and later, and is an excellent way to create a custom object to bridge a feature gap when no object exists to address a specific need.
Understanding how to publish data from a Run .Net Script object is the key to using this object effectively. While you can process loads of data using PowerShell, by default no script-specific data is published from a Run .NET Script object. If you want to make the data output of your PowerShell scripts available to other objects on the databus, you must add each of the data elements that you want this object to publish on the Published Data tab of the Run .NET Script object.
Published data elements consist of three values (described here and shown in Figure 1):

Figure 1 - The Published Data Tab of the Run .Net Script Object
Data elements published from your PowerShell scripts in a Run .Net Script object can be single data items or data arrays. The Run .Net Script object automatically correlates multi-valued data from different items by aligning them. For example, if you choose to publish two items labeled "Name" and "Email" as collections, the Run .Net Script will try to line up each item in the Name collection with each item in the Email collection. If the collections are not sized equally, the Run .Net Script object will create blank values when it encounters a null value in the collection.
Note: The alignment of array data is demonstrated in the PowerShell scripted integrated policy included in the code download with this article.
An Example: Using PowerShell and Conditional Links in OIS Policies
A sample OIS policy demonstrating how to configure data publishing from the Run .Net Script object (shown in Figure 2) is available in the code download accompanying this article. This example will run in OIS 6.3 as well as the new System Center Orchestrator 2012 beta.

Figure 2 - Policy incorporating Run .Net Script and associated data file
Note: Notice that the entry for Lubbock in the file has no price data (a null value). Try to run the policy in your own test environment to see how OIS handles the null value.
There are times where you will encounter a scenario in which a Microsoft-developed integration pack (IP) does not exist. Fortunately, you can find many OIS IPs developed by members of the Opalis community and published on CodePlex (http://opalis.codexplex.com). A few of the more notable community-developed IPs on CodePlex include:
These are just the tip of the iceberg. You can find a complete list of OIS-related IPs and code samples on CodePlex at http://www.codeplex.com/site/search?query=Opalis&ac=8.
There are a number of best practices to keep in mind when authoring OIS policies. Here are several:
You can find more information on policy authoring and publishing best practices in System Center Opalis Integration Server 6.3 Unleashed (Sams, 2011).
OIS is a powerful platform for process automation and the native integration within the System Center suite ups the ante considerably. It is also a surprisingly easy product to learn. You can learn more about Opalis Integration Server at http://microsoft.com/opalis, where you can download the 180 day trial version and related product documentation.
You can find several System Center-integrated policy samples on the Internet, including:
You can also learn about OIS in depth by reading System Center Opalis Integration Server 6.3 Unleashed, which is now available for purchase. For a PDF version of the book, check out http://www.informit.com/store/product.aspx?isbn=0672335611.
Kerrie Meyler, MVP, MCSE, MCTS, MCT, is an independent consultant and trainer with over fifteen years of experience in IT. While at Microsoft in Field Technical Sales for four years she focused on infrastructure and mangement, presenting at numerous product launches. Kerrie has presented Operations Manager 2007 at TechEd 2007, MMS 2009, MMS 2011, and internal Microsoft conferences, receiving company recognition and awards including a SPAR MGS award. Kerrie worked with Microsoft Learning to develop functional specifications for the original Operations Manager Microsoft courseware, 2550: Implementing Microsoft Operations Manager 2000 and did the beta teach for that course.She also participated in development for several System Center certification exams.
Kerrie is the lead author of Microsoft Operations Manager 2005 Unleashed, System Center Operations Manager 2007 Unleashed, System Center Configuration Manager (SCCM) 2007 Unleashed, System Center Operations Manager 2007 R2 Unleashed, System Center Opalis Integration Server 6.3 Unleashed and System Center Service Manager 2010 Unleashed.
Check out an excerpt from System Center Operations Manager 2007 Unleashed, Chapter 3: Looking Inside OpsMgr.
You can also check out an excerpt from System Center Configuration (SCCM) Manager 2007 Unleashed, Chapter 3: Looking Inside ConfigMgr.
Read a sample chapter of System Center Operations Manager 2007 R2 Unleashed at Chapter 1: Introduction and What's New.
You can also read a sample chapter of System Center Opalis Integration Server 6.3 Unleashed at Chapter 1: Introducing Opalis Integration Server 6.3 and System Center Service Manager 2010 Unleashed at Chapter 1:Service Management Basics.
System Center Service Manager 2010 Unleashed was selected as the September, 2011 book giveaway for Microsoft Subnet.