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()); } }