Dicionário de Dados
Introdução ao Dicionário de Dados
O dicionário de dados é um dos componentes mais fundamentais da plataforma Sankhya, ele é composto por um conjunto de tabelas que provêm informações sobre as demais tabelas do banco de dados. Dessa forma, o dicionário de dados se configura como um repositório de metadados, armazenados em um banco de dados relacional, que descrevem e mapeiam a estrutura de dados do sistema, englobando informações sobre:
- Tabelas
- Campos
- Ligações
- Entidades
- Propriedades
- Regras de domínio
Incluindo por exemplo, descrições e possíveis valores para campos do sistema. Ele controla também a hierarquia de telas e restrições por licença.
Essa estrutura possibilita o uso de técnicas de programação table-driven, de forma que boa parte do sistema pode ser montada em tempo de execução, por componentes que usam as meta-informações do dicionário de dados como entrada.
Na Sankhya o Dicionário de dados é aplicado em pelos menos três frentes:
Documentação: Depois de compreendida a estrutura dos dados, o mapeamento também pode ser consumido como documentação, pois a sua estrutura contém informações sobre o nome, tipo, tamanho, ligações, ou seja, todos os metadados que podem ser utilizados para determinar o comportamento de componentes, persistência, entre outras coisas.
JAPE: Framework de persistência. Baseado no conjunto de meta informações o JAPE gera, dinamicamente, as estruturas SQL, como por exemplo: INSERT, UPDATE, DELETE e SELECT.
Dynaform: Framework para construção de telas. Baseado nos metadados, o Dynaform possibilita a criação dinâmica de telas sem nenhuma definição de código de backend e front-end.
Funções do Dicionário de dados
- O sistema consume informações do dicionário de dados para montar suas telas
- O dicionário de dados é atualizado quando melhorias ou novas implementações são realizadas, mantendo a integridade dos dados do sistema
- Todo desenvolvedor pode usar o dicionário de dados como referência para obter informações sobre o banco de dados
Arquitetura do Dicionário de Dados
O dicionário de dados consiste no seguinte conjunto de tabelas:
- TDDTAB
- TDDCAM
- TDDOPC
- TDDPCO
- TDDINS
- TDDLIG
- TDDLGC
- TRDCON
- TRDPCO
- TRDFCO
- TRDEVE
- TDDIAC
- TDDTABI18N
- TDDCAMI18N
- TDDOPCI18N
- TDDINSI18N
- TRDCONI18N
- TDDI18N
A tabela abaixo apresenta a descrição de cada uma das tabelas do dicionário de dados e alguns dos seus campos e respectivos valores.
DER - Dicionário de dados
O diagrama a seguir apresenta as entidades do dicionário de dados e suas relações entre si, assim como seus atributos.

DER - Dicionário de dados
Diagrama em alta resolução disponível neste link.
O diagrama a seguir apresenta as entidades do dicionário de dados e suas relações entre si, assim como seus atributos.
TDDTAB
A TDDTAB contém informações relativas ao mapeamento das tabelas. A chave natural desta tabela é NOMETAB.
Campo | Descrição |
|---|---|
NOMETAB | Nome da tabela. |
DESCRTAB | Descrição da tabela. |
TIPONUMERACAO | Tipo de numeração. A - Automática |
NUCAMPONUMERACAO | Ligação com a TDDCAM para os metadados do campo. |
ADICIONAL | Define se a tabela é adicional. Usado para artefatos personalizados. |
CONTROLE | Usado internamente pelo atualizador (WPM ou Gerenciador de pacotes). |
NUMOS | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
LIBERADO | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
TDDCAM
Contém informações relativas ao mapeamento dos campos das tabelas. A chave natural desta tabela é NOMETAB e NOMECAMPO.
Campo | Descrição |
|---|---|
NUCAMPO | Informação de controle interno. Utilizado como identificador único de registro. |
NOMETAB | Nome da tabela. |
NOMECAMPO | Nome do campo. |
DESCRCAMPO | Descrição do campo. |
TIPCAMPO | Define o tipo do campo.
|
EXPRESSAO | Usado para definição de campos calculados. Também pode ser usado para definição de valores padrões em campos não calculados. Podemos criar dois tipos de expressões: 1 - SQL |
PERMITEPESQUISA | Indica se o campo permite pesquisa. Geralmente usado dentro de componentes de pesquisa. |
CALCULADO | Define se o campo é calculado. Campos calculados não existem fisicamente nas tabelas, ou seja, não são persistidos. |
PERMITEPADRAO | Indica se o campo permite definição de valor padrão. Geralmente usado na configuração de formulários. |
APRESENTACAO | Define o campo de apresentação da tabela. O campo de apresentação geralmente é usado em campos de pesquisa e nomes de abas relacionadas a ligações de instâncias. |
ORDEM | Define a ordenação do campo. Geralmente usado para ordenar o campo em grades e formulários. |
VISIVELGRIDPESQUISA | Define a visibilidade do campo na grade de pesquisa. Geralmente usado em componentes de pesquisa. |
TIPOAPRESENTACAO | Define o tipo de apresentação do campo.
|
TAMANHO | Define o tamanho do campo. |
ADICIONAL | Define se o campo é adicional. Usado para artefatos personalizados. |
CONTROLE | Usado internamente pelo atualizador (WPM ou Gerenciador de pacotes). |
NUMOS | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
LIBERADO | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
TDDOPC
Contém informações relativas ao mapeamento das opções dos campos.
| Campo | Descrição |
|---|---|
| NUCAMPO | Informação de controle interno. Utilizado como identificador único de registro e chave estrangeira para TDDCAM. |
| OPCAO | Define, de forma descritiva, a opção do campo. |
| VALOR | Define o valor da opção. |
| PADRAO | Define a opção padrão. |
| ORDEM | Define a ordenação da opção. |
| CONTROLE | Usado internamente pelo atualizador (WPM ou Gerenciador de pacotes). |
| NUMOS | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
| LIBERADO | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
TDDPCO
Contém informações relativas ao mapeamento de propriedades dos campos.
Campo | Descrição |
|---|---|
NUCAMPO | Informação de controle interno. Utilizado como identificador único de registro e chave estrangeira para TDDCAM. |
NOME | Existem diversas propriedades para funcionalidades diversas.
Propriedades para criar filtro padrão nas telas Dynaform:
Propriedades para definição de metadados adicionais (rowmetada).
|
VALOR | Valor da propriedade. Cada propriedade possui uma definição particular que pode variar de simples informações como “true/false” até informações complexas como querys, ou caminhos de classes e etc. |
CONTROLE | Usado internamente pelo atualizador (WPM ou Gerenciador de pacotes). |
NUMOS | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
LIBERADO | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
TDDINS
Contém informações relativas ao mapeamento de instâncias. A chave natural e única desta tabela é a NOMEINSTANCIA.
| Campo | Descrição |
|---|---|
| NUINSTANCIA | Informação de controle interno. Utilizado como identificador único de registro. |
| NOMETAB | Nome da tabela. |
| NOMEINSTANCIA | Nome da instância. |
| DESCRINSTANCIA | Descrição da instância. |
| RAIZ | Define se a instância é a principal. Podemos criar uma instância filha de outra instância. |
| ATIVO | Define se a instância está ativa. |
| EXPRESSAO | Permite definir um critério que será usado como filtro na consulta. |
| ADICIONAL | Define se o campo é adicional. Usado para artefatos personalizados. |
| RESOURCEID | Define o identificador único de tela. Usado para criar lançador de tela, geralmente telas de cadastro. |
| CONTROLE | Usado internamente pelo atualizador (WPM ou Gerenciador de pacotes). |
| NUMOS | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
| LIBERADO | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
TDDLIG
Contém informações relativas ao mapeamento das ligações entre as instâncias. Este processo é usado para
mapear FKs para se tornar um campo de pesquisa dentro das telas da plataforma.
Campo | Descrição |
|---|---|
TIPLIGACAO | Define o tipo de ligação. Ligações LEFT JOIN são sempre NÃO obrigatórias. Porém é possível forçar que a ligação seja obrigatória através do campo OBRIGATORIA. I - INNER JOIN |
EXPRESSAO | Utilizado para definir uma expressão de ligação entre origem e destino. Deve ser uma expressão do tipo SQL. Por exemplo: Na ligação Parceiro>CabecalhoNotaModelo podemos definir para trazer apenas notas do tipo Z (TIPMOV = 'Z'). Também é utilizado para definir outras estruturas via @ref-param:
|
INSERIR | Determina o CASCADE da ligação para INSERT. Ou seja, ao incluir o registro pai também existe a possibilidade de incluir o filho. |
ALTERAR | Determina o CASCADE da ligação para UPDATE. Ou seja, na alteração do registro pai também existe a possibilidade de alterar o filho. |
EXCLUIR | Determina o CASCADE da ligação para DELETE. Ou seja, ao excluir o registro pai também existe a possibilidade de excluir o filho. |
OBRIGATORIA | Determina se a ligação é obrigatória. Por exemplo, na ligação CabecalhoNota->Parceiro existe essa obrigatoriedade porque o Parceiro é fundamental no lançamento de notas. |
CONDICAO | Define uma expressão de ligação entre origem e destino. Deve ser uma expressão do tipo BeanShell. |
CONTROLE | Usado internamente pelo atualizador (WPM ou Gerenciador de pacotes). |
NUMOS | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
LIBERADO | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
TDDLGC
Contém informações relativas ao mapeamento dos campos de ligação entre as instâncias.
Campo | Descrição |
|---|---|
NUINSTORIG | Informação de controle interno. Utilizado para ligação do campo de origem. |
NUCAMPOORIG | Informação de controle interno. Utilizado para ligação do campo de origem. |
NUINSTDEST | Informação de controle interno. Utilizado para ligação do campo de destino. |
NUCAMPODEST | Informação de controle interno. Utilizado para ligação do campo de destino. |
ORIG_OBRIGATORIA | Define se o campo deve ser preenchido para completar a ligação. Por exemplo: Na ligação de CabecalhoNota->OrdemCarga. Para vincular uma ordem de carga a nota é necessário informar também a empresa, pois a ligação completa é (CODEMP, ORDEMCARGA). |
ORDEM | Campo obsoleto. Atualmente não está sendo utilizado para nenhuma funcionalidade. |
CONTROLE | Usado internamente pelo atualizador (WPM ou Gerenciador de pacotes). |
NUMOS | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
LIBERADO | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
TRDCON
Contém informações relativas aos controles de menu.
Campo | Descrição |
|---|---|
NUCONTROLE | Informação de controle interno. Utilizado como identificador único de registro. |
DESCRCONTROLE | Descrição do controle. Por exemplo, o nome da tela, o nome do item de menu. |
TIPOCONTROLE | Define o tipo de controle. Controles usados: Controles obsoletos: |
TIPOFILHOS | Define o tipo de controle dos controles filhos. Possui as mesma opções de TIPOCONTROLE. |
ORIFILHOS | Tipo de orientação dos controles filhos. Esta informação está obsoleta. H - Horizontal |
NOME | Nome do controle. Deve ser um identificador único. No caso de telas, geralmente, usamos o mesmo valor do resourceID. |
ADICIONAL | Define se o controle é adicional. Usado para artefatos personalizados. |
CONTROLE | Usado internamente pelo atualizador (WPM ou Gerenciador de pacotes). |
NUMOS | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
LIBERADO | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
TRDPCO
Contém informações relativas às propriedades dos controles.
Campo | Descrição |
|---|---|
NUCONTROLE | Informação de controle interno. Utilizado como identificador único de registro. |
NOME | Define o nome da propriedade. Existem diversas propriedades para funcionalidades diversas.
|
VALOR | Define o valor da propriedade. Cada propriedade possui uma definição particular que pode variar de simples informações como “true/false” até informações complexas como querys, ou caminhos de classes e etc. |
CONTROLE | Usado internamente pelo atualizador (WPM ou Gerenciador de pacotes). |
NUMOS | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
LIBERADO | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
TRDFCO
Contém o mapeamento das ligações dos controles.
| Campo | Descrição |
|---|---|
| NUCONTROLE | Informação de controle interno. Utilizado como identificador único de registro. |
| NUCONTROLEFILHO | Informação de controle interno. Utilizado como identificador único de registro. |
| ORDEM | Define a ordem do controle filho. |
| ATIVO | Permite ativar ou inativar um controle filho. |
| ADICIONAL | Define se o controle é adicional. Usado para artefatos personalizados. |
| CONTROLE | Usado internamente pelo atualizador (WPM ou Gerenciador de pacotes). |
| NUMOS | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
| LIBERADO | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
TRDEVE
Contém informações relativas aos eventos de controle.
Campo | Descrição |
|---|---|
NUCONTROLE | Informação de controle interno. Utilizado como identificador único de registro. |
ONCLICK | Permite definir o lançador da tela. Geralmente será um link no formato: Tela 100% dynaform: Ex: ${dynaform:Bairro} Demais telas: Ex: /mgefin/MovimentacaoFinanceira.flex?mgeSession=${mge.session.id}&resourceID=${resourceID} |
CONTROLE | Usado internamente pelo atualizador (WPM ou Gerenciador de pacotes). |
NUMOS | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
LIBERADO | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
TDDIAC
Contém informações relativas aos acessos especiais de controle.
| Campo | Descrição |
|---|---|
| SEQUENCIA | Informação de controle interno. |
| IDACESSO | Define o identificador para validação do acesso. Neste caso, será o resourceID da tela. |
| SIGLA | Define o identificador do acesso. Não pode repetir para o mesmo IDACESSO. |
| DESCRICAO | Descrição do acesso. Essa informação será visualizada na tela de Acessos para a tela definida em IDACESSO. |
| CONTROLE | Usado internamente pelo atualizador (WPM ou Gerenciador de pacotes). |
| NUMOS | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
| LIBERADO | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
TDDTABI18N
Internacionalização para a descrição das tabelas: TDDTAB.DESCRTAB
| Campo | Descrição |
|---|---|
| NOMETAB | Define o nome da tabela. |
| LOCALE | Define o idioma. |
| TEXTO | Texto internacionalizado de acordo com o idioma definido (LOCALE). |
| CONTROLE | Usado internamente pelo atualizador (WPM ou Gerenciador de pacotes). |
| NUMOS | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
| LIBERADO | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
TDDCAMI18N
Internacionalização para a descrição dos campos: TDDCAM.DESCRCAMPO
| Campo | Descrição |
|---|---|
| NOMETAB | Define o nome da tabela. |
| NOMECAMPO | Define o nome do campo. |
| LOCALE | Define o idioma. |
| TEXTO | Texto internacionalizado de acordo com o idioma definido (LOCALE). |
| CONTROLE | Usado internamente pelo atualizador (WPM ou Gerenciador de pacotes). |
| NUMOS | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
| LIBERADO | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
TDDOPCI18N
Internacionalização para as opções de campo (TDDOPC.OPCAO)
| Campo | Descrição |
|---|---|
| NOMETAB | Define o nome da tabela. |
| NOMECAMPO | Define o nome do campo. |
| VALOR | Define o valor da opção. |
| LOCALE | Define o idioma. |
| TEXTO | Texto internacionalizado de acordo com o idioma definido (LOCALE). |
| CONTROLE | Usado internamente pelo atualizador (WPM ou Gerenciador de pacotes). |
| NUMOS | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
| LIBERADO | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
TDDINSI18N
Internacionalização para a descrição das instâncias (TDDINS.DESCRINSTANCIA)
| Campo | Descrição |
|---|---|
| NOMEINSTANCIA | Define o nome da instância |
| LOCALE | Define o idioma. |
| TEXTO | Texto internacionalizado de acordo com o idioma definido (LOCALE). |
| CONTROLE | Usado internamente pelo atualizador (WPM ou Gerenciador de pacotes). |
| NUMOS | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
| LIBERADO | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
TRDCONI18N
Internacionalização para a descrição dos controles (TRDCON.DESCRCONTROLE)
| Campo | Descrição |
|---|---|
| NOMECONTROLE | Define o nome do controle. |
| LOCALE | Define o idioma. |
| TEXTO | Texto internacionalizado de acordo com o idioma definido (LOCALE). |
| CONTROLE | Usado internamente pelo atualizador (WPM ou Gerenciador de pacotes). |
| NUMOS | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
| LIBERADO | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
TDDI18N
Internacionalização para abas, agrupadores de campo e qualquer outra situação não prevista nas demais tabelas de internacionalização.
| Campo | Descrição |
|---|---|
| CHAVE | Define o identificador único. |
| LOCALE | Define o idioma. |
| TEXTO | Texto internacionalizado de acordo com o idioma definido (LOCALE). |
| CONTROLE | Usado internamente pelo atualizador (WPM ou Gerenciador de pacotes). |
| NUMOS | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
| LIBERADO | Campo obsoleto. Antigamente era usado para liberação dos artefatos para produção. |
Consulta ao Dicionário de Dados
Consulta com SGBD
Para consultar o dicionário de dados diretamente pelo SGBD, use instruções SQL para recuperar informações sobre as tabelas e seus campos:
SELECT * FROM TDDTAB;
Consulta utilizando SGBD - SQL Developer
Consulta com DWFDesigner
Para consultar o dicionário de dados pelo DWFDesigner, acesse Tabelas > Abrir Tabela... e pesquise pela tabela em questão.

Consulta pelo DWF Designer
AtençãoA alteração indevida de dados das tabelas do dicionário de dados pode comprometer a integridade e desempenho do banco de dados.
Recursos avançados do Dicionário de dados
Confira neste link recursos avançados do dicionário de dados
Como tirar dúvidas?
Para tirar dúvidas e compartilhar informações, use a sala Dicionário de Dados da comunidade Sankhya Developer.
Updated 23 days ago
