CRM 2013 - Obter tipo de formulário

by Pedro Azevedo 17. November 2013 11:28

 

Boas Pessoal,

Hoje deixo aqui um post rápido, apenas porque precisei desta informação. E decidi criar uma categoria de posts sobre funções javascript da API Javascript do CRM 2013. Por isso já falei com getSaveMode. Desta vez vou citar outro método o getFormType que nos dá qual o tipo de formulário que estamos a trabalhar.

Por exemplo se estamos num form de criação, actualização ou se estamos em readonly. Isto é útil.

Aqui ficam os vários valores possíveis:

Form Type

Value

Undefined

0

Create

1

Update

2

Read Only

3

Disabled

4

Quick Create

5

Bulk Edit

6

Read Optimized

11

 

Vejam aqui um pequeno troço que como utilizar esta função:

function alertFormType()

{

    var formType = Xrm.Page.ui.getFormType();

    alert(formType);

}

 

Fonte: http://msdn.microsoft.com/en-us/library/gg327828.aspx#BKMK_getFormType~

Até a próxima.

Tags: , ,

CRM 2013 - Obter o modo ou razão de um registo gravado

by Pedro Azevedo 17. November 2013 09:27

 

Boas pessoal,

Na sequência dos posts de manusear o AutoSave achei pertinente mostrar que como é que no CRM 2013 se obtêm o modo ou a razão que um registo é gravado, através da função getSaveMode, eis os valores que a função retorna:

 

Entity

Event Mode

Value

All

Guardar

1

All

Guardar e Fechar

2

All

Guardar e Novo

59

All

AutoSave

70

Activities

Guardar como Concluída

58

All

Ativar

5

All

Reativar

6

User or Team owned entities

Atribuir

47

Email (E-mail)

Enviar

7

Lead

Qualificar

16

Lead

Desqualificar

15

 

O problema é que esta lista é muito diminuta comparada com a que existia no CRM 2011, podemos comparar no seguinte artigo. Apanhar quando por exemplo uma Proposta era ganha ou perdida era muito usado, pois permitia agirmos mediante um destes eventos. No CRM 2013 não é lançado nenhum evento de guardar.

Para experimentarem coloquem o seguinte código no onsave do formulário:

function onclosequote(context)
{
   var saveMode = context.getEventArgs().getSaveMode();
   alert(saveMode);
}

E não se esqueçam de dizer para passar no primeiro parâmetro o contexto para que o método consiga executar.

Neste momento e dependendo do que queremos fazer podemos contornar, tenho contornado este problema utilizando plugins. Ou no onload do evento por exemplo da encomenda, onde verifico qual o tipo de formulário e se tem alguma proposta associada.

Até a próxima.

Tags: , ,

CRM 2013 - Gerir funcionalidade AutoSave

by Pedro Azevedo 13. November 2013 07:32

Boas Pessoal,

Como prometido aqui estou eu a falar sobre como podemos gerir o Autosave, como é que o podemos ativar ou desativar e como vamos lidar com ele via código.

Como eu apresentei esta nova funcionalidade parece que parecia que era inevitável utilizar, mas esta decisão terá que ser realizada com muita ponderação. Já que como referi no último post vai passar pelos eventos (OnSave, Plugins e Workflows) de um guardar “normal”, ou seja, de 30 em 30 segundos poderá executar estes eventos. Por essa razão deveremos ponderar quando utilizar e sensibilizar todos os utilizadores desta nova funcionalidade.

Vamos então ver onde podemos ativar ou desativar esta funcionalidade. Se formos a barra de navegação e escolhermos Definições -> Administração. Temos a opção Definições de Sistema e aqui podemos ver esta opção:

De realçar que este parâmetro apenas vai fazer efeito sobre os 30 segundos, ou seja, o formulário vai deixar de gravar de 30 em 30 segundos. Mas ele vai gravar sempre automaticamente quando fecharmos uma tab, se utilizarmos a barra navegação ou utilizarmos os botões de back e foward do browser.

Infelizmente esta funcionalidade só pode ser configurada ao nível da organização e não a cada entidade. O que podia fazer sentido, porque mediante a entidade e a complexidade dos eventos que ocorrem esta funcionalidade poderia ser útil.

Uma maneira de lidarmos com o problema anterior é deixarmos este setting ativo e controlarmos o autosave através de código em cada entidade.

A maneira de controlarmos através de código é no evento onsave colocarmos o seguinte código:

function stopAutoSave(contexto) {

    var eArgs = contexto.getEventArgs();

    if (eArgs.getSaveMode() == 70) { //AutoSave

        eArgs.preventDefault();

    }

    else if (eArgs.getSaveMode() == 1) { //Guardar

        alert(‘Guardar e Fechar’);

    }

    else if (eArgs.getSaveMode() == 2) { //Guardar e Fechar

        alert(‘Guardar e Fechar’);

    }

    else if (eArgs.getSaveMode() == 59) { //Guardar e Novo

        alert(‘Guardar e Fechar’);

    }

}

Para mais informação sobre os valores do método getSaveMode estará neste post.

O código que referi é genérico para qualquer entidade, por isso basta fazermos upload como Recurso Web:

 

Depois em qualquer entidade poderemos adicionar este Recurso Web e depois é chamar o método stopAutoSave no OnSave do formulário:

 

Quando se adiciona o método não esquecer de marcar a opção para passar o conecto no primeiro parâmetro, e que se vocês repararem já estamos a espera de o receber. Finalmente não esquecer de publicar estas alterações.

 

 

Até a próxima

Tags: , , ,

CRM 2011 - UR15

by Pedro Azevedo 10. November 2013 02:41

 

Boas pessoal,

Está disponível o Update Rollup 15, podem descarregar aqui. Todas as informações estão disponíveis aqui com todos os dados e novidades.

De realçar temos uma grande melhoria no cliente do Outlook, algumas das novidades:

·         Isolamento do processo do cliente para o Outlook do processo do próprio Outlook, com esta nova funcionalidade deixa de haver partilha de memória entre as duas aplicações. Esta nova funcionalidade também está escalonada para o CRM 2013.

·         Melhoria da gestão de memória para o SQL Server CE 4.0

·         Entre outras funcionalidades que aconselho a lerem no link acima.

 

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