Dados Não Vinculativos Compartilhados Entre Painéis
Em App Builder é possível compartilhar dados entre dois Painéis sem precisar criar uma junção cruzada nos bastidores no Objeto de Negócios. Este artigo abordará 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 tem um Título e um Funcionário tem um Nome Completo. Após concluir o exercício de exemplo, nossa página ficará assim:
Etapa 1: Atualizar a Regra do Painel de Funcionários
Nesta etapa, atualizaremos a Regra de Negócios que dá suporte ao painel Employee para adicionar uma nova Coluna que aproveita a função Shared. Por exemplo: adicione uma coluna a Employee (Source) usando o valor shared('ProjectID')
, Alias como ProjectID e Cast the Logical como Unique ID.
Etapa 2: Crie uma Regra de CRUD Cram
Nesta etapa, criaremos uma Regra CRUD Cram com as tabelas Employee e Project, para inserir o Employee selecionado no Project usando a função Shared.
A Regra CRUD terá a Ação de Cram e alavancará as tabelas Employee (E) e Project (P).
Colunas para configurar para a Regra:
- E. EmployeeID tem como alvo o EmployeeID
- P.ProjectID tem como alvo o ProjectID
- NEWUUID() tem como alvo o ProjectEmployeeID
Etapa 3: Adicione a Regra CRUD a uma Ação no Objeto de Negócios do Funcionário
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 do Funcionário.
Para que isso funcione corretamente, precisaremos configurar dois registros de Vinculação para a Ação.
- EmployeeID para EmployeeID
- ProjectID para ProjectID
Etapa 4: Adicione 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 de Funcionários na página.
Etapa 5: Configurar a Vinculação do Painel
Nesta etapa, compartilhe o ProjectID por meio do Panel Binding, certificando-se de que o Employee Panel e o Project Assigned Employees estejam vinculados aos Projects. Você precisará adicionar informações de Binding Columns, que são vinculadas regularmente por padrão, então você selecionará inicialmente uma Column aleatória para o Child (Current) Panel e o ProjectID desejado como Parent.
Após adicionar as informações do Binding Panel, selecione e abra o registro Binding Columns e altere o valor Type para Shared.
Isso limitará as informações do resultado somente ao valor da Parent Column que você deseja compartilhar, que é o ProjectID neste exemplo. Clique em Save.
Agora, quando você atualizar a Page e clicar no botão Assign no Employees Panel, verá o Employee selecionado ser adicionado ao Selected Project no Project Assigned Employees Panel resultante. Observe que isso é feito sem precisar criar uma Cross Join no Employee Business Object. Cross Joins podem utilizar muitos recursos e, às vezes, tornar o processamento do aplicativo lento.
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 de Objeto de Negócio ou usá-lo em instruções Where.