Falscher UniqueName bei Custom Actions in CRM 2013

Die Anforderung scheint relativ einfach:
Eine Custom Action soll dynamisch (natürlich über Code – anders lassen sich Actions gar nicht aufrufen) aufgerufen werden. Mit dynamisch ist hier gemeint, dass der Benutzer den Namen (Displayname) der Action eingibt.

Um eine Action zu triggern muss ein OrganizationRequest mit dem Namen der Action erstellt und ausgeführt werden. Dabei muss der Name dem UniqueName der Action entsprechen.

Die folgenden Bilder zeigen wie eine Action mit dem Displayname “MSSolveTest1” und dem UniqueName “new_MSSolveTest1” angelegt wird.

action bug 1

action bug 2

Nun kann die Action wie folgt getriggert werden:

var actionRequest = new OrganizationRequest("new_MSSolveTest1");
OrganizationServiceContext.Execute(actionRequest);

Um die Applikation gemäss Anforderung umzusetzen muss nun nur der UniqueName der Action (die durch einen Record in der Workflow-Entity repräsentiert wird) über den Displaynamen geholt werden.
Und genau hier gibt es ein Problem.

Das folgende Bild zeigt einen Auszug von Attributen der eben erstellten Action.
Diese wurden über den OData Service geholt.
https://mycrm.com/XRMServices/2011/OrganizationData.svc/WorkflowSet?$filter=Name%20eq%20%27MSSolveTest1%27

action bug 3

Wie hier deutlich zu sehen ist, ist der UniqueName OHNE Solution Präfix gespeichert. Um die Action zu triggern ist jedoch der UniqueName MIT Solution Präfix nötig.

Der Microsoft Support hat bestätigt, dass es sich hierbei um einen Fehler handelt und einen Fix versprochen. Dieser wurde niedrig priorisiert und wird deshalb erst mit der “Fall Wave” (siehe CRM 2013 Roadmap) ausgeliefert.

Workaround:
Das Präfix der Solution bzw. des Publishers der Solution muss manuell geholt werden.
Action -> Solution -> Publisher -> Präfix (Achtung: Befindet sich die Action in der System Solution ist kein Präfix angegeben)

Leave a Reply

Your email address will not be published. Required fields are marked *