Erro ao utilizar parêntese em parâmetro da macro sc_redir

============= DADOS DO PROBLEMA =============
5 - Descrição do problema*: Ao utilizar a macro sc_redir, um dos parâmetros passados é uma string (cabeçalho que será assumido em um controle). Se essa string possuir parêntese nela, ocorre erro.

6 - Passo a passo do problema*:
Passo 1: Em uma Consulta, evento onScriptInit, incluir a macro sc_redir passando como parâmetro o texto ‘Vendedor(a)’.
Passo 2: Executar a aplicação.

Comportamento esperado: Redirecionar para a aplicação indicada sem erros.

7 - Anexos relacionados ao problema*:
onScriptInit

sc_redir(control_cadastra_pessoa, nome_cadastro='Vendedor (a)');

Erro

Parse error: syntax error, unexpected ';', expecting ',' or ')' in /data/opt/NetMake/v9/wwwroot/scriptcase/app/Projeto/grid_teste/grid_teste_grid.class.php on line 324

Se remover os parênteses, funciona normalmente.

Bom dia Flavia,

Tente escapar os parênteses do texto.

Você tem que entender que isso é passado via GET na url da chamada.

Escapar não vai funcionar Kleyber.

A macro deveria tratar isso internamente mas se está havendo erro é porque não está havendo o tratamento correto.

tente:

$par = urlencode(‘Vendedor (a)’);

sc_redir(control_cadastra_pessoa, nome_cadastro=$par);

na aplicação control_cadastra_pessoa no evento onscriptinit:

[nome_cadastroi]= urldecode([nome_cadastro]);

Referências:
http://php.net/manual/pt_BR/function.urlencode.php
http://php.net/manual/pt_BR/function.urldecode.php

Boa, Haroldo!

A equipe do SC já constatou o BUG.

Conforme sugestão do Haroldo, só de passar como variável já resolve, sem precisar do urlencode:

$par = 'Vendedor (a)';
sc_redir(control_cadastra_pessoa, nome_cadastro=$par);

Obrigada!