Olá pessoal, estão bem?

Neste simples tutorial de hoje, gostaria de mostrar como utilizar o step de switch / case, que permite direcionar dados vindos de diversas fontes para diversos destinos de forma correta.

O step funciona da seguinte forma: passamos uma coluna que será avaliada na stream e quando ela for comparada no step switch / case, irá direcionar cada registro correspondente para o destino especificado.

No cenário do exemplo utilizado estamos supondo que temos três fontes de dados diferentes e que cada uma destas fontes precisa ir para um destino específico.

Veja a imagem:

Para cada um dos steps generate rows, crie linhas de teste comuns.

Estas são as principais opções de configuração do step. O que queremos configurar está na opção case value, onde atribuímos um destino para estas fontes de dados.

Em Field name to switch configuramos qual coluna o switch/case irá avaliar. No meu caso, será a coluna texto.

No input de case value, devemos declarar ao step quais valores dentro da coluna texto ele deve buscar  e para onde direcionar. 

Já em default, se houver algum valor que não tenha correspondência no case value, deverá ser direcionado para este dummy.

Veja a configuração na imagem.

Ao final da configuração execute essa transformação criada.

Veja na imagem do DummyA que os dados foram direcionados corretamente para o destino.

Para testar o default na transformação, adicionei mais um step de gerador de linha sem configurar um destino no switch/case, veja:

Veja o resultado abaixo:

O step switch/case consegue trabalhar com substring implicitamente, desde que esteja com a caixa de diálogo use string contains comparison ativa

Veja as configurações do gerador A e B modificadas.

Percebam também que o step de switch/case não foi modificado, continua com a configuração inicial. 

Executando a transformação, nosso processo ocorreu perfeitamente. Veja o resultado 

E para finalizar este post, existe uma situação em que o step não destina o dado correspondente para o seu destino, veja:

Se perceberem, alterei o campo texto tornando-o diferente da configuração que criamos no step switch/case. Repare no resultado final:

Como não havia correspondente para comparar com o step e o contains está ativo, o campo não foi enviado para o dummy desejado e o switch/case envia para o default, por entender que aquele registro não corresponde na comparação.

“Ok, entendi, então basta desmarcar a caixa de diálogo use strings contain comparison que irá funcionar. correto?”

Negativo! quando desmarcamos, o resultado continua a não corresponder com a comparação criada. 

Assim sendo, os dados vindos da fonte vão para o step de default.

CONCLUSÃO

Este foi um post bem explicativo sobre o uso do switch/case que pode ser de grande ajuda quando temos dados de diversas fontes e precisamos destiná-los para locais diferentes!

Não se esqueça das restrições que a caixa de diálogo cria e de configurar corretamente as comparações!

Baixe aqui os arquivos.