Archive

Posts Tagged ‘Office 365’

Como buscar informações de status do Workflow no SharePoint Online (365)

November 28, 2018 Leave a comment

CENÁRIO:

Olá!

Nas versões antigas (on-premises) do SharePoint Server é bem fácil obter o status do workflow bastando apenas adicionar uma coluna na view que contém o nome do Workflow.

Entretanto, no SharePoint Online (365) é um pouco diferente. Ainda temos a coluna do workflow (WorkflowColumnStatus), mas ela fica “em branco”. Como fazer para verificar, programaticamente, o status do workflow que foi desenvolvido dentro de um SharePoint Add-in?

ERRO:

Colunas em branco:

wfkcolumn

SOLUÇÃO:

Utilizando o SharePoint CSOM ou JSOM (Javascript Object Model) é possível instanciar o WorkflowServicesManager e obter as informações do workflow.

wfkmanageinstance

Em texto:

var workflowServicesManager = new WorkflowServicesManager(ctx, ctx.Web);

 

// connect to the instance service

var workflowInstanceService = workflowServicesManager.GetWorkflowInstanceService();

 

// get all instances

var workflowInstances = workflowInstanceService.EnumerateInstancesForListItem(listId, itemId);

ctx.Load(workflowInstances, i => i.Include(f => f.Id, f => f.LastUpdated, f => f.Status));

ctx.ExecuteQuery();

foreach (var instance in workflowInstances)

{

try

{

if (instance.Status.ToString() != “Completed”)

{

Console.WriteLine(“{0} – {1} – {2}”,

instance.Id.ToString(),

instance.LastUpdated,

instance.Status.ToString());

 

}

}

catch (Exception ex)

{

_telemetry.TrackException(ex);

}

}

. J

Abraço!

 

Enviando e-mails programaticamente usando o Office 365 (Exchange Online)

CENÁRIO:

Cenário bem comum em automação de processos é ter algum serviço que fique monitorando algum processo e depois envie e-mails de notificação aos interessados.

ANÁLISE:

Com o EWS Managed API 2.0 isso ficou muito simples. Principalmente utilizando o Office 365 ao invés de um Exchange Server on-premises.

Para facilitar BASTANTE as coisas, utilizaremos o Microsoft.Exchange.WebServices desenvolvido pela própria Microsoft.

https://msdn.microsoft.com/en-us/library/dd877012(v=exchg.150).aspx

clip_image002

Para instalar esse NugetPackage no projeto, é requisito que ele seja .NET 4.0.

HOW TO:

Instale o pacote no projeto. E o resto é bem simples.

static void Main(string[] args)

{

ExchangeService service = new ExchangeService();

service.Credentials = new WebCredentials(meuemail@dominioOffice365.com.br, "SENHA");

service.TraceEnabled = true;

service.TraceFlags = TraceFlags.All;

service.AutodiscoverUrl(meuemail@dominioOffice365.com.br, RedirectionUrlValidationCallback);

EmailMessage email = new EmailMessage(service);

email.ToRecipients.Add(meuemail@dominioOffice365.com.br);

email.Subject = "HelloWorld";

email.Body = new MessageBody("Este é o primeiro e-mail que envio usando o EWS Managed API.");

email.Send();

Console.ReadLine();

}

 

E o método de apoio para validar o esquema do AutoDiscover:

private static bool RedirectionUrlValidationCallback(string redirectionUrl)

{

// The default for the validation callback is to reject the URL.

bool result = false;

Uri redirectionUri = new Uri(redirectionUrl);

// Validate the contents of the redirection URL. In this simple validation

// callback, the redirection URL is considered valid if it is using HTTPS

// to encrypt the authentication credentials.

if (redirectionUri.Scheme == "https")

{

result = true;

}

return result;

}

Atualizado (resultado):

Screen Shot 2016-07-13 at 8.05.47 PM 

Abraço!