Você já deve ter notado que há algum tempo os aplicativos do tipo Model Driven tem um espaço na lateral direita onde em alguns momentos, dependendo do contexto, a plataforma adiciona um painel lateral. Agora por exemplo, é muito utilizada para a questão do Microsoft Copilot.

Porém você também pode utilizar também esse espaço para colocar uma página customizada, uma exibição e até mesmo um formulário.

Porém antes de mostrar como utilizar, é necessário estar atento em algumas regras:

  • A largura mínima requerida do painel é de 300 pixels.
  • Os painéis são agrupados em dois grupos: Os que podem ser fechados e os que não podem.
  • Na ordenação eles ficam por ordem de criação e no grupos primeiros os não podem ser fechado e depois os que podem ser fechados.
  • Os painéis que não podem ser fechados são carregados no momento que o aplicativo é aberto.
  • Os painéis que podem ser fechados são carregados mediante ação.

Vamos iniciar então colocando painel com um webresource do tipo html para apresentar uma página.

<html>
  <head>
  </head>
  <body>
    <iframe src="https://blog.michaelfp.com.br" width="300" height="900" />
  </body>
<html>

Com esse meu html já incluído no Dataverse, agora devemos criar um javascript para chamar ele, o html, dentro do painel lateral. Ele será incluído no onload do formulário de contato.

function IncluirSidePane()
{
  Xrm.App.sidePanes.createPane({
                        title: "Blog Michael", //Titulo do Painel
                        imageSrc: "WebResources/mfp_/blog.svg", //icone de apresentação
                        paneId: "PainelBlog", //Id único do painel
                        canClose: false // true = sim, false = não. Permite fechar
                    }).then((pane) => {
                        //navega no webresource
                        pane.navigate({
                            pageType: "webresource",
                            webresourceName: "mfp_/blogmichael.htm",
                        })
                    });
}

E agora quando abrimos o nosso formulário podemos ver o painel lateral foi aberto, com a página.

Nosso painel está disponível para ser utilizado. Outro coisa também podemos carregar o formulário da conta relacionada ao contato. E com isso vamos utilizar o seguinte código abaixo.

function IncluirSidePaneConta(executionContext)
{
	const formContext = executionContext.getFormContext();
	let account = formContext.getAttribute("parentcustomerid");
	if (account)
	{
		let accountId = account.getValue()[0].id;
        let accountName = account.getValue()[0].name
		Xrm.App.sidePanes.createPane(
		{
			title: accountName, //titulo do painel
			imageSrc: "WebResources/mfp_/customer.svg", //icone
			hideHeader: true, //esconde o cabeçalho
			canClose: true, //permite fchar
			width: 600 //largura
		}).then((pane) => {
			pane.navigate(
			{
				pageType: "entityrecord", //Navegar para registro
				entityName: "account", //nome logico da entidade
				entityId: accountId, //id do registros
			})
		});
	}
}

E assim que carregamos o formulário, podemos ver que também abriu o formulário da conta relacionada. Isso pode ser usado para agilizar o acesso do usuário a dados relacionados ou a outras tabelas no processo de negócio.

E ai!? Me diga o que você achou dessa funcionalidade de painéis? No seu projeto ela seria útil? Eu entendo que ela é um abordagem muito boa para diminuir o uso de abas no browser abertas pelo usuário, bem como facilitar a visualização de informações.

Eu espero que tenha gostado e até o próximo post!

Leave a Reply

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

Protected by WP Anti Spam