protected override void Execute(CodeActivityContext executionContext)
        {
            //Create the tracing service
            ITracingService trace = executionContext.GetExtension <ITracingService>();

            //Create the context
            IWorkflowContext            context        = executionContext.GetExtension <IWorkflowContext>();
            IOrganizationServiceFactory serviceFactory = executionContext.GetExtension <IOrganizationServiceFactory>();
            IOrganizationService        service        = serviceFactory.CreateOrganizationService(context.UserId);

            try
            {
                EntityReference RetrivedEntity = null;
                var             expression     = string.Empty;

                expression = Expression.Get <string>(executionContext);
                if (expression == null || expression == "")
                {
                    throw new InvalidPluginExecutionException("Expression is null");
                }
                trace.Trace("retrieving Parent Record");
                RetrivedEntity = RetrieveRecordProcessHelper.RetrieveParentRecord(expression, service, context, trace);
                if (RetrivedEntity != null)
                {
                    if (RetrivedEntity.LogicalName == "tc_locationoffice")
                    {
                        OfficeLocation.Set(executionContext, RetrivedEntity);
                    }
                    if (RetrivedEntity.LogicalName == "account")
                    {
                        Account.Set(executionContext, RetrivedEntity);
                    }
                    if (RetrivedEntity.LogicalName == "contact")
                    {
                        Contact.Set(executionContext, RetrivedEntity);
                    }
                    if (RetrivedEntity.LogicalName == "incident")
                    {
                        Case.Set(executionContext, RetrivedEntity);
                    }
                    if (RetrivedEntity.LogicalName == "tc_assistancerequest")
                    {
                        AssistanceRequest.Set(executionContext, RetrivedEntity);
                    }
                    if (RetrivedEntity.LogicalName == "tc_bookingaccommodation")
                    {
                        Accommodation.Set(executionContext, RetrivedEntity);
                    }
                    if (RetrivedEntity.LogicalName == "tc_caseline")
                    {
                        CaseLine.Set(executionContext, RetrivedEntity);
                    }
                    if (RetrivedEntity.LogicalName == "tc_hotel")
                    {
                        Hotel.Set(executionContext, RetrivedEntity);
                    }
                    if (RetrivedEntity.LogicalName == "tc_country")
                    {
                        Country.Set(executionContext, RetrivedEntity);
                    }
                    if (RetrivedEntity.LogicalName == "businessunit")
                    {
                        BusinessUnit.Set(executionContext, RetrivedEntity);
                    }
                    if (RetrivedEntity.LogicalName == "tc_recovery")
                    {
                        Recovery.Set(executionContext, RetrivedEntity);
                    }
                    if (RetrivedEntity.LogicalName == "tc_bookingtransfer")
                    {
                        Bookingtransfer.Set(executionContext, RetrivedEntity);
                    }
                    if (RetrivedEntity.LogicalName == "tc_bookingtransport")
                    {
                        Bookingtransport.Set(executionContext, RetrivedEntity);
                    }
                    if (RetrivedEntity.LogicalName == "tc_bookingextraservice")
                    {
                        Bookingextraservice.Set(executionContext, RetrivedEntity);
                    }
                    if (RetrivedEntity.LogicalName == "team")
                    {
                        Team.Set(executionContext, RetrivedEntity);
                    }
                }
            }
            catch (FaultException <OrganizationServiceFault> ex)
            {
                throw new InvalidPluginExecutionException(ex.ToString());
            }
            catch (TimeoutException ex)
            {
                throw new InvalidPluginExecutionException(ex.ToString());
            }
            catch (Exception ex)
            {
                throw new InvalidPluginExecutionException(ex.ToString());
            }
        }