Under the Hood - Estrutura Base
Neste primeiro tutorial da série Under the Hood vamos conhecer
e compreender a estrutura base que persiste os modelos de
dados associados a um processo. Sem este conhecimento, e sem
que esteja bem cimentado, o entendimento dos tutoriais
seguintes torna-se mais difícil, pelo que aconselhamos a perder
algum tempo sobre esta matéria, e, porque não, derivar sobre o
exemplo aqui exposto ou criar outros alternativos para que a
matéria aqui explicada fique bem presente.
1
Tutorial | Plataforma Masterlink
Under the Hood - Estrutura Base
1. A estrutura comum a todos os processos
Este tutorial é uma introdução à estrutura base da MWE. Numa primeira fase vamos conhecer o
tronco comum a todos os processos, ou seja, a estrutura identificativa de um processo. É ela que
estabelece o relacionamento dos dados (registos) com estágios e processos, e que identifica
correctamente os campos da base de dados onde esses dados são guardados. Essa estrutura tem
uma nomenclatura própria, e é precisamente por ela que vamos começar.
Cada campo da base de dados, portanto, cada propriedade do nosso modelo de dados, existe no
âmbito de um grupo.
Este, por seu turno, vive num processo, o qual, à sua vez, determina um fluxo de dados definido
pelos seus estágios.
Processo => Fluxo de Dados = { Grupos, em que Grupos = { Campos } }
Assim sendo, para definirmos o nosso modelo de dados temos primeiro que reunir os campos
em grupos. Cada campo deve ser visto como uma propriedade do modelo de dados. Já os grupos
mais não são do que uma abstracção na forma como se pretende compartimentar a informação.
O que liga estes indivíduos, os campos e os grupos, é o processo. É também o processo que define
os estágios por onde a informação navega.
Como se materializa esta informação na base de dados?
Na prática o processo define uma tabela na base de dados onde os respectivos registos são
guardados, registos esses que contêm informação respeitante aos campos que espelham o
modelo de dados – o processo, na verdade.
1
Tutorial | Plataforma Masterlink
Under the Hood - Estrutura Base
Essa tabela obedece à nomenclatura PR_x, em que x é o identificador do processo (Processo ID).
Quando se procede à criação de um grupo, e consequentemente de um campo, está-se na
realidade a alterar a tabela do processo a que respeita esse grupo por forma a acomodar o novo
campo. Esse campo fica assim disponível pelo número do grupo e o número do campo, cuja
nomenclatura é do tipo GxCy.
Como esse campo existe de facto na tabela do processo – recordamos que a nomenclatura é do
tipo PR_x –, é legítimo pensar que a consulta do campo na base de dados, ou uma eventual
intervenção sobre esse campo, se pode fazer por meio de uma query SQL. Dito isto, vamos supor
que criámos o seguinte campo:
2
Tutorial | Plataforma Masterlink
Under the Hood - Estrutura Base
E que esse campo pertence ao processo indicado na figura:
Para conhecermos os pormenores do campo em causa podíamos fazê-lo por acesso ao painel de
Administração, e em SQL Manager ditar a seguinte query (1):
SELECT GxCy AS [Nome da Escola]
FROM TABELA_DO_PROCESSO
ORDER BY [Nome da Escola] ASC
Em que a que a query substituída no nosso caso é:
SELECT G5773C7453 AS [Nome da Escola]
FROM PR_5152
ORDER BY [Nome da Escola] ASC
3
Tutorial | Plataforma Masterlink
Under the Hood - Estrutura Base
Dito isto, vamos analisar como é que um registo num determinado processo e para um certo
estágio guarda informação sobre eventuais ligações – dependências ou não – a outros registos de
um processo diferente, e como é que esse ou esses registos “filhos” mantêm uma referência válida
para o registo “pai”.
Mas antes disso é vital compreender a estrutura base que assegura esse conjunto de referências,
e quais os campos que actuam nesse sentido.
Vamos analisar como é que um registo de um processo, e para um certo estágio, guarda
informação sobre eventuais ligações – dependências ou não – a outros registos de um processo
diferente, e como é que esse ou esses registos “filhos” mantêm uma referência válida para o
registo “pai”.
De forma a identificar na base de dados o modelo de dados envolvido no processo, e tudo o que
a ele se relaciona, a MWE cria e revela para cada um desses processos uma ‘chapa’ identificativa.
Essa dog tag tem sempre agregada informação relevante, como o identificador do processo (ID), a
tabela correspondente (PR_x), a tabela de histórico (zPRH_x) e a tabela temporária (PRT_x):
Em detalhe, nada como consultar a base de dados de um processo.
Seja a query (2) SELECT * FROM PR_5152 referente ao ‘processo escolas’:
O que é que nos diz este resultado em primeira mão?
4
Tutorial | Plataforma Masterlink
Under the Hood - Estrutura Base
Desde logo que há dois territórios de dados distintos: um que abrange os campos que modelam
os dados, cada qual referenciado por um GxCy único e irrepetível na instância da MWE; e outro
território composto por 15 campos comuns que suportam a base de qualquer tabela que reflita
um processo na MWE. Chamemos a esse conjunto de campos a estrutura base.
Para já, vamos concentra-nos numa parcela particular da estrutura base. O seu campo mais
relevante é o Num_Processo, pois é ele o identificador único do registo. Do mesmo modo, o
campo RespostaID é também uma referência única do registo, embora a sua função se pretenda
com o histórico do registo. Já lá iremos.
5
Download

Under the Hood - Estrutura Base