Ir para o conteúdo

Dados Não Vinculativos Compartilhados Entre Painéis

No Vinyl é possível compartilhar dados entre dois Painéis sem a necessidade de criar uma junção cruzada nos bastidores do Business Object. Este artigo mostrará um exemplo de configuração de dados não vinculativos compartilhados entre painéis, aproveitando o Shared() função.

Neste exemplo, temos uma lista de Projetos e uma lista de Funcionários e queremos atribuir um Funcionário a um Projeto simplesmente clicando em um botão da lista. Neste exemplo, um Projeto possui um Cargo e um Funcionário possui um Nome Completo. Depois de concluir o exercício de exemplo, nossa página ficará assim:

Dados compartilhados

Etapa 1: Atualizar a Regra do Painel de Funcionários

Nesta etapa, atualizaremos a Regra de Negócios que suporta o painel Funcionário para adicionar uma nova Coluna que aproveite a função Compartilhada. Por exemplo: adicione uma coluna a Funcionário (Fonte) usando o valor shared('ProjectID'), Alias como ProjectID e Cast the Logic como ID exclusivo.

Etapa 2: Crie uma Regra CRUD Cram

Nesta etapa criaremos uma Regra CRUD Cram com as tabelas Funcionário e Projeto, para inserir o Funcionário selecionado ao Projeto utilizando a função Compartilhada.

A Regra Crud terá a Ação de Cram, e alavancará as tabelas Funcionário (E) e Projeto (P).

Colunas a serem configuradas para regra:

  • E. EmployeeID tem como alvo o EmployeeID
  • P.ProjectID tem como alvo o ProjectID
  • NEWUUID() tem como alvo o ProjectEmployeeID

Etapa 3: Adicionar a Regra CRUD a uma Ação no Objeto de Negócios Employee

Nesta etapa adicionaremos a regra CRUD Cram a uma ação para um evento personalizado que criaremos chamado "AssignEmployee". Defina o Escopo de Atualização como Global. Associe este Evento ao Objeto de Negócios Funcionário.

Para que isso funcione corretamente, precisaremos configurar dois registros Binding para a Action.

  1. EmployeeID para EmployeeID
  2. ProjectID para ProjectID

Etapa 4: Adicionar o Evento a um Botão

Nesta etapa adicionaremos o evento personalizado AssignEmployee criado na etapa 2 a um controle de botão chamado "Assign" que adicionaremos ao painel Employee na página.

Etapa 5: Configurar a Vinculação do Painel

Nesta etapa, compartilhe o ProjectID por meio da Associação de Painel, certificando-se de que o Painel de Funcionários e o painel Funcionários Atribuídos ao Projeto estejam ambos vinculados a Projetos. Você precisará adicionar informações de Colunas de Ligação, cujo padrão é uma ligação regular, então você selecionará inicialmente uma Coluna aleatória para o Painel Filho (Atual) e o ProjectID desejado como Pai.

Depois de adicionar as informações do Painel de Ligação, selecione e abra o registro Colunas de Ligação e altere o valor Tipo para Compartilhado.

Isso limitará as informações do resultado apenas ao valor da Coluna Pai que você deseja compartilhar, que é ProjectID neste exemplo. Clique em Salvar.

Agora, ao atualizar a página e clicar no botão Atribuir no Painel de Funcionários, você verá o Funcionário selecionado ser adicionado ao Projeto selecionado no Painel de Funcionários Atribuídos do Projeto resultante. Observe que isso é feito sem a necessidade de criar uma junção cruzada no objeto de negócios Employee. Cross Joins podem utilizar muitos recursos e, às vezes, retardar o processamento do aplicativo.

Nota

Dependendo do caso de uso ou da frequência com que uma Coluna Compartilhada é usada em Ações, também é possível adicionar o valor Compartilhado a uma seleção de Coluna do Objeto de Negócios ou usá-lo em instruções Where.