# Estrutura de tabelas
Abaixo, estarão as principais tabelas e campos em nosso banco de dados. Essas tabelas são imprescindíveis para consulta de informações dos processos.
##### **CRM\_PROCEDIMENTO\_EVENTO**
Tabela responsável por gravar todas as informações dos eventos de sistema presentes na criação do procedimento.
Coluna TIPO:
1= Comunicação - Mensagem
14= Variáveis - Definir valor variável
15= Comunicação - SMS
16= Variáveis - Pegar valor de conector
17= Sincronização - Importar dados de um banco para outro
18= Registro banco dados - SQL - Executar
19= NF-e - Consultar nota fiscal eletrônica
2= Comunicação - E-mail
20= Registro banco dados - SQL - Selecionar
21= Variáveis - Operações matemáticas
22= PEX - Executar função
23= Variáveis - Manipulação de texto
24= Arquivos - Manipular arquivos
25= NF-e - Baixar XML NF-e do e-mail
27= Comunicação - E-mail limpar pasta
28= NF-e - Validar arquivo XML NF-e
29= NF-e - Importar arquivo XML NF-e
30= Agendamento/Temporizador - Criar agendamento
31= Agendamento/Temporizador - Remover agendamento
32= Agendamento/Temporizador - Temporizador de espera
34= Exceção - Gera exceção
35= Exceção - Trata exceção
36= Processo - Iniciar novo processo
37= Processo - Finalizar processo atual
38= Processo - Cancelar processo atual
39= NF-e - Manifestação
40= NF-e - Consultar notas destinadas
41= NF-e - Baixar XML NF-e do SEFAZ
42= Estrutura condicional - Início
43= Estrutura condicional - Fim
44= Estrutura de repetição - Carregar
45= Estrutura de repetição - Descarregar
51= Estrutura de repetição - Retorna valor
52= Arquivos - Carregar arquivo
53= Arquivo XML - Ler Tag/Atributo
54= Processo - Limpar memória servidor
55= Variáveis - Criptografar texto
56= Variáveis - Desencriptografar texto
57= Social - Criar publicação
58= Processo - Alterar informação do processo
59= Senhas - Chamar próxima senha
60= Senhas - Chamar última senha
61= Senhas - Reiniciar senha
62= Senhas - Reservar senha
63= Eventos do sistema - Registrar evento
64= Eventos do sistema - Verificar horário disponível
65= E-mail - Buscar e-mail
66= Sincronização - Importar dados Excel
67= GED - Aprovar publicação
68= GED - Aprovar revisão
69= GED - Reprovar
70= GED - Aprovar exclusão
72= Variáveis - Criptografar senha
73= Variáveis - Criptografia MD5
77= GED - Salvar protocolo
78= Processo - Gerar link do processo
79= Web Service - Requisição
80= Arquivo XML - Ler Tag/Atributo - Repetição
81= GED - Criar pasta
83= NF-e - Gerar DANFE XML
84= Marcadores - Adicionar marcador
85= Marcadores - Remover marcador
86= GED - Exportar documentos
87= Sincronização - Importar dados arquivo texto
88= Arquivo JSON - Ler par
89= Arquivo JSON - Ler par - Repetição
90= GED - Iniciar revisão
91= GED - Salvar arquivo
92= Processo - Exibir mensagem para o usuário
93= Kanban - Definir cor do cartão
94= NF-e - Vincular canhoto de NF de devolução
95= Processo - Criar lembrete
96= Arquivos - Criar arquivo
97= NF-e - Anexar XML
98= Processo - Adicionar comentário
99= GED - Compartilhar
100= Arquivos - Carregar lista de arquivos e pastas
101= GED - Importar arquivo |
##### **CRM\_PROCESSO**
Grava informações relacionadas as instâncias executadas de cada procedimento.
- **IDPROCEDIMENTO**: grava o código do procedimento criado. É a coluna "**Código**" exibida na tela de cadastro/lista de **Processos de negócios (BPM)**;
- **IDPROCESSO**: grava o código de cada instância executada de um procedimento; Instâncias de processo podem ser consultadas através da tela de consulta **processos de negócio (instâncias)**;
- **IDFILIAL**: grava o código da filial que iniciou cada processo;
- **IDATIVIDADEATUAL**: grava o código da atividade em que se encontra cada instância de processo, sendo, por padrão:
- **1**: Início;
- **9999**: Fim.
- **STATUS**: grava o status de execução de cada instância, sendo:
- **1**: **Aberto** - processo ainda disponível para colaboração;
- **2**: **Encerrado** - processo com colaboração finalizada/entrou na atividade **Fim**;
- **3**: **Cancelado** - processo cancelado pelo usuário antes de entrar na atividade **Fim**.
- **IDVERSAO**: grava o código da versão executada de cada processo. Refere-se à versão liberada dos processos;
- **MOTIVO**: grava o motivo do processo;
- **DATAHORA**: grava a data/hora do momento da execução de determinado processo;
- **DATAFIM**: calcula a data de finalização do processo baseado no campo **Dias vigência** (Data atual do sistema + valor informado como vigência).
- **DATATERMINO**: grava a data de finalização do processo. É alimentado com a data atual do sistema no momento que o processo entra na atividade **Fim**.
##### **CRM\_PROCESSO\_ATIVIDADE**
Grava informações relacionadas às atividades executadas pelas instâncias de processo.
- **IDPROCESSO**: grava o código da instância executada para fins de consulta e vínculo posterior em **instruções SQL**;
- **DESCRICAO**: grava a descrição/nome definido para a atividade no momento da modelagem do procedimento;
- **IDATIVIDADE**: grava o código da atividade no procedimento;
- **EXECUTOU**: retorna **S** ou **N** indicando se a atividade foi executada ou não pelo processo;
- **DATAHORAINICIO**: retorna a data/hora em que o processo entrou em determinada atividade;
- **DATAHORAFIM**: retorna a data/hora em que o processo saiu de determinada atividade (quando usuário clicou em **Próximo**);
- **IDREPETICAO**: retorna o número de vezes em que o processo passou pela atividade;
- **TIPOATRIBUICAO**: tipo de **atribuição/permissão** selecionada para a atividade, sendo:
- - 0: Utilizar permissões configuradas no processo;
- **1**: Acesso público;
- **2**: Qualquer usuário cadastrado;
- **3**: Usuário que iniciou o processo;
- **4**: Usuário executor da atividade X;
- **5**: Usuários indicados na variável X;
- **6**: Papel que iniciou o processo;
- **7**: Papéis selecionados;
- **8**: Papéis indicados na variável X;
- **9**: Papel superior do executor da atividade X;
- **10**: Papel superior do usuário indicado na variável X.
##### **CRM\_PROCESSO\_VARIAVEL**
Grava informações relacionadas aos valores armazenados nas variáveis das instâncias executadas dos processos.
- **IDVARIAVEL**: grava o código da variável criada em determinado processo;
- **IDPROCESSO**: grava o código da instância de processo;
- **DESCRICAO**: grava a descrição da variável, é o nome definido para a variável assim que criada no processo;
- **VALORATUAL**: grava o valor informado no campo pelo usuário após a colaboração com o processo.
**Exemplo:** um relatório que precisa mostrar o nome de usuário que colaborou com determinado processo, onde o número será informado em um filtro desse relatório. Esse nome de usuário foi configurado em um evento do processo para ser armazenado na variável /\*USUARIO\*/, código 2. Para retornar esse valor, o comando SQL que deve ser realizado ficaria assim:
```SQL
SELECT VALORATUAL
FROM CRM_PROCESSO_VARIAVEL
WHERE IDVARIAVEL = 2
AND IDPROCESSO = 0/*IDPROCESSO*/
```
Onde **0/\*IDPROCESSO\*/** também é uma variável de processo, que será atualizada sempre com o código da instância executada.
Para realizar buscar em valores de variaveis, recomendamos fortemente que sejam utilizados os pacotes de funções:
- [**Firebird**](http://kb.ema.net.br/books/configuracoes-outros/page/pacote-de-funcoes-dox-package-firebird "Pacote de Funções DOX (Package) - Firebird")
- [**Oracle**](http://kb.ema.net.br/books/configuracoes-outros/page/pacote-de-funcoes-dox-package-oracle "Pacote de Funções DOX (Package) - Oracle")
- [**PostgreSQL**](http://kb.ema.net.br/books/configuracoes-outros/page/pacote-de-funcoes-dox-schema-postgresql "Pacote de Funções DOX (Schema) - PostgreSQL")
##### **CRM\_PROCESSO\_ATIV\_USUARIO**
Grava informações relacionadas aos usuários que executaram as atividades dos processos.
- **IDPROCESSO**: grava o código do processo executado;
- **IDATIVIDADE**: grava o código da atividade executada pelo usuário;
- **IDUSUARIO** (**FK** para a tabela **USUARIO**): grava o código do usuário que executou a atividade do processo.
##### **CRM\_PROCESSO\_ATIV\_FUNCAO**
Grava informações relacionadas aos papéis função vinculados às atividades dos processo.
- **IDPROCESSO**: grava o código do processo executado;
- **IDATIVIDADE**: grava o código da atividade;
- **IDFUNCAO** (**FK** para tabela **BPM\_FUNCAO**): grava o código do papel função vinculado na atividade.
##### **CRM\_PROCESSO\_FORMULARIO**
Grava informações relacionadas aos formulários existentes nas atividades dos processos executados.
- **IDPROCESSO**: grava o código do processo executado;
- **DESCRICAO**: grava a descrição do campo do formulário de processo;
- **IDATIVIDADE**: grava o código da atividade em que se encontra o campo do formulário;
- **IDFORMULARIO**: grava o código dos formulários existentes;
- **ORDEM**: guarda a ordenação dos campos dentro do formulário. Campo **Ordem** na aba **Formulários** da tela de **Atividade**
##### **CRM\_PROCESSO\_GRADE\_VALOR**
Grava informações relacionadas aos campos do tipo Grade de Dados presentes nos processo BPM.
- **IDGRADE**: grava o código da coluna/campo da **Grade de Dados**;
- **IDVALOR**: grava a linha onde encontra-se determinado registro de uma grade de dados;
- **IDPROCESSO**: grava os códigos das instâncias de processo;
- **IDATIVIDADE**: grava o código da atividade em que se encontra a **Grade de Dados**;
- **IDFORMULARIO**: grava o código do campo de grade dentro do formulário;
- **RESPOSTA**: grava o que foi preenchido nas colunas da grade de dados.
É a partir dessa tabela que serão trazidas as informações quando utilizadas as procedures e funções para retornar valores de grade
Um **exemplo** de SQL que pode ser utilizado para essa tabela é o seguinte: você precisa saber o que foi preenchido na primeira coluna e primeira linha de uma grade de determinada instância de processo. Nesse caso, o **SQL** poderia ser feito da seguinte maneira:
```SQL
SELECT RESPOSTA
FROM CRM_PROCESSO_GRADE_VALOR
WHERE IDPROCESSO = 0/*IDPROCESSO*/
AND IDGRADE = 1
AND IDVALOR = 1
```
Onde 0/\*IDPROCESSO\*/ também é uma variável de processo, que será atualizada sempre com o código da instância executada.
Para realizar buscar em valores de grades, recomendamos fortemente que sejam utilizados os pacotes de funções:
- [**Firebird**](http://kb.ema.net.br/books/configuracoes-outros/page/pacote-de-funcoes-dox-package-firebird "Pacote de Funções DOX (Package) - Firebird")
- [**Oracle**](http://kb.ema.net.br/books/configuracoes-outros/page/pacote-de-funcoes-dox-package-oracle "Pacote de Funções DOX (Package) - Oracle")
- [**PostgreSQL**](http://kb.ema.net.br/books/configuracoes-outros/page/pacote-de-funcoes-dox-schema-postgresql "Pacote de Funções DOX (Schema) - PostgreSQL")
##### **CRM\_PROCESSO\_EVENTO**
Grava informações relacionadas aos eventos existentes nos processos executados.
- **IDPROCESSO**: grava o código do processo que foi executado;
- **DESCRICAO**: grava a descrição definida para o evento;
- **IDATIVIDADE**: grava o código da atividade em que o evento se encontra;
- **IDEVENTO**: grava o código do evento criado;
- **MOMENTO**: grava o momento de execução do evento, sendo:
- 0: Ao entrar na Atividade;
- **1**: Ao sair da atividade;
- **2**: Ao anexar.
##### **USUARIO\_PAPELFUNCAO**
- **IDUSUARIO**: traz o código do usuário pertencente ao papel-função;
- **IDPAPELFUNCAO**: traz o código do papel função de cada usuário.
##### **BPM\_FUNCAO**
Tabela dos papeis funções cadastrados no sistema.
- **IDBPMFUNCAO:** Código do papel função.
- **DESCRICAO:** Descrição do papel função cadastrado.
- **INATIVO:** Se o papel função está ativo ou inativo no sistema.
##### **DEPARTAMENTOS**
Tabela dos departamentos cadastrados no sistema.
- **IDDEPARTAMENTO:** Código do departamento.
- **DESCRICAO:** Descrição do departamento cadastrado.
- **INATIVO:** Se o departamento está ativo ou inativo no sistema.
- **IDDIRETOR:** id do usuário vinculado no campo "Responsável".
- **IDGERENTE:** id do usuário vinculado no campo "Organizador".
##### **GED\_ARQUIVO**
Todo arquivo anexado ao **DOX**, seja por processo, tarefa, contrato, etc. é adicionado à nossa estrutura **GED**. Nesse tópico apresentaremos as principais tabelas que compõem a estrutura de banco de dados do gerenciador eletrônico de documentos.
É a principal tabela relacionada ao GED. Essa é a tabela responsável por gravar todos os arquivos que são armazenados ao sistema, independente de qual foi a origem.
Nessa tabela temos dois campos em destaque, que são:
- **STATUS**:
- **1**: Criando;
- **2**: Aprovado;
- **3**: Reprovado;
- **4**: Em edição;
- **5**: Lixeira;
- **6**: Excluído.
- **SITUAÇÃO**:
- **1**: Liberado;
- **2**: Aguardando revisão;
- **3**: Aguardando aprovação;
- **4**: Aguardando exclusão.
##### **GED\_ARQUIVO\_LOCAL**
Outra tabela de extrema importância para a estrutura do **GED** é a **GED\_ARQUIVO\_LOCAL**, que é responsável por armazenar os locais onde os arquivos anexados no sistema poderão ser consultados e visualizados.
É uma tabela "filha" da **GED\_ARQUIVO**. Ou seja, uma vez que o arquivo foi anexado, o mesmo gera um registro nesta tabela, com base na origem\* em que foi incluído no sistema, logo, caso for necessário consultar o mesmo anexo em outros locais, seria possível somente registrar o local nesta tabela respeitando o controle de **ORIGEM** e **IDORIGEM** do local que será liberado.
**Exemplo 1**: se for um **Anexo de Processo**:
```SQL
WHERE GED_ARQUIVO_LOCAL.ORIGEM = 7
AND GED_ARQUIVO_LOCAL.IDORIGEM = 0/*IDPROCESSO*/
```
**Exemplo 2**: Se for um **Anexo de Tarefa**:
```SQL
WHERE GED_ARQUIVO_LOCAL.ORIGEM = 5
AND GED_ARQUIVO_LOCAL.IDORIGEM = 0/*IDTAREFA*/
```
**Tipos de ORIGEM:**
- 0: Casos de teste;
- **1**: CliForEmp;
- **2**: Enquete;
- **3**: Ideia;
- **4**: Instrução técnica;
- **5**: Tarefa;
- **6**: Procedimento;
- **7**: Processo;
- **8**: Treinamento;
- **9**: Contato;
- **10**: Projeto;
- **11**: Tela de processo;
- **12**: Formulário;
- **13**: Pasta cadastrada;
- **14**: Nota de entrada;
- **15**: Contrato;
- **16**: Lançamento financeiro;
- **17**: NFS;
- **18**: Item;
- **19**: Cobrança;
- **20**: Pagamento;
- **21**: Script.
##### **GED\_ARQUIVO\_VERSAO**
Podemos destacar a tabela **GED\_ARQUIVO\_VERSAO**, que é responsável por armazenar as versões dos arquivos anexados no sistema, para controle de histórico de alterações dos arquivos. A relação/legenda dos status dos arquivos do **GED** é a que segue:
- **1**: Criando;
- **2**: Aprovado;
- **3**: Reprovado;
- **4**: Em edição;
- **5**: Lixeira;
- **6**: Excluído.
##### **GED\_PASTA**
Tabela do sistema que armazena as informações das pastas cadastradas no GED.
- **IDPASTA**: Código da pasta cadastrada.
- **IDPASTAPAI**: Código da pasta pai.
- **CLASSIFICAÇÃO**: Classificação da pasta cadastrada no sistema.
- **DESCRICAO**: Descrição/título da pasta.
- **OBSERVACAO**: Caso tenha alguma observação da pasta criada.
- **INATIVO**: Se a pasta está inativa ou ativa no sistema (S/N).
- **USUARIO**: Usuário criador.
- **DATAHORA**: Data/hora da criação.
- **DATAHORAULTIMAATUALIZACAO**: Data/hora da ultima edição.