I tried using RibbonWorkbench for CRM 2013 in order to create a button to convert one of my entity into another (pretty much like the qualify lead button does to build an opportunity).
I created a split button, that divides itself into two sections : evolution and incident. I then created the commands behind the two sections and associated two web ressources (JScript) that i before created using the main CRM interface.
And... Well that's pretty much the only things I've did using RibbonWorkbench. But when trying to publish the solution, I'm having an error :
Your solution could not be implemented
Reasons :
1:Attribute - datafieldname of ControlStep cannot be null or empty.
I've search and can't find what the system calls Attribute nor ControlStep. I might have search wrong, but i can't seem to find any clue while searching in the Microsoft Dynamics Community or simply internet.
Can anybody guide me to understand this error ?
Edit : As asked here is the UML Code that has been directly generated by RibbonWorkbench.
<?xml version="1.0" encoding="utf-16"?>
<RibbonDiffXml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<CustomActions>
<CustomAction Id="cpncyd.cpncyd_ticket.ConvertTo.CustomAction" Location="Mscrm.Form.cpncyd_ticket.MainTab.Save.Controls._children" Sequence="55">
<CommandUIDefinition>
<SplitButton Alt="$LocLabels:cpncyd.cpncyd_ticket.ConvertTo.Alt" Command="cpncyd.cpncyd_ticket.ConvertTo" Id="cpncyd.cpncyd_ticket.ConvertTo" Image32by32="/_imgs/ribbon/ResolveCase_32.png" Image16by16="/_imgs/ribbon/ResolveCase_16.png" LabelText="$LocLabels:cpncyd.cpncyd_ticket.ConvertTo.LabelText" Sequence="55" TemplateAlias="o1" ToolTipTitle="$LocLabels:cpncyd.cpncyd_ticket.ConvertTo.ToolTipTitle" ToolTipDescription="$LocLabels:cpncyd.cpncyd_ticket.ConvertTo.ToolTipDescription">
<Menu Id="cpncyd.cpncyd_ticket.ConvertTo.Menu">
<MenuSection Id="cpncyd.cpncyd_ticket.toIncident" Title="$LocLabels:cpncyd.cpncyd_ticket.toIncident.Title" Sequence="10" DisplayMode="Menu16">
<Controls Id="cpncyd.cpncyd_ticket.ConvertToIncident.Controls" />
</MenuSection>
<MenuSection Id="cpncyd.cpncyd_ticket.toEvolution" Title="$LocLabels:cpncyd.cpncyd_ticket.toEvolution.Title" Sequence="20" DisplayMode="Menu16">
<Controls Id="cpncyd.cpncyd_ticket.Section3.Section.Controls" />
</MenuSection>
</Menu>
</SplitButton>
</CommandUIDefinition>
</CustomAction>
</CustomActions>
<Templates>
<RibbonTemplates Id="Mscrm.Templates" />
</Templates>
<CommandDefinitions>
<CommandDefinition Id="cpncyd.cpncyd_ticket.Evolution">
<EnableRules />
<DisplayRules />
<Actions>
<JavaScriptFunction FunctionName="Evolution" Library="$webresource:cpncyd_ticket.Evolution" />
</Actions>
</CommandDefinition>
<CommandDefinition Id="cpncyd.cpncyd_ticket.Incident">
<EnableRules />
<DisplayRules />
<Actions>
<JavaScriptFunction FunctionName="Incident" Library="$webresource:cpncyd_ticket.Incident" />
</Actions>
</CommandDefinition>
</CommandDefinitions>
<RuleDefinitions>
<TabDisplayRules />
<DisplayRules />
<EnableRules />
</RuleDefinitions>
<LocLabels>
<LocLabel Id="cpncyd.cpncyd_ticket.ConvertTo.LabelText">
<Titles>
<Title description="Convertir" languagecode="1036" />
<Title description="Convert Into" languagecode="1033" />
</Titles>
</LocLabel>
<LocLabel Id="cpncyd.cpncyd_ticket.ConvertTo.ToolTipTitle">
<Titles>
<Title description="Convertir en tant que" languagecode="1036" />
<Title description="Convert into" languagecode="1033" />
</Titles>
</LocLabel>
<LocLabel Id="cpncyd.cpncyd_ticket.ConvertTo.ToolTipDescription">
<Titles>
<Title description="Convertir le ticket en tant que ... " languagecode="1036" />
<Title description="Convert this ticket As Evolution, Incident or Closed Ticket." languagecode="1033" />
</Titles>
</LocLabel>
<LocLabel Id="cpncyd.cpncyd_ticket.ConvertTo.Alt">
<Titles>
<Title description="Convertir en tant que..." languagecode="1036" />
<Title description="Convert into..." languagecode="1033" />
</Titles>
</LocLabel>
<LocLabel Id="cpncyd.cpncyd_ticket.toIncident.Title">
<Titles>
<Title description="Incident" languagecode="1036" />
<Title description="Incident" languagecode="1033" />
</Titles>
</LocLabel>
<LocLabel Id="cpncyd.cpncyd_ticket.toEvolution.Title">
<Titles>
<Title description="Evolution" languagecode="1036" />
<Title description="Evolution" languagecode="1033" />
</Titles>
</LocLabel>
</LocLabels>
</RibbonDiffXml>
This isn't a message that is to do with the Ribbon Xml - it is coming from a Process I think - try creating a solution that only contains the entity that you are trying to edit and then load that into the RibbonWorkbench.
The Ribbon Workbench will export the solution you load then re-import it, so a import fails due to an error with any component then the publish will fail.