Properties

De BIS Wiki
Ir para navegação Ir para pesquisar

As propriedades do sistema são informações salvas no estilo do bundle, seguindo a ideia:

chave=valor

No entanto as informações são salvas no banco de dados e não em arquivos.

Quando o usuário tem uma empresa definida na sua sessão, chamadas de fachada que necessitam autenticação, os métodos abaixo podem ser utilizados para acessar as propriedades da empresa corrente:

  • deleteProperty(...);
  • getProperty(...);
  • setProperty(...);


O sistema permite ainda que propriedades sejam acessadas em outros schemas de empresas que não o atual da sessão, utilizando os métodos:

  • deletePropertyOnSchema(...);
  • getPropertyOnSchema(...);
  • setPropertyOnSchema(...);


Para salvar essas informações cada Schema de empresa tem a tabela k_property com as colunas property e value. Bem como a coluna id por exigência do funcionamento do BISDAO.

O conteúdo da tabela é acessado pelo objeto PropertyVO no BIS, embora haja métodos específicos na fachada para trabalhar com as propriedades, facilitando a recuperação do objeto e valor da propriedade sem ter de criar MOs ou outras consultas mais complicadas.

Propriedades do Kernel

Note que a tabela de salvamento das propriedades faz parte do Schema das empresas e não do Kernel. Isso porque desta maneiras as propriedades de cada empresa ficam isoladas umas das outras. O problema desta abordagem é que as propriedades que são do Domínio da aplicação (propriedades que não pertencem a nenhuma empresa, mas sim a configuração do próprio sistema) não tem uma tabela para serem salvas no Schema do Kernel.

A solução definida é que as propriedades de Domínio são salvas na empresa "1", ou seja, a empresa do próprio BIS no sistema. Essa empresa não pode ser apagada e detém várias informações de âmbito geral do sistema. No caso, as propriedades do Kernel (de Domínio) tem sempre o prefixo "domain." no nome da propriedade. E devem sempre ser manipuladas pelos métodos específicos da fachada:

  • deletePropertyDomain(...);
  • getPropertyDomain(...);
  • setPropertyDomain(...);


Note 64.png
Porque Não Replicar a Tabela no Schema do Kernel?
E hipótese de replicar a tabela no schema do Kernel foi avaliada e pensada. Implicaria apenas em ter um outro objeto, algo como PropertyDomainVO, para acessar as propriedades de Domínio.

A replicação da tabela indicaria duas tabelas para dar manutenção no sistema. Embora esta seja uma tabela simples, e os dados sejam todos acessados isoladamente, há outra situações similares mais complicadas. Como por exemplo as tabelas de acesso às configurações de domínio, como o tipo de item, caixas de e-mails do sistema e etc. Seriam muitas tabelas para replicar e dar manutenção. Assim, simplificamos a manutenção do sistema simplesmente configurando o schema da empresa "1" como sendo parte "extensível" para armazenamento dos dados do domínio.

Todas as configurações de domínio que precisem ser salvas em tabelas pertencentes ao schema da empresa, será salvo na empresa "1", configurada como a empresa do "BIS".