Example #1
0
        protected override void Execute(CodeActivityContext executionContext)
        {
            //Obter objetos uteis do contexto
            var servicoTrace = executionContext.GetExtension <ITracingService>();
            IWorkflowContext            WfContext      = executionContext.GetExtension <IWorkflowContext>();
            IOrganizationServiceFactory serviceFactory = executionContext.GetExtension <IOrganizationServiceFactory>();
            IOrganizationService        _orgService    = serviceFactory.CreateOrganizationService(WfContext.InitiatingUserId);

            //Obter parametros de entrada
            EntityReference ocorrenciaOperacao = Ocorrencia.Get <EntityReference>(executionContext);

            servicoTrace.Trace($"Incident of input :{ocorrenciaOperacao.Id}");

            QueryExpression query = new QueryExpression("activitypointer");

            query.Criteria.AddCondition("regardingobjectid", ConditionOperator.Equal, ocorrenciaOperacao.Id);
            //Filter of Open/Scheduled status code
            query.Criteria.AddCondition("statuscode", ConditionOperator.In, new string[] { "1", "4" });
            EntityCollection colecao      = _orgService.RetrieveMultiple(query);
            bool             possuiAberto = colecao.Entities.Count > 0;

            //Return of result
            OpenedActivity.Set(executionContext, possuiAberto);
        }