Forçar o recalculo dos campos rollup

by Pedro Azevedo 1. March 2016 08:03

Boas pessoal,

Num post do fórum foi perguntado como colocar um campo obrigatório, quando a soma de um determinado tipo de produtos fosse maior a um determinado valor. A minha solução foi colocar num campo rollup a soma destes tipos de produtos e depois aplicar uma regra de negócio para colocar o campo obrigatório.  A resposta foi que o recalculo não é apenas de 12 em 12 horas. Hora esta resposta não está completamente correta como podemos ver aqui. Como eu menciono na resposta, mas mesmo de hora a hora este cálculo pode ser decisivo e quebrar o fluxo do processo.

Como tinha prometido e forçado devido a questão no fórum estou aqui escrever soluções para forçarmos o recalculo deste campo. A solução encontramos no SDK recorrendo a seguinte mensagem:

CalculateRollupFieldRequest

Neste caso um plugin ou uma atividade customizada, vou dar o exemplo num plugin e como vamos ver mais a frente já existe uma ferramenta que dá esta funcionalidade de graça. Para o plugin podemos correr o seguinte código:

public class PostCreateOpportunityProductPlugin : IPlugin
{
    public void Execute(IServiceProvider serviceProvider)
    {
        var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
 
        if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
        {
            var serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
            var service = serviceFactory.CreateOrganizationService(context.UserId);
 
            var entity = (Entity)context.InputParameters["Target"];
            var oppId = (EntityReference)entity["opportunityid"];
 
            var crfr = new CalculateRollupFieldRequest
            {
                Target = new EntityReference("opportunity", oppId.Id),
                FieldName = "new_rollupsumprods"
            };
 
            var response = (CalculateRollupFieldResponse)service.Execute(crfr);
        }
    }
}

Para a configuração deste plugin que coloquei a executar na mensagem Create da entidade OpportunityProduct e forçar o recalculo do campo rollup da oportunidade.

Para facilitar foi criado uma atividade customizada de fluxos de trabalho e que está incluída numa ferramenta que espero em próximos posts falar que é Dynamics CRM 2016 Workflow Tools, que são ferramentas para utilizarmos dentro dos Fluxos de Trabalho

Até a próxima.

Tags: , ,

Como os campos rollup são recalculados

by Pedro Azevedo 24. February 2016 16:20

Boas pessoal,

Deixamos este post apenas para falar de como estes campos são recalculados e isto é uma questão importante porque poderemos a trabalhar com informações erradas se o campo não tiver sido recalculado.

Primeiramente vamos perceber como estes campo são calculados, como eu referi no post sobre os campos rollup na base dados são criados três campos por cada campo rollup:

  • <NomeCampo>
  • <NomeCampo>_date
  • <NomeCampo>_state

O campo state, pode ter um dos seguintes valores:

Valor Nome Descrição
0 NotCalculated Campo ainda não foi calculado
1 Calculated O valor do campo é da data presente no campo <NomeCampo>_date
2 OverflowError Erro de overflow.
3 OtherError O cálculo do valor de campo falhou devido a um erro interno..
4 RetryLimitExceeded Cálculo falhou porque o número máximo de tentativas para calcular o valor foi excedido devido ao número alto de conflitos de simultaneidade e bloqueio.
5 HierarchicalRecursionLimitReached O cálculo do valor de campo falhou porque o limite máximo de profundidade da hierarquia para o cálculo foi atingido.
6 LoopDetected Cálculo do campo falhou porque um loop recursivo foi detectado na hierarquia do registro.

Os campos são recalculados através das tarefas de sistema assincronamente, quando o campo é calculado é agendado o seu cálculo 12 horas depois, como podemos ver na mensagem que coloquei no post sobre estes campos. Depois da criação existe um agendamento de 1h em 1h como se pode verificar a seguir:

image

Podemos mudar estas configurações indo as tarefas de sistema e mudando a vista para “Tarefas de Sistema Periódicas”, vamos ver os campos criados:

image

image

Para modificar abrimos este trabalho sistema e dentro do formulários, temos as seguintes opções:

image

Podemos mudar a periodicidade neste formulário:

image

 

Até a próxima.

Tags: , ,

Campos rollup

by Pedro Azevedo 14. February 2016 14:57

Boas Pessoal,

No post anterior falamos sobre campos calculados, hoje vamos falar de campos rollup. Como referi no post anterior quando criamos um campo vai aparecer mais opções para além do campo simples, os campos calculados e rollup:

image

Os tipos de campos em que se pode aplicar são: Inteiro, Decimal, Data e Moeda. Ao editar vemos o seguinte formulário que passamos a explicar mais ao pormenor:

image

Antes de começarmos a configurar vamos tentar perceber quando utilizar este tipo de objeto. Basicamente quando queremos somar ou contar algo sobre a própria entidade ou entidades relacionadas, por exemplo saber o valor de oportunidades que temos para um determinado cliente, o número de atividades, saber qual foi a maior compra desse cliente ou a média do valor das oportunidades.

Começando no início do formulário, podemos verificar que a entidade de origem é a conta, ou seja, a entidade sobre a qual estamos a criar este campo rollup e este campo não pode ser modificado. O campo abaixo define se queremos navegar sobre a hierarquia, ou seja, se queremos que os cálculos percorram não só os registos diretamente relacionados com a entidade mas também sobre uma eventual hierarquia, por exemplo percorrer uma possível hierarquia dos clientes:

image

Depois temos que configurar sobre qual a entidade sobre a qual vamos fazer a agregação, aliado a isso podemos colocar filtros para segmentar dados:

image

Na Agregação, temos as seguintes hipóteses:

image

Pode parecer estranho mas para este caso apenas temos um campo disponível, mas isto tem uma razão é que este campo rollup é do tipo inteiro, então só podemos fazer contas sobre “coisas” inteiras, neste caso estamos a calcular a média de probabilidades das oportunidades de uma determinada conta:

image

Mas o mais natural é realizarmos contas sobre os valores, para isso basta criarmos um campo do tipo Moeda, e como podemos ver na imagem a baixo já aparecem outros campos do tipo Moeda:

image

Estes campos podem ser usados em formulários, gráficos, visualizações e relatórios. Para além destes objetos os campos calculados poderão usar estes campos e o vice-versa também é possível.

Vamos ver como estes campos são visualizados no formulário:

image

 

Como podemos ver na imagem acima temos os dois campos rollup que criamos. Na imagem vemos o campo “campo rollup” que não tem valor mas se recalcularmos ele vai colocar o valor correto. No aviso que aparece na configuração do campo rollup explica a razão deste comportamento:

image

Mas o mesmo acontece aquando da atualização de uma das oportunidades, por exemplo vou adicionar produtos a oportunidade e vamos ver que o valor não se atualiza, apenas se forçarmos o recalculo. Este recalculo não implica a alteração do campo “modificado em”. No próprio campo é referido qual foi a última atualização que aquele campo teve:

image

Mas esta questão da atualização e como podemos resolver esta questão será descortinada em futuros posts. É uma questão muito importante porque as campos calculados, as regras de negócio e fluxos de trabalho vão usar o último valor calculado e pode não ser o “verdadeiro”.

Tal como nos campos calculados também existem algumas considerações:

  • Poderá haver no máximo 100 campos numa organização e até 10 por entidade;
  • Workflows não podem ser lançados por estes campos e não podem ser utilizados numa condição de espera;
  • Não pode ser aplicado sobre um campo rollup;
  • Não podemos fazer “rollup” sobre um campo rollup;
  • Um rollup não pode ser efetuado sobre relações N:N ou relação 1:N se a entidade for a atividade;

Ao contrário dos campos calculados estes campos são físicos, ou seja, são gravados na base de dados através de três campos, que serão explicados num post futuro.

Até a próxima

Tags: , ,

Campos Calculados (Calculated Fields)

by Administrator 1. February 2016 22:55

Boas Pessoal,

Uma das operações mais efetuadas pelos programadores era o calcular valores recorrendo a Javascript ou C#(Plugins ou Workflows), para colocar noutro campo do formulário, por exemplo para aplicar um desconto se o valor de uma proposta for superior a um determinado valor, se esta regra mudar, por exemplo se o valor passar a ser outro, provavelmente teríamos que ir alterar o código, o que nem sempre é fácil e ágil.

Como podemos comprovar a plataforma Dynamics CRM tem vindo a tornar-se cada vez mais funcional, ou seja, que pode ser definida por um utilizador sem necessidade de recorrer a uma pessoa mais técnica. Como a vinda do Microsoft Dynamics CRM 2015 trouxe dois novos campos: os campos calculados e rollup. que vêm resolver esse problema, pois vamos passar a poder efetuar através de condições e ações, por exemplo o cálculo referido acima e sem necessidade de escrever uma única linha de código.

Para começar a utilizar temos um novo Tipo de Campo, que é o calculado, na segunda imagem aparece outra opção o Rollup que vou falar no próximo post, neste caso a diferença é que na primeira imagem o campo é do tipo string e na segunda imagem do tipo inteiro:

image

 

image

Os tipos disponíveis para criarmos os campos calculados são os seguintes:

  • Linha de texto
  • Conjunto de Opções
  • Duas Opções
  • Número Inteiro
  • Número Decimal
  • Moeda
  • Data e Hora

Quando escolhermos este tipo de campo, aparece-nos um botão para editar:

image

Quando editamos e caso não tenhamos gravado, ele vai gravar o campo e depois não poderemos modificar para um campo simples, como não podemos passar de um simples para um calculado. Depois de editarmos vai-nos aparecer o seguinte formulário muito parecido com as Business Rules:

image

Como podemos observar podemos colocar uma condição (não é obrigatório) ou criarmos logo uma ação. Podem ser complexas com várias condições ou ramos E e OU.

Neste caso vamos comparar o Preço Total se é maior que 500€ se for então aplicamos um desconto de 30%.

image

image

Como podem observar não temos apenas a entidade sobre a qual estamos a criar o atributo, temos acesso a todas as entidades relacionadas, por exemplo podíamos verificar qual o estado do cliente. Para comparar podemos comparar com outro campo da mesma entidade ou de outra entidade relacionada, como podemos observar esta configuração é bastante flexível. Podemos referenciar outro campo calculado.

Nas ações temos uma interface com intellisense e intuitiva para que “qualquer” pessoa.

image

As operações disponíveis são as seguintes, as operações terão que estar em letras maiúsculas como referenciado em baixo:

  • ADDHOURS, ADDDAYS, ADDWEEKS, ADDMONTHS, ADDYEARS, SUBTRACTHOURS, SUBTRACTDAYS,SUBTRACTWEEKS, SUBTRACTMONTHS, SUBTRACTYEARS, DIFFINDAYS, DIFFINHOURS, DIFFINMINUTES, DIFFINMONTHS, DIFFINWEEKS, DIFFINYEARS, NOW e DIFFINYEARS
  • CONCAT, TRIMLEFT e TRIMRIGHT.
  • Utilização dos campos das entidades
  • Utilização dos campos das entidades pai através do campo lookup para a entidade pai. Fazendo <NomeCampoLookup>.<NomeCampo>

image

  • Para além destes operadores poderemos usar os operadores aritméticos.

Se por exemplo usarmos um campo protegido nos cálculos, ele vai sugerir que protejamos também este campo calculado como podemos ver na imagem a seguir:

image

Estes campos podem ser usados nos formulários, vistas, gráficos e relatórios. Mas existem algumas limitações:

  • Em vistas de utilizador, gráficos e visualizações podem ter no máximo 10 campos;
  • Os valores dos campos calculados não são mostrados no CRM Outlook no modo offline;
  • O número máximo de campos calculados encadeados são 5;
  • A ordenação é desabilitada em campos calculados que referem uma entidade pai, que contenham um campo lógico (por exemplo o morada) ou que contenham outro campo calculado;

image

  • Um campo calculado pode apenas referenciar até duas entidades, a entidade onde o campo calculado está a ser criado e outra entidade pai.
  • Estes campos não lançam plugins nem fluxos de trabalho;
  • As regras de deteção de duplicados não pode ser ativada para estes campos.

Depois de tudo configurado a configuração é vista da seguinte forma:

image

Depois do campo criado, no CRM tem o seguinte aspeto:

image

Como podem verificar este campo é apenas de leitura. Os campos calculados são campos virtuais e não físicos o que isto significa é que estes campos não são gravados na BD, mesmo assim este campo está disponível nos vários objetos que referi e se realizarmos um select sobre a tabela este valor será retornado, pois ele grava a nossa configuração numa função no SQL Server.

Até a próxima

Tags: , ,

Dynamics CRM 2015 - Update 1.1

by Pedro Azevedo 21. September 2015 13:59

Boas pessoal,

Foi publicado o Update 1.1 para o CRM 2015 online. Neste site podem ver as novidades bem como um detalhe dos bugs que foram resolvidos. Neste site podem fazer download. Entre várias correção de vários bugs e melhorias, ressalvamos o suporte ao:

  • Windows 10
  • Microsoft Edge
  • Android 5.0

Até a próxima

Tags: , ,

Disponibilidade do CRM 2015 Update 1

by Pedro Azevedo 5. May 2015 14:56

Boas pessoal,

Depois de dois posts a falar de dois updates para o CRM 2015 e CRM 2013 eis que surge um dos updates mais esperados para o CRM Online, o Update 1. Já tinha realizado dois overviews deste update podem ver aqui e aqui. Se fizerem um trial já estarão neste versão e já devem estar a receber notificações para aplicarem esta alteração nas vossas instâncias. Experimentem pois as novidades são muito boas.

Também já estão disponíveis as respetivas versões das aplicações “auxiliares”. Vejam aqui.

Até a próxima

Tags: , ,

CRM 2015 Update 0.1

by Pedro Azevedo 23. April 2015 16:17

Boas pessoal,

Está disponível o Update 0.1 do CRM 2015 para os ambientes On-Premise. Vocês devem estar a pensar que me falta uma palavra do Update, mas não a Microsoft está a adoptar uma nova numeração do Dynamics CRM para ser mais fácil a sua interpretação e passará apenas a ser Update, neste artigo está tudo explicado.

Esta nova versão corrige mais de 100 bugs e trás melhorias de performance, podem ver mais detalhes aqui. Podem então fazer download deste Update nesta página.

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: , ,

Convergence 2015 e Spring Release (Carina)

by Pedro Azevedo 17. March 2015 11:56

Boas pessoal,

Como sabem (ou deviam saber) estamos no primeiro dia do Convergence 2015 em Atalanta, como sempre no final do evento farei um post com os melhor tweets que vi, já que mais uma vez não consigo estar presente, um dia hei-de conseguir Sorriso rasgado. No último post falei do NDA, bem hoje já posso falar das novidades e garanto-vos que foi muito difícil segurar para não contar. Resumidamente o que temos de novo:

  • Novo interface de navegação. Para quem já mexeu ou viu o Dynamics Marketing, o menu tinha uma espécie de menu em árvore, bom esse menu foi replicado para o Dynamics CRM.
  • Microsoft Office. Edição direta de ficheiros excel diretamente no CRM, ou seja, vamos ter o excel embebido na própria interface do CRM. Outra novidade é integração com outro produto da Microsoft o OneNote, já uso esta ferramenta a muito tempo e posso garantir-vos que é muito bom. O OneNote vai expandir a parte das notas.
  • Microsoft Outlook. Uma nova versão deste addon para o Outlook que vem melhorar a usabilidade.
  • Mobile. Uma nova versão da aplicação mobile que vem trazer mais funcionalidades e com uma interface muito mais interessante.
  • Theme. Podermos customizar o CRM com uma nova theme, ou seja, vamos poder definir cores para várias pares do CRM.

O NDA foi levantado com um post do Bob Stutz (Corporate Vice President Microsoft CRM) que para além de falar das novas novidades ainda anunciou a aquisição do Mojo Surveys da empresa Fusion Software. Com esta nova aquisição vem trazer para o Dynamics CRM a capacidade de realizar Inquéritos aos clientes, até agora apenas conseguíamos recorrendo a ferramentas externas de parceiros.

Tenho aqui um post corrido mas esperem que o próximo trará muitas imagens e mais novidades diretamente do Convergence 2015.

 

Até a próxima.

Tags: , , ,

Esconder opção do menu flutuante do Dynamics CRM

by Pedro Azevedo 28. January 2015 21:15

Boas pessoal,

Para mexermos no sitemap podemos usar a ferramenta SiteMapEditor eu aqui faço referência a esta ferramenta ou usarmos neste momento a minha favorita a XrmToolBox (prometo fazer uma série de posts a falar sobre os vários plugins desta ferramenta) que tem um plugin com o SiteMap Editor. Com estas ferramentas conseguimos criar mais áreas ou novos menus dentro de uma área.

Caso queiramos esconder um menu de um utilizador teremos que utilizar as roles para que esse utilizador não tenha acesso a essa entidade e assim ele não aparecer no menu flutuante.

E se quisermos esconder um menu com base num valor do formulário, por exemplo esconder as atividades quando o registo está num determinado estado, bem é o que faz o seguinte código:

function hideNavigationButton() {
    var menuSelect = window.top.$("#TabNode_tab0Tab");
 
    if(menuSelect.length == 0)    {
        setTimeout(function () { hideNavigationButton(); }, 1000);
        return;
    }
 
    menuSelect.on("mouseover", hideActivities);
}
 
function hideActivities() {
    var activities = window.top.$("#Node_navActivities");
    if(activities.length == 0) {
        setTimeout(function () { hideActivities(); }, 1000);
        return;
    }
    activities.parent().hide();
}

Neste caso não estou a verificar nenhum dado mas facilmente vocês colocam esse código, para isto funcionar terão que no OnLoad do formulário da entidade chamar o método hideNavigationButton.

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