Tuesday, November 8, 2011

Set disabled opportunity "Close as Won" button unless probability is not 100 or status is not "A"

To prevent accidental closing of opportunity I present to you method how can set disabled opportunity "Close as Won" button unless probability is not 100% or status is not "A". 

First of all you should export solution with your "Opportunity" entity customization.
Unzipp you solution and open "customizations" file with any XML editor.
Find in this file <RibbonDiffXml> tag and replace its content with the following xml: 

<RibbonDiffXml>
         <CustomActions>
          <CustomAction Id="ABC.Mscrm.HomepageGrid.opportunity.MainTab.Actions.Controls" Location="Mscrm.HomepageGrid.opportunity.MainTab.Actions.Controls._children">
            <CommandUIDefinition>
              <Button Id="Mscrm.HomepageGrid.opportunity.MarkAsWon" Command="Mscrm.HomepageGrid.opportunity.MarkAsWon" Sequence="5" Alt="$Resources:Ribbon.Form.opportunity.MainTab.Actions.MarkAsWon" LabelText="$Resources:Ribbon.Form.opportunity.MainTab.Actions.MarkAsWon" Image16by16="/_imgs/SFA/MarkAsWon_16.png" Image32by32="/_imgs/SFA/MarkAsWon_32.png" TemplateAlias="o1" ToolTipTitle="$Resources:Mscrm_HomepageGrid_opportunity_MainTab_Actions_MarkAsWon_ToolTipTitle" ToolTipDescription="$Resources:Mscrm_HomepageGrid_opportunity_MainTab_Actions_MarkAsWon_ToolTipDescription" />
            </CommandUIDefinition>
          </CustomAction>
          <CustomAction Id="ABC.Mscrm.Form.opportunity.MainTab.Actions.Controls" Location="Mscrm.Form.opportunity.MainTab.Actions.Controls._children">
            <CommandUIDefinition>
              <Button Id="Mscrm.Form.opportunity.MarkAsWon" Command="Mscrm.Form.opportunity.MarkAsWon" Sequence="3" Alt="$Resources:Ribbon.Form.opportunity.MainTab.Actions.MarkAsWon" LabelText="$Resources:Ribbon.Form.opportunity.MainTab.Actions.MarkAsWon" Image16by16="/_imgs/SFA/MarkAsWon_16.png" Image32by32="/_imgs/SFA/MarkAsWon_32.png" TemplateAlias="o1" ToolTipTitle="$Resources:Mscrm_Form_opportunity_MainTab_Actions_MarkAsWon_ToolTipTitle" ToolTipDescription="$Resources:Mscrm_Form_opportunity_MainTab_Actions_MarkAsWon_ToolTipDescription" />
            </CommandUIDefinition>
          </CustomAction>
        </CustomActions>
        <Templates>
          <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
        </Templates>
        <CommandDefinitions>
          <CommandDefinition Id="Mscrm.Form.opportunity.MarkAsWon">
            <EnableRules>
              <EnableRule Id="ABC.Mscrm.CheckImportCustomizationRule" />
            </EnableRules>
            <DisplayRules />
            <Actions />
          </CommandDefinition>
          <CommandDefinition Id="Mscrm.HomepageGrid.opportunity.MarkAsWon">
            <EnableRules>
              <EnableRule Id="ABC.Mscrm.CheckImportCustomizationRule" />
            </EnableRules>
            <DisplayRules />
            <Actions />
          </CommandDefinition>
        </CommandDefinitions>
     <RuleDefinitions>
  <TabDisplayRules />
  <DisplayRules />
    <EnableRules>
    <EnableRule Id="ABC.Mscrm.CheckImportCustomizationRule">
    <OrRule>
  <Or>
     <ValueRule
Field="closeprobability"
Value="100"
Default="0" />
</Or>
  <Or>
     <ValueRule
Field="opportunityratingcode"
Value="1"
Default="0" />
</Or>
</OrRule>
    </EnableRule>
    </EnableRules>
  </RuleDefinitions>
        <LocLabels />
 </RibbonDiffXml> 
Result:  









2 comments:

  1. This is not full solution, because user still can close Opportunity as Won from Homapage grid for example
    Also I'm not sure that this Won dialog could appear, cause you could erase standart action functionallity with this import solution

    ReplyDelete
  2. Hi.. implementing this surely disables the button when the field condition is true.. but otherwise when the form is enabled, it does NOT pop up the close opportunity window. :( has somebody figured out a way to customize this button such that we get the basic functionality as is.

    ReplyDelete