Sumário

Search

  1. Prefácio
  2. Introdução às Transformações
  3. Portas de Transformação
  4. Caches de Transformação
  5. Transformação de Validador de Endereço
  6. Transformação de Agregador
  7. Transformação de Associação
  8. Transformação de Exceção de Registro Inválido
  9. Transformação de Conversor de Maiúsculas/Minúsculas
  10. Transformação de Classificador
  11. Transformação de Comparação
  12. Transformação de Consolidação
  13. Transformação de Mascaramento de Dados
  14. Transformação do Processador de Dados
  15. Transformação de Decisão
  16. Transformação de Exceção de Registro Duplicado
  17. Transformação de Expressão
  18. Transformação de Filtro
  19. Transformação Hierárquica para Relacional
  20. Transformação Java
  21. Referência da API da transformação Java
  22. Expressões Java
  23. Transformação de Associador
  24. Transformação de Gerador de Chaves
  25. Transformação de Rotulador
  26. Transformação de Pesquisa
  27. Caches de Pesquisa
  28. Cache de Pesquisa Dinâmica
  29. Transformação de Macro
  30. Transformação de Correspondência
  31. Transformações de Correspondência na Análise de Campos
  32. Transformações de Correspondência na Análise de Identidade
  33. Transformação Normalizador
  34. Transformação de Mesclagem
  35. Transformação de Analisador
  36. Transformação Python
  37. Transformação de Classificação
  38. Transformação de Leitura
  39. Transformação de Relacional para Hierárquica
  40. Transformação de Consumidor de Serviço da Web REST
  41. Transformação de Roteador
  42. Transformação de Gerador de Sequência
  43. Transformação de Ordenador
  44. Transformação SQL
  45. Transformação de Padronizador
  46. Transformação de União
  47. Transformação de Estratégia de Atualização
  48. Transformação de Consumidor de Serviço da Web
  49. Analisando Mensagens SOAP de Serviços da Web
  50. Gerando Mensagens SOAP de Serviços da Web
  51. Transformação de Média Ponderada
  52. Transformação de Janela
  53. Transformação de Gravação
  54. Apêndice A: Delimitadores de Transformação

Guia de Transformação do Developer

Guia de Transformação do Developer

Otimização de Envio com a Transformação Java

Otimização de Envio com a Transformação Java

Você poderá habilitar uma transformação Java ativa para otimização de envio se ela não tiver efeitos colaterais e se a otimização não afetar os resultados do mapeamento.
Ao configurar a otimização de envio para a transformação Java, você define uma forma para essa transformação Java armazenar a condição de filtro que ela recebe do otimizador. Adicionar um código que examine a condição de filtro. Se a transformação Java puder absorver a lógica de filtro, a transformação Java transmitirá uma condição "true" de volta ao otimizador. O otimizador remove a transformação de Filtro do mapeamento otimizado.
Ao configurar a transformação Java, você grava o código que armazena a condição de filtro como metadados de transformação durante a otimização. Você também grava o código para recuperar a condição de filtro em tempo de execução e para descartar as linhas de acordo com a lógica de filtro.
Ao definir a transformação Java, você adiciona o código para otimização de envio na guia
Interfaces do Otimizador
da transformação Java. Para acessar os trechos de código para otimização de envio, escolha FilterPushdownOptimization no navegador da guia
Interfaces do Otimizador
da transformação.
A ferramenta Developer exibe trechos de código para habilitar a otimização de envio e para receber a condição de filtro do otimizador. Atualize os trechos de código para habilitar a otimização e para salvar a lógica de filtro como metadados de transformação.

isFilterSupported

Retorna "true" para habilitar a otimização de envio. Retorna "false" para desabilitar a otimização de envio.
Altere a função para retornar "true" de forma a habilitar a otimização de envio.
public ResultAndMessage isFilterSupported() { // To enable filter push-into optimization this function should return true // return new ResultAndMessage(true, ""); return new ResultAndMessage(false, "Filter push-into optimization is not supported"); }

pushFilter

Recebe a condição de filtro do otimizador.
Adicione um código para examinar o filtro e determinar se a lógica de filtro pode ser usada na transformação. Se a transformação puder absorver o filtro, use o método a seguir para armazenar a condição de filtro como metadados de transformação:
storeMetadata(String key, String data)
A chave é um identificador para os metadados. Você pode definir qualquer string como uma chave. Os dados são os dados que você deseja armazenar para determinar quais linhas devem ser descartadas em tempo de execução. Por exemplo, os dados podem ser a condição de filtro que a transformação Java recebe do otimizador.
public ResultAndMessage pushFilter(InfaExpression condition) { // Add code to absorb the filter // If filter is successfully absorbed return new ResultAndMessage(true, ""); and the optimizer // will remove the filter from the mapping // If the filter is not absorbed, return new ResultAndMessage(false, msg); return new ResultAndMessage(false, "Filter push-into optimization is not supported"); }