Diferencia entre revisiones de «BD.FUNC.CEN FUNC MIEMBRO COLA»

De VIVAitwiki
Ir a la navegaciónIr a la búsqueda
(Página creada con «==Descripción== ==Parámetros de entrada== ===PAR_ID_EXTENSION=== INT ==Retornos== varchar(64) Retorna una lista de colas corporativas CEN_COLAS separ...»)
 
 
Línea 1: Línea 1:
 
==Descripción==
 
==Descripción==
  
==Parámetros de entrada==
+
==Parámetros==
  
===PAR_ID_EXTENSION===
 
INT
 
  
==Retornos==
 
varchar(64)
 
  
Retorna una lista de colas corporativas [[BD.CEN_COLAS|CEN_COLAS]] separadas por ';' a las que pertenece el ID_EXTENSION dado como parámetro
+
USE `nimitz`;
 +
 
 +
DROP function IF EXISTS `nimitz`.`CEN_FUNC_MIEMBRO_COLA`;
 +
 
 +
DELIMITER $$
 +
 
 +
USE `nimitz`$$
 +
 
 +
CREATE DEFINER=`adminNimitz`@`%` FUNCTION `CEN_FUNC_MIEMBRO_COLA`(
 +
 
 +
PAR_ID_EXTENSION INT
 +
 
 +
) RETURNS varchar(64) CHARSET utf8
 +
 
 +
MODIFIES SQL DATA
 +
 
 +
DETERMINISTIC
 +
 
 +
BEGIN
 +
 
 +
DECLARE VAR_NOMBRE VARCHAR(32);
 +
 
 +
DECLARE VAR_EXTENSION VARCHAR(32);
 +
 
 +
DECLARE VAR_PRIORIDAD INT;
 +
 
 +
DECLARE VAR_COLAS VARCHAR(255);
 +
 
 +
DECLARE VAR_NO_HAY BOOLEAN;
 +
 
 +
DECLARE num_filas INT DEFAULT 0;
 +
 
 +
DECLARE SQL_CEN_COLAS_EXTENSIONES CURSOR for
 +
 
 +
select CC.C_NOMBRE,CE.C_NOMBRE,CCE.N_PRIORIDAD from CEN_COLAS_EXTENSIONES CCE
 +
 
 +
INNER JOIN CEN_COLAS CC ON CCE.ID_COLA=CC.ID
 +
 
 +
INNER JOIN CEN_EXTENSIONES CE ON CCE.ID_EXTENSION=CE.ID
 +
 
 +
where ID_EXTENSION=PAR_ID_EXTENSION;
 +
 
 +
DECLARE CONTINUE HANDLER FOR NOT FOUND
 +
 
 +
SET VAR_NO_HAY = TRUE;
 +
 
 +
SET VAR_COLAS = "";
 +
 
 +
OPEN SQL_CEN_COLAS_EXTENSIONES;
 +
 
 +
select FOUND_ROWS() into num_filas;
 +
 
 +
bucle: LOOP
 +
 
 +
FETCH SQL_CEN_COLAS_EXTENSIONES INTO VAR_NOMBRE,VAR_EXTENSION,VAR_PRIORIDAD;
 +
 
 +
IF VAR_NO_HAY then
 +
 
 +
CLOSE SQL_CEN_COLAS_EXTENSIONES;
 +
 
 +
LEAVE bucle;
 +
 
 +
END IF;
 +
 
 +
IF VAR_PRIORIDAD IS NULL THEN
 +
 
 +
SET VAR_COLAS=CONCAT(VAR_COLAS,VAR_NOMBRE,"|SIP/",VAR_EXTENSION,";");
 +
 
 +
ELSE
 +
 
 +
SET VAR_COLAS=CONCAT(VAR_COLAS,VAR_NOMBRE,"|SIP/",VAR_EXTENSION,"|",VAR_PRIORIDAD,";");
 +
 
 +
END IF;
 +
 
 +
END LOOP bucle;
 +
 
 +
RETURN VAR_COLAS;
 +
 
 +
END$$
 +
 
 +
DELIMITER ;

Revisión actual del 14:43 12 nov 2021

1 Descripción

2 Parámetros

USE `nimitz`;

DROP function IF EXISTS `nimitz`.`CEN_FUNC_MIEMBRO_COLA`;

DELIMITER $$

USE `nimitz`$$

CREATE DEFINER=`adminNimitz`@`%` FUNCTION `CEN_FUNC_MIEMBRO_COLA`(

PAR_ID_EXTENSION INT

) RETURNS varchar(64) CHARSET utf8

MODIFIES SQL DATA

DETERMINISTIC

BEGIN

DECLARE VAR_NOMBRE VARCHAR(32);

DECLARE VAR_EXTENSION VARCHAR(32);

DECLARE VAR_PRIORIDAD INT;

DECLARE VAR_COLAS VARCHAR(255);

DECLARE VAR_NO_HAY BOOLEAN;

DECLARE num_filas INT DEFAULT 0;

DECLARE SQL_CEN_COLAS_EXTENSIONES CURSOR for

select CC.C_NOMBRE,CE.C_NOMBRE,CCE.N_PRIORIDAD from CEN_COLAS_EXTENSIONES CCE

INNER JOIN CEN_COLAS CC ON CCE.ID_COLA=CC.ID

INNER JOIN CEN_EXTENSIONES CE ON CCE.ID_EXTENSION=CE.ID

where ID_EXTENSION=PAR_ID_EXTENSION;

DECLARE CONTINUE HANDLER FOR NOT FOUND

SET VAR_NO_HAY = TRUE;

SET VAR_COLAS = "";

OPEN SQL_CEN_COLAS_EXTENSIONES;

select FOUND_ROWS() into num_filas;

bucle: LOOP

FETCH SQL_CEN_COLAS_EXTENSIONES INTO VAR_NOMBRE,VAR_EXTENSION,VAR_PRIORIDAD;

IF VAR_NO_HAY then

CLOSE SQL_CEN_COLAS_EXTENSIONES;

LEAVE bucle;

END IF;

IF VAR_PRIORIDAD IS NULL THEN

SET VAR_COLAS=CONCAT(VAR_COLAS,VAR_NOMBRE,"|SIP/",VAR_EXTENSION,";");

ELSE

SET VAR_COLAS=CONCAT(VAR_COLAS,VAR_NOMBRE,"|SIP/",VAR_EXTENSION,"|",VAR_PRIORIDAD,";");

END IF;

END LOOP bucle;

RETURN VAR_COLAS;

END$$

DELIMITER ;