Results for tag "displayrule"

CRM 2011 – RibbonsDiffXml – Verwenden von DisplayRules (ValueRule)

Hi Leute,

heute möchte ich euch ein einfaches Beispiel liefern, wie sich (mittels CRM-Standard) div. Ribbon-Buttons an Hand div. Regeln ein bzw. ausblenden lassen.
Dafür ist es, wie (fast) immer bei Änderungen an Ribbon-Buttons notwendig, dass Ihr zunächst das Menüband in eure Lösung aufnehmt und die Lösung downloaded und extrahiert. Wie das genau geht, habe ich schon mehrfach beschrieben, u.a. hier.

Dieses Beispiel geht davon aus, dass Ihr bereits einen eigenen Ribbon-Button hinzugefügt habt. Wie das geht, beschreibe ich ebenfalls hier.

Öffnet nun die „Customizations.xml“ und sucht die Entität die Ihr verändern wollt und öffnet dort die Node „RibbonDiffXml“. Euer Custom-Ribbon-Button hat das Attribute „Command“, wo auf eine „CommandDefinition“ verwiesen wird. Sucht dieses Element. Es sollte in etwa wie folgt aussehen:

[sourcecode language=“xml“]
<CommandDefinition Id="Sample.SubGrid.xyz_auftrag.Button1">
<EnableRules />
<DisplayRules />
<Actions>
<JavaScriptFunction Library="$webresource:xyz_cs_auftrag" FunctionName="Storno"></JavaScriptFunction>
</Actions>
</CommandDefinition>
[/sourcecode]

Fügt nun den DisplayRules eine Regel hinzu, das geht wie folgt:

[sourcecode language=“xml“]
<DisplayRules>
<DisplayRule Id="ShowStorno" />
</DisplayRules>
[/sourcecode]

Etwas weiter unten im RibbonDiffXml müssen wir die Rule, auf die wir eben verwiesen haben („ShowStorno“) auch noch definieren. Sucht dafür den Node „RuleDefinitions“ und fügt eine DisplayRule hinzu. Das könnte nun wie folgt aussehen:

[sourcecode language=“xml“]
<RuleDefinitions>
<DisplayRules>
<DisplayRule Id="ShowStorno">
[ …. ]
</DisplayRule>
</DisplayRules>
<EnableRules />
</RuleDefinitions>
[/sourcecode]

Eine DisplayRule kann nun mehrere Arten von Conditions hinterlegt bekommen. Lt. SDK sind das die folgenden:

[sourcecode language=“xml“]
<CrmClientTypeRule />
<CrmOfflineAccessStateRule />
<CrmOutlookClientTypeRule />
<CrmOutlookClientVersionRule />
<EntityPrivilegeRule />
<EntityPropertyRule />
<EntityRule />
<FormEntityContextRule />
<FormStateRule />
<MiscellaneousPrivilegeRule />
<OrganizationSettingRule />
<OrRule />
<OutlookRenderTypeRule />
<OutlookVersionRule />
<PageRule />
<ReferencingAttributeRequiredRule />
<RelationshipTypeRule />
<SkuRule />
<ValueRule />
[/sourcecode]

Ich denke die meisten von uns werden die Notwendigkeit haben, an Hand eines bestimmten Attributs im Formular, einen Button ein oder ausblenden zu müssen. Deswegen gehe ich in diesem Beispiel nur auf die ValueRule ein.

Diese wiederum gestaltet sich in der Regel sehr einfach:

[sourcecode language=“xml“]
<ValueRule Field="xyz_type" Value="908940000"></ValueRule>
[/sourcecode]

Solltet Ihr an anderen Rules interessiert sein, postet einfach einen Kommentar und ich helfe euch weiter. Oder seht selbst in der SDK nach.

Verpackt nun wieder sämtliche Dateien in ein ZIP-Archiv und importiert dieses in eure CRM-Instanz.

Cheers,
Christian