AbsaOSS / AbsaOSS/enceladus

Case Clauses for Mapping Rules

Abierto
#188 1 comentario 0 reacciones 1 asignado Reclamado por @Zejnilovic Ver en GitHub
Conformance feature Menas priority: undecided request under discussion
Lenguaje dominante
Scala
Estrellas
33
Forks
16
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

## Background
Currently, we have no functionality to do case clauses in the Menas UI:

The types of rules that require this functionality have been done through the API rather than the UI but we have gotten more requests for this to be a functionality in the UI.
## Problem
Some use cases need to do apply a case clause before being able to do a mapping rule.
### Example:
There is a dataset that holds client keys that are either an Source1 or Source2 in the same column.
When trying to conform this against a mapping table the joins would be as follows:

*Mapping Table : Dataset*
SourceSystem : SourceSystem (Needs to be a literal - either Source1 or Source2)
SystemCode : ClientKey

Currently, it is not possible to have both Source2 and Source1 as the literal so we would only be able to conform against Source1 or Source2 but not both.

## Proposed Solution
1. Dynamic Literal -
CASE
WHEN LEN(ClientKey) = 6 THEN “source1”
ELSE CASE
WHEN LEN(ClientKey) = 10 THEN “source2”
ELSE “UNKNOWN” END END
2. Extra Clause in Join Condition -
*Mapping Table : Dataset*
SourceSystem : in ("source1","source2")
SystemCode : ClientKey
3. Filter Mapping Table Before Executing Join -
*Mapping Table Filter Condition*
SELECT($"MappingTable.SourceSystem".isin("source1","source2"))

[Example](https://app.zenhub.com/files/154513089/6c6fdbd7-c48c-4b28-a9da-66f98821fd12/download)

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.