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

<channel>
	<title>Mitch Milam's Microsoft Discussions</title>
	<atom:link href="http://blogs.infinite-x.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.infinite-x.net</link>
	<description>Knowledge found and lost while working with Microsoft CRM</description>
	<pubDate>Sun, 29 Jun 2008 17:37:38 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
		
	<!-- MMM Modification -->
	

	
	<!-- MMM Modification -->
	

	
	<!-- MMM Modification -->
	

	<item>
		<title>Going to the Worldwide Partner Conference?</title>
		<link>http://blogs.infinite-x.net/2008/06/18/going-to-the-worldwide-partner-conference/</link>
		<comments>http://blogs.infinite-x.net/2008/06/18/going-to-the-worldwide-partner-conference/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 18:36:29 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
		
		<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://blogs.infinite-x.net/2008/06/18/going-to-the-worldwide-partner-conference/</guid>
		<description><![CDATA[If you&#039;re going to the WWPC in Houston next month, drop me a note.&#160; mitch at infinite-x dot net.
I&#039;ll be there all week so maybe we can meet up in the CRM Community Lounge.
Hopefully, my schedule will not be nearly as hectic as it was at Convergence.
]]></description>
			<content:encoded><![CDATA[<p>If you&#039;re going to the WWPC in Houston next month, drop me a note.&nbsp; mitch at infinite-x dot net.</p>
<p>I&#039;ll be there all week so maybe we can meet up in the CRM Community Lounge.</p>
<p>Hopefully, my schedule will not be nearly as hectic as it was at Convergence.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.infinite-x.net/2008/06/18/going-to-the-worldwide-partner-conference/feed/</wfw:commentRss>
		</item>

	<!-- MMM Modification -->
	

	
	<!-- MMM Modification -->
	

	
	<!-- MMM Modification -->
	

	
	<!-- MMM Modification -->
	

	<item>
		<title>Enhancing CRM 4: Workflows vs. Plugins</title>
		<link>http://blogs.infinite-x.net/2008/06/04/enhancing-crm-4-workflows-vs-plugins/</link>
		<comments>http://blogs.infinite-x.net/2008/06/04/enhancing-crm-4-workflows-vs-plugins/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 18:39:04 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
		
		<category><![CDATA[CRM 4.0]]></category>

		<category><![CDATA[Customization]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[Dynamics CRM]]></category>

		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://blogs.infinite-x.net/2008/06/04/enhancing-crm-4-workflows-vs-plugins/</guid>
		<description><![CDATA[Back in the dark ages, like with CRM 3.0, we were often faced with writing .NET code to provide certain enhanced data manipulation capabilities as either Callouts or Workflow Assemblies.&#160; CRM 4.0 totally changes that mind set - and as a solution developer, you really need to keep that in mind before you jump off [...]]]></description>
			<content:encoded><![CDATA[<p>Back in the dark ages, like with CRM 3.0, we were often faced with writing .NET code to provide certain enhanced data manipulation capabilities as either Callouts or Workflow Assemblies.&nbsp; CRM 4.0 totally changes that mind set - and as a solution developer, you really need to keep that in mind before you jump off into the depths of Visual Studio and the CRM SDK.</p>
<h5>An Example</h5>
<p>To illustrate my point, let&#039;s take the PostInvoicePlugin example from the CRM SDK ( v4.0.5 ).</p>
<blockquote><p>Note: this example is found in the SDK folder: \sdk\server\fullsample\pluginpostinvoice</p>
</blockquote>
<p>The purpose of this sample code is to show you how to update a custom field on the Account record whenever a user closes out an Invoice as Paid.&nbsp; The plugin checks the state of the Invoice, and if Paid, it will update the value of a custom field on Account, using the following code:</p>
<pre class="code"><span style="color: green">// If the Total Invoiced exists, update it&#8230; otherwise set it
</span><span style="color: blue">if </span>(parentAccount.Properties.Contains(<span style="color: #a31515">&#034;new_totalinvoiced&#034;</span>))
{
    ((<span style="color: #2b91af">CrmMoney</span>)parentAccount.Properties[<span style="color: #a31515">&#034;new_totalinvoiced&#034;</span>]).Value += totalAmount;
}
<span style="color: blue">else
</span>{
    parentAccount.Properties.Add(<span style="color: blue">new </span><span style="color: #2b91af">CrmMoneyProperty</span>(<span style="color: #a31515">&#034;new_totalinvoiced&#034;</span>,</pre>
<pre class="code">                                 <span style="color: blue">new </span><span style="color: #2b91af">CrmMoney</span>(totalAmount)));
}
</pre>
<p>Pretty cool, huh?</p>
<p>&nbsp;</p>
<h5>An Alternative</h5>
<p>If you haven&#039;t spent much time reviewing CRM 4.0 workflows, you should.&nbsp; You can perform some amazing things without ever writing code.&nbsp; Let&#039;s perform the exact same steps using CRM 4.0 workflow.</p>
<p>First, we create a workflow based on the Invoice Entity that has the following properties:</p>
<p><a href="http://blogs.infinite-x.net/images/EnhancingCRM4Workflowsvs.Plugins_AA07/image.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="427" alt="image" src="http://blogs.infinite-x.net/images/EnhancingCRM4Workflowsvs.Plugins_AA07/image_thumb.png" width="644" border="0"></a></p>
<p><strong>Step 1:</strong></p>
<p>Create a Check Condition using the following information:</p>
<p><a href="http://blogs.infinite-x.net/images/EnhancingCRM4Workflowsvs.Plugins_AA07/image_3.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="48" alt="image" src="http://blogs.infinite-x.net/images/EnhancingCRM4Workflowsvs.Plugins_AA07/image_thumb_3.png" width="454" border="0"></a></p>
<p><strong>Step 2:</strong></p>
<p>Add and Update Record step, on the Related Entity Customer (Account):</p>
<p><a href="http://blogs.infinite-x.net/images/EnhancingCRM4Workflowsvs.Plugins_AA07/image_4.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="230" alt="image" src="http://blogs.infinite-x.net/images/EnhancingCRM4Workflowsvs.Plugins_AA07/image_thumb_4.png" width="354" border="0"></a> </p>
<p><strong>Step 3:</strong></p>
<p>Click the Set Properties button, then set the Total Invoiced Attribute to the following:</p>
<p><a href="http://blogs.infinite-x.net/images/EnhancingCRM4Workflowsvs.Plugins_AA07/image_5.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="298" alt="image" src="http://blogs.infinite-x.net/images/EnhancingCRM4Workflowsvs.Plugins_AA07/image_thumb_5.png" width="454" border="0"></a>&nbsp; </p>
<blockquote>
<p>Note: Total Invoiced is a custom Money Field.</p>
</blockquote>
<p>By using the Increment by Operator, we are able to increment any existing Total Invoiced amount by the amount found in the Invoice&#039;s Total Amount field.</p>
<p><strong>Final Step:</strong></p>
<p>Save and Publish this workflow.</p>
<h5>Conclusion:</h5>
<p>So, is there a difference between these techniques?&nbsp; Not really.&nbsp; Both accomplish the job in a very similar manner but the Workflow solution requires zero code maintenance and a normal user or administrator can create the workflow.</p>
<p>The biggest difference between the two techniques is in the timing of the actual update. Plugins can be executed either Synchronously or Asynchronously.&nbsp;&nbsp; Workflows function in an asynchronous manner.</p>
<p>The Synchronous operation will modify the data stream as it is being saved to the database, which can introduce a delay in the user&#039;s experience, but will provide results back to the user in a quicker fashion.</p>
<p>Asynchronous operations will happen shortly after the data has been saved which will not impact the user, but which may result in a slight delay between the time the user saved the record and when the value will be updated.</p>
<p>If you can live with the time delay, I feel that workflow is the way to go, in most cases.&nbsp; If you can&#039;t, then download the SDK and start working through their examples.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.infinite-x.net/2008/06/04/enhancing-crm-4-workflows-vs-plugins/feed/</wfw:commentRss>
		</item>

	<!-- MMM Modification -->
	

	
	<!-- MMM Modification -->
	

	<item>
		<title>CRM 4 Currency Calculations</title>
		<link>http://blogs.infinite-x.net/2008/06/01/crm-4-currency-calculations/</link>
		<comments>http://blogs.infinite-x.net/2008/06/01/crm-4-currency-calculations/#comments</comments>
		<pubDate>Sun, 01 Jun 2008 17:21:36 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
		
		<category><![CDATA[CRM 4.0]]></category>

		<category><![CDATA[Customization]]></category>

		<category><![CDATA[Dynamics CRM]]></category>

		<guid isPermaLink="false">http://blogs.infinite-x.net/2008/06/01/crm-4-currency-calculations/</guid>
		<description><![CDATA[One of my current projects involves a heavily customized Opportunity form and I was running into the following error messages whenever I attempted to set the value of a custom Attribute which was of a Money type:
A currency is required if a value exists in a money field. Select a currency and try again.

The solution, [...]]]></description>
			<content:encoded><![CDATA[<p>One of my current projects involves a heavily customized Opportunity form and I was running into the following error messages whenever I attempted to set the value of a custom Attribute which was of a Money type:</p>
<blockquote><p>A currency is required if a value exists in a money field. Select a currency and try again.</p>
</blockquote>
<p>The solution, believe it or not, is stated right there in the error message: </p>
<blockquote><p>You must select a Currency before you can populate <u>any</u> Money field.</p>
</blockquote>
<p>I thought this was a rather odd behavior, until I realized the root cause of issue.</p>
<p>I was testing out my calculation, which involved three form fields, within the Form Preview ( Create, to be exact ).&nbsp; It turns out that the Currency is not automatically populated during the Preview, so my attempt to set a Money field was failing.</p>
<p>Once published, and operated normally, the Currency field is populated with the default currency as specified for/by the user.</p>
<p>Just to be safe, I added the transactioncurrencyid Attribute to the list of Attributes that must be completed before the calculation will be performed.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.infinite-x.net/2008/06/01/crm-4-currency-calculations/feed/</wfw:commentRss>
		</item>

	<!-- MMM Modification -->
	

	
	<!-- MMM Modification -->
	

	<item>
		<title>Applying Visualization to Software Development</title>
		<link>http://blogs.infinite-x.net/2008/05/30/applying-visualization-to-software-development/</link>
		<comments>http://blogs.infinite-x.net/2008/05/30/applying-visualization-to-software-development/#comments</comments>
		<pubDate>Fri, 30 May 2008 16:42:36 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://blogs.infinite-x.net/2008/05/30/applying-visualization-to-software-development/</guid>
		<description><![CDATA[Over the past several years, I have read and seen multiple references to a practice called Visualization, which is when a person rehearses a physical action by performing the task mentally.
Examples that come to mind are the NASA astronaut training program, Olympic athletes, and the Navy&#039;s Blue Angels.&#160; 
Note: You can perform an Internet search [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past several years, I have read and seen multiple references to a practice called Visualization, which is when a person rehearses a physical action by performing the task mentally.</p>
<p>Examples that come to mind are the NASA astronaut training program, Olympic athletes, and the Navy&#039;s Blue Angels.&nbsp; </p>
<blockquote><p><em>Note: You can perform an Internet search on Visualization and any of the above topics and find a host of articles for further reading.</em></p>
</blockquote>
<p>Earlier this week, I was shocked ( and a bit astounded ) to find that I actually use Visualization techniques myself in the course of my software development.</p>
<p>I was shocked not because I was doing it, but because I have always done it and didn&#039;t know it had a name and that other people were using similar techniques to mentally rehearse physical actions.&nbsp; Pretty weird, I thought.</p>
<p>I am mentioning it here because I am curious if other solution developers have a similar practice.</p>
<h5>How I use Visualization</h5>
<p>When presented with a problem in need of a solution, I like to let the problem bounce around inside my head for a while as I examine the issue from all sides. This allows me to present arguments ( to myself ) and accept and/or counter those arguments until I have what I feel is a viable solution.&nbsp; If working on a multi-member project team, I then present the solution for further refinement.&nbsp; If working on a project by myself, I usually create a prototype to see if my solution is viable.</p>
<p>Most of this work is done without ever touching a keyboard.&nbsp; While it may not appear that I am &#034;working,&#034; I am also not creating anything that must be discarded, which I think saves time overall.&nbsp; Sometimes this process happens quickly, sometimes it may take days - depending on urgency and the type of problem I&#039;m working on.</p>
<h5>So Does Visualization Make a Difference?</h5>
<p>Well, I have no quantifiable data to present, but I think that it does make a difference in my work.</p>
<p>I think the biggest contribution of Visualization is the ability to &#034;think through&#034; the user experience (UX). By creating &#034;pictures&#034; of the user interface in my mind, I can quickly discover unforeseen paths that can either enhance or detract from the user&#039;s overall experience.</p>
<p>After thinking about the UX for a while, I will sometimes even go so far as to walk through the solution&#039;s critical path and design data structures, program flow, and other features that make up the solution.</p>
<p>This can be as simple as a CRM form design or as complicated as a .NET Windows Forms application.</p>
<p>And, I can&#039;t tell you how many times this &#034;walk though&#034; has arrived at a solution that not only more useful than the overall requirements or specification stated, but many times it produces features that I did not anticipate when I initially drew up the specs.</p>
<p>Finally, it also helps you decided what <em>really</em> needs to be presented to a user.&nbsp; I think a lot of developers ( myself included ) have a tendency to provide too much information or too many options to the user.&nbsp; The Visualization of the UX allows you to ask the question, &#034;Does the user <em>really</em> need that, there?&#034;</p>
<h5>Final Thoughts</h5>
<p>I am a firm believer in simplicity in design, which is properly represented by one of my favorite quotes:</p>
<blockquote><p><em>When I am working on a problem, I never think about beauty but when I have finished, if the solution is not beautiful, I know it is wrong.</em><br /><a href="http://en.wikipedia.org/wiki/R._Buckminster_Fuller" target="_blank">R. Buckminster Fuller</a></p>
</blockquote>
<p>I can&#039;t tell you the number of times that I have looked at something, either from a UX perspective or at the actual code itself, and just knew it was <em>wrong</em>. </p>
<p>Complicated designs tend not to be beautiful, or elegant, and are therefore prone to failure in either design or execution.&nbsp; I think that Visualization helps me to design elegant solutions to everyday problems that I and my customers face.</p>
<p>&nbsp;</p>
<p>I&#039;d love to hear from you regarding this topic.&nbsp; If you use similar techniques or have other thoughts, just leave a comment on this article ( or drop me an email ).</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.infinite-x.net/2008/05/30/applying-visualization-to-software-development/feed/</wfw:commentRss>
		</item>

	<!-- MMM Modification -->
	

	
	<!-- MMM Modification -->
	

	<item>
		<title>Working with CRM Bit Fields</title>
		<link>http://blogs.infinite-x.net/2008/05/22/working-with-crm-bit-fields/</link>
		<comments>http://blogs.infinite-x.net/2008/05/22/working-with-crm-bit-fields/#comments</comments>
		<pubDate>Thu, 22 May 2008 18:34:37 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
		
		<category><![CDATA[Customization]]></category>

		<category><![CDATA[Dynamics CRM]]></category>

		<guid isPermaLink="false">http://blogs.infinite-x.net/2008/05/22/working-with-crm-bit-fields/</guid>
		<description><![CDATA[Quite some time ago, I wrote a short article on using the Bit attribute type within CRM.
Today, I thought I&#039;d like to take some time to review some tips that may not be totally obvious when you first start working with Bit attributes.
The method that you will use to interact with the Bit attribute will [...]]]></description>
			<content:encoded><![CDATA[<p>Quite some time ago, I wrote a short <a href="http://blogs.infinite-x.net/2006/03/04/using-the-dyna…attribute-typeusing-the-dynamics-crm-30-bit-attribute-type/" target="_blank">article</a> on using the Bit attribute type within CRM.</p>
<p>Today, I thought I&#039;d like to take some time to review some tips that may not be totally obvious when you first start working with Bit attributes.</p>
<p>The method that you will use to interact with the Bit attribute will depend on how the attribute is displayed.  <em>And</em>, if you should change the format of the Bit Attribute, if could affect the way your code functions.</p>
<h3>Checkbox or Radio Button Formats</h3>
<p>If the Bit attribute is displayed as either a Checkbox or a Radio Button, you reference the Attribute&#039;s value as a boolean field</p>
<h5>Check for True or False:</h5>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #0000ff;">if</span> (crmForm.all.new_mybitfield.DataValue)</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">{</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    <span style="color: #008000;">// DataValue is true, do something interesting</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">}</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #0000ff;">else</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">{</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    <span style="color: #008000;">// DataValue is false, do something interesting</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">}</pre>
</div>
</div>
<h5>Setting the Value:</h5>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">crmForm.all.new_mybitfield.DataValue = <span style="color: #0000ff;">true</span>;</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #008000;">// or</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">crmForm.all.new_mybitfield.DataValue = <span style="color: #0000ff;">false</span>;</pre>
</div>
</div>
<h3>List Format</h3>
<p>The List format is actually converted into a Picklist with values of No and Yes.  Since it is a Picklist, we can&#039;t use the above code.  With this being the case, access and manipulation of the data is totally different.  Instead of a boolean value, the List format of a Bit Attribute uses an integer instead:</p>
<blockquote><p><span style="color: #202123; background-color: #ffffff;">NO = 0</span></p>
<p><span style="color: #202123; background-color: #ffffff;">YES = 1</span></p></blockquote>
<h5>Check for True or False:</h5>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #0000ff;">if</span> (crmForm.all.new_mybitfield.DataValue == 0)</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">{</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    <span style="color: #008000;">// The answer is NO</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">}</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #0000ff;">else</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">{</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    <span style="color: #008000;">// The answer is YES.</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">}</pre>
</div>
</div>
<h5>Setting the Value:</h5>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">crmForm.all.new_mybitfield.DataValue = 0; <span style="color: #008000;">// No</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #008000;">// or</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">crmForm.all.new_mybitfield.DataValue = 1; // Yes</pre>
</div>
</div>
<p> </p>
<p>Attempting to assign a true or false value to a List-formatted Bit Attribute will result in an error dialog box being displayed.</p>
<p>Well, that about covers it. If anyone has any further suggestions, please add a comment to the post.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.infinite-x.net/2008/05/22/working-with-crm-bit-fields/feed/</wfw:commentRss>
		</item>

	<!-- MMM Modification -->
	

	
	<!-- MMM Modification -->
	

	<item>
		<title>CRM 4.0 Workflow: Adding a timestamp to a field</title>
		<link>http://blogs.infinite-x.net/2008/05/22/crm-40-workflow-adding-a-timestamp-to-a-field/</link>
		<comments>http://blogs.infinite-x.net/2008/05/22/crm-40-workflow-adding-a-timestamp-to-a-field/#comments</comments>
		<pubDate>Thu, 22 May 2008 17:51:02 +0000</pubDate>
		<dc:creator>mitch</dc:creator>
		
		<category><![CDATA[Dynamics CRM]]></category>

		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://blogs.infinite-x.net/2008/05/22/crm-40-workflow-adding-a-timestamp-to-a-field/</guid>
		<description><![CDATA[One of my current projects required that we have, more or less, an audit log for completion of tasks.&#160; This can be easily accomplished using a CRM 4.0 workflow, using the following variables:

When the workflow is run, it will produce the following results: 
&#160;
In this particular case, we are actually creating a task, then setting [...]]]></description>
			<content:encoded><![CDATA[<p>One of my current projects required that we have, more or less, an audit log for completion of tasks.&nbsp; This can be easily accomplished using a CRM 4.0 workflow, using the following variables:</p>
<p><a href="http://blogs.infinite-x.net/images/CRM4.0WorkflowAddingatimestamptoafield_869E/image.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="56" alt="image" src="http://blogs.infinite-x.net/images/CRM4.0WorkflowAddingatimestamptoafield_869E/image_thumb.png" width="504" border="0"></a></p>
<p>When the workflow is run, it will produce the following results: </p>
<p><a href="http://blogs.infinite-x.net/images/CRM4.0WorkflowAddingatimestamptoafield_869E/image_3.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="71" alt="image" src="http://blogs.infinite-x.net/images/CRM4.0WorkflowAddingatimestamptoafield_869E/image_thumb_3.png" width="504" border="0"></a>&nbsp;</p>
<p>In this particular case, we are actually creating a task, then setting the Task Status to Completed so that it gets placed in the history for the record.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.infinite-x.net/2008/05/22/crm-40-workflow-adding-a-timestamp-to-a-field/feed/</wfw:commentRss>
		</item>

	<!-- MMM Modification -->
	

	</channel>
</rss>
