Quantcast
Channel: CRM Development forum
Viewing all articles
Browse latest Browse all 8223

returning target ID on crm 4 custom activity

$
0
0

I just want a simple custom workflow activity to return the accounted (guid value) so I can pass it to another activity like an email. this is the code that I am using . it is pretty simple but is not working

I need to run it "ON DEMAND", so, I would expect it would get at least the accountId of my selected record

the activity is appearing on the workflow wizard but when I use it, my workflow fails.

am I doing something wrong?

[CrmWorkflowActivity("Return accountid")]
    public partial class RetrieveContactIDActivity : Activity
    {

        public static DependencyProperty ResponseProperty = DependencyProperty.Register("Response", typeof(string), typeof(RetrieveContactIDActivity));
        [CrmOutput("ResponseId")]
        [CrmReferenceTarget("account")]
        public string Response
        {
            get
            {
                return (string)base.GetValue(ResponseProperty);
            }
            set
            {
                base.SetValue(ResponseProperty, value);
            }
        }
        protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
        {

            // Get the context service.
            IContextService contextService = (IContextService)executionContext.GetService(typeof(IContextService));
            IWorkflowContext context = contextService.Context;
            ICrmService crmService = context.CreateCrmService(true);

           
            try
            {

                if (context.InputParameters.Properties.Contains("Target") && context.InputParameters.Properties["Target"] is DynamicEntity)
                {
                    DynamicEntity entity = context.InputParameters.Properties["Target"] as DynamicEntity;

                    if (entity.Properties.Contains("contactid"))
                    {
                        Response = ((Key)entity.Properties["contactid"]).Value.ToString();

                    }
                    

                    if (entity.Properties.Contains("id"))
                    {
                        Response = ((Key)entity.Properties["contactid"]).Value.ToString();

                    }                    
                }
            }
            catch (SoapException ex)            {
               
                //logger.LogError(ex.Detail.InnerText);
            }
            catch (Exception ex)            {
                
                //logger.LogError(ex.Message);
            }

            return base.Execute(executionContext);
        }
    }


Viewing all articles
Browse latest Browse all 8223

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>