Page tree
Skip to end of metadata
Go to start of metadata


Algumas informações dessa página fazem parte da próxima atualização do Cronapp (v. 2.6).


O objetivo do diagrama de dados é descrever a estrutura das classes, seus atributos e relacionamentos no sistema. É através do diagrama que geramos automaticamente a camada de persistência e os CRUDs.



Figura 1 - Classes do Diagrama

Classes

A classes que são geradas junto aos projetos Cronapp contemplam as funcionalidades de Permissão de Segurança, Log de Auditoria e registros dos dispositivos móveis. Para mais detalhes, acesse os links da coluna Funcionalidades.

Nome da Entidade

Descrição

Funcionalidades
UserUsuários.Permissão de Segurança
RoleGrupos (função).
LoginLogins de provedores externos para um usuário. 
SecurablePermissionáveis.
View

Páginas com restrições de acesso.

RoleSecurableAssocia grupos e permissionáveis.

UserSecurable

Associa usuários e permissionáveis.

UserRoleAssocia usuário e grupos (função).
AuditLogRegistra informações de evento ocorrido no sistema. Log de Auditoria
DeviceRegistra dispositivos que acessaram o sistema mobile.Dispositivos mobile

Classe Device

Tabela responsável por armazenar informações dos dispositivos móveis que acessaram o sistema mobile. 

Coluna do Banco

Tipo

Função

id  TextoChave primária.
token  TextoToken do dispositivo.
platform  TextoPlataforma do dispositivo.
model  TextoModelo do dispositivo.
platformVersion  TextoVersão da plataforma.
appName  TextoNome da aplicação que acessou a base de dados.
appVersion  TextoVersão da aplicação que acessou a base de dados.

Menu superior

Nesse menu se encontra todas as propriedades e ajustes do diagrama em si, como gerar a persistência, trocar de banco, filtros das classes, visões etc.


Figura 2 - Menu superior do diagrama de classes


  1. Gerar camada de persistência: responsável por gerar as camada entity e dao.
  2. Gerar crud: cria os formulários CRUD na camada view nas classes do diagrama.
  3. Gerar diagrama a partir do banco de dados: faz engenharia reversa a partir de um banco de dados cadastrado no projeto. essa opção só fica disponível ao criar um segundo diagrama no projeto.
  4. Organizar elementos do diagrama: organiza toda a visualização das classes do diagrama.
  5. Detectar relacionamentos: sinaliza as classes geradas em relacionamentos NtoM.
  6. Exportar diagrama em: exporta o diagrama em dois formatos diferentes:
    • SVG
    • PDF
  7. Bloquear/Desbloquear Diagrama: impede alterações no diagrama.
  8. Zoom: ferramenta para aumentar ou diminuir zoom da área do diagrama.
  9. Banco de dados: selecionar o banco de dados que será trabalhado, já que algumas aplicações podem ter mais de um banco.
  10. Namespace: nome do espaço de trabalho
  11. Visão: escolher a visualização do diagrama a partir da visão selecionada, como por exemplo visão "produto", mostrará apenas as classes, relacionamentos que tem interação direta com produto. 
  12. Filtro por visão: filtrar as classes e relacionamentos que serão mostrados na visão, cria novas visões.
  13. Buscar: buscar controle, ferramenta.

Menu lateral

Nesse menu se encontram as ferramentas das classes, assim como seus aspectos.

Figura 3 - Menu lateral

Controle

Onde as ferramentas de relacionamentos e criação de novas classes se encontram.

  • Tools: ferramentas de relacionamento, para adicionar o relacionamento entre classes selecione o relacionamento, em seguida as classes que se relacionarão:
    • 1to1: cada uma das duas entidades envolvidas referencia obrigatoriamente apenas uma unidade da outra.
    • 1toN: uma das entidades envolvidas pode referenciar várias unidades da outra, porém, do outro lado cada uma das várias unidades referenciadas só podem estar ligada uma unidade da outra entidade.
    • NtoM: neste tipo de relacionamento cada entidade, de ambos os lados, pode referenciar múltiplas unidades da outra.
  • Class: adiciona uma classe ao diagrama, basta arrastá-la para área do diagrama.

Propriedades e eventos

Ao selecionar uma classe do diagrama ou ligação entre duas classes, a pasta control abrirá algumas propriedades que podem ser alteradas, assim como eventos.

Estrutura

Exibe as classes existentes e seus relacionamentos com outras classes. Clique em uma classe para centralizá-la no diagrama, útil em grandes diagramas.


Figura 3.1 - Classes e a lista de seus relacionamentos

Estrutura da Classe

Ao criar uma classe você pode adicionar um nome e dar atribuir atributos. 

É possível adicionar atributos de armazenamento em quatro locais diferentes: Banco de Dados (não recomendado, confira o Manual de Boas Práticas), Dropbox, S3 (Amazon) ou Serviços de Cloud.


Figura 4.1 - Manipulação de classe



Figura 4.2 - Edição do atributo


  1. Class: nome que você escolherá para a classe.
  2. Database Table: nome que você escolherá para a tabela no banco de dados.
  3. Auditoria em Log: permite a criação de log para essa tabela. veja mais informações na documentação.
  4. Pesquisar: pesquisa o atributo pelo ID.
  5. Adicionar: adiciona um novo atributo na classe.
  6. Atualizar: recarrega os campos dos atributos exibidos na grade.
  7. Atributo: campo para definir o nome do atributo na classe java. Quando esse é definido, automaticamente a coluna do banco e o rótulo recebem o mesmo nome.
  8. Coluna do Banco: nome do campo no banco de dados.
  9. Rótulo: rótulo do front-end. Nome da coluna que será exibida no CRUD gerado pelo Assistente de View para o Diagrama.
  10. Tipo: caixa de seleção para escolher o tipo do atributo, se ela será uma string, um inteiro, um date.
  11. Chave: define o campo como chave primaria da tabela, as chaves nunca se repetem na mesma tabela e, desta forma, podem ser usadas como um índice de referência para criar relacionamentos com as demais tabelas do banco de dados.
  12. Permite nulo: define se o campo permitirá valores nulos.
  13. Editar: abre mais propriedades referente ao atributo.
  14. Excluir: apaga o atributo selecionado.
  15. Permissão: ao clicar no ícone de um atributo você poderá alterar as permissões de CRUD e filtro para determinados perfis.
  16. Tamanho: tamanho do campo no banco de dados. Funciona de acordo com o tipo do campo adotado. Em campos do tipo string (varchar), essa coluna define a quantidade máxima de caracteres. 
  17. Precisão: quantidade total de algarismos aceitos em um campo do tipo numérico fracionado, contando a parte inteira e a parte fracionada.
  18. Escala: quantidade de algarismos que será configurada para a parte fracionada no número.

    As colunas Precisão e Escala somente são habilitadas à escrita quando o tipo do atributo escolhido na coluna Tipo for correspondente a um tipo numérico fracionado. Ex. DoubleLong etc.

  19. Valor padrão: atribui uma expressão java ao atributo ou um valor padrão de um tipo parametrizado, caso necessário. No exemplo da (imagem 2) há uma expressão para que o ID obtenha um valor randômico único.
  20. Máscara: campo será configurado para ter a entrada rotulada com a expressão de máscara definida. Existem algumas máscaras padrões ou você poderá adicionar uma específica; Ex: uma máscara de telefone celular (99) 9 9999-9999.
  21. Único: marcando essa opção, o valor do campo será único na tabela.
  22. Ignorar no REST: define se o campo poderá ser ignorado, não preenchido.
  23. Tipo de PK: tipo do campo da chave primária. Contém opções de tratamento da chave primária. Podem ser selecionados os valores: 
    • Nova GUID: define um conjunto de caracteres no padrão Universally Unique Identifier (UUID) gerados pelo servidor da aplicação, seu tipo deverá ser texto (java.lang.String (varchar)).
    • Identidade: define a chave primária como um campo numérico auto incremental. O tipo do campo deverá ser selecionado como inteiro. 
    • Nenhum: não configura nenhum tratamento especial para o campo de chave primária.
  24. Transitório: normalmente usados em atributos que passam por constantes modificações durante a aplicação. Atributos transitórios não geram campos na tabela, pois não participam da persistência e seus valores nunca são armazenados no banco de dados.
  25. Pode Inserir: define que o atributo pode ser inserido.

  26. Pode atualizar: define que o atributo como editável.
  27. Criptografar: define que o atributo será criptografado, como por exemplo as senhas do usuário.
  28. Coluna Referenciada: usado para informar manualmente o nome da coluna de chave primária referenciada por esta coluna de chave estrangeira. Por padrão, o Cronapp já faz essa referência de forma automática.
  29. Sequência: entidades criadas em um banco de dados afim de controlarmos a atribuição de valores às nossas chaves primárias; tratado como SEQUENCE em Banco de Dados.
  30. Pesquisável: seta que o atributo pode ser pesquisado na aplicação (filtro no CRUD).
  31. Remover em Cascata: remove dados em cascata vinculados àquele campo. Útil em relacionamentos 1 to N. Ex: Entidades Pai e Filho, apagando um registro Pai, todos os registros Filhos relacionados serão excluídos automaticamente.
  32. Coluna de Versão: versiona o objeto da entidade a partir das modificações que forem feitas em seus atributos;  Ver tópico abaixo.
  33. Tipo de Armazenamento: selecione um dos locais de armazenamento na nuvem (Dropbox, S3 ou Serviços de Cloud).

  34. Id do Armazenamento: utilizado apenas para Selecionar a URL do serviço de cloud.

  35. Chave do Armazenamento: chave disponibilizada por uma das opções de armazenamento.

  36. Segredo do Armazenamento: segredo disponibilizado por uma das opções de armazenamento.

Coluna de Versão

Versiona o registro a cada modificação; o campo utilizado para versionamento é incrementado automaticamente. Ex: Entidade Empresa, possui atributos ID, nome e versao; Sempre que o nome da empresa for alterado (Exemplo da figura 5: “Cronapp” para “Cronapp LowCcode”), o atributo versão irá ser incrementado automaticamente, informando quantas alterações foram feitas.

Requisitos para a coluna de versão:

  1. Não pode ser Chave.
  2. Deve possuir um dos seguintes tipos: Inteiro, Inteiro Longo, ou Data e Hora com Fuso.
  3. Deve permitir Nulo e Inserção.

Figura 5 - Exemplo de Mudança da Versão ao alterar o nome do elemento

Tipos

Os dados utilizados para um atributo da classe são descritos na tabela abaixo:

Tipo (Java)Classe JavaCorrespondente no BancoDescrição
Texto (string)StringVARCHARArmazena um conjunto de caracteres.
Texto Longo (Long text)StringCLOBArmazena um conjunto de caracteres com tamanho máximo de 4GB.
Lógico (Boolean)BooleanBOOLEANPermite que o atributo armazene somente um de dois estados: true ou false.
Caracter (Character)CharacterCHARACTERArmazena somente um caractere alfanumérico.
Numérico (Numeric)DoubleDOUBLEArmazena tanto números inteiros quanto fracionários no padrão da IEEE 754, .
Inteiro (Integer)IntegerINTArmazena números inteiros entre -2,147,483,648 à 2,147,483,647.
Inteiro Longo (Long Integer)LongLONG

Armazena números inteiros entre - 263 à 263 - 1.

Decimal Grande (Big Decimal)BigDecimalNUMERICArmazena tanto números inteiros quanto fracionários.
Inteiro Grande (Big Integer)BigIntegerNUMERICArmazena números inteiros que são maiores que Integer ou Long.
Inteiro Curto (Short)ShortSMALLINTArmazena números inteiros entre -32,768 à 32,767.
ByteByteSMALLINTArmazena números inteiros entre -32,768 à 32,767.
Data (Date)DateTIMESTAMPArmazena data (data, mês e ano).
Data e Hora (Date and Time)DateTIMESTAMPArmazena tanto a data quanto a hora.
Data e Hora com Fuso (Timestamp)DateTIMESTAMPArmazena, além da data e da hora, o fuso horário.
Hora (Time)DateTIMESTAMPArmazena hora (hora, minuto e segundo).
Binário (Binary)*VARBINARYArmazena o dado em formato binário.
Arquivo no Banco (Database File)*VARBINARYArmazena arquivos no banco de dados usado em seu projeto no Cronapp.
Arquivo no Cloud (Cloud File)*VARCHARArmazena arquivos na nuvem (Dropbox, S3 Amazon ou Serviços de Cloud) e salva em banco a sua URI.

Imagem no Banco (Database Image)

*VARBINARYArmazena imagens no banco de dados usado em seu projeto no Cronapp.
Imagem no Cloud (Cloud Image)*VARCHARArmazena imagens na nuvem (Dropbox, S3 Amazon ou Serviços de Cloud) e salva em banco a sua URI.
Classe (Chave estrangeira / Foreign Key)-Foreign KeyApresenta a(s) classe(s) existentes no diagrama para gerar a chave estrangeira dessas tabelas.

não é uma classe Java, mas sim um dado primitivo. Byte[] - um array de byte.

Menu de contexto da classe

Ao clicar com o botão direito em cima da classe, um menu aparecerá com algumas opções. 

Figura 6 - Janela da classe

  • Gerar visão CRUD para a entidade: somente gera o formulário da classe selecionada.
  • Criar camada de dados para a entidade: somente gera a camada de persistência para a classe selecionada.
  • Apagar: apaga a classe selecionada.
  • Propriedade da entidade: abre a janela de manipulação da classe selecionada.

Nessa Página