SC_REDIR não funciona em FORM - onAfterInsert?

Prezado(a)s, bom dia!

Estou criando um mecanismo para criar grupos baseado em Grupos já existentes (isto devido a multi empresa). Aproveitando o mesmo formulário criado pelo modulo de segurança simplesmente queria redirecionar após o insert para um blank que ajusta as permissões com UPDATE.
Porem ele não redireciona, não faz nada, não da erro, fica tela em branco.
Alguém tem alguma sugestão?

Grato,

Luis Gustavo Leal

Tentou usar modo Debug? tenta fazer o sc_redir sem os parametros para ver se funciona, só para confirmar se não é erro na hora de passar eles.

1 Curtida

por que não realizar os updates (que esta usando na blank) no próprio formulário?

Se a blank não reinderizar html ficará em branco mesmo. Use sc_redir para retornar a aplicação desejada.

1 Curtida

Ola João,

Ativei o Debug e observei que meu blank não consegue carregar os parâmetros enviados pelo SC_REDIR e causa o erro.

Coloquei no blank, o código abaixo, e observei que meu parâmetro aparece no Request

Blank:

var_dump($_REQUEST);
$_grupo_id_modelo = $_POST['grupo_origem']; 
$_grupo_id_novo = $_POST['grupo_destino'];

Obs: tbm tentei com $_GET e como global [grupo_origem]

Resposta:

array(3) { ["nmgp_parms"]=> string(39) "grupo_origem?#?**6**?@?grupo_destino?#?**7**?@?" ["nmgp_url_saida"]=> string(59) "/scriptcase/app/DjuntuSIPP/ins_form_sec_groups_super_admin/" ["script_case_init"]=> string(4) "4115" }

ERRO
Undefined index: grupo_origem
ERRO
Undefined index: grupo_destino
copy ->

OBS: meu parâmetro é somente 6 e o 7, não sei pq ele coloca todos esses códigos em volta.

Penso que o erro se da pela falha em recuperar o valores dos parâmetros.
Como recupero os valores passado do sc_redir ?

1 Curtida

Ola Haroldo,

Já tentei isso, fica uma tela em branco e não me da erro nenhum.
Foi por isso que joguei tudo para o Blank, funcionou eu passando manualmente os valores para as variáveis $_grupo_id_modelo e $_grupo_id_novo.

/* Código do SC para incluir os APP no grupo novo, feito pelo módulo */

$sql = "INSERT INTO dbo.SEC_groups_apps(group_id, app_name)
	     SELECT '". {group_id}."', app_name FROM dbo.SEC_apps ";
sc_exec_sql($sql);

/* -----------------------------------------------------------------------------------
    Variáveis para copia  - Meu código daqui para baixo. 
*/

$_grupo_id_modelo = {modelo};
$_grupo_id_novo = {group_id}; 

echo "copy " . $_grupo_id_modelo . " -> " . $_grupo_id_novo;

// Percorre as permissões do modelo e reaplica ao novo grupo criado 

$check_sql = 'SELECT group_id, app_name, priv_access, priv_insert, priv_delete, priv_update, priv_export, priv_print'
   . ' FROM dbo.SEC_groups_apps'
   . " WHERE group_id = '" . $_grupo_id_modelo . "'";

sc_select(rs, $check_sql);

if (false == {rs})    
{
    sc_error_message('Ops, erro acessando a base de dados.');
}
else
{
   echo "<table>
   			<tr>
				<th>App Name</th>
				<th>Pode acessar</th>
			</tr>";		
  
   while(!$rs->EOF)
    {
	   	$_group_id 	  =  $rs->fields[0];
		$_app_name    =  $rs->fields[1];
		$_priv_access =  $rs->fields[2];
		$_priv_insert =  $rs->fields[3];
		$_priv_delete =  $rs->fields[4];
		$_priv_update =  $rs->fields[5];
		$_priv_export =  $rs->fields[6];
		$_priv_print  =  $rs->fields[7];
			
	   echo "<tr><td>".$_app_name."</td><td>".$_priv_access."</td></tr>";
	   
	   // Atualiza as permissoes mesma APP no gruno novo 

		$update_table  = 'dbo.SEC_groups_apps';      
		$update_where  = "(group_id = '".$_grupo_id_novo."') AND (app_name = '".$_app_name."')"; 
		$update_fields = array(   
			"priv_access = '".$_priv_access."'",
			"priv_insert = '".$_priv_insert."'",
			"priv_delete = '".$_priv_delete."'",
			"priv_update = '".$_priv_update."'",
			"priv_export = '".$_priv_export."'",
			"priv_print  = '".$_priv_print."'",
		 );

		$update_sql = 'UPDATE ' . $update_table
			. ' SET '   . implode(', ', $update_fields)
			. ' WHERE ' . $update_where;
		sc_exec_sql($update_sql);
	   
	   //Fim. Update 
	   
	   $rs->MoveNext();
    }
	echo "<table>";
	
    $rs->Close();
}

Use globais na blank entre []
Exemplo: [grupo_origem]

2 Curtidas