Não tenho nenhum documento para compartilhar sobre esses loops aninhados e não faço mais parte da equipe do projeto, então tudo o que posso dizer sobre isso está fora do topo da minha cabeça. Então, espero que você entenda por que não posso contar muitos detalhes aqui.
basicamente, tive que realizar três tipos diferentes de pesquisa na mesma tabela para uma chamada regra personalizada no software de gerenciamento de dados de teste (TDM). Essas regras personalizadas são implementadas como mapplets e devem conter apenas transformações passivas. Sem roteadores, sem filtros, sem agregadores, sem transformações Java ativas, apenas expressões, transformações de pesquisa e similares.
agora, para as duas regras personalizadas mais complexas, tive que implementar várias tabelas auxiliares segurando esses dados de pesquisa em diferentes níveis de agregação. Preencher essas tabelas do PowerCenter não foi muito fácil porque o arquivo de origem consiste em 4,5 GB de texto (aplicativo. 43 milhões de registros); as tabelas de pesquisa contêm dados em três níveis diferentes de agregação com critérios de pesquisa diferentes. E eu não queria dividir o mapeamento em três. Então eu tive que cuidar da identificação de “mesmo” registro baseado no meu próprio, eu não poderia usar agregadores sozinho.
pelo que me lembro, em uma linguagem de programação tradicional como Java, eu precisaria de até cinco loops aninhados para analisar os dados de origem e criar os respectivos Registros de pesquisa a partir desses dados de entrada. Execução de diferentes níveis de agregação com vários variável de portas em um único EXP não é muito fácil de manter, mas meus testes iniciais revelaram que esta foi a melhor escolha, como mencionei que eu poderia ter de se dividir o mapeamento em três, mas cada um mapeamento teria quase o mesmo nível de complexidade como uma “geral” EXP, então eu não considero que vale a pena o esforço para manter a três diferentes caminhos de carga neste mapeamento.
estou confiante de que todos com alguma experiência no PowerCenter podem – depois de pensar – criar uma história semelhante de requisitos de mapeamento não triviais de sua própria prática. Podemos nem estar cientes de tal complexidade, mas ainda está lá.
como exemplo, pegue um thread de 2014 ou 2015 onde alguém perguntou como gerar números primos no PowerCenter. Não é muito fácil. Quem constrói tal solução tem que pensar (e trabalhar) fora dos caminhos conhecidos. Isso é sem dúvida uma conquista extraordinária no PowerCenter. Portanto, isso pode não ser um grande exemplo, mas pode ser um bom exemplo de lógica de mapeamento mais complexa.
como outro exemplo, observe qualquer sistema para coordenar a execução de fluxos de trabalho em uma determinada ordem. Talvez com algumas condições adicionais, como”número de registros com a propriedade XYZ sendo igual ao valor ABC”. Todas essas coisas podem se tornar arbitrariamente complexas e – como mencionado acima-estou confiante de que muitas pessoas construíram algo igualmente complexo uma ou mais vezes, mesmo que não o reconhecessem.