<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://k2underground.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>Johnny's K2 Blog</title><link>http://k2underground.com/blogs/johnny/default.aspx</link><description>Just a place to share my K2 related thoughts/tips/tricks with the community.  - Johnny Fang, Solutions Manager, K2</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61120.2)</generator><item><title>Cool Things about the Publishing Event Wizard</title><link>http://k2underground.com/blogs/johnny/archive/2008/11/18/cool-things-about-the-publishing-event-wizard.aspx</link><pubDate>Tue, 18 Nov 2008 04:27:00 GMT</pubDate><guid isPermaLink="false">1c9bda6b-c6e6-4e79-8d32-b70ad0011ef7:27313</guid><dc:creator>johnny</dc:creator><slash:comments>0</slash:comments><comments>http://k2underground.com/blogs/johnny/comments/27313.aspx</comments><wfw:commentRss>http://k2underground.com/blogs/johnny/commentrss.aspx?PostID=27313</wfw:commentRss><wfw:comment>http://k2underground.com/blogs/johnny/rsscomments.aspx?PostID=27313</wfw:comment><description>Ever notice that this little wizard in K2 blackpearl could do quite a lot of things with the new Content Management features in MOSS 2007? [For the uninitiated, the features of the now defunct Content Management Server 2002 were merged into MOSS 2007...(&lt;a href="http://k2underground.com/blogs/johnny/archive/2008/11/18/cool-things-about-the-publishing-event-wizard.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://k2underground.com/aggbug.aspx?PostID=27313" width="1" height="1"&gt;</description></item><item><title>Silverlight 2 and K2</title><link>http://k2underground.com/blogs/johnny/archive/2008/11/18/silverlight-2-and-k2.aspx</link><pubDate>Tue, 18 Nov 2008 02:58:00 GMT</pubDate><guid isPermaLink="false">1c9bda6b-c6e6-4e79-8d32-b70ad0011ef7:27309</guid><dc:creator>johnny</dc:creator><slash:comments>0</slash:comments><comments>http://k2underground.com/blogs/johnny/comments/27309.aspx</comments><wfw:commentRss>http://k2underground.com/blogs/johnny/commentrss.aspx?PostID=27309</wfw:commentRss><wfw:comment>http://k2underground.com/blogs/johnny/rsscomments.aspx?PostID=27309</wfw:comment><description>Here's a good blog post by Scott Guthrie on Silverlight 2. The latest K2 Silverlight Web Designer in blackpoint is also featured in the post. Cool stuff. :) http://weblogs.asp.net/scottgu/archive/2008/11/16/update-on-silverlight-2-and-a-glimpse-of-silverlight-3.asp...(&lt;a href="http://k2underground.com/blogs/johnny/archive/2008/11/18/silverlight-2-and-k2.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://k2underground.com/aggbug.aspx?PostID=27309" width="1" height="1"&gt;</description></item><item><title>Finding Duplicate SPNs</title><link>http://k2underground.com/blogs/johnny/archive/2008/11/06/finding-duplicate-spns.aspx</link><pubDate>Thu, 06 Nov 2008 03:37:00 GMT</pubDate><guid isPermaLink="false">1c9bda6b-c6e6-4e79-8d32-b70ad0011ef7:27118</guid><dc:creator>johnny</dc:creator><slash:comments>0</slash:comments><comments>http://k2underground.com/blogs/johnny/comments/27118.aspx</comments><wfw:commentRss>http://k2underground.com/blogs/johnny/commentrss.aspx?PostID=27118</wfw:commentRss><wfw:comment>http://k2underground.com/blogs/johnny/rsscomments.aspx?PostID=27118</wfw:comment><description>Sam pointed out that Microsoft had a nifty little script which helped you to find duplicate SPNs. http://k2underground.com/forums/thread/27093.aspx This would be pretty useful for troubleshooting purposes when other people are messing around with your...(&lt;a href="http://k2underground.com/blogs/johnny/archive/2008/11/06/finding-duplicate-spns.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://k2underground.com/aggbug.aspx?PostID=27118" width="1" height="1"&gt;</description></item><item><title>K2 Tips and Tricks (and Gotchas) in 0807</title><link>http://k2underground.com/blogs/johnny/archive/2008/10/14/k2-tips-and-tricks-and-gotchas-in-0807.aspx</link><pubDate>Tue, 14 Oct 2008 03:36:00 GMT</pubDate><guid isPermaLink="false">1c9bda6b-c6e6-4e79-8d32-b70ad0011ef7:26632</guid><dc:creator>johnny</dc:creator><slash:comments>0</slash:comments><comments>http://k2underground.com/blogs/johnny/comments/26632.aspx</comments><wfw:commentRss>http://k2underground.com/blogs/johnny/commentrss.aspx?PostID=26632</wfw:commentRss><wfw:comment>http://k2underground.com/blogs/johnny/rsscomments.aspx?PostID=26632</wfw:comment><description>Here's a couple of tips and tricks (and warnings) in 0807 that I noted while using it over these few days. When opening a new or current K2 process, occasionally you might not see the Process/Activity Data and Workflow Context Browser panes in the K2...(&lt;a href="http://k2underground.com/blogs/johnny/archive/2008/10/14/k2-tips-and-tricks-and-gotchas-in-0807.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://k2underground.com/aggbug.aspx?PostID=26632" width="1" height="1"&gt;</description></item><item><title>0807 Re-released!</title><link>http://k2underground.com/blogs/johnny/archive/2008/10/09/0807-re-released.aspx</link><pubDate>Thu, 09 Oct 2008 04:25:00 GMT</pubDate><guid isPermaLink="false">1c9bda6b-c6e6-4e79-8d32-b70ad0011ef7:26570</guid><dc:creator>johnny</dc:creator><slash:comments>0</slash:comments><comments>http://k2underground.com/blogs/johnny/comments/26570.aspx</comments><wfw:commentRss>http://k2underground.com/blogs/johnny/commentrss.aspx?PostID=26570</wfw:commentRss><wfw:comment>http://k2underground.com/blogs/johnny/rsscomments.aspx?PostID=26570</wfw:comment><description>New version of K2 0807 has been re-released on the customer portal. New version is 4.8210.2.0. This version contains the following critical fixes. KB000301 - Error when using a K2 Process with a Document View Enabled KB000302 - The Event Instance Report...(&lt;a href="http://k2underground.com/blogs/johnny/archive/2008/10/09/0807-re-released.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://k2underground.com/aggbug.aspx?PostID=26570" width="1" height="1"&gt;</description></item><item><title>0807 and InfoPath Client Event Template</title><link>http://k2underground.com/blogs/johnny/archive/2008/09/30/0807-and-infopath-client-event-template.aspx</link><pubDate>Mon, 29 Sep 2008 16:17:00 GMT</pubDate><guid isPermaLink="false">1c9bda6b-c6e6-4e79-8d32-b70ad0011ef7:26370</guid><dc:creator>johnny</dc:creator><slash:comments>0</slash:comments><comments>http://k2underground.com/blogs/johnny/comments/26370.aspx</comments><wfw:commentRss>http://k2underground.com/blogs/johnny/commentrss.aspx?PostID=26370</wfw:commentRss><wfw:comment>http://k2underground.com/blogs/johnny/rsscomments.aspx?PostID=26370</wfw:comment><description>As many of you may know, 0807 just got released last week and there's a whole bunch of snazzy stuff inside. However, take note that there is currently a known issue that can cause some problems for those working with Form Services. For a new 0807 process...(&lt;a href="http://k2underground.com/blogs/johnny/archive/2008/09/30/0807-and-infopath-client-event-template.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://k2underground.com/aggbug.aspx?PostID=26370" width="1" height="1"&gt;</description></item><item><title>0807 RTM has been released!</title><link>http://k2underground.com/blogs/johnny/archive/2008/09/25/0807-rtm-has-been-released.aspx</link><pubDate>Thu, 25 Sep 2008 03:13:00 GMT</pubDate><guid isPermaLink="false">1c9bda6b-c6e6-4e79-8d32-b70ad0011ef7:26303</guid><dc:creator>johnny</dc:creator><slash:comments>1</slash:comments><comments>http://k2underground.com/blogs/johnny/comments/26303.aspx</comments><wfw:commentRss>http://k2underground.com/blogs/johnny/commentrss.aspx?PostID=26303</wfw:commentRss><wfw:comment>http://k2underground.com/blogs/johnny/rsscomments.aspx?PostID=26303</wfw:comment><description>Just to let everyone know that the new K2 blackpearl 0807 has been released on the customer portal . This is a milestone release as this includes a big bunch of performance and stability enhancements. New features are the Out-of-Office components and...(&lt;a href="http://k2underground.com/blogs/johnny/archive/2008/09/25/0807-rtm-has-been-released.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://k2underground.com/aggbug.aspx?PostID=26303" width="1" height="1"&gt;</description></item><item><title>0807 Public Beta Released!</title><link>http://k2underground.com/blogs/johnny/archive/2008/09/03/0807-public-beta-released.aspx</link><pubDate>Wed, 03 Sep 2008 02:11:00 GMT</pubDate><guid isPermaLink="false">1c9bda6b-c6e6-4e79-8d32-b70ad0011ef7:25846</guid><dc:creator>johnny</dc:creator><slash:comments>0</slash:comments><comments>http://k2underground.com/blogs/johnny/comments/25846.aspx</comments><wfw:commentRss>http://k2underground.com/blogs/johnny/commentrss.aspx?PostID=25846</wfw:commentRss><wfw:comment>http://k2underground.com/blogs/johnny/rsscomments.aspx?PostID=25846</wfw:comment><description>Just to let you know. The public beta for 0807 has hit the customer portal site ( http://portal.k2workflow.com ). So if you are marked as a beta user, you will be able to download and test drive this from the downloads section under beta components. If...(&lt;a href="http://k2underground.com/blogs/johnny/archive/2008/09/03/0807-public-beta-released.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://k2underground.com/aggbug.aspx?PostID=25846" width="1" height="1"&gt;</description></item><item><title>Difference in RepairError behavior in K2.net 2003 and K2 blackpearl</title><link>http://k2underground.com/blogs/johnny/archive/2008/08/19/difference-in-repairerror-behavior-in-k2-net-2003-and-k2-blackpearl.aspx</link><pubDate>Tue, 19 Aug 2008 09:08:00 GMT</pubDate><guid isPermaLink="false">1c9bda6b-c6e6-4e79-8d32-b70ad0011ef7:25570</guid><dc:creator>johnny</dc:creator><slash:comments>0</slash:comments><comments>http://k2underground.com/blogs/johnny/comments/25570.aspx</comments><wfw:commentRss>http://k2underground.com/blogs/johnny/commentrss.aspx?PostID=25570</wfw:commentRss><wfw:comment>http://k2underground.com/blogs/johnny/rsscomments.aspx?PostID=25570</wfw:comment><description>I saw this response from Blake ( http://k2underground.com/forums/thread/25502.aspx ) and I thought it interesting that the RepairError behaviour has changed. I did some research on this and I thought it would be nice to share out my findings on the key...(&lt;a href="http://k2underground.com/blogs/johnny/archive/2008/08/19/difference-in-repairerror-behavior-in-k2-net-2003-and-k2-blackpearl.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://k2underground.com/aggbug.aspx?PostID=25570" width="1" height="1"&gt;</description></item><item><title>Quick Tip: How to connect a line back to the same activity</title><link>http://k2underground.com/blogs/johnny/archive/2008/07/31/quick-tip-how-to-connect-a-line-back-to-the-same-activity.aspx</link><pubDate>Thu, 31 Jul 2008 05:29:00 GMT</pubDate><guid isPermaLink="false">1c9bda6b-c6e6-4e79-8d32-b70ad0011ef7:25243</guid><dc:creator>johnny</dc:creator><slash:comments>0</slash:comments><comments>http://k2underground.com/blogs/johnny/comments/25243.aspx</comments><wfw:commentRss>http://k2underground.com/blogs/johnny/commentrss.aspx?PostID=25243</wfw:commentRss><wfw:comment>http://k2underground.com/blogs/johnny/rsscomments.aspx?PostID=25243</wfw:comment><description>As most people would know, it's a pretty simple exercise in K2.net 2003 to draw a line back to the same activity. You just have to pick the "U" shaped line type and draw it directly. This is pretty useful for cases where you want to do ad-hoc approval...(&lt;a href="http://k2underground.com/blogs/johnny/archive/2008/07/31/quick-tip-how-to-connect-a-line-back-to-the-same-activity.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://k2underground.com/aggbug.aspx?PostID=25243" width="1" height="1"&gt;</description></item><item><title>Differences between "Plan just once" and "Plan per destination"</title><link>http://k2underground.com/blogs/johnny/archive/2008/07/26/differences-between-plan-just-once-and-plan-per-destination.aspx</link><pubDate>Sat, 26 Jul 2008 10:17:00 GMT</pubDate><guid isPermaLink="false">1c9bda6b-c6e6-4e79-8d32-b70ad0011ef7:25129</guid><dc:creator>johnny</dc:creator><slash:comments>0</slash:comments><comments>http://k2underground.com/blogs/johnny/comments/25129.aspx</comments><wfw:commentRss>http://k2underground.com/blogs/johnny/commentrss.aspx?PostID=25129</wfw:commentRss><wfw:comment>http://k2underground.com/blogs/johnny/rsscomments.aspx?PostID=25129</wfw:comment><description>&lt;P&gt;There are some of us who come from a K2.net 2003 background and we tend to bring the concepts of K2.net 2003 destination rules and Destination Queues along with us when we use K2 blackpearl.&amp;nbsp; I was no exception to this.&lt;/P&gt;
&lt;P&gt;However, while having a discussion with some of the labs guys on a feature request, I discovered my understanding of how slots and the various destination rule options work was totally wrong!&lt;/P&gt;
&lt;P&gt;Yes, K2 blackpearl and K2.net 2003 destination rules work quite differently.&lt;/P&gt;
&lt;P&gt;Take this example:&lt;/P&gt;
&lt;P&gt;I have a client activity where I want to do a voting scenario.&amp;nbsp; I want to route it to a pool of 5 users.&amp;nbsp; I want my item to be approved when 2 of them approve it or 1 of them rejects it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Now in K2.net 2003, you would set 5 users into your destination rules and set 2 slots in your activity.&amp;nbsp; Now, when this activity instance is created; in the worklist table, you would see that 5 records in the worklist table will get created (i.e. one for each user).&amp;nbsp; As soon as the first two users action on their workitems, the other 3 workitems in the other 3 user's worklist will get expired.&amp;nbsp; Now, that isn't too efficient if the number of users increases in the destination pool.&amp;nbsp; e.g. a call center can have maybe a 100 operators serving workitems.&amp;nbsp; Of course in K2.net 2003, there is a way to work around it by using the optimization for the destination queues.&amp;nbsp; This allows you to create a single entry in the worklist table for a destination queue.&amp;nbsp; So in the worklist table, you would see that the item is assigned to the queue name instead of the user name.&amp;nbsp; The item will be assigned at the point where the first user picks up the workitem.&lt;/P&gt;
&lt;P&gt;Now in K2 blackpearl, if you have the same scenario.&amp;nbsp; This varies depending on which option is being used in the client event options.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Plan Just Once&lt;/U&gt; - This option instantiates only one activity instance regardless of the number of slots.&lt;/P&gt;
&lt;P&gt;So it would look something like this.&lt;/P&gt;
&lt;P&gt;ActivityInstanceDest 1&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;|____&amp;nbsp; Slot 1&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|____&amp;nbsp; Slot 2&lt;/P&gt;
&lt;P&gt;Note that as there is only one activity instance, any events in the activity will only fire once regardless of the number of slots.&lt;/P&gt;
&lt;P&gt;So you will note that you cannot:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Assign the destination user in the notification email.&lt;/LI&gt;
&lt;LI&gt;You cannot get the &lt;EM&gt;User&lt;/EM&gt; and &lt;EM&gt;Action Result&lt;/EM&gt; properties from the ActivityInstanceDest object.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;The whole reason here is that events and succeeding rule in the activity instance will only fire once.&amp;nbsp; So the results of the users are actually stored in the slots collection.&amp;nbsp; However, what is interesting is that there is intelligence in the succeeding rule logic.&amp;nbsp; If you have your succeeding rules to complete if 2 or more slots approve or at least one slot rejects.&amp;nbsp; The succeeding rule will fire as soon as 2 of the slots have Action Result = Approve or 1 slot has Action Result = Reject.&amp;nbsp; Note that for the "Plan Just Once" option, the succeeding rule will always fire the &lt;EM&gt;SetSucceedingRuleTrue&lt;/EM&gt; handler in the code for the Succeeding Rule.&amp;nbsp; The &lt;EM&gt;SetSucceedingRuleFalse&lt;/EM&gt; handler will never fire.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Plan Per Destination&lt;/U&gt; - This option instantiates &lt;U&gt;one activity instance per slot&lt;/U&gt;.&lt;/P&gt;
&lt;P&gt;So it would look something like this.&lt;/P&gt;
&lt;P&gt;ActivityInstanceDest 1&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;|____&amp;nbsp; Slot 1&lt;/P&gt;
&lt;P&gt;ActivityInstanceDest 2&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|____&amp;nbsp; Slot 2&lt;/P&gt;
&lt;P&gt;Note in this case, any events in the activity will only fire based on the number of instances (in this case it is 2).&amp;nbsp; Also there is a one to one relationship between the ActInstDest and SlotInstance objects.&lt;/P&gt;
&lt;P&gt;So you will note that destination user in the notification email functions as expected and the the &lt;EM&gt;User&lt;/EM&gt; and &lt;EM&gt;Action Result&lt;/EM&gt; properties from the ActivityInstanceDest object are populated as well.&lt;/P&gt;
&lt;P&gt;So in the same example above, if you have your succeeding rules to complete if 2 or more slots approve or at least one slot rejects.&amp;nbsp; If the first user approves, the succeeding rule will fire the first time.&amp;nbsp;&amp;nbsp;However, as the succeeding rule condition&amp;nbsp;has not been met, the &lt;EM&gt;SetSucceedingRuleFalse&lt;/EM&gt; handler will fire first.&amp;nbsp;Now if a second user either approves or rejects, the succeeding rule will fire again.&amp;nbsp; This time the &lt;EM&gt;SetSucceedingRuleTrue&lt;/EM&gt; handler will fire.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Last Thoughts&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;Now after digesting all this, you can probably see that there is a performance benefit in K2 blackpearl when dealing with large number of users.&amp;nbsp; For a destination rule pointing to a hundred users while working on a activity with&amp;nbsp;2 slots.&amp;nbsp; Only two slot records get created versus 100 worklist records in K2.net 2003.&amp;nbsp; User resolve their worklist at runtime&amp;nbsp;and slots are assigned to users in real-time as well.&amp;nbsp; Isn't this great?&amp;nbsp; :)&lt;/P&gt;&lt;img src="http://k2underground.com/aggbug.aspx?PostID=25129" width="1" height="1"&gt;</description></item><item><title>0807 Early Impressions</title><link>http://k2underground.com/blogs/johnny/archive/2008/07/26/0807-early-impressions.aspx</link><pubDate>Sat, 26 Jul 2008 09:47:00 GMT</pubDate><guid isPermaLink="false">1c9bda6b-c6e6-4e79-8d32-b70ad0011ef7:25127</guid><dc:creator>johnny</dc:creator><slash:comments>1</slash:comments><comments>http://k2underground.com/blogs/johnny/comments/25127.aspx</comments><wfw:commentRss>http://k2underground.com/blogs/johnny/commentrss.aspx?PostID=25127</wfw:commentRss><wfw:comment>http://k2underground.com/blogs/johnny/rsscomments.aspx?PostID=25127</wfw:comment><description>&lt;P&gt;[Updated&amp;nbsp;2&amp;nbsp;Sep 2008]&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Been trying out the betas of 0807 and I must say there are a couple of pleasing changes from 0803.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;K2 reports - improvement in performance overall due to moving the paging/filtering from the web server end to the database backend.&lt;/LI&gt;
&lt;LI&gt;K2 Workspace&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;Archiving works seamlessly now.&amp;nbsp; :)&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Create a blank database in SQL Server Management Console&lt;/LI&gt;
&lt;LI&gt;Go to the Archival node, specify the source database as K2ServerLog and the destination as the newly created DBs.&lt;/LI&gt;
&lt;LI&gt;Specify the To and From dates and then run the Archival!&amp;nbsp; It's that simple.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;Permissions listing has been enhanced.&amp;nbsp; Columns can now be sorted ascending or descending.&lt;/LI&gt;
&lt;LI&gt;Enhanced dialog for adding user/group permissions&lt;/LI&gt;
&lt;LI&gt;Workspace Node&amp;nbsp;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Additional setting for the workspace to control the display items per page for users.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;User Managers Node&amp;nbsp;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Additional setting to specify the limit for the number of users returned for the URM service.&amp;nbsp; Default is 100.&lt;/LI&gt;
&lt;LI&gt;Additional place to add&amp;nbsp;other&amp;nbsp;trusted domains for users. -&amp;gt; No more fudging in the database.&lt;/LI&gt;
&lt;LI&gt;Additional options in the UI to resolve nested groups and also other AD query related settings. -&amp;gt; No more fudging in the database.&lt;/LI&gt;&lt;/UL&gt;&lt;/OL&gt;
&lt;LI&gt;K2 designer for Visual Studio&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;Much improved memory usage - I was able to create up a process with 100+ activities and memory consumption was slight above 600MB.&amp;nbsp; Nice!&lt;/LI&gt;
&lt;LI&gt;Wizards are also a lot zippier.&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;Out of Office feature is now in&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;The cool thing is that it uses the delegation feature.&amp;nbsp; So the workitems can be seen on both your worklist and your delegate.&amp;nbsp; You can even have a couple of people to be your delegate.&lt;/LI&gt;
&lt;LI&gt;Out of office settings can be managed by users directly from the worklist or by the administrator from the management console.&amp;nbsp; Very nice!&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;Installer has a number of improvements - The one I like is that it now creates the SPNs on the FQDN name of the K2 farm now.&amp;nbsp; Nice!&lt;/LI&gt;
&lt;LI&gt;K2.net 2003 Interopt (going RTM in 0807) - My colleague DC has been testing out a bit for a migration project and there were a couple of issues since Build 002.&amp;nbsp; However, it's pretty cool that in Build 010 most of the stuff is now working (even for K2.net 2003 VB processes).&amp;nbsp; You can edit the Interopt Activity wizards to change the destination rules and also edit the Destination Queues from the "K2.net 2003 Destination Queue Property Wizard" on the Process Wizard Strip on the top of the canvas (though the editing code only made it into Build 011).&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;There's probably a ton of other fixes and enhancements as well but these are the more noticeable improvements just from playing around with it for a few days.&lt;/P&gt;&lt;img src="http://k2underground.com/aggbug.aspx?PostID=25127" width="1" height="1"&gt;</description></item><item><title>Updating Batch Action/Outcome results back into InfoPath form</title><link>http://k2underground.com/blogs/johnny/archive/2008/07/21/updating-batch-action-outcome-results-back-into-infopath-form.aspx</link><pubDate>Mon, 21 Jul 2008 03:12:00 GMT</pubDate><guid isPermaLink="false">1c9bda6b-c6e6-4e79-8d32-b70ad0011ef7:24974</guid><dc:creator>johnny</dc:creator><slash:comments>3</slash:comments><comments>http://k2underground.com/blogs/johnny/comments/24974.aspx</comments><wfw:commentRss>http://k2underground.com/blogs/johnny/commentrss.aspx?PostID=24974</wfw:commentRss><wfw:comment>http://k2underground.com/blogs/johnny/rsscomments.aspx?PostID=24974</wfw:comment><description>&lt;P&gt;I got posed this question the other day and I thought this might be useful to share.&lt;/P&gt;
&lt;P&gt;The scenario is that when do a batch selection or quick approval action from the worklist, the outcome is not recorded into the form's audit history.&amp;nbsp; Of course, the process audit history will have it but in certain cases, the user does not have access to the process history information.&lt;/P&gt;
&lt;P&gt;So if we wanted to store the outcome in the InfoPath form data, basically we have to update the value directly within the succeeding rules of the client activity.&lt;/P&gt;
&lt;P&gt;Here's an example.&amp;nbsp;Edit the code of your succeedin rule.&amp;nbsp; You can get the final outcome by putting this snippet of code inside the succeeding rule.&amp;nbsp; See portions in red.&amp;nbsp; The text in green is the variables you need to change to your own form and namespace.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:11pt;COLOR:red;FONT-FAMILY:'Calibri','sans-serif';"&gt;using System.Xml;&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:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&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:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Main(Project_282cb15964ee4ab397715563ff6641a6.SucceedingRuleContext_369ef228d5e54527b7116b0583eabd22 K2)&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:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (SucceedingRuleHelper.AnyOutcomesEvaluatedSuccessfully(K2))&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:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AllInfoPathTasksFinished(K2);&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:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K2.SucceedingRule = 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:11pt;COLOR:red;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XmlDocument xmlDoc = new XmlDocument();&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:11pt;COLOR:red;FONT-FAMILY:'Calibri','sans-serif';"&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;SPAN style="FONT-SIZE:11pt;COLOR:red;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlDoc.LoadXml(K2.ProcessInstance.XmlFields["&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:11pt;COLOR:#00b050;FONT-FAMILY:'Calibri','sans-serif';"&gt;TestForm&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:11pt;COLOR:red;FONT-FAMILY:'Calibri','sans-serif';"&gt;"].Value);&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:11pt;COLOR:red;FONT-FAMILY:'Calibri','sans-serif';"&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;SPAN style="FONT-SIZE:11pt;COLOR:red;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XmlNamespaceManager namespaceManager = new XmlNamespaceManager(xmlDoc.NameTable);&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:11pt;COLOR:red;FONT-FAMILY:'Calibri','sans-serif';"&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;SPAN style="FONT-SIZE:11pt;COLOR:red;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; namespaceManager.AddNamespace("&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:11pt;COLOR:#00b050;FONT-FAMILY:'Calibri','sans-serif';"&gt;my&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:11pt;COLOR:red;FONT-FAMILY:'Calibri','sans-serif';"&gt;", xmlDoc.DocumentElement.GetNamespaceOfPrefix("&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:11pt;COLOR:#00b050;FONT-FAMILY:'Calibri','sans-serif';"&gt;my&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:11pt;COLOR:red;FONT-FAMILY:'Calibri','sans-serif';"&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:11pt;COLOR:red;FONT-FAMILY:'Calibri','sans-serif';"&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;SPAN style="FONT-SIZE:11pt;COLOR:red;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlDoc.SelectSingleNode("&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:11pt;COLOR:#00b050;FONT-FAMILY:'Calibri','sans-serif';"&gt;my:myFields/my:myDataField&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:11pt;COLOR:red;FONT-FAMILY:'Calibri','sans-serif';"&gt;", namespaceManager).InnerText = K2.ActivityInstance.DataFields["Outcome"].Value.ToString();&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:11pt;COLOR:red;FONT-FAMILY:'Calibri','sans-serif';"&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;SPAN style="FONT-SIZE:11pt;COLOR:red;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K2.ProcessInstance.XmlFields["&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:11pt;COLOR:#00b050;FONT-FAMILY:'Calibri','sans-serif';"&gt;TestForm&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:11pt;COLOR:red;FONT-FAMILY:'Calibri','sans-serif';"&gt;"].Value = xmlDoc.OuterXml;&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:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&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;SPAN style="FONT-SIZE:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InfoPathTaskFinished(K2);&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:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; K2.SucceedingRule = 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:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Addendum:&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;If you are using the "Plan Just Once" option, you should note that there is only one Activity Instance created with 1 or more slots tied to it (See my &lt;A class="" title='Differences between "Plan just once" and "Plan per destination"' href="http://k2underground.com/blogs/johnny/archive/2008/07/26/differences-between-plan-just-once-and-plan-per-destination.aspx"&gt;article&lt;/A&gt; on this).&amp;nbsp; So if you want to enumerate through the list of actions, here's a code snippet to do this.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; K2.ActivityInstanceDestination.ActivityInstance.WorklistSlots.Count; i++)&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:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Action Result: " + K2.ActivityInstanceDestination.ActivityInstance.WorklistSlots[i].DataFields["Action Result"].Value.ToString());&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:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Destination User: " + K2.ActivityInstanceDestination.ActivityInstance.WorklistSlots[i].User.Name.ToString());&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:11pt;COLOR:#1f497d;FONT-FAMILY:'Calibri','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://k2underground.com/aggbug.aspx?PostID=24974" width="1" height="1"&gt;</description></item><item><title>Upgrading from SP1 installation with non-standard paths to 0803</title><link>http://k2underground.com/blogs/johnny/archive/2008/07/17/upgrading-from-sp1-installation-with-non-standard-paths-to-0803.aspx</link><pubDate>Thu, 17 Jul 2008 07:35:00 GMT</pubDate><guid isPermaLink="false">1c9bda6b-c6e6-4e79-8d32-b70ad0011ef7:24920</guid><dc:creator>johnny</dc:creator><slash:comments>0</slash:comments><comments>http://k2underground.com/blogs/johnny/comments/24920.aspx</comments><wfw:commentRss>http://k2underground.com/blogs/johnny/commentrss.aspx?PostID=24920</wfw:commentRss><wfw:comment>http://k2underground.com/blogs/johnny/rsscomments.aspx?PostID=24920</wfw:comment><description>&lt;P&gt;Tried this out with a customer over the past 2 days where we were trying to do an upgrade for a 2 node K2 server farm (K2 Host Server and Workspace together) with a SQL cluster backend.&lt;/P&gt;
&lt;P&gt;Typically if the installation is done on a standard path configuration, it should go pretty smooth.&amp;nbsp; However, the caveat here was that they installed SP1 on E: drive.&lt;/P&gt;
&lt;P&gt;This causes the following issues:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;After running the installer, the configuration manager does not start automatically.&lt;/LI&gt;
&lt;LI&gt;If you try to run the configuration manager manually, the configuration manager thinks it is a new setup and will prompt you to install everything afresh.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;To get around this, you need to do the following:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Modify the &lt;EM&gt;configuration.config &lt;/EM&gt;file in &lt;EM&gt;E:\Program Files\K2 blackpearl\Configuration&lt;/EM&gt;.&amp;nbsp; Note the following connection string inside.&amp;nbsp; You need to modify localhost to the correct database server name.&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="FONT-SIZE:8pt;COLOR:black;FONT-FAMILY:'Verdana','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA;mso-bidi-font-family:'Times New Roman';"&gt;&amp;lt;add key="connectionString" value="server=localhost;database=hostserver;integrated security=sspi;" /&amp;gt; &lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;Re-run the configuration manager manually.&lt;/LI&gt;
&lt;LI&gt;Now it will run the upgrade process instead of installing new databases.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Now there's one more issue here that you need to take note of.&amp;nbsp; Due to the path issue, the upgrader doesn't run the SQL update scripts correctly.&amp;nbsp; This means that after the configuration manager finishes, the K2 databases&amp;nbsp;are still not upgraded.&amp;nbsp; You can check the database version number from the &lt;EM&gt;K2Server &lt;/EM&gt;database in the &lt;EM&gt;_Setting &lt;/EM&gt;table. The version field should be 4.7285.1.0 (SP1).&lt;/P&gt;
&lt;P&gt;At this point&amp;nbsp;do not panic!&amp;nbsp; There is a workaround to fix this by manually running the database upgrade scripts in the SQL Management Studio.&lt;/P&gt;
&lt;P&gt;These scripts can be found in &lt;EM&gt;E:\Program Files\K2 blackpearl\Configuration\Script&lt;/EM&gt;.&amp;nbsp; However, you will need to do a bit of search and replace in some of these files before you can run them.&lt;/P&gt;
&lt;P&gt;Make a copy of the following 6 files before modifying them.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV&gt;HostServerAlter.sql - (with relevant placeholders replaced like) &lt;/DIV&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;[NETBIOSNAME]&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;[NETLDAP]&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;
&lt;DIV&gt;K2ServerAlter.sql &lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;K2ServerLogAlter.sql &lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;HostServerReconfigure.sql – (with relevant placeholders replaced like) &lt;/DIV&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;[NETBIOSNAME]&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;[NETLDAP]&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;[K2SQLUMDBSQLSERVER]&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;[K2SQLUMDBNAME]&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;
&lt;DIV&gt;K2Reconfigure.sql – (with relevant placeholders replaced like) &lt;/DIV&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;[LBHOSTSERVERNAME]&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;[HOSTSERVERPORT]&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;[ADMINUSER]&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;[USERSNAME]&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;
&lt;DIV&gt;K2LogReconfigure.sql&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Note the subitems are the tags to be replaced.&amp;nbsp; The values can be obtained from the &lt;EM&gt;HostServer &lt;/EM&gt;database in the &lt;EM&gt;Configuration &lt;/EM&gt;table.&lt;/P&gt;
&lt;P&gt;One final point here.&amp;nbsp; Before doing any upgrade, do a full backup of the servers and also the databases (shut down the K2 servers on both nodes before doing the backup).&lt;/P&gt;
&lt;P&gt;This will give you the peace of mind that you can always roll back if something doesn't go right.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;I hope this makes it easier for anybody trying to do an upgrade from SP1 to 0803 where they install in non-default paths.&lt;/P&gt;&lt;img src="http://k2underground.com/aggbug.aspx?PostID=24920" width="1" height="1"&gt;</description></item><item><title>Tip of the Day: Freeing up memory used in K2 Designer for Visual Studio</title><link>http://k2underground.com/blogs/johnny/archive/2008/05/29/tip-of-the-day-freeing-up-memory-used-in-k2-designer-for-visual-studio.aspx</link><pubDate>Thu, 29 May 2008 04:40:00 GMT</pubDate><guid isPermaLink="false">1c9bda6b-c6e6-4e79-8d32-b70ad0011ef7:24063</guid><dc:creator>johnny</dc:creator><slash:comments>0</slash:comments><comments>http://k2underground.com/blogs/johnny/comments/24063.aspx</comments><wfw:commentRss>http://k2underground.com/blogs/johnny/commentrss.aspx?PostID=24063</wfw:commentRss><wfw:comment>http://k2underground.com/blogs/johnny/rsscomments.aspx?PostID=24063</wfw:comment><description>&lt;P&gt;During the course of designing a process and running the designer for a while (I am using build 0803), you might find that your designer is taking up a lot of memory. Sometimes you would normally close and reopen the designer to start afresh.&lt;/P&gt;
&lt;P&gt;However, note that you can try this trick where you can minimize the window and your devenv.exe process memory usage should drop dramatically.&amp;nbsp; My process memory usage dropped from 200-300MB to 20MB.&lt;/P&gt;
&lt;P&gt;Hope some of you will find this useful.&amp;nbsp; Cheers!&lt;/P&gt;&lt;img src="http://k2underground.com/aggbug.aspx?PostID=24063" width="1" height="1"&gt;</description><category domain="http://k2underground.com/blogs/johnny/archive/tags/Performance/default.aspx">Performance</category></item></channel></rss>