Tag Archives: CRM 2013 Bug

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)

0x80040216 – Expected to find one SdkMessageFilter for SdkMessageId {GUID} PrimaryEntity 10015 and SecondaryEntity 0. Found 0 records.

Wenn du probierst eine CRM Solution mit einer Custom Action, auf der wiederum ein Plugin Step (SdkMessageProcessingStep) registriert ist, im CRM Online zu importieren erhältst du den folgenden Fehler.

“0x80040216 – Expected to find one SdkMessageFilter for SdkMessageId {GUID} PrimaryEntity 10015 and SecondaryEntity 0. Found 0 records.”

Dabei handelt es sich um einen Fehler im CRM Online.
Der Microsoft Support hat den Fehler bestätigt. Er soll mit einem der nächsten URs behoben werden.

Workaround: Die Solution mit der Action ohne registrierten Step importieren und den Step auf dem Zielsystem mit dem Plugin Registration Tool manuell registrieren.