Recebi o meu prémio de MVP

by Administrator 18. January 2016 13:09

Boas Pessoal,

No ano anterior só partilhei a recepção da minha caixa de MVP. Este ano partilho aqui a recepção a caixa da renovação. Como podem ver na imagem tenho um troféu que recebi no ano passado e agora sempre que tiver uma nova renovação recebo um anel com o ano desse prémio. Portanto tenho um anel do ano passado e deste ano. Para além do anel ainda recebi um diploma a reconhecer este prémio, já no ano passado recebi o diploma.

image

Para além do troféu e do diploma recebo autocolantes que costumo colar nos portáteis e um pin desse ano, que tenho na minha mochila.

Mais uma vez agradecer a Microsoft pela possibilidade de participar neste programa.

Até a próxima

Tags:

Balanço 2015, Resoluções para 2016

by Administrator 14. January 2016 16:54

Boas pessoal.

Estou aqui para fazer um balanço de 2015 das metas que queria cumprir eis o balanço, não consegui cumprir nenhuma das resoluções Triste .

Para 2016 os meus objetivos profissionais:

  • Manter o MVP para 2017, para isso tenho que continuar a contribuir em 2016
  • Em 2017 gostava de abraçar um projeto profissional diferente. Até hoje tive sempre dúvidas que caminho rumar se um caminho na plataforma .Net ou um caminho no mundo do CRM. Mas para isso gostava de explorar mais opções, ou seja, concorrentes do Dynamics CRM, então gostava de ter um desafio numa empresa ou com uma equipa que esteja focada em apenas CRM. Até hoje tenho estado a trabalho sempre em outsourcing.
  • Com a minha decisão de rumar no sentido dos mundos do CRM, gostava de conseguir aprender mais uma plataforma de CRM, estou inclinado para o vTiger mas também dependerá muito de uma possível mudança de projeto
  • Apesar desta mudança gostava de continuar o meu estudo no mundo .Net neste momento principalmente na Web com o novo Asp .Net denominado atualmente Asp .Net Core, que vem revolucionar a programação da Web aproximando-se muito a desenvolvimento em Ruby e PHP, com um desenvolvimento ágil. Para isso vou migrar o desenvolvimento que tenho atualmente e lançar o portal ainda este ano.

A nível pessoal gostava de me manter mais ativo, a nossa profissão limita muito as nossas ações e por isso é essencial termos uma atividade física. Sempre gostei de correr por isso gostava de em 2016 fazer uma prova de 10km e em 2017 fazer a meia maratona.

Até a próxima

Tags:

Microsoft Most Valuable Professional 2.0

by Administrator 4. January 2016 16:58

Boas pessoal,

Mais um inicio de ano espetacular com a revalidação do MVP por mais um ano. Já são dois e o que vos posso dizer é que foi um ano incrível, com contactos diretos com a equipa de produto e com os vários MVPs de vários países. A partilha de informações e experiências é o mais precioso. Depois temos outros benefícios como uma subscrição MSDN e créditos no Azure. Obrigado Microsoft.

Este ano estava um pouco triste porque não estava a chegar o email com a nomeação para este ano e já não tinha qualquer esperança. Foi quando que num último momento fui verificar a pasta SPAM e estava lá. Que grande susto.

Um ótimo e feliz ano novo 2016!!

Até a próxima.

Tags:

Notificador de notas

by Administrator 24. November 2015 18:50

Boas pessoal,

Recentemente um post nos fóruns perguntou se era possível haver notificações quando um utilizador referi-se outro nas notas. A minha primeira resposta foi referenciar o Yammer que servia para isso mesmo, mas a resposta não agradou ao utilizador e eu referi se a necessidade fosse muito básica e através de um plugin era possível resolvermos esta questão e prometi realizar este plugin, sei que já vou atrasado mas promessas são promessas.

O plugin é bastante básico mas tenciono depois melhorar com mais funcionalidades num futuro próximo o mais provável para o inicio de 2016. Mas para já vamos-nos focar em implementar este plugin que no futuro deverá evoluir para uma solução.

Este plugin será para ser registado na entidade Annotation e na fase Post-Create. O primeiro objetivo será obter as informações da Nota:

IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
 
Entity entity = (Entity)context.InputParameters["Target"];
 
var noteTitle = (string)entity["subject"];
var noteDescr = (string)entity["notetext"];
var objectid = (EntityReference)entity["objectid"];

Vamos a procura de referências a utilizadores recorrendo a @, para este caso eu vou assumir que vamos referir ao nome sem o domínio, por exemplo se tivermos pedro@psa201505.onmicrosoft.com que necessitamos de escrever apenas @pedro. A pesquisa por utilizadores fica da seguinte maneira:

List<string> usersToNotificate = new List<string>();
int indexAt = 0;
while (true)
{
    indexAt = noteDescr.IndexOf('@', indexAt);
    if (indexAt == -1)
        break;
 
    var indexSpace = noteDescr.IndexOf(' ', indexAt);
    if (indexSpace == -1)
        indexSpace = noteDescr.Length - (indexAt + 1);
 
    string userNotification = noteDescr.Substring(indexAt + 1, indexSpace - (indexAt + 1));
    usersToNotificate.Add(userNotification);
    indexAt = indexSpace;
}

Então neste momento já temos quais os utilizadores a notificar agora temos que verificar se realmente são utilizadores do CRM:

usersToNotificate.ForEach(x =>
{
    var queryUser = new QueryExpression("systemuser");
    var filter = new FilterExpression(LogicalOperator.And);
    filter.AddCondition("domainname", ConditionOperator.Like, x + "%");
    queryUser.Criteria = filter;
    queryUser.ColumnSet = new ColumnSet(true);
    EntityCollection retrievedUsers  = service.RetrieveMultiple(queryUser);
 
    if (retrievedUsers.Entities.Count > 0)
    {
        ...
    }
});

Caso seja utilizador vamos montar o nosso email com um link tanto para o objeto onde estamos a criar as notas, bem como para a anotação:

if (retrievedUsers.Entities.Count > 0)
{
    var systemuserid = (Guid)retrievedUsers.Entities[0]["systemuserid"];
 
    var fromParty = new ActivityParty { PartyId = new EntityReference(SystemUser.EntityLogicalName, context.UserId) };
    var toParty = new ActivityParty { PartyId = new EntityReference(SystemUser.EntityLogicalName, systemuserid) };
 
    var entObject = service.Retrieve(objectid.LogicalName, objectid.Id, new ColumnSet(new string[] { "name" }));
 
    var req = new RetrieveEntityRequest();
    req.RetrieveAsIfPublished = true;
    req.LogicalName = objectid.LogicalName;
    req.EntityFilters = EntityFilters.Entity;
    var resp = (RetrieveEntityResponse)service.Execute(req);
 
    var urlObj = String.Format("https://{0}/main.aspx?etc=" + resp.EntityMetadata.ObjectTypeCode + "&id=%7b{1}%7d&pagetype=entityrecord", ServerUrl, objectid.Id);
    var objectURL = "<a href=" + urlObj + ">" + entObject["name"] + "</a>";
    var urlNote = String.Format("https://{0}/main.aspx?etc=5&id=%7b{1}%7d&pagetype=entityrecord", ServerUrl, entity["annotationid"]);
    var noteURL = "<a href=" + urlObj + ">nota</a>";
 
    var email = new Email
    {
        To = new ActivityParty[] { toParty },
        From = new ActivityParty[] { fromParty },
        Subject = "Foi mencionado numa " + resp.EntityMetadata.DisplayName.UserLocalizedLabel.Label,
        Description = "Foi mencionado numa " + resp.EntityMetadata.DisplayName.UserLocalizedLabel.Label + " com o nome " + objectURL + ", veja a " + noteURL,
        DirectionCode = true
    };
    var emailGuid = service.Create(email);
 
    var sendEmailReq = new SendEmailRequest
    {
        EmailId = emailGuid,
        TrackingToken = "",
        IssueSend = true
    };
 
    var sendEmailResp = (SendEmailResponse)service.Execute(sendEmailReq);
}

Deste modo temos o nosso plugin finalizado, como vêm ficou um código bastante simples e com muitos pontos de melhoria que espero em breve complementar.

Até a próxima.

Tags: , ,

Slides do Evento comunidade Office 365

by Administrator 14. November 2015 17:35

Boas pessoal,

Como sempre deixo aqui os slides que me serviram de suporte para a apresentação na Comunidade Office 365, foi referente a 5ª reunião desta comunidade que se realizou ontem.

Espero que tenham gostado.

Até a próxima

Tags: , ,

Participação na Comunidade Office 365

by Administrator 4. November 2015 12:32

Boas pessoal,

É com grande orgulho que anuncio que vou participar como orador na 5ª reunião da Comunidade Office 365 com o tema “Dynamics CRM com Office 365”. Esta reunião ocorrerá no dia 14 de Novembro.

O objetivo será falar como é que o Dynamics CRM tira proveito do Office 365.

Apareçam, sei que custa mas vale a pena Smile

Até a próxima.

Tags: , , ,

Compras da Microsoft

by Administrator 6. October 2015 16:13

Boas pessoal,

No verão tive um verdadeiro calão e não escrevi nenhum post e fiquei com alguns assuntos pendurados, principalmente com as últimas compras da Microsoft:

O FieldOne é uma ferramenta para a gestão Field Service, ou seja, uma ferramenta para controlar o serviço num cliente no terreno. O FieldOne é líder neste segmento, com agendamento automático, gestão de inventariado, capacidades de workflow e com colaboração móvel.

O serviço ao cliente é uma das áreas que a Microsoft mais está a apostar, para além de novidades no módulo de serviço temos a aquisição do Parature para esta área.

A outra compra foi a Fantasy Sales Team, uma plataforma de gamificação, uma nova foram de incentivos. Basicamente ter uma plataforma que transforma as vendas num jogo para melhorar a produtividade das vendas e melhorar a adopção do CRM.

Já existem algumas ferramentas neste sentido e que se interligam no Dynamics CRM. Esta compra deve trazer uma integração nativa.

Foi tudo por hoje, brevemente mais novidades.

Até a próxima.

Tags: , ,

Preview Guide–Dynamics CRM 2015 Update 1

by Administrator 8. April 2015 17:58

Boas pessoal,

Mais um preview guide visto a lupa, neste caso o Update 1 do CRM 2015 e que já tinha falado aquando do Convergence 2015.

Microsoft Dynamics CRM Online (Update 1)

Aplicação CRM para o outlook

Alguns de vocês devem estar a pensar que estou a falar do plugin existente para o Outlook. O que existe atualmente é para o Outlook desktop, o Microsoft está a lançar de forma preview (vai ser lançado após o update) é para o outlook do browser que vai oferecer a mesma experiência da do browser, ou seja, aceder aos dados do CRM dentro do Outlook.

image

Track Emails

Fazer track dos emails vai ficar mais fácil utilizando “apenas” uma pasta do Exchange, onde basta arrastarmos o email para esta pasta, ficando esse email automaticamente track no Dynamics CRM.

image

Edição excel diretamente no CRM

Para garantir mais produtividade, agora temos a possibilidade de quando exportamos para excel abrir o ficheiro dentro do Dynamics CRM com a ajuda do Excel Online e fazer as nossas análises e poder fazer upload das alterações para o CRM

image

OneNote no Dynamics CRM

Agora é mais fácil partilhar conteúdo com a utilização do OneNote dentro do Dynamics CRM. Podemos ver e criar notas que podem conter texto, fotos, voz, folhas de cálculo e desenhos sempre no contexto de um registo do CRM.

image

Grupos Office 365

Esta funcionalidade vem facilitar a colaboração usando os grupos Office 365 através dos produtos Office. Um grupo Office 365 é um espaço onde os membros da equipa podem usar para partilhar ficheiros, emails, conversações, calendários e notas do OneNote. Apenas disponível no CRM Online 2015 SP1 e em inglês.

image

Vendas sociais

Agora pode-se criar Oportunidades e Oportunidades Potenciais diretamente de posts sociais com a última atualização do Microsoft Social Engagement.

Vendas móveis

A aplicação móvel para smartphones disponível para Windows Phone, Android e iPhone foi redesenhada. Mesmo sem conectividade pode-se continuar a trabalhar offline através de rascunhos e depois sincronizar quando estamos online.

image

Analytics

Profissionais de vendas podem agora utilizar o Power BI para visualizar dashboard em tempo real e reports com drill-down para acompanhar as vendas. Em adição pode-se obter respostas rapidamente com linguagem natural. Isto tudo sem necessidade de recorrer a recursos técnicos. Agora com conexão por defeito ao Dynamics CRM a Microsoft fornece templates pré-construídos.

image

Experiência de Utilizador

Navegação – uma nova barra de navegação que vai permitir reduzir o número de clicks e scroll. Esta barra já tinha sido implementado no Dynamics Marketing.

image

Recentemente Utilizadas Global – uma lista central com todos os registos vistos e com registos “pin”.

image

Navegação de formulário – saltar secções rapidamente dentro do formulário.

image

Temas – agora é possível criar uma user interface uniforme através dos temas. Podemos customizar o logo da empresa ou mudar as cores dos links e das entidades.

image

Customer Service

Conhecimento integrado

As capacidades de Gestão de Conhecimento foram melhoradas com a integração com o Parature. Temos a habilidade de procurar e receber sugestões automáticas. Suportado nos clientes USD e Web em qualquer entidade incluindo as customizadas.

image

image

Gestão de Incidentes Móvel

Agora é possível gerir incidentes nas aplicações móveis, ou seja, para as aplicações tablet e smartphones.

image

Integração Online Commerce

Configurar e gerir um ambiente Parature usando a plataforma Microsoft Online Commerce.

Mais canais

No Parature passamos a poder ler, gerir, filtrar e responder a posts no Facebook, LinkedIn, Twitter, Youtube e Instagram.

Interações no Portal

Obter mais conhecimento do cliente das suas interações antes mesmo de se conectar com o suporte. Um novo widget dá ao agente do que é que o cliente procurou, viu dentro do portal de suporte, permitindo assim que o agente seja mais proactivo.

Portal unificado para serviço empresarial

Possibilitar o cliente de submeter pedidos de suporte ao produto ou departamento. Possibilidade de visualizar produtos\serviços. Suporte a mais de 40 línguas.

Customer Engagment Globall

Para além do portal em mais de 40 línguas a pesquisa do Parture permite a pesquisa em mais de 40 línguas. Tradução em tempo real no chat. Rotear e responder a incidentes baseado na língua preferida do cliente.

Reporting avançado

Métricas no portal de suporte: Visualização de páginas, Visualizações de artigos por dia, Pesquisas, Atividade do Portal, Serviços e chat pedidos, incidentes e emails submetidos. Entre outros

Microsoft Social Engagement

Interface gráfica

Uma interface gráfica totalmente redesenhada. Dashboards intuitivos com capacidades de filtros, existem também novos filtros: autor, tipo de post, assignado e labels. Passamos também a ter disponível um tema escuro e claro.

image

Análise social

Novas visualizações tais como, nuvens de palavras, top fãs, críticos e hashtags.

image

Centro social

Possibilidade de termos streams de posts verticalmente e mediante o nosso critério. Nesta versão suporta: ações internas – assignar um post a um utilizador e a possibilidade de atribuir uma label; ações externas – resposta, retweet, marcar como favorito e  mensagem direta.

image

Perfis sociais

Possibilidade de autenticar no twitter e facebook permitindo assim poder interagir com a sua audiência.

image

Colocar tópicos de pesquisa

Esta colocação de tópicos ficou mais simples e flexível, agora podemos colocar regras pelos seguintes critérios: palavras chave, página facebook e handler de twitter. É projetado qual será a quota consumida e um preview dos posts, com isto conseguimos ter uma ideia da qualidade dos resultados.

image

Mobile

Aplicação móvel para telefones

Aplicação redesenhada com suporte a iOS, Android e Windows Phone. Os utilizadores móveis são guiados  pelos processos de negócio contextuais fornecendo assim uma experiência consistente em qualquer dispositivo. Com uma navegação simples permite trabalhar numa forma offline através de rascunhos que são sincronizados quando tivermos online.

image

SDK móvel

A Microsoft fornece templates de código fonte (iOS, Android e Windows Phone), estes templates têm pré-configurado a autenticação e bibliotecas de acesso ao Dynamics CRM. Assim os programadores perdem menos tempo a conectar aos endpoints REST\SOAP.

Azure App Services para o Dynamics CRM

O Azure App Services fornece um backend para aplicações móveis. Com esta nova funcionalidade iremos ter um conector para facilitar a ligação entre aplicações móveis customizadas e os serviços do Azure. Haverá uma exemplo para as vendas com capacidade offline completa. Para além do offline ainda podemos aproveitar serviços como o Push Notifications e Events Hub. Estará disponível também para plataformas como Xamarin, Cordova, Sencha e AppCelerator.

Plataforma

Upsert

Criação e atualização com uma chamada única a plataforma.

Transação Batch

Uma única unidade de trabalho seja executada e se estiver correta todas as modificações efetuadas são commited.

Alternate Keys

Possibilidade de definir chaves para obtenção\atualização dos dados, útil para quando temos sistemas externos que não têm conhecimento dos GUIDs do CRM, reduz a necessidade de estar obter o GUID de um registo.

Concorrência otimista

Quando temos atualizações concorrências temos o perigo de perder dados, ou seja, quando obtemos um registo se entretanto alguém alterar quando fizermos update esses dados vão-se perder, então esta funcionalidade determina se os dados foram alterados entre a obtenção do registo e a atualização desse mesmo registo se houver alguma alteração ele devolve um erro.

Pedido Update

Agora com a chamada a este método é possível colocar um pai ou definir um estado, assim as chamadas aos métodos SetState e SetParent pode ser simplificado.

Change Tracking

Possibilidade de obter apenas as mudanças que foram realizadas nos dados.

OData V4

Agora podemos comunicar com o Dynamics CRM através de endpoints OData V4 através de processos externos. Neste momento esta funcionalidade está em preview.

Melhorias Dev & Test

Instâncias preview têm funcionalidade de instâncias sandbox (reset e cópia) e não consumem o espaço pago e suporta atualizarmos para a versão beta. Podemos ter um backup ondemand por instância e fazer download para uma subscrição Azure Storage. Apagar instâncias sandbox e restaurar de um sistema ou um backup on-demand.

Suporte instâncias Multi-Geo

Num único tenant passamos a ter a capacidade de ter uma instância no datacenter norte americano e outra instância na europa.

Microsoft Dynamics Marketing (Update 1)

Várias atualizações no email marketing melhorando as questões de subscrição e de não receber emails duplicados. Possibilidade de filtrar dados sincronizados por campos customizados do CRM. Como acontece no Dynamics CRM vai ser possível no Dynamics Marketing o agendamento ou reagendamento das atualizações. Extensão da integração nativa com o PowerBI.

Até a próxima

Tags: , ,

Resoluções ano 2015

by Administrator 4. February 2015 06:56

Boas pessoal,

Como se costuma dizer mais vale tarde do que nunca. Mas este início do ano tem sido de grande agitação. São grandes desenvolvimentos a nível profissional e alguns desafios de nível pessoal.

O ano não podia ter começado melhor com a notícia da eleição como MVP do Dynamics CRM e a experiência tem sido fantástica e excedido as expectativas, apesar de não haver nenhum retorno financeiro e até agora sem nenhum benefício ao nível de emprego, toda a informação que passei a ter disponível é algo que não se consegue pagar.

Mas isto tudo só é possível devido aos leitores do blog e a toda a comunidade. A minha participação na comunidade só pode beneficiar com este reconhecimento e vontade não falta para ajudar ainda mais. Se quiserem saber mais sobre esta prémio vejam aqui. E quem quiser ver o meu perfil.

Como resoluções para o ano 2015:

Blog:

Manter ou aumentar a frequência e criar alguns posts em inglês, o primeiro espero que seja brevemente com o lançamento do primeiro add-on criado por mim.

Site:

Espero que até ao Verão escrever o meu primeiro post, já tenho vários na calha só falta mesmo concretizar. Tenho o objetivo de criar pelo menos dois por mês.

Fóruns MSDN:

Continuar a participar e tentar motivar mais pessoas a participarem.

Wiki:

Terminar o trabalho começado.

Certificação:

Algo que não me motiva minimamente mas que tenho que realizar. No final deste ano quero pelo menos fazer as básicas para depois pensar em tornar-me MCP e poder realizar formações.

Your Life Management:

Como ainda não estou a escrever no meu site, vou aqui também definir objetivos que não tem diretamente a ver com o Dynamics CRM, um desses projetos é o YLM que é um portal que estou a realizar. Comecei a fazer este portal para estudar o ASP .NET MVC 5 e outras tecnologias. Vou tentar lançar antes do verão com uma versão simples e quero indo melhorar. Para o final do ano espero começar a migrar para o MVC 6 Sorriso.

 

Até a próxima

Tags:

Enviar email ao antigo owner de um registo

by Administrator 23. January 2015 22:47

Boas pessoal,

Mais um desafio do fórum, desta vez, não fui o primeiro a responder. A pergunta era se era possível enviar um email quando a mudança de owner de um registo, através de Workflow (Fluxo de Trabalho) ou Javascript. Bom a primeira resposta sugere que o melhor é recorrer a plugins e confesso que a primeira vez que li concordei com a afirmação, eu até diria que seria a única hipótese.

Velhos vícios, o mal de ter começado com o CRM 4 e com isso que ainda mantenha algumas soluções dessa altura. Como tenho defendido aqui no blog, deve-se sempre optar por uma solução configurável em vez de uma solução programável, isto porque através de configurações “toda” a gente consegue ler, quer seja uma pessoa técnica ou funcional e na altura de upgrades estes objetos costumam ser mais fáceis de migrar.

Pois bem depois de ter lido esta pergunta uma segunda vez, fez-se um click na minha cabeça e porque não realizar isto com os Fluxos de Trabalho? Pois bem com o CRM 2013 foram introduzidos os Fluxos de Trabalho síncronos, que nos possibilitou por exemplo tratar da numeração automática como podem ver neste post. Com este tipo de Fluxo de Trabalho conseguimos aceder ao valor antigo e ao valor novo e com isso enviar um email ao novo\antigo proprietário.

Vamos ver na prática como o fazemos. Primeiro passo é criar um Fluxo de Trabalho síncrono:

image

Reparem que tiramos o pisco (que por defeito está selecionado) que fazia com que o Fluxo de Trabalho corresse assincronamente. Assim o Fluxo de trabalho torna-se síncrono. Avançando com o processo podemos então criar a notificação ao novo e antigo owner. Caso esqueçamos de retirar o pisco não faz mal porque dentro do Fluxo de Trabalho temos a hipótese de transformar o Fluxo de Trabalho em síncrono e vice-versa.

Mas primeiro temos que dizer ao Fluxo de Trabalho que ele pode correr quando houver alteração de um campo, neste caso como se trata do proprietário, podemos escolher quando o registo é atribuído e informamos que ele deve correr antes de guardar o registo e assim apanhar o valor antigo:

image
Pode parecer estranho mas o nosso Fluxo de Trabalho já está configurado, agora basta criar o email e no campo para enviar vamos colocar o proprietário pois configuramos o Fluxo de Trabalho para correr antes de ser assignado outro proprietário:

image

Uma solução que prometia mais trabalho que se tornou simples por utilizarmos a última novidades da plataforma.

Até a próxima

Tags: , ,

About

Muito bem casado, Pai babado e um gosto muito grande pela tecnologia.

Tenho um lema "Sharing is Learning"

Mais aqui -> http://www.psazevedo.com

Month List