sc_redir('app_name/url', parameter01; parameter02, 'target', 'error', 'modal_height', 'modal_width')

La macro sc_redir se utiliza para crear redirecciones dinámicas entre dos aplicaciones o entre una aplicación y una URL, permitiendo el paso de parámetros y el control sobre cómo se abrirá la aplicación de destino utilizando el parámetro target.

En aplicaciones de formulario, la macro sc_redir se puede usar en eventos que dependen de actualizaciones en la base de datos, como: onAfterInsert, onAfterUpdate, onAfterDelete, onBeforeInsert, onBeforeUpdate, y onBeforeDelete.
Sin embargo, en estos eventos, la macro sc_commit_trans() debe usarse antes de sc_redir para confirmar la transacción; de lo contrario, la redirección ocurrirá sin que los cambios en la tabla sean aplicados.

Parámetros

Parámetro Descripción Ejemplos
app_name/url Recibe el nombre de la aplicación de destino o URL a la cual el usuario será redirigido.
Los valores deben estar entre comillas dobles o simples.
sc_redir('app_name');
parameter_to_send Permite pasar valores a la aplicación de destino en el formato: nombre_parámetro='valor'.
Puede usar un campo de la aplicación, una variable o informar un valor fijo.
Si se pasan más de un parámetro, use un punto y coma (;) como delimitador.
Los valores deben recuperarse como variables globales en la aplicación de destino.
sc_redir('app_name', parm1=50);
Dos parámetros pasados: sc_redir('aplx', parm1={clienteid}; parm2="xxx");
En 'aplx', los valores se recuperan como variables globales: [parm1] y [parm2].
target Define cómo se mostrará la aplicación/URL de destino.
  • _self: Abre el destino en la misma pestaña (valor predeterminado si no se especifica ningún valor).
  • _blank: Abre el destino en una nueva pestaña.
  • _parent: Abre el destino en la ventana principal, si la página actual está en un iframe.
  • modal: Abre el destino en una ventana modal (esta opción no está disponible cuando se usa la macro en un botón de ejecución).
Especificar el target sin parámetros:
sc_redir('app_name', , '_blank');

Usando modal:
sc_redir('app_name', , 'modal', , '800', '600');
error Define el comportamiento de la redirección en caso de error en la aplicación.
  • 'E': Bloquea la redirección si ocurre un error.
  • 'F': Fuerza la redirección incluso si ocurre un error.
sc_redir('app_name', , ' ', 'E');
sc_redir('app_name', , ' ', 'F');
modal_height Define la altura del modal en píxeles. Este parámetro es obligatorio al usar modal en el parámetro target. sc_redir('app_name', , 'modal', , '800', '600');
modal_width Define el ancho del modal en píxeles. Este parámetro es obligatorio al usar modal en el parámetro target. sc_redir('app_name', , 'modal', , '800', '600');

Ejemplos de Uso

Ejemplo 1 - Redirección simple sin parámetros.
// Dado que solo se especificó la aplicación, se abrirá en la misma pestaña.
sc_redir('aplx');
Ejemplo 2 - Redirección con paso de parámetros.
// Se envían cuatro parámetros a la aplicación de destino; estos valores deben recuperarse como variables globales: [parm1], [parm2], [parm3], [parm4].
if (empty($variable)) { $variable = "documentación"; }
sc_redir('aplx', parm1={clienteid}; parm2="xxx"; parm3=$variable; parm4=10);
Ejemplo 3 - Uso de target sin parámetros.
// En este caso, dado que no se envían parámetros a la aplicación de destino, se debe dejar el espacio en blanco para especificar el target.
sc_redir('aplx', , '_blank');
Ejemplo 4 - Uso de modal para el parámetro target.
// Es obligatorio definir el ancho y la altura al especificar modal en el parámetro target.
// Solo se deben proporcionar los valores.
sc_redir('aplx', , "modal", '', '800', '600');
Ejemplo 5 - Ejemplo de uso en eventos de transacción de base de datos en formularios.
// La macro sc_commit_trans debe usarse antes de sc_redir para confirmar la transacción.
sc_commit_trans();
sc_redir('aplx', parm1={clienteid});
Ejemplo 6 - Redirección a una URL.
if ([glo_usr] == "test") { sc_redir("http://www.mipagina.com"); }