Apresentação do 24HOP - Portuguese Edition 2016

by Administrator 20. November 2016 14:42

Boas Pessoal,

Aqui estou para relatar e disponibilizar a apresentação que apresentei no 24HOP - Portuguese Edition 2016. Antes de disponibilizar a apresentação, deixem-me partilhar com vocês esta nova experiência, devem estar a pensar que estou maluquinho pois já tenho feito várias apresentações, mas esta tinha um aspeto diferente. Realizar uma palestra sem público. Mais uma vez devem estar a pensar que pirei, então não será melhor realizar uma palestra sem público e assim não ter a pressão dos mesmos?

Deixem-me dizer que não, pois sem público ao vivo nós não conseguimos perceber se estes estão a gostar, quando temos um público ao vivo e vemos que os estamos a perder, acentuamos algo para ser mais motivador, mandamos uma piada e temos feedback, numa sessão onde temos público online e que não conseguimos obter nenhum feedback foi das experiências mais estranhas e prefiro 1000 vezes fazer apresentações onde estamos a ver a nossa plateia.

Em relação ao conteúdo aqui ficam os slides e dizer que a gravação do vídeo também está online, basta para isso registarem-se:

 

Até a próxima

Tags: , , , ,

Novos métodos na API de Javascript – Processos II

by Pedro Azevedo 14. November 2016 16:38

Boas pessoal,

Depois do post anterior a falar sobre a barra de processos e de ter falado apenas do processo vamos agora falar sobre os stages. Vamos ver a que dados podemos aceder, sobre os stages:

var StageCollection = activeProcess.getStages();
 
StageCollection.forEach(function (stage, n) {
    Xrm.Utility.alertDialog("Categoria Stage -> " + stage.getCategory().getValue());
    Xrm.Utility.alertDialog("Id do Stage -> " + stage.getId());
 
    Xrm.Utility.alertDialog("Nome da Entidade da Stage -> " + stage.getEntityName());
    Xrm.Utility.alertDialog("Nome da Stage -> " + stage.getName());
    Xrm.Utility.alertDialog("Estado da Stage -> " + stage.getStatus());
 
    Xrm.Utility.alertDialog("Número de Steps -> " + stage.getSteps().getLength());
});

E este é o resultado:

image_thumb11_thumb

image_thumb13_thumb

image_thumb15_thumb

image_thumb16_thumb

image_thumb17_thumb

image_thumb18_thumb

image_thumb23_thumb

image53_thumb_thumb

image_thumb24_thumb

Não coloquei aqui os passos todos, podemos ver todas as informações do primeiro stage, que é o que está ativo, depois mostro o próximo stage e vejam que já está noutra entidade e que neste momento está inativo.

Vamos ver como podemos obter apenas o stage que está ativo:

function onload() {
    var activeStage = Xrm.Page.data.process.getActiveStage();
    Xrm.Utility.alertDialog(activeStage.getId() + " - " + activeStage.getName());
}

image_thumb1_thumb

Como podemos ver na imagem temos o guid e o nome do stage que está ativo. Claro que podemos ativar um stage com o seguinte código:

Xrm.Page.data.process.setActiveStage("15322A8F-67B8-47FB-8763-13A28686C29D", function(result) {
    if(result == "success") {
        Xrm.Utility.alertDialog("Success");
    } else {
        Xrm.Utility.alertDialog("Invalid");
    }
});

No post anterior não referi mas a função que colocar outro stage ativo e semelhança do que coloca o processo ativo, a função para além do sucesso e insucesso, e principalmente no caso de insucesso ele dá-nos mais razões para o insucesso, vamos ver o exemplo para este caso que outros valores podem ser passados a função:

  • crossEntity – o stage terá que ser sobre a entidade corrente;
  • invalid – pode ser três razões:
    • O Id do stage não é válido
    • O stage ativo não é o que está selecionado
    • O registo não está salvo
  • unreachable – o passo está noutro path
  • dirtyForm – se os dados da página não está gravado

Um método interessante é o getActivePath que nos dá qual é o caminho dos stages que faltam baseado nas regras de ramificações (mediante valores do formulário o nosso processo de negócio pode ter várias ramificações) e os dados presentes no registo, vejam um exemplo:

var activePathCollection = Xrm.Page.data.process.getActivePath();
activePathCollection.forEach(function (stage, n) {
    Xrm.Utility.alertDialog("Id do Stage -> " + n);
    
    var stageSteps = stage.getSteps();
    stageSteps.forEach(function (step, i) {
        Xrm.Utility.alertDialog("Nome do Passo -> " + step.getName());
        Xrm.Utility.alertDialog("Atributo do Passo -> " + step.getAttribute());
        Xrm.Utility.alertDialog("Passo Necessário -> " + step.isRequired());
    })
});

Com o método anterior, também vemos os métodos que podem ser executados sobre cada step, ou seja, podemos ver o nome do passo, qual o atributo e saber se esse atributo é necessário ou não.

Só nos falta falar nos eventos, aqui a API possibilita-nos saber quando um processo é alterado ou selecionado, da seguinte maneira:

Xrm.Page.data.process.addOnStageChange(function () {
    Xrm.Utility.alertDialog("O Stage foi modificado");
});
 
Xrm.Page.data.process.addOnStageSelected(function () {
    Xrm.Utility.alertDialog("O Stage foi selecionado");
});

image_thumb[3]

image_thumb[1]

A primeira mensagem é quando eu digo que quero mudar de processo, ou seja, disse que quero ir para a próxima fase. A segunda mensagem é quando eu seleciono, ou seja, por exemplo quero ver o que está na próxima fase, ou o que já foi escolhido na fase anterior.

Até a próxima

Tags: , ,

Participação no 24HOP - Portuguese Edition 2016

by Administrator 5. November 2016 14:21

Boas pessoal,

Venho aqui divulgar um evento em que vou participar como palestrante. O evento é o 24HOP - Portuguese Edition 2016, um evento com temas relativos a plataforma de dados da Microsoft. Esta é a versão portuguesa deste evento.

A minha palestra vai ter o título: "Common Data Model (CDM), uma nova base dados?", e vai ser 18 de novembro as 21h no horário de Portugal, quer isto dizer que o evento é em parceria com palestrantes do Brasil. A palestra vai ser então sobre uma nova base dados para a nova arquitetura de aplicações de negócio.

Para obterem mais informações e para se inscreverem podem aceder aqui.

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