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 mecanismo que os itens de menu serão disponibilizados pelo servidor(RM.Host) e não mais pelo client(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 a flexibilidade da customização antes feita no Menu.xml e agora no banco, dessa forma não necessitamos nos preocupar com atualização de versão, balance de IIS(que necessitava da atualização do menu.xml em todos os ambiente), o que antes era um grande transtorno.
- Usabilidade para customização dos itens de menu do portal pelo cliente, pois será feito por tela comum.
Definição da Regra de Negócio
Todos os produtos possuem o seu respectivo ActionModuleController e nele possui dois métodos virtuais (GetModuleMenu e GetProfileMenu) utilizados para retornar a ribbon winforms(com itens a serem apresentados na MDI .Net) e a ribbon profile(com os itens de menu que serão visualizados no porta).
Até agora existia 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 fazia o merge dos itens de customização, gestão e ambiente da ribbon do produto e apresentada 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ão, para isso é necessário que os produtos se adequem da seguinte forma:
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 item no controller winforms como visible false irá funcionar, porém não é o recomendado pela lib, pois vemos segregar a responsabilidade dos controllers.
1) 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 Web
Irá buscar o controller setado na propriedade ServerWebControllerName e criar um menu no portal com esses itens, lembrando que neste caso o menu.xml é ignorado por framework.
3) Gerenciamento de permissões(Perfil)
Irá buscar os 3 controllers e montar a treeView de permissões no perfil, vale ressaltar que a trreview 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.
Implemente uma classe que herde de RMSMenuController, defina os itens conforme necessidade(Pages,Groups,Itens e suas respectivas Policies).
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.
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 |
(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 | AMB->AMB_CODIGO |
(Opcional)
Estrutura de Menu
<Informações utilizadas na linha Datasul>.
Procedimentos
Procedimento |
|
|
|
Descrição | (Max 40 posições) | (Max 40 posições) | (Max 40 posições) |
Módulo |
|
|
|
Programa base |
|
|
|
Nome Menu | (Max 32 posições) | (Max 32 posições) | (Max 32 posições) |
Interface | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex |
Registro padrão | Sim | Sim | Sim |
Visualiza Menu | Sim/Não | Sim/Não | Sim/Não |
Release de Liberação |
|
|
|
Programas
Programa |
|
|
|
Descrição | (Max 40 posições) | (Max 40 posições) | (Max 40 posições) |
Nome Externo |
|
|
|
Nome Menu/Programa | (Max 32 posições) | (Max 32 posições) | (Max 32 posições) |
Nome Verbalizado[1] | (Max 254 posições) | (Max 254 posições) | (Max 254 posições) |
Procedimento |
|
|
|
Template | (Verificar lista de opções no man01211) | (Verificar lista de opções no man01211) | (Verificar lista de opções no man01211) |
Tipo[2] | Consulta/Manutenção/ Relatório/Tarefas | Consulta/Manutenção/ Relatório/Tarefas | Consulta/Manutenção/ Relatório/Tarefas |
Interface | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex |
Categoria[3] |
|
|
|
Executa via RPC | Sim/Não | Sim/Não | Sim/Não |
Registro padrão | Sim | Sim | Sim |
Outro Produto | Não | Não | Não |
Visualiza Menu | Sim/Não | Sim/Não | Sim/Não |
Query on-line | Sim/Não | Sim/Não | Sim/Não |
Log Exec. | Sim/Não | Sim/Não | Sim/Não |
Rotina (EMS) |
|
|
|
Sub-Rotina (EMS) |
|
|
|
Localização dentro da Sub Rotina (EMS) |
|
|
|
Compact[4] | Sim/Não | Sim/Não | Sim/Não |
Home[5] | Sim/Não | Sim/Não | Sim/Não |
Posição do Portlet[6] | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right |
Informar os papeis com os quais o programa deve ser vinculado |
|
|
|
Cadastro de Papéis
<O cadastro de papéis é obrigatório para os projetos de desenvolvimento FLEX a partir do Datasul 10>.
<Lembrete: o nome dos papeis em inglês descrito neste ponto do documento, devem ser homologados pela equipe de tradução>.
Código Papel | (máx 3 posições) |
Descrição em Português* |
|
Descrição em Inglês* |
|
[1] Nome Verbalizado é obrigatório para desenvolvimentos no Datasul 10 em diante.
[2] Tipo é obrigatório para desenvolvimento no Datasul 10 em diante
[3] Categorias são obrigatórias para os programas FLEX.
[4] Obrigatório quando o projeto for FLEX
[5] Obrigatório quando o projeto for FLEX
[6] Obrigatório quando o projeto for FLEX
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|