Custom pages no Power Platform nos auxiliam bastante na agilidade em criar páginas para os nossos projetos de uma maneira prática e intuitiva. Porém as vezes precisamos que a página seja exibida através de um botão de ribbon, commandar bar ou através de alguma lógica disparada por javascript.

Porém ainda as vezes precisamos utilizar algumas informações que estão em um formulário ou no código que esta sendo processado para ser utilizado nela. E como fazemos isso? Pois bem, vamos lá que é algo simples e muito fácil.

Para esse exemplo, criei uma custom page que irá apresentar uma lista de contatos de uma conta.

Mas antes de criar o código, eu vou pegar o nome lógico da custom page para utilizar no código:


Agora vamos criar o seguinte javascript para ser utilizado ao chamar o botão:

function AbrirCustomPage(selectedId)
{
    var pageInput = {
        pageType: "custom", //define que é uma custom page
        name: "mfp_pagecontatos_bfba4", //nome lógico da custom page
        recordId: selectedId[0] //registro selecionado na home
    };
    
    var navigationOptions = {
        target: 2, //abrir uma modal
        width: 800,
        height: 800,
        position: 1, //centralizado
        title: "Listagem de Contatos"
    }
    
    Xrm.Navigation.navigateTo(pageInput,navigationOptions).then((sucesso)=>{
        //codigo com sucesso.
    },(error) => { alert(error); });
}

Agora vamos criar o botão! Para isso eu vou já utilizar a nova maneira, utilizando o command bar. Vou acessar um model-drive app e editar a command bar da tabela account e selecionar para editar da página home (main grid)

Com isso vou adicionar o botão e definir os seguintes parâmetros:

Action: Run Javascript
Library: Adicionar meu JS que foi criado anteriormente
Function Name: nome da minha função que nesse caso é “AbrirCustomPage
Parameter: Do tipo CRM e o valor “SelectedControlId”
Visibility: Baseado em formula -> CountRows(Self.Selected.AllItems) = 1

Além disso, adicione a página no aplicativo em que você esta criando o botão. Com isso teremos ela configurada.

Porém ainda não terminamos. Precisamos dizer para nossa custom page utilizar o parâmetro “recordId” como filtro. Para isso, vamos abrir novamente nossa custom page e vou criar uma váriavel e aplicar o valor como filtro.

Primeiramente, vou colocar no OnVisible() da minha página, a criação de uma variável com o parâmetro repassado através do javascript.

Agora vou aplicar a variável como filtro da minha galeria.

Salvo e público a custom page, além disso, precisamos publicar também o app aonde a custom page está adicionada para que ele publique com a última versão.
Após isso, abrimos nossa lista de contas, selecionamos o contato e clicamos no botão para apresentar a lista de contatos da conta selecionada.

Pronto! Nossa custom page filtrando conforme o item selecionado na grid.

PS: Se você quiser passar como parâmetro outro tipo de dado, você pode utilizar esse campo também. Apesar da representação dele indicar que recebe um ID, porém ele é um tipo string que você pode mandar o que desejar e trabalhar com ele da maneira que quiser na sua custom page.

Leave a Reply

Your email address will not be published. Required fields are marked *

Protected by WP Anti Spam