Novos métodos na API de Javascript–Processos I

by Pedro Azevedo 9. February 2017 19:30

Boas pessoal,

Há algum tempo atrás realizei alguns posts sobre a API de Javascript no CRM 2013, com o CRM 2015 apareceram novos métodos. A principal alteração foi ao nível da barra de processos de negócio, vamos conhecer melhor estas alterações:

image

Assinalado a vermelho vemos o que foi adicionado entre as versões 2013 e 2015, que tem a ver com os processos, em que estes podem ser divididos em fases (stages) e passos (steps).

image

Começando pelo Xrm.Page.ui.process, onde conseguimos controlar a visibilidade e colocar expandida ou recolhida:

Xrm.Page.ui.process.setDisplayState("collapsed");
Xrm.Page.ui.process.setVisible(false);

image

image

Podemos ver o comportamento com cada um dos código individualmente executados. Para além de definirmos, podemos ver o estado:

//Pode retornar "collapsed" ou "expanded"
Xrm.Page.ui.process.getDisplayState();
 
//Devolve true ou false mediante estar visível ou não
Xrm.Page.ui.process.getVisible();

Passando para o Xrm.Page.data.process, vamos saber qual é o processo selecionado, para isso vamos chamar o seguinte script:

var activeProcess = Xrm.Page.data.process.getActiveProcess();
Xrm.Utility.alertDialog(activeProcess.getId() + " - " + activeProcess.getName());

image

Como podemos ver na imagem temos o guid e o nome do processo que está ativo. Agora vamos forçar que o processo mude para o próximo ou anterior stage, com o seguinte código:

function onload()
    var activeProcess = Xrm.Page.data.process.getActiveProcess;
    if (activeProcess != null) {
        Xrm.Page.data.process.movePrevious(function (result) {
            ReadResult(result)
        });
    }
 
    var activeProcess = Xrm.Page.data.process.getActiveProcess();
    if (activeProcess != null) {
        Xrm.Page.data.process.moveNext(function (result) {
            ReadResult(result)
        });
    }
}
 
function ReadResult(result){
    if (result == "success") {
        Xrm.Utility.alertDialog("Funciona");
    } else {
        Xrm.Utility.alertDialog("Temos um problema");
    }
}

image

Na imagem vemos o que aconteceu quando tentamos ir para o próximo stage do nosso processo. Aqui dá um problema porque para avançar a Lead é necessário Qualificar, ou seja, necessita de uma oportunidade criada.

Neste momento temos estado a mexer no processo que está selecionado. Mas uma das funcionalidades mais interessantes é o utilizador poder mudar de processo, então como posso eu mudar de processo com código? Vamos começar por obter todos os processos que um utilizador pode mudar, com o seguinte código:

Xrm.Page.data.process.getEnabledProcesses(function (processes) {
    for (var processId in processes) {
        Xrm.Utility.alertDialog("id: " + processId + " name: " + processes[processId]);
    }
});

image

image

Com um Id do processo que quero mudar, posso mudar com o seguinte código:

Xrm.Page.data.process.setActiveProcess("c0d9760e-b261-4a3b-8355-f75eb45b9c1c", function(result) {
    if(result == "success") {
     alert("Success");
    } else {
     alert("Invalid");
    }
});

image

Em relação a apenas a parte do processo é tudo, no próximo artigo falarei, sobre os Stages.

 

Até a próxima

Tags: , ,

Alterações ao programa MVP

by Administrator 3. February 2017 14:17

Boas pessoal,

Hoje venho a dar-vos a conhecer novidades sobre o programa Microsoft MVP, não sei se estão a par das últimas novidades sobre este programa, mas este vem sofrendo alterações para manter o programa ágil e atual. As mudanças este ano tem a ver com as nomeações e renovações, estas que até aqui tinham quatro ciclos, nomeadamente, Janeiro, Abril, Junho e Outubro.

Eu era do ciclo de Janeiro, ou seja, fui nomeado e depois renovado sempre em janeiro. Estes 4 ciclos vão acabar, por exemplo as nomeações passam a ser mensais, ou seja, no inicio de cada mês podem existir novos MVPs e as renovações são todas ao mesmo tempo em junho.

O que quer isto dizer que para o ano o primeiro post do ano não será da renovaçãp, mas espero estar a escrever o mesmo em julho Smile.

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