Ribbon: Show/Hide Opportunity Ribbon Button CRM 2011

Microsoft Dynamics CRM is a Customer Relationship Management software package developed by Microsoft
Post Reply
User avatar
gellee
Posts: 46
Joined: Fri Jan 20, 2012 3:04 pm

Ribbon: Show/Hide Opportunity Ribbon Button CRM 2011

Post by gellee »

>>>If the User Role is equal to System Administrator, the Opportunity Ribbon Buttons(Mark as Lost and Mark as Won) are visible, otherwise these buttons are hidden


1. Create a new solution OR use default solution
>>Settings > Customization > Solutions > New >
2. Open NewSolution >
3. Add the Opportunity Entity
4. Export the solution then extract
5. Open the customization.xml and find <RibbonDiffXml> of Opportunity Entity
6. Replace the <RibbonDiffXml> with the code below. What we have done here is that, we added a display rule and use this rule in Mark as Lost and Mark as Won ribbon button. The rule we added is this:

<DisplayRule Id="myApp.DisplayRule">
<EntityPrivilegeRule EntityName="systemuser" PrivilegeType="Create" PrivilegeDepth="Global" />
</DisplayRule>

>>>The user who has a create privilege on systemuser entity is the only user who could access and see these two buttons.

Code: Select all

<RibbonDiffXml>

        <CustomActions>
          <CustomAction Id="Mscrm.Form.opportunity.MarkAsLost.CustomAction" Sequence="201" Location="Mscrm.Form.opportunity.MainTab.Actions.Controls._children">
            <CommandUIDefinition>
              <Button Id="Mscrm.Form.opportunity.MarkAsLost" Command="Mscrm.Form.opportunity.MarkAsLost" Sequence="4" Alt="$Resources:Ribbon.Form.opportunity.MainTab.Actions.MarkAsLost" LabelText="$Resources:Ribbon.Form.opportunity.MainTab.Actions.MarkAsLost" Image16by16="/_imgs/SFA/MarkAsLost_16.png" Image32by32="/_imgs/SFA/MarkAsLost_32.png" TemplateAlias="o1" ToolTipTitle="$Resources:Mscrm_Form_opportunity_MainTab_Actions_MarkAsLost_ToolTipTitle" ToolTipDescription="$Resources:Mscrm_Form_opportunity_MainTab_Actions_MarkAsLost_ToolTipDescription" />
            </CommandUIDefinition>
          </CustomAction>

          <CustomAction Id="Mscrm.Form.opportunity.MarkAsWon.CustomAction" Sequence="201" 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>
          <CustomAction Id="Mscrm.HomepageGrid.opportunity.MarkAsLost.CustomAction" Sequence="200" Location="Mscrm.Form.opportunity.MainTab.Actions.Controls._children">
            <CommandUIDefinition>
              <Button Id="Mscrm.HomepageGrid.opportunity.MarkAsLost" Command="Mscrm.HomepageGrid.opportunity.MarkAsLost" Sequence="6" Alt="$Resources:Ribbon.Form.opportunity.MainTab.Actions.MarkAsLost" LabelText="$Resources:Ribbon.Form.opportunity.MainTab.Actions.MarkAsLost" Image16by16="/_imgs/SFA/MarkAsLost_16.png" Image32by32="/_imgs/SFA/MarkAsLost_32.png" TemplateAlias="o1" ToolTipTitle="$Resources:Mscrm_HomepageGrid_opportunity_MainTab_Actions_MarkAsLost_ToolTipTitle" ToolTipDescription="$Resources:Mscrm_HomepageGrid_opportunity_MainTab_Actions_MarkAsLost_ToolTipDescription" />
            </CommandUIDefinition>
          </CustomAction>
          <CustomAction Id="Mscrm.HomepageGrid.opportunity.MarkAsWon.CustomAction" Sequence="200" Location="Mscrm.Form.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>
        </CustomActions>

        <Templates>
          <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
        </Templates>

        <CommandDefinitions>

          <CommandDefinition Id="Mscrm.Form.opportunity.MarkAsLost">
            <EnableRules>
              <EnableRule Id="Mscrm.CanWritePrimary" />
            </EnableRules>
            <DisplayRules>
              <DisplayRule Id="Mscrm.CanWriteOpportunity" />
              <DisplayRule Id="myApp.DisplayRule" />
            </DisplayRules>
            <Actions>
              <JavaScriptFunction FunctionName="complete" Library="/_static/sfa/opps/opps.js">
                <BoolParameter Value="false" />
              </JavaScriptFunction>
            </Actions>
          </CommandDefinition>

          <CommandDefinition Id="Mscrm.Form.opportunity.MarkAsWon">
            <EnableRules>
              <EnableRule Id="Mscrm.CanWritePrimary" />
            </EnableRules>
            <DisplayRules>
              <DisplayRule Id="Mscrm.CanWriteOpportunity" />
              <DisplayRule Id="myApp.DisplayRule" />
            </DisplayRules>
            <Actions>
              <JavaScriptFunction FunctionName="complete" Library="/_static/sfa/opps/opps.js">
                <BoolParameter Value="true" />
              </JavaScriptFunction>
            </Actions>
          </CommandDefinition>

          <CommandDefinition Id="Mscrm.HomepageGrid.opportunity.MarkAsLost">
            <EnableRules>
              <EnableRule Id="Mscrm.SelectionCountExactlyOne" />
              <EnableRule Id="Mscrm.VisualizationPaneNotMaximized" />
            </EnableRules>
            <DisplayRules>
              <DisplayRule Id="Mscrm.CanWriteOpportunity" />
              <DisplayRule Id="myApp.DisplayRule" />
            </DisplayRules>
            <Actions>
              <JavaScriptFunction FunctionName="Mscrm.OpportunityActions.close" Library="/_static/_common/scripts/ribbonactions.js">
                <CrmParameter Value="SelectedControlSelectedItemReferences" />
                <BoolParameter Value="false" />
                <CrmParameter Value="SelectedControl" />
              </JavaScriptFunction>
            </Actions>
          </CommandDefinition>

          <CommandDefinition Id="Mscrm.HomepageGrid.opportunity.MarkAsWon">
            <EnableRules>
              <EnableRule Id="Mscrm.SelectionCountExactlyOne" />
              <EnableRule Id="Mscrm.VisualizationPaneNotMaximized" />
            </EnableRules>
            <DisplayRules>
              <DisplayRule Id="Mscrm.CanWriteOpportunity" />
              <DisplayRule Id="myApp.DisplayRule" />
            </DisplayRules>
            <Actions>
              <JavaScriptFunction FunctionName="Mscrm.OpportunityActions.close" Library="/_static/_common/scripts/ribbonactions.js">
                <CrmParameter Value="SelectedControlSelectedItemReferences" />
                <BoolParameter Value="true" />
                <CrmParameter Value="SelectedControl" />
              </JavaScriptFunction>
            </Actions>
          </CommandDefinition>

        </CommandDefinitions>

        <RuleDefinitions>

          <TabDisplayRules />

          <DisplayRules>
            <DisplayRule Id="myApp.DisplayRule">
              <EntityPrivilegeRule EntityName="systemuser" PrivilegeType="Create" PrivilegeDepth="Global" />
            </DisplayRule>
          </DisplayRules>

          <EnableRules />

        </RuleDefinitions>

        <LocLabels />
      </RibbonDiffXml>

7. Save and import the solution into your organization.
xaeresis
Posts: 196117
Joined: Wed Oct 04, 2023 2:39 pm

Re: Ribbon: Show/Hide Opportunity Ribbon Button CRM 2011

Post by xaeresis »

audiobookkeepercottageneteyesvisioneyesvisionsfactoringfeefilmzonesgadwallgaffertapegageboardgagrulegallductgalvanometricgangforemangangwayplatformgarbagechutegardeningleavegascauterygashbucketgasreturngatedsweepgaugemodelgaussianfiltergearpitchdiameter
geartreatinggeneralizedanalysisgeneralprovisionsgeophysicalprobegeriatricnursegetintoaflapgetthebouncehabeascorpushabituatehackedbolthackworkerhadronicannihilationhaemagglutininhailsquallhairyspherehalforderfringehalfsiblingshallofresidencehaltstatehandcodinghandportedheadhandradarhandsfreetelephone
hangonparthaphazardwindinghardalloyteethhardasironhardenedconcreteharmonicinteractionhartlaubgoosehatchholddownhaveafinetimehazardousatmosphereheadregulatorheartofgoldheatageingresistanceheatinggasheavydutymetalcuttingjacketedwalljapanesecedarjibtypecranejobabandonmentjobstressjogformationjointcapsulejointsealingmaterial
journallubricatorjuicecatcherjunctionofchannelsjusticiablehomicidejuxtapositiontwinkaposidiseasekeepagoodoffingkeepsmthinhandkentishglorykerbweightkerrrotationkeymanassurancekeyserumkickplatekillthefattedcalfkilowattsecondkingweakfishkinozoneskleinbottlekneejointknifesethouseknockonatomknowledgestate
kondoferromagnetlabeledgraphlaborracketlabourearningslabourleasinglaburnumtreelacingcourselacrimalpointlactogenicfactorlacunarycoefficientladletreatedironlaggingloadlaissezallerlambdatransitionlaminatedmateriallammasshootlamphouselancecorporallancingdielandingdoorlandmarksensorlandreformlanduseratio
languagelaboratorylargeheartlasercalibrationlaserlenslaserpulselatereventlatrinesergeantlayaboutleadcoatingleadingfirmlearningcurveleavewordmachinesensiblemagneticequatormagnetotelluricfieldmailinghousemajorconcernmammasdarlingmanagerialstaffmanipulatinghandmanualchokemedinfobooksmp3lists
nameresolutionnaphtheneseriesnarrowmouthednationalcensusnaturalfunctornavelseedneatplasternecroticcariesnegativefibrationneighbouringrightsobjectmoduleobservationballoonobstructivepatentoceanminingoctupolephononofflinesystemoffsetholderolibanumresinoidonesticketpackedspherespagingterminalpalatinebonespalmberry
papercoatingparaconvexgroupparasolmonoplaneparkingbrakepartfamilypartialmajorantquadruplewormqualityboosterquasimoneyquenchedsparkquodrecuperetrabbetledgeradialchaserradiationestimatorrailwaybridgerandomcolorationrapidgrowthrattlesnakemasterreachthroughregionreadingmagnifierrearchainrecessionconerecordedassignment
rectifiersubstationredemptionvaluereducingflangereferenceantigenregeneratedproteinreinvestmentplansafedrillingsagprofilesalestypeleasesamplingintervalsatellitehydrologyscarcecommodityscrapermatscrewingunitseawaterpumpsecondaryblocksecularclergyseismicefficiencyselectivediffusersemiasphalticfluxsemifinishmachiningspicetradespysale
stunguntacticaldiametertailstockcentertamecurvetapecorrectiontappingchucktaskreasoningtechnicalgradetelangiectaticlipomatelescopicdampertemperateclimatetemperedmeasuretenementbuildingtuchkasultramaficrockultraviolettesting
xaeresis
Posts: 196117
Joined: Wed Oct 04, 2023 2:39 pm

Re: Ribbon: Show/Hide Opportunity Ribbon Button CRM 2011

Post by xaeresis »

Post Reply