Relacionamento das Principais Tabelas do Fusion e Consultas Úteis
Este manual tem como objetivo orientar sobre o relacionamento entre as principais tabelas do Fusion, além de fornecer consultas SQL úteis para análise de processos, formulários, documentos, atividades e tarefas.
Atenção- Alterações no Banco de Dados Fusion
O banco de dados do Fusion possui uma estrutura complexa, com diversas entidades interligadas. Por isso:
- Qualquer alteração direta via SQL (
DELETE,UPDATE,INSERT,ALTER TABLE, etc.) deve ser realizada com extrema cautela. - Um erro ou alteração incorreta pode gerar inconsistências graves e comprometer processos da aplicação.
Antes de realizar qualquer modificação, consulte a Equipe de Sustentação da Neomind.
Consultas SQL Úteis
A seguir, estão listadas consultas SQL que auxiliam na análise de informações relacionadas a processos, atividades, tarefas,formulários e documentos no Fusion. As queries podem ser ajustadas conforme a necessidade da análise.
1. Processo (WFProcess) ↔ Formulário (D_nomeDoFormulario)
Consultar o código do processo e o valor de um campo do formulário:
SELECT wf.code, dyn.nomeDoCampo
FROM WFProcess wf
JOIN d_nomeDoFormulario dyn ON (wf.entity_neoId = dyn.neoId);
2. Processo (WFProcess) ↔ Modelagem (ProcessModel)
Consultar o código do processo e o título da modelagem do processo:
SELECT wf.code, pm.title
FROM WFProcess wf
JOIN ProcessModel pm ON (wf.model_neoId = pm.neoId);
3. Processo ↔ Atividades (Activity) ↔ Modelagem (ActivityModel)
Listar todas as atividades de um processo:
Inclui atividades do tipo Usuário, Script, Envio, Decisão, entre outras.
SELECT
am.name,
ac.startDate AS Inicio,
ac.finishDate AS Fim
FROM WFProcess wfp
JOIN Activity ac ON (ac.process_neoId = wfp.neoId)
JOIN ActivityModel am ON (ac.model_neoId = am.neoId)
WHERE wfp.neoId = neoIdDoProcesso
ORDER BY ac.startDate;
4. Processo ↔ Atividades ↔ Tarefas (Task)
Listar atividades e tarefas associadas ao processo:
Tarefas só existem em atividades executadas por Usuários.
SELECT
am.name,
ac.startDate AS ActivityInicio,
ac.finishDate AS ActivityFim,
t.startDate AS TaskInicio,
t.finishDate AS TaskFim
FROM WFProcess wfp
JOIN Activity ac ON (ac.process_neoId = wfp.neoId)
JOIN ActivityModel am ON (ac.model_neoId = am.neoId)
JOIN Task t ON (t.activity_neoId = ac.neoId)
WHERE wfp.neoId = neoIdDoProcesso
ORDER BY ac.startDate;
5. Formulário – EntityInfo ↔ FieldInfo (Campos)
Consultar campos de um formulário:
SELECT
fi.showOrder AS OrdemDeExibicao,
fi.name AS Nome,
fi.title AS Titulo
FROM FieldInfo fi
JOIN EntityInfo ei ON (fi.declaringEntity_neoId = ei.neoId)
WHERE ei.typeName = 'nomeDoFormulario'
ORDER BY fi.showOrder ASC;
Consultar campos com suas propriedades:
viewable→ Visível (1 = Sim, 0 = Não)editable→ Editávelmandatory→ ObrigatórioadapterConverter→ Adapter de conversão
SELECT
fi.showOrder AS OrdemDeExibicao,
fi.name AS Nome,
fi.title AS Titulo,
fi.viewable,
fi.editable,
fi.mandatory,
fi.adapterConverter
FROM FieldInfo fi
JOIN EntityInfo ei ON (fi.declaringEntity_neoId = ei.neoId)
WHERE ei.typeName = 'nomeDoFormulario'
ORDER BY fi.showOrder ASC;
6. Campos do Tipo EForm – FieldInfoEntity ↔ EntityInfo
Consultar informações de campos do tipo EForm:
SELECT
fi.showOrder AS OrdemDeExibicao,
fi.name AS NomeCampo,
fi.title AS TituloCampo,
eifie.typeName AS NomeTipoCampoEForm,
eifie.title AS TituloTipoCampoEForm
FROM FieldInfo fi
JOIN FieldInfoEntity fie ON (fie.neoId = fi.neoId)
JOIN EntityInfo eifie ON (fie.typeInfo_neoId = eifie.neoId)
JOIN EntityInfo ei ON (fi.declaringEntity_neoId = ei.neoId)
WHERE ei.typeName = 'nomeDoFormulario'
ORDER BY fi.showOrder ASC;
7. Formulário (EntityInfo) ↔ Documentos (DocumentEntityInfo)
Listar tipos de documentos:
SELECT ei.typeName, ei.title
FROM DocumentEntityInfo di
JOIN EntityInfo ei ON (di.neoId = ei.neoId);
Documentos com/sem aprovação:
SELECT ei.typeName, ei.title, di.approval
FROM DocumentEntityInfo di
JOIN EntityInfo ei ON (di.neoId = ei.neoId);
Documentos com/sem versionamento:
SELECT ei.typeName, ei.title, di.versioned
FROM DocumentEntityInfo di
JOIN EntityInfo ei ON (di.neoId = ei.neoId);