Skip to Main Content

Portuguese

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interactive Grids Mestre-Detalhe não atualizam dados (cache antigo) ao alterar filtros da página

Olá a todos,

Estou enfrentando um problema com um cenário Mestre-Detalhe em cadeia usando Interactive Grids (IGs) no Oracle APEX e gostaria de saber qual é a boa prática ou padrão recomendado para resolver isso.

Estrutura da Página

  • Page Items: Dois PopUp LOVs (:P110_FILTRO_1, :P110_FILTRO_2) e um botão de atualizar (BTN_ATUALIZAR).
  • Interactive Grids: Uma cadeia de regiões Mestre-Detalhe:
    • IG-1 (Mestre)
    • IG-2 (Detalhe da IG-1)
    • IG-3 (Detalhe da IG-2)
    • ...e assim por diante.

Comportamento das Consultas (SQL)

Reforço que todas as queries SQL das IGs foram testadas diretamente no banco de dados Oracle e os valores estão 100% corretos. As consultas filtram perfeitamente com base nos PopUp LOVs e nas chaves do grid mestre. O problema ocorre exclusivamente na sincronização/cache do lado do cliente (JavaScript/APEX Engine).

O Problema

Quando altero os PopUp LOVs e clico no botão BTN_ATUALIZAR:

  1. A **IG-1** (Mestre principal) atualiza normalmente com os novos dados filtrados.
  2. A **IG-2** (Detalhe) apresenta um comportamento inconsistente:
    • Ela costuma atualizar os dados apenas para a linha que já estava selecionada na IG-1.
    • Quando clico em outras linhas da IG-1, a IG-2 exibe dados antigos/em cache (anteriores ao clique do botão de atualizar).
    • Às vezes funciona, às vezes não.
    • Se tento usar uma Dynamic Action no evento Selection Change da IG-1 para forçar o Refresh na IG-2, preciso clicar pelo menos 2 vezes na mesma linha da mestre para que o grid detalhe busque e exiba os novos valores.

O que já foi testado

  1. Refresh apenas na **IG-1** no clique do botão: Esperando que a cascata nativa Mestre-Detalhe do APEX cuidasse das filhas (as filhas continuam mostrando dados antigos ao alternar as linhas).
  2. Refresh em todas as IGs no clique do botão: Causa problemas de concorrência assíncrona (race conditions) e lentidão na tela.
  3. Refresh disparado via Selection Change: Exige clicar duas vezes na linha para trazer o dado certo e gera requisições desnecessárias ao alternar seleções normalmente.
  4. Dynamic Action de **After Refresh** na **IG-1**: O evento de DOM apexafterrefresh não dispara de forma confiável em IGs Mestre devido ao controle interno de modelo do APEX.
Comments
Post Details
Added on Jul 30 2026
0 comments
50 views