web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :

Dynamic 365 SetStateDynamicEntity

Michael Ghebremedin Profile Picture Michael Ghebremedin 107


Dynamic 365 SetStateDynamicEntity 


I was working on a plugin that has to fire when record gets deactivated or activated.
To handle this scenario I had to use SetStateDynamicEntity Message.




When it comes to the plug-in code you have to look for “EntityMoniker” as anEntityReferece on the context. Here is a snippet of code:

if(context.InputParameters.Contains("EntityMoniker") && context.InputParameters["EntityMoniker"] is EntityReference )

To retrieve the State and Status values you can use the following code

OptionSetValue state = (OptionSetValue)context.InputParameters["State"];
OptionSetValue status = (OptionSetValue)context.InputParameters["Status"];

Here is where things got interesting, if you are like me you are expecting the right value for the status “statucodefield value”, instead I started getting
Status=-1;

Which is not a valid value for the OptionSet field.
Which made me scratch my head and wonder what was happening.

I noticed few anomalies whenever I deactivate the record with “Canceled” statuscode, status return -1, whenever I deactivate the record with a different statuscode value status return the proper OptionSetValue, I noticed this behavior was not only limited to deactivation of records it was even happening when I activated the record.

After investigating the OptionSet fields I noticed that Canceled was the default value for Deactivation, and whenever status code is set to the default value
(OptionSetValue)context.InputParameters["Status"] always return -1.

I tested this scenario on multiple entities to my surprise it was a consistent outcome.


So in conclusion whenever you deactivate or activate a record if “statuscode” is set to Default Value context.InputParameters["Status"]will always return -1.


This was originally posted here.

Comments

*This post is locked for comments