JOB EN ERROR
Publicado por cesar augusto cuncanchun (6 intervenciones) el 19/04/2007 12:07:50
hola:
como siempre les escribo para que porfavor me colaboren, pues todas las consultas que les hago me han funcionado perfectamente.
tengo el siguiente codigo, el cual funciona perfecto cuando lo corro en el query analizer, pero este mismo codigo lo pongo en un job y el job falla cuando la consulta arroja registros. anteriormente yo tenia el job que me cambiaba de estado y funcionaba bien ahora cambie el codigo de dicho job para que ademas de cambiar de estado a los procesos me lleve una estadistica insertando en una tabla de que es lo que ha cambiado pero no funciona.
este el el codigo:
DECLARE @USUARIO CHAR(30)
SET @USUARIO='AJPEOPLE'
DECLARE @INSTANCIA AS INT
-- DECLARAMOS UN CURSOR LLAMADO "CURSORCC".
-- EL SELECT DEBE CONTENER SÓLO LOS CAMPOS A UTILIZAR.
DECLARE CURSORCC CURSOR FOR
SELECT PRCSINSTANCE
FROM PSPRCSRQST
WHERE DISTSTATUS='1'--DETERMINA SI ESTA EN ESTADO PROGRAMADO O N/A
AND RUNSTATUS IN('9','3') --DETERMINA SI ESTA EN CORRECTO O ERROR
AND OPRID=@USUARIO --USUARIO AJPEOPLE
AND (PRCSINSTANCE=JOBINSTANCE OR JOBINSTANCE=0)
AND GETDATE()-1<RQSTDTTM --LA FECHA DE PETICION DEBE SER DE UN DIA ATRAS HACIA ADELANTE(ESTO SE PUEDE CAMBIAR, SIN PROBLEMA)
AND GETDATE()-0.0069>ENDDTTM --VALIDO QUE LLEVE MAS DE 10 MINUTOS
OPEN CURSORCC
-- AVANZAMOS UNA FILA Y CARGAMOS EN LAS VARIABLES LOS VALORES ENCONTRADOS EN LA FILA ACTUAL
FETCH NEXT FROM CURSORCC
INTO @INSTANCIA
WHILE @@FETCH_STATUS = 0
BEGIN --AQUI REALIZA EL CAMBIO DE ESTADO QUE HACIAMOS MANUALMENTE
USE pubs
INSERT procesos
SELECT A.PRCSINSTANCE,A.PRCSNAME,A.ENDDTTM,GETDATE(),B.XLATSHORTNAME,'n/a'
FROM AJBOGDBPS1.FDMTEST8.dbo.PSPRCSRQST A,AJBOGDBPS1.FDMTEST8.dbo.PSXLATITEM B
WHERE A.RUNSTATUS=B.FIELDVALUE
AND PRCSINSTANCE=@INSTANCIA
AND (B.XLATSHORTNAME='Success'OR B.XLATSHORTNAME='Error')
USE FDMTEST8
UPDATE PS_CDM_LIST SET DISTSTATUS = 1 WHERE PRCSINSTANCE = @INSTANCIA
UPDATE PSPRCSRQST SET RUNSTATUS = 5 , DISTSTATUS =1 WHERE PRCSINSTANCE = @INSTANCIA
UPDATE PSPRCSQUE SET RUNSTATUS = 5 WHERE PRCSINSTANCE =@INSTANCIA
-- AVANZAMOS OTRO REGISTRO
FETCH NEXT FROM CURSORCC
INTO @INSTANCIA
END
-- CERRAMOS EL CURSOR
CLOSE CURSORCC
DEALLOCATE CURSORCC
como siempre les escribo para que porfavor me colaboren, pues todas las consultas que les hago me han funcionado perfectamente.
tengo el siguiente codigo, el cual funciona perfecto cuando lo corro en el query analizer, pero este mismo codigo lo pongo en un job y el job falla cuando la consulta arroja registros. anteriormente yo tenia el job que me cambiaba de estado y funcionaba bien ahora cambie el codigo de dicho job para que ademas de cambiar de estado a los procesos me lleve una estadistica insertando en una tabla de que es lo que ha cambiado pero no funciona.
este el el codigo:
DECLARE @USUARIO CHAR(30)
SET @USUARIO='AJPEOPLE'
DECLARE @INSTANCIA AS INT
-- DECLARAMOS UN CURSOR LLAMADO "CURSORCC".
-- EL SELECT DEBE CONTENER SÓLO LOS CAMPOS A UTILIZAR.
DECLARE CURSORCC CURSOR FOR
SELECT PRCSINSTANCE
FROM PSPRCSRQST
WHERE DISTSTATUS='1'--DETERMINA SI ESTA EN ESTADO PROGRAMADO O N/A
AND RUNSTATUS IN('9','3') --DETERMINA SI ESTA EN CORRECTO O ERROR
AND OPRID=@USUARIO --USUARIO AJPEOPLE
AND (PRCSINSTANCE=JOBINSTANCE OR JOBINSTANCE=0)
AND GETDATE()-1<RQSTDTTM --LA FECHA DE PETICION DEBE SER DE UN DIA ATRAS HACIA ADELANTE(ESTO SE PUEDE CAMBIAR, SIN PROBLEMA)
AND GETDATE()-0.0069>ENDDTTM --VALIDO QUE LLEVE MAS DE 10 MINUTOS
OPEN CURSORCC
-- AVANZAMOS UNA FILA Y CARGAMOS EN LAS VARIABLES LOS VALORES ENCONTRADOS EN LA FILA ACTUAL
FETCH NEXT FROM CURSORCC
INTO @INSTANCIA
WHILE @@FETCH_STATUS = 0
BEGIN --AQUI REALIZA EL CAMBIO DE ESTADO QUE HACIAMOS MANUALMENTE
USE pubs
INSERT procesos
SELECT A.PRCSINSTANCE,A.PRCSNAME,A.ENDDTTM,GETDATE(),B.XLATSHORTNAME,'n/a'
FROM AJBOGDBPS1.FDMTEST8.dbo.PSPRCSRQST A,AJBOGDBPS1.FDMTEST8.dbo.PSXLATITEM B
WHERE A.RUNSTATUS=B.FIELDVALUE
AND PRCSINSTANCE=@INSTANCIA
AND (B.XLATSHORTNAME='Success'OR B.XLATSHORTNAME='Error')
USE FDMTEST8
UPDATE PS_CDM_LIST SET DISTSTATUS = 1 WHERE PRCSINSTANCE = @INSTANCIA
UPDATE PSPRCSRQST SET RUNSTATUS = 5 , DISTSTATUS =1 WHERE PRCSINSTANCE = @INSTANCIA
UPDATE PSPRCSQUE SET RUNSTATUS = 5 WHERE PRCSINSTANCE =@INSTANCIA
-- AVANZAMOS OTRO REGISTRO
FETCH NEXT FROM CURSORCC
INTO @INSTANCIA
END
-- CERRAMOS EL CURSOR
CLOSE CURSORCC
DEALLOCATE CURSORCC
Valora esta pregunta


0