Histórico da Página
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.
(Obrigatório)
Informações Gerais
Especificação | |||
Produto |
| Framework |
|
Segmento Executor |
| ||
Projeto1 |
| PCREQ-10028 |
|
Requisito1 |
|
| |
País | ( X) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. |
Objetivo
Criar uma um mecanismo para que os itens de menu serão disponibilizados pelo servidor (RM.Host) e não mais pelo clientcliente (RM.exe e Portal).
Com essa mudança, teremos os seguintes benefícios:
- Conseguiremos enviar os menus do RM.exe e do Portal para o Fluig.
- A fábrica mantém de software da TOTVS mantém a flexibilidade da customização antes feita no Menu.xml e em suas customizações, antes feitas diretamente no arquivo menu.xml e agora no banco de dados. Dessa forma, dessa forma não necessitamos nos preocupar com atualização de versão, balance balanceamento de IIS (que necessitava da atualização do do menu.xml em em todos os ambienteambientes), o que antes era um grande transtorno demandando grande esforço.
- Usabilidade Melhor usabilidade para customização dos itens de menu do portal pelo cliente, pois será feito por tela comumpor um cadastro.
Definição da Regra de Negócio
Todos os produtos possuem o seu respectivo ActionModuleController e nele possui dois métodos virtuais sobrescritos (GetModuleMenu e GetProfileMenu) utilizados para retornar a ribbon winforms (com itens a serem apresentados na MDI .NetNET) e a ribbon profile (com os itens de menu que serão visualizados no portaportal).
Até agora existia existiam duas estratégias adotadas pelo produto para inserir itens que não serão visualizados na ribbon porém necessitam de permissão (ou seja, devem ser carregadas na treeView de segurança no cadastro de perfil), são elas:
- Inserir esses itens na ribbon profile
- Inserir esses itens na ribbon winforms e setar como visible false para que não sejam apresentados na nova MDI
Dessa forma a lib Lib fazia o merge dos itens de customização, gestão e ambiente da na ribbon do produto e apresentada apresentava em winforms e na treeView de segurança no cadastro de perfil.
A partir de agora os métodos GetModuleMenu e GetProfileMenu estão como obsoletos e serão removidos nas próximas versãoversões (ainda a definir), para isso é necessário que os produtos se adequem da seguinte forma:
- Implemente uma classe que herde de RMSMenuController, defina os itens conforme necessidade (Pages,Groups,Itens e suas respectivas Policies).
- No modelo antigo tínhamos o xxxActionModuleController (com as policies) e xxxRibbonControl (com os itens de menu) e a ligação entre os itens de menu e suas policies é feita pela tag de segurança, neste novo modelo está tudo dentro do controller.
- No modelo antigo tínhamos o xxxActionModuleController (com as policies) e xxxRibbonControl (com os itens de menu) e a ligação entre os itens de menu e suas policies é feita pela tag de segurança, neste novo modelo está tudo dentro do controller.
- Inserir esse controller na GMENU definindo a coluna MENUTYPE com os valores: 0 = winforms, 1 = Web, 2 = Profile.
Foram criadas 3 propriedades na RMSActionModuleController (que é o ancestral que o produto usa para implementação da Ribbon), são elas:
- ServerControllerName = Nome do controller que representa a ribbon winforms.
- ServerWebControllerName = Nome do controller que representa a ribbon web.
- ServerProfileControllerName = Nome do controller que representa os itens que não pertencem a nenhuma ribbon, porém são itens que necessitam de permissão
- . Este item está separado para que tenhamos um modelo mais coerente, porém caso o produto utilize o modelo de inserir
- itens no controller winforms como visible false irá funcionar, porém não é o recomendado pela lib, pois vemos segregar a responsabilidade dos controllers.
- Setar a classe xxxActionModuleController com as novas propriedades.
1) Aplicação Comportamento da aplicação Winforms
Irá buscar o controller setado na propriedade ServerControllerName e criar uma Ribbon com esses itens + customização, Gestão e Ambiente, lembrando que neste caso o método GetModuleMenu nem será chamado por framework.
2) Aplicação WebComportamento da aplicação Web (Portal)
Irá buscar o controller setado na propriedade ServerWebControllerName e criar um menu no portal com esses itens, lembrando que neste caso o todos os controllers inseridos na GMENU com o MenuType = 1, com esses menus em memória irá buscar se existe alguma customização dos itens de menu web na tabela GMENUCUSTOM e realizar as devidas adequações no menu, somente após isso entregar para o portal os itens de menu. O menu.xml é completamente ignorado por framework.
3) Gerenciamento Comportamento da funcionalidade de gerenciamento de permissões (Perfil)
Irá buscar os 3 controllers e montar a treeView de permissões no perfil, vale ressaltar que a trreview treeview não é montada com os itens que possuem tag de segurança 0 (zero) ou "null", e ; caso um agrupador esteja com 0 (zero) ou "null" ele e seus filhos não serão apresentados.
4) Passos para criar um controller.Como customizar os itens de menu do portal
Implemente uma classe que herde de RMSMenuController, defina os itens conforme necessidade(Pages,Groups,Itens e suas respectivas Policies) Esse item será utilizado para customizar o menu do portal, essa customização será utilizada pela fábrica e/ou pelo cliente. Antes era feita diretamente no menu.xml, agora temos um tela onde é permitido realizar a manipulação desses itens com as seguintes regras:
- Para itens padrões do sistema só é permitido habilitar/desabilitar
- Para itens novos é permitido inserir e colocá-lo em qualquer posição.
- Portando um item padrão que eu queira alterar o título, por exemplo, é necessário desabilitar o mesmo e criar um item customizado com a mesma action.
Inserir esse controller na GMENU, lembrando que o MENUTYPE deve ser(0 = winforms, 1 = Web, 2 = Profile)
Setar a classe xxxActionModuleController com as novas propriedades.
A funcionalidade está disponível em Gestão de Conteúdos/Cadastros/Menu Portal.
5) Foi criado uma parâmetro para ligar/desligar o menu server.
ENABLEMENUSERVER (Default false) e a partir da versão 12.1.16 o Default será true No modelo antigo tínhamos o xxxActionModuleController(com as policies) e xxxRibbonControl(com os itens de menu) e a ligação entre os itens de menu e suas policies é feita pela tag de segurança, neste novo modelo está tudo dentro do controller.
Tabelas Utilizadas
- GMENU
- Tabela que armazena os menus do RM, a coluna "MenuType " indica se o item é winforms, web ou profile.
- GMENUCUSTOM
- Tabela que indica os itens customizados pela fábrica ou pelo cliente
Opcional
Protótipo de Tela
<Caso necessário inclua protótipos de telas com o objetivo de facilitar o entendimento do requisito, apresentar conceitos e funcionalidades do software>.
Protótipo 01
Opcional
Fluxo do Processo
<Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>.
Opcional
Dicionário de Dados
Arquivo ou Código do Script: AAA – Negociação Financeira / *Versao=CP.2014.12_03*/
Índice | Chave |
01 | <FI9_FILIAL+FI9_IDDARF+FI9_STATUS> |
02 | <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_EMISS+FI9_IDDARF> |
03 | <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_PREFIX+FI9_NUM+FI9_PARCEL+FI9_TIPO> |
Campo | <AAA_PERESP> |
Tipo | <N> |
Tamanho | <6> |
Valor Inicial | <Varia de acordo com o tipo informado. Por exemplo, quando o campo “tipo” for date, neste campo pode ser informado uma data>. |
Mandatório | Sim ( ) Não ( ) |
Descrição | <Referência Mínima para Cálculo> |
Título | <Ref.Calc.> |
Picture | <@E999.99> |
Help de Campo | <Informar o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação> |
(Opcional)
Grupo de Perguntas
<Informações utilizadas na linha Protheus>.
Nome: FINSRF2
X1_ORDEM | 01 |
X1_PERGUNT | Emissão De |
X1_TIPO | D |
X1_TAMANHO | 8 |
X1_GSC | G |
X1_VAR01 | MV_PAR01 |
X1_DEF01 | Comum |
X1_CNT01 | '01/01/08' |
X1_HELP | Data inicial do intervalo de emissões das guias de DARF a serem consideradas na seleção dos dados para o relatório |
- , a coluna "MENUTYPE" indica de o item é Padrão ou customizado.
- , a coluna "MENUTYPE" indica de o item é Padrão ou customizado.
Customização de itens de menu (somente para o Portal)
Defina se o item será Padrão ou Customizado:
Para o item Default será permitido alterar a visibilidade, posição e caption do mesmo:
Visibilidade:
- Selecione o tipo do menu como Padrão, e selecione o item de menu desejado na TreeView conforme print abaixo.
- Altere a visibilidade do mesmo
- Esse item será removido do portal
Posição:
- Selecione o tipo do menu como Padrão, e selecione o item de menu desejado na TreeView conforme print abaixo.
- Altere a posição do mesmo.
- A posição será alterado no portal.
Caption:
- Selecione o tipo do menu como Padrão, e selecione o item de menu desejado na TreeView conforme print abaixo.
- Altere o caption do mesmo.
- O Caption será alterado no portal
.
Para itens customizados é permitido criar novas Páginas, Grupos, Itens e Subitens, definindo a posição que o mesmo será inserido.
- Selecione o Tipo de Menu como customizado, e selecione o item de menu pai na TreeView conforme print abaixo:
- Preencha os dados do item
Identificador: É o Identificador do item na arvore de menu.
Idenficicador do controller: É o identificador da classe que representa o menu.
Identificador do pai: É o identificador do pai do item que será criado na arvore de menu.
Caption: É o texto que será exibido no portal.
Descrição: Descrição do menu.
Link da imagem: Caminho interno do ícone do menu que será criado.
Tag de segurança: Tag de segurança do menu que será criado.
Action: Nome da action do menu que será criado.
NavigateURL: Link externo caso necessite de um menu que faça um redirecionamento para outras páginas. Esse item será inserido conforme dados cadastrados.
4. Após a criação de um item customizado que possua Tag de segurança, será criado no perfíl do módulo criado, a arvore de permissionamento do item customizado.Informações title Observação Itens customizados que não possuam filhos, que possuam Actions ou NavigateURL preencidos, não serão exibidos no Portal.
(Opcional)
Consulta Padrão
<Informações utilizadas na linha Protheus>
Consulta: AMB
Descrição
Configurações de Planejamento
Tipo
Consulta Padrão
Tabela
“AMB”
Índice
“Código”
Campo
“Código”; ”Descrição”
Retorno
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|