Menu Designer
O Menu Designer permite a modelação do menu da aplicação a partir das operações (ServiceOperations, ExtensionOperations, ListOperations, ReportOperations e DasboardOperations) definidas nos vários módulos.
Este modelo existe na solução de produto junto com o próprio modelo de produto.
Conceitos Principais
Os conceitos principais do modelo são os seguintes:
Module Reference
Permite identificar uma referência para um módulo utilizado no produto, dos quais pretendemos incluir operações no menu.
Menu
Define a estrutura hierárquica de opções (tarefas) que compõem o menu da aplicação.
Um Menu define-se à custa de um ou vários Menus (submenus), até um limite de 3 níveis, com as suas respetivas opções (MenuOptions).
Root Menu (Application Root)
Este é o menu principal da aplicação que define os processos (opções incluídas neste root menu) e todo o âmbito de operações disponibilizadas pelo produto. Só pode existir um menu marcado desta forma.
As opções de menu definidas no root menu deverão definir/identificar as grandes áreas disponíveis na aplicação (processos) e a cada uma delas deverá ser atribuída obrigatoriamente uma cor que identificará todas as operações do seu ramo de menu.
Menu Options
Define cada uma das opções de um menu. Cada opção pode referenciar um submenu e/ou uma operation ou em alternativa um link externo.
Caso se trate de uma operation esta pode ser de 4 tipos:
- Service Operation: permite executar uma das operações de serviço;
- Extension Operation: permite executar uma das operações de serviço sobre uma entidade extensão;
- List Operation: permite apresentar uma lista específica;
- Dashboard Operations: permite apresentar um dashboard.
Desta forma, aqui é possível definir o que será despoletado após a seleção de cada uma das opções de um menu, sendo que o contexto de uma determinada opção condiciona que opções aparecem disponíveis num determinado momento.
Subscription Claims
É também neste menu que se define quais as subscription claims que serão aplicadas às entradas de menu de uma determninada subscrição.
Cada entrada de menu, pode ter uma ou várias subscription claims associadas a si própria, como também herdará as subscription claims da entrada de menu que seja seu pai (Inherited Subscription Claims).
Assim, se neste menu definirmos que uma determinada entrada de menu tem associada uma subscription claim, na aplicação, esta entrada de menu bem como os seus submenus, apenas ficarão disponíveis na aplicação para subscrições que tenham ativa essa mesma claim.
Roles
A definição de roles não é nada mais do que a definição de perfis de acesso a determinadas entidades e respetivas operações.
É neste modelo que se associa roles a cada um dos menus existentes, onde, cada menu terá de ter, obrigatoriamente, um e apenas um, role associado.
O root menu, por defeito, terá sempre atribuído um Role do tipo principal (com acesso a todas as operações que serão disponibilizadas para o produto em causa), o qual não poderá ser alterado.
As opções de menu (Menu Options, Quick Actions e Default Actions) disponíveis para associação a cada um dos menus dependerá tanto das operações especificadas para esse role, como das opções de menu que o seu menu pai disponibiliza, ou seja, as opções de menu disponíveis para inclusão no menu, resultam da interceção das operações disponibilizadas pelo menu pai, com as operações especificadas para o role.
Por menu pai, entende-se o menu Application (menu geral com todas as operações disponíveis para o produto), no caso de o menu que estamos a definir ser um subset do menu Application, ou menu pai, no caso de estarmos a definir um sub-menu de outro menu.
Para obter informação de como criar um role, pode ser consultado o documento "Como criar um role?".
Outputs Principais
É gerado, de forma automática, um script sql que tratará da inserção das entradas do menu, bem como das localizable resources e fará a atribuição (update) do processo a cada uma das operações presentes no menu.
Meta-modelo
A imagem seguinte apresenta uma visão simplificada do meta-modelo do menu model.
