4D v19 R4 é enviado com um novo conceito ORDA: Pseudónimos. São a continuação lógica e complementar dos atributos computorizados.
Este post no blog explica o que são os pseudónimos e destaca as suas vantagens, especialmente quando se usa um ou outro… ou ambos.
O que é um pseudónimo?
Como o nome sugere, um pseudónimo não é mais do que um sinónimo ou atalho para um objecto de datastore existente. Tal como os atributos computados, eles são definidos na “entidade dataclass”, como veremos mais adiante.
Este pode ser, por exemplo, um atributo existente no próprio dataclass, ou mais frequentemente dentro de outro. Tal como um atributo computado, um alias é utilizado para referenciar um valor escalar, uma entidade, ou uma selecção de entidade.
Aliases ou atributos COMPUTADOS?
Pode perguntar-se por que razão se deve utilizar pseudónimos quando já se dispõe de atributos computados.
A regra é simples, e pode aplicá-la sem risco:
Um pseudónimo deve ser utilizado se não for necessário um cálculo, e o resultado (escalar, entidade, ou selecção de entidade) pode ser expresso como um caminho.
por exemplo, fathersDad = pai.pai
Se algum cálculo tiver de ser efectuado (capitalização, concatenação, pesquisas, fórmulas, etc.), deve ser um atributo computorizado.
por exemplo: nome completo = maiúsculas (último nome) + primeiro nome
Um exemplo SIMPLES E CONFIRMADOS
Tomemos o exemplo clássico de Empresas e Empregados.
Dentro do Dataclass Employee, pretende um atributo companyName.
Uma vez que se trata de um atributo simples acessível através de um caminho, basta um simples pseudónimo. 4D irá optimizar as pesquisas, consultas, e ordenar como se o alvo fosse utilizado directamente.
//Employees Class
Class extends Entity
Alias companyName company.name
Do mesmo modo, na folha de dados das Empresas, pretende aceder à lista de employees (desta vez, uma selecção de entidade); um pseudónimo será também suficiente.
//Companies Class
Class extends Entity
Alias companyEmployees employees
Por outro lado, se no Dataclass Empregado quiser um atributo coworkers (lista de empregados com o mesmo gestor), terá de criar um atributo computorizado que será uma selecção de entidade () calculada desta forma:
//Employees Class
Class extends Entity
Função obter colegas de trabalho()->$entitySelection : cs.Empregados
$entitySelection := isto.manager.directReports.minus(this)
O mesmo se aplica à tabela da empresa; um atributo computorizado será obrigatório se quiser exibir a lista dos chefes de departamento, etc.
Exemplos ONDE podem ser utilizados pseudónimos
Os exemplos seguintes serão baseados na estrutura física descrita abaixo: As pessoas podem ser estudantes ou professores (ou ambos) e ensinar e aprender línguas. As Lições é a base de dados central que liga Pessoas (professores e estudantes) e Língua.
“Aplanar” uma tabela
Deseja esconder relações e fazer “como se” os atributos pertencessem directamente a um dataclass e não a outro.
Ex: Em vez de utilizar professor.name, student.name e Language.name com base na relação entre Lições, Pessoas, e Língua, poderá preferir aplanar a classe de dados das Lições utilizando pseudónimos:
//LessonsEntity Class
Class extends Entity
Alias professorName professor.name
Alias studentName student.name
Alias languageName language.name
Isto permitirá exibir as Lições usando pseudónimos directos!
OCULTAR AS RELAÇÕES “N->P
As Lições intermediárias de dataclasses podem até ser completamente ocultadas desde que todas as relações sejam definidas.
No exemplo acima, é possível definir para cada pessoa:
-
- as lições que seguem
- as lições que eles dão
- os estudantes que eles têm (se oferecerem aulas)
- os professores que eles têm (se seguirem as aulas)
//PeopleEntity Class
Class extends Entity
// entity selection of followed lessons
Alias followedLessons learning.language
// entity selection of given lessons
Alias givenLessons teaching.language
// entity selection of professors
Alias professors learning.professor
// entity selection of students
Alias students teaching.student
Conclusão
Verifique o IDH acima e saiba mais sobre os casos de utilização de pseudónimos. Encontre também mais detalhes sobre o centro doc.
Para mais detalhes, a documentação pode ser encontrada aqui.