Bug- função prep_conect()

Prezados, utilizando a função sc_change_connection, percebi que em algumas aplicações, a macro não faz o efeito desejado de trocar a conexão. Depois de muito tempo perdido, verifiquei que o SC esta gerando a função prep_conect() de forma errada, pois as condições para verificar a conexão, esta abaixo da definição da variável $con_devel.
O correto é passar a definição da variavel, abaixo da sequencia de if’s, da seguinte forma:

if (isset($_SESSION[‘scriptcase’][‘sc_connection’]) && !empty($_SESSION[‘scriptcase’][‘sc_connection’]))

}
$con_devel = (isset($_SESSION[‘scriptcase’]…

Nos novos códigos gerados, aparece a definição do $con_devel, logo no inicio da função e só depois a sequencia de if’s, inutilizando dessa forma a mudança.

Poderia informar as aplicações e de como o senhor está utilizando a macro, e em quais eventos?

Utilizo a macro sc_change_connection na validação da aplicação login, momento em que defino o banco de dados a ser utilizado. Ate aqui esta tudo certo, pois o sistema conecta no banco de dados do usuario e abre o menu dinamico correspondente.

Verifiquei o problema na aplicação calendario e nas aplicações de segurança (login), ou seja, nas aplicações que foram re-geradas nessa nova versão.

Poderia informar um trecho do seu código? Usando a macro sc_change_connection.

Estou utilizando a macro na validação do campo cnpj, que foi inserido na tela do login, conforme abaixo:

sc_change_connection("_central", {cnpj}."_central" ; “_sez”, {cnpj}."_sez"; “conn_mysql”, {cnpj}."_central");

No caso, como não tem outro jeito, por enquanto, todas as conexões, foram definidas no SC e é feito a troca nessa função, que é um evento onchange ajax. Como eu disse no outro post, esta funcionando nas outras aplicações e funciona, a partir do momento que faço a inversão na função prep_conect() dentro do index.php da aplicação.

Segue abaixo o trecho do index.php da aplicação apl_login, depois de regerado:

function prep_conect()
{
$con_devel = (isset($_SESSION[‘scriptcase’][‘apl_Login’][‘glo_nm_conexao’])) ? $_SESSION[‘scriptcase’][‘apl_Login’][‘glo_nm_conexao’] : “”;
$perfil_trab = “”;
$this->nm_falta_var = “”;
$this->nm_falta_var_db = “”;
$nm_crit_perfil = false;
if (isset($_SESSION[‘scriptcase’][‘sc_connection’]) && !empty($_SESSION[‘scriptcase’][‘sc_connection’]))
{
foreach ($_SESSION[‘scriptcase’][‘sc_connection’] as $NM_con_orig => $NM_con_dest)
{
if (isset($_SESSION[‘scriptcase’][‘apl_Login’][‘glo_nm_conexao’]) && $_SESSION[‘scriptcase’][‘apl_Login’][‘glo_nm_conexao’] == $NM_con_orig)
{
/NM/ $_SESSION[‘scriptcase’][‘apl_Login’][‘glo_nm_conexao’] = $NM_con_dest;
}
if (isset($_SESSION[‘scriptcase’][‘apl_Login’][‘glo_nm_perfil’]) && $_SESSION[‘scriptcase’][‘apl_Login’][‘glo_nm_perfil’] == $NM_con_orig)
{
/NM/ $_SESSION[‘scriptcase’][‘apl_Login’][‘glo_nm_perfil’] = $NM_con_dest;
}
if (isset($SESSION[‘scriptcase’][‘apl_Login’]['glo_con’ . $NM_con_orig]))
{
$SESSION[‘scriptcase’][‘apl_Login’]['glo_con’ . $NM_con_orig] = $NM_con_dest;
}
}
}

Veja que a definição do $con_devel esta no inicio da função, e abaixo, vem a redefinição das variáveis da conexão em sessão. Ou seja, para ter efeito, a definição do $con_devel, tem que vir abaixo da redefinição das variáveis da conexão. Desta forma, sempre fica a conexão original da aplicação.

Não entendi nada