<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>All the Groovey news that fits</title><link>http://blogs.msdn.com/b/groove_development_team/</link><description /><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Five years of Groove/SPW at Microsoft</title><link>http://blogs.msdn.com/b/groove_development_team/archive/2010/04/12/five-years-of-groove-spw-at-microsoft.aspx</link><pubDate>Mon, 12 Apr 2010 19:38:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9994620</guid><dc:creator>Jim McCoy</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/groove_development_team/rsscomments.aspx?WeblogPostID=9994620</wfw:commentRss><comments>http://blogs.msdn.com/b/groove_development_team/archive/2010/04/12/five-years-of-groove-spw-at-microsoft.aspx#comments</comments><description>&lt;p&gt;Last week marked the fifth anniversary of the SharePoint Workspace (then Groove) team joining Microsoft.&amp;nbsp; A lot has changed in those five years, but we’ve had a remarkably stable core throughout, which is testimony to the quality of the team and the technology.&lt;/p&gt; &lt;p&gt;The move to Cambridge serves as appropriate punctuation for the transition to life within Microsoft.&amp;nbsp; Looking forward to the next five…&amp;nbsp; &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9994620" width="1" height="1"&gt;</description></item><item><title>Head on over to Working the Spaces, Sharing the Point</title><link>http://blogs.msdn.com/b/groove_development_team/archive/2009/05/20/head-on-over-to-working-the-spaces-sharing-the-point.aspx</link><pubDate>Wed, 20 May 2009 17:44:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9632304</guid><dc:creator>Jim McCoy</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/groove_development_team/rsscomments.aspx?WeblogPostID=9632304</wfw:commentRss><comments>http://blogs.msdn.com/b/groove_development_team/archive/2009/05/20/head-on-over-to-working-the-spaces-sharing-the-point.aspx#comments</comments><description>&lt;p&gt;As we’ve recently announced that Groove will be changing its name to SharePoint Workspace, this seems like a good time to change the name of the blog as well.&amp;nbsp; The vehicle formerly known as &lt;em&gt;All the Groovey News that Fits&lt;/em&gt; will henceforth be named &lt;em&gt;Working the Spaces, Sharing the Point&lt;/em&gt;. &lt;p&gt;Follow the link to &lt;a href="http://blogs.msdn.com/sharepoint_workspace_development_team/Default.aspx"&gt;http://blogs.msdn.com/sharepoint_workspace_development_team/Default.aspx&lt;/a&gt;, and have a look.&amp;nbsp; You can read all about it there.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9632304" width="1" height="1"&gt;</description></item><item><title>Makeover for Groove:  SharePoint Workspace 2010!</title><link>http://blogs.msdn.com/b/groove_development_team/archive/2009/05/13/makeover-for-groove-sharepoint-workspace-2010.aspx</link><pubDate>Wed, 13 May 2009 16:58:42 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9609282</guid><dc:creator>Jim McCoy</dc:creator><slash:comments>14</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/groove_development_team/rsscomments.aspx?WeblogPostID=9609282</wfw:commentRss><comments>http://blogs.msdn.com/b/groove_development_team/archive/2009/05/13/makeover-for-groove-sharepoint-workspace-2010.aspx#comments</comments><description>&lt;p&gt;Heads up – Groove is getting a new name as of the coming release of Office 2010.&amp;nbsp; Please welcome SharePoint Workspace 2010!&amp;nbsp; &lt;p&gt;The name makeover is in concert with the direction the product is going.&amp;nbsp; SharePoint Workspace will provide easy access to SharePoint content (or content from any server that implements the publicly documented protocols) in an effort to provide a seamless online/offline experience.  &lt;p&gt;SharePoint Workspace 2010 will be easier to deploy and easier to manage, and it supports a new set of scenarios to help Office and SharePoint users be more productive.&amp;nbsp; It will also make it easier for IT folks to implement a consistent information strategy based on SharePoint technology throughout the organization. &lt;p&gt;There will be changes in the way the product is delivered, as well – e.g. SharePoint Workspace (and OneNote, for that matter) will be added to the Microsoft Office Professional Plus 2010 release.&amp;nbsp; Keep an eye peeled for further announcements from Microsoft on new product plans for Office.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9609282" width="1" height="1"&gt;</description></item><item><title>More details on Groove 2007 SP2</title><link>http://blogs.msdn.com/b/groove_development_team/archive/2009/05/12/more-details-on-groove-2007-sp2.aspx</link><pubDate>Tue, 12 May 2009 16:52:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9607216</guid><dc:creator>Jim McCoy</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/groove_development_team/rsscomments.aspx?WeblogPostID=9607216</wfw:commentRss><comments>http://blogs.msdn.com/b/groove_development_team/archive/2009/05/12/more-details-on-groove-2007-sp2.aspx#comments</comments><description>&lt;p&gt;Francie Selkirk has put together a nearly exhaustive list of changes and fixes to Groove in Office 2007 Service Pack 2.&amp;nbsp; Have a look on her &lt;a href="http://blogs.technet.com/weeklygroove/"&gt;support blog&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9607216" width="1" height="1"&gt;</description></item><item><title>Jason Campoli on Groove Relay Server performance monitoring</title><link>http://blogs.msdn.com/b/groove_development_team/archive/2009/05/04/jason-campoli-on-groove-relay-server-performance-monitoring.aspx</link><pubDate>Mon, 04 May 2009 20:34:31 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9586143</guid><dc:creator>Jim McCoy</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/groove_development_team/rsscomments.aspx?WeblogPostID=9586143</wfw:commentRss><comments>http://blogs.msdn.com/b/groove_development_team/archive/2009/05/04/jason-campoli-on-groove-relay-server-performance-monitoring.aspx#comments</comments><description>&lt;p&gt;The Groove Relay Server is a store-and-forward messaging system that stores Groove data for offline clients.&amp;nbsp; It also serves up presence information, and uses several techniques to improve connection and communication efficiency.&amp;nbsp; The data traffic patterns of Groove depend very highly on usage, and so it is particularly important to monitor the Relay Server's health to assess its ability to support its current user base.&lt;/p&gt; &lt;p&gt;Much like any server, there are common performance counters, such as memory and cpu utilization, that are important to watch.&amp;nbsp; But there are a few Relay-specific counters that I recommend paying attention to as well.&amp;nbsp; Here is a quick list of key performance counters, in order of diminishing importance, that I typically watch:&lt;/p&gt; &lt;p&gt; &lt;table border="0" cellspacing="0" cellpadding="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="295"&gt; &lt;p&gt;&lt;strong&gt;Counter to watch&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="213"&gt; &lt;p&gt;&lt;strong&gt;Uh oh…&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="462"&gt; &lt;p&gt;&lt;strong&gt;What it means&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="295"&gt; &lt;p&gt;\Memory\Available Bytes&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="213"&gt; &lt;p&gt;&amp;lt; 2GB (or &amp;lt; 25% Physical Mem)&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="462"&gt; &lt;p&gt;Available Memory dropping too low could be a sign that the relay is falling behind in processing some component of its traffic, or could also indicate a memory leak in the system.&amp;nbsp; The Relay requires at least 25% of total physical memory free to optimally cache disk transactions, so operation below this threshold should be avoided.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="295"&gt; &lt;p&gt;\Processor(_Total)\% Processor Time&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="213"&gt; &lt;p&gt;Sustained &amp;gt;95% more than 20 minutes&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="462"&gt; &lt;p&gt;Spikes to 100% are OK, but a sustained CPU % &amp;gt; 95% is a sign the relay is being overdriven.&amp;nbsp; System might seem unresponsive (slow).&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="295"&gt; &lt;p&gt;\PhysicalDisk(*)\Avg. Disk Queue Length (or could use similar LogicalDisk(*)\Avg. Disk Queue Length.)&amp;nbsp; &lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="213"&gt; &lt;p&gt;Significant number of spikes / periods &amp;gt; 25 on Data drive&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="462"&gt; &lt;p&gt;This indicates the disk subsystem is falling behind.&amp;nbsp; When this occurs it’s always good to verify all disk subsystem components are performing optimally (i.e. no failed disks, no failed disk cache batteries, etc.).&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="295"&gt; &lt;p&gt;\Groove Relay Store\StoreFFQHelperOutstandingCommands&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="213"&gt; &lt;p&gt;&amp;gt; 500 for longer than 15 min&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="462"&gt; &lt;p&gt;Indicates messages backing up writing to relay.&amp;nbsp; Could indicate slow disk subsystem, or overload of data.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="295"&gt; &lt;p&gt;\Paging File(C:\pagefile.sys)\% Usage&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="213"&gt; &lt;p&gt;Sustained &amp;gt; 15%&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="462"&gt; &lt;p&gt;Means system is being overloaded and paging.&amp;nbsp; When paging is high, system is not running at optimal performance.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="295"&gt; &lt;p&gt;\Groove Relay Flow Control Client\FlowControlStopSendingCount&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="213"&gt; &lt;p&gt;&amp;gt; 1000 for long periods of time (hours)&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="462"&gt; &lt;p&gt;Indicates either a poorly-performing disk subsystem, or a large number of clients that are using an excessive amount of bandwidth.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="295"&gt; &lt;p&gt;\LogicalDisk(E:)\Free Megabytes&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="213"&gt; &lt;p&gt;&amp;lt; 5% of disk on Data drive&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="462"&gt; &lt;p&gt;A disk this low on memory will cause inefficient performance, and eventually crash the relay.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="295"&gt; &lt;p&gt;\TCPv4\Segments Retransmitted/sec&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="213"&gt; &lt;p&gt;&amp;gt; 15-20&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="462"&gt; &lt;p&gt;More a sign of a config issue.&amp;nbsp; Usually indicates a bad or poorly-configured network connection.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9586143" width="1" height="1"&gt;</description></item><item><title>Office Groove 2007 SP2 is out!</title><link>http://blogs.msdn.com/b/groove_development_team/archive/2009/04/29/office-groove-2007-sp2-is-out.aspx</link><pubDate>Wed, 29 Apr 2009 23:17:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9576420</guid><dc:creator>Jim McCoy</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/groove_development_team/rsscomments.aspx?WeblogPostID=9576420</wfw:commentRss><comments>http://blogs.msdn.com/b/groove_development_team/archive/2009/04/29/office-groove-2007-sp2-is-out.aspx#comments</comments><description>&lt;p&gt;By now you’ve probably heard the news that Office 2007 SP2 has been released, and with it, of course, is Office Groove 2007 SP2.&amp;nbsp; On the menu:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Groove Manager can now use Microsoft SQL Server 2008 as a database.  &lt;li&gt;There are little tweaks to shore up security a little further in both the client and the manager by blocking files that have a .cnt or .hpj extension.  &lt;li&gt;There is a fix to deal gracefully with spaces in currency fields in certain languages.  &lt;li&gt;A variety of other stuff.&amp;nbsp; As always, keep an eye on our &lt;a href="http://blogs.technet.com/weeklygroove/"&gt;support blog&lt;/a&gt;, which will be putting up an SP2 post with more details for you.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;You can read more about the general Office release on &lt;a href="http://www.eweek.com/c/a/Windows/Microsoft-Office-2007-Service-Pack-2-Releases-Today-826236/?kc=rss"&gt;eWeek&lt;/a&gt; or &lt;a href="http://blogs.zdnet.com/microsoft/?p=2616"&gt;Mary Jo Foley’s blog on ZDNet&lt;/a&gt;.&amp;nbsp; But a service pack is worth a thousand words, and you can grab that &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=b444bf18-79ea-46c6-8a81-9db49b4ab6e5&amp;amp;displaylang=en"&gt;here&lt;/a&gt; from the Microsoft Download Center if you’re an existing 2007 customer.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9576420" width="1" height="1"&gt;</description></item><item><title>Groove 2007 SP2 on the horizon</title><link>http://blogs.msdn.com/b/groove_development_team/archive/2009/04/17/groove-2007-sp2-on-the-horizon.aspx</link><pubDate>Fri, 17 Apr 2009 21:23:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9554489</guid><dc:creator>Jim McCoy</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/groove_development_team/rsscomments.aspx?WeblogPostID=9554489</wfw:commentRss><comments>http://blogs.msdn.com/b/groove_development_team/archive/2009/04/17/groove-2007-sp2-on-the-horizon.aspx#comments</comments><description>&lt;p&gt;Keep an eye peeled for Office Groove 2007 Service Pack 2 – it’s due out very soon.&amp;nbsp; It’ll include a variety of goodies, including support for SQL 2008 in Groove Manager, a couple of new blocked extensions for improved security, and a fix for currency fields in certain languages, among other things.&amp;nbsp; Details to follow upon appearance of the new arrival…&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9554489" width="1" height="1"&gt;</description></item><item><title>Online Business Productivity, Offline</title><link>http://blogs.msdn.com/b/groove_development_team/archive/2009/04/01/online-business-productivity-offline.aspx</link><pubDate>Wed, 01 Apr 2009 21:49:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9527568</guid><dc:creator>Jim McCoy</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/groove_development_team/rsscomments.aspx?WeblogPostID=9527568</wfw:commentRss><comments>http://blogs.msdn.com/b/groove_development_team/archive/2009/04/01/online-business-productivity-offline.aspx#comments</comments><description>&lt;p&gt;Jeroen Jansen &lt;a href="http://blogs.technet.com/dutchpts/archive/2009/03/26/software-plus-services-and-offline-collaboration-yes-we-can.aspx"&gt;blogs here&lt;/a&gt; about how you can use Groove 2007 with BPOS (Business Productivity Online Suite) to remain productive in the absence of an Internet connection.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9527568" width="1" height="1"&gt;</description></item><item><title>Life on the right coast</title><link>http://blogs.msdn.com/b/groove_development_team/archive/2009/03/18/life-on-the-right-coast.aspx</link><pubDate>Wed, 18 Mar 2009 23:47:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9488012</guid><dc:creator>Jim McCoy</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/groove_development_team/rsscomments.aspx?WeblogPostID=9488012</wfw:commentRss><comments>http://blogs.msdn.com/b/groove_development_team/archive/2009/03/18/life-on-the-right-coast.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/groove_development_team/WindowsLiveWriter/Lifeontherightcoast_EBA6/535Q_2.jpg"&gt;&lt;img title="535Q" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="184" alt="535Q" src="http://blogs.msdn.com/blogfiles/groove_development_team/WindowsLiveWriter/Lifeontherightcoast_EBA6/535Q_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;It’s been almost four years now since Groove joined Microsoft, and we’re starting to settle in.&amp;nbsp; I showed up from Redmond a few months after the acquisition, and we were then in the midst of working on Office 2007.&amp;nbsp; Since we had jumped in midstream, we were still using a lot of existing processes, and the internal culture hadn’t changed too much.&lt;/p&gt; &lt;p&gt;Over time we’ve gotten much more integrated with the rest of Microsoft, but you can still feel the difference when you drive to work (the left coasters think California drivers are bad – they have no idea), when you step outside in the winter (sun! brutal cold!), or when you attend an afternoon meeting (Redmond time).&lt;/p&gt; &lt;p&gt;While a lot of changes have taken place, we’re still in the same building, a &lt;a href="http://www.cummings.com/pdfs/beverly_fliers/cummings_center_shoe_history.pdf"&gt;giant converted factory&lt;/a&gt; in Beverly, Massachusetts, where they used to make shoe manufacturing machinery.&amp;nbsp; The picture above shows only a fraction of the whole.&amp;nbsp; The place is vast.&amp;nbsp; But it’s kinda cool.&amp;nbsp; No, we don’t have a synthetic playing field, and no, our views can’t compete with snow-capped Cascades, but we do have a couple of nice little ponds below us, and it’s home.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/groove_development_team/WindowsLiveWriter/Lifeontherightcoast_EBA6/shoepond_2.jpg"&gt;&lt;img title="shoepond" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="184" alt="shoepond" src="http://blogs.msdn.com/blogfiles/groove_development_team/WindowsLiveWriter/Lifeontherightcoast_EBA6/shoepond_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Microsoft has been gradually increasing its development presence in Boston, and this is a great place to work.&amp;nbsp; So if you’re in Greater Boston and want to join Microsoft, or if you already work for us in Redmond but wish you could get home in time to see the Sox play, give us a shout.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9488012" width="1" height="1"&gt;</description></item><item><title>Developing Macros to Perform Bulk Operations in the Groove Forms Tool and the InfoPath Forms Tool</title><link>http://blogs.msdn.com/b/groove_development_team/archive/2009/02/19/developing-macros-to-perform-bulk-operations-in-the-groove-forms-tool-and-the-infopath-forms-tool.aspx</link><pubDate>Fri, 20 Feb 2009 01:41:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9435095</guid><dc:creator>Jim McCoy</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/groove_development_team/rsscomments.aspx?WeblogPostID=9435095</wfw:commentRss><comments>http://blogs.msdn.com/b/groove_development_team/archive/2009/02/19/developing-macros-to-perform-bulk-operations-in-the-groove-forms-tool-and-the-infopath-forms-tool.aspx#comments</comments><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;Josh Goldman weighs in:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;You can make it easier for Forms tool users by adding macros to your Forms tools that allow the user to perform bulk operations on a group of selected forms. In the Issue Tracking tool, there is a Status field on the Issue and Response forms. What if a user has 5 issues and has closed them all. If you add a macro to the tool, the user could update all five issues at one time.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;The mechanics of creating macros is covered in &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/bb290772.aspx"&gt;&lt;FONT face=Calibri&gt;http://msdn.microsoft.com/en-us/library/bb290772.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; . So I’ll just cover the code.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;Here is the body of the macro to update all selected records so that the status is set to “Closed”&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;i_FormRecord.SetField("Status", “Closed”);&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;That’s it. &amp;nbsp;You’re done developing the macro.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;But the users like this macro so much that they want to use it to set the status to values other than “Closed”. You’ll have to add a little more code to make this work.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;You can get them to enter the status by calling the DisplayTextInputDialog method. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp; var dialogResult = i_FormsToolUIDelegate.DisplayTextInputDialog(&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Status",&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Set status for selected records",&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Closed"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp; );&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;This sets the default value of the dialog box to “Closed”.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;But macros get executed one time for each selected record. You don’t want them to enter the status separately for each record. That’s not much of a time saver. In order to do this, you’ll create a global variable that will let you check if they’ve already entered a status value.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;To do this, select the “More Code” button and enter:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;var newStatus = "";&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;var statusEntered = "";&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;This defines two global variables, whose values are preserved from one record to the next..&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;Now here’s the full body of the macro:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;if (statusEntered == "")&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp; var dialogResult = i_FormsToolUIDelegate.DisplayTextInputDialog(&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Status",&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Set status for selected records",&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Planning"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp; );&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp; if (dialogResult.Result == GrooveDialogBoxResultCode_OK)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newStatus = dialogResult.Data;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; statusEntered = "true";&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp; else&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; statusEntered = "false" ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;if (statusEntered == "true" &amp;amp;&amp;amp; i_FormRecord.HasField("Status"))&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp; i_FormRecord.SetField("Status", newStatus);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;By checking If statusEntered is an empty string, you ensure that the dialog box is displayed only once.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;If it is empty, you display the text input dialog and then check the result. If the user has clicked OK, then you’ll update the status of each record to the specified value (which is available in the dialogResult.Data field).&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;But you should also check that the selected record has a Status field. If you don’t check and the user calls the macro with a keyword record selected, you’ll get a script error.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;You can also look at the Update assignments macro that is already defined in the Issue Tracking tool.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt"&gt;&lt;FONT face=Calibri&gt;Remember that macros work with InfoPath Forms tools in exactly the same way that they work in Groove Forms tools.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9435095" width="1" height="1"&gt;</description></item></channel></rss>