Ejecucion de web service
Publicado por Ricardo Sierra (16 intervenciones) el 19/09/2005 23:40:37
Necesito ejecutar un web service desde un store procedure, he estado utilizando el xp_cmdshell de la siguiente forma:
start /B http://10.231.8.28/mbi/monitor.asmx/AgregarRemoverCajero?Drop=4000&TipoOperacion=RE
donde los parametros del webservice AgregarRemoverCajero son
Drop=4000
y TipoOperacion=RE
el URL esta en formato GET y ya lo he probado desde el explorador y funciona bien, pero si lo ejecuto dentro del store procedure no me funciona. Transcribo el store procedure:
CREATE PROCEDURE sp_SET_EAI_MONITOR
@DROP_ATM INT,
@OPERACION NCHAR(2)
AS
DECLARE @SERVIDOR AS NVARCHAR(20),
@CMD AS NVARCHAR(4000),
@RESULTADO INT
SET @SERVIDOR = '10.231.8.28'
IF @DROP_ATM IS NULL RETURN
IF @OPERACION IS NULL RETURN
-- EN FORMATO GET
SET @CMD = 'start /B http://'+ @SERVIDOR + '/mbi/monitor.asmx/AgregarRemoverCajero?Drop=' + CONVERT(VARCHAR, @DROP_ATM) + '&TipoOperacion=' + @OPERACION
SELECT @CMD
EXEC @RESULTADO = master.dbo.xp_cmdshell @CMD, NO_OUTPUT
IF @RESULTADO = 0
PRINT 'Finalizacion OK'
ELSE
PRINT 'Falla en la ejecucion'
GO
start /B http://10.231.8.28/mbi/monitor.asmx/AgregarRemoverCajero?Drop=4000&TipoOperacion=RE
donde los parametros del webservice AgregarRemoverCajero son
Drop=4000
y TipoOperacion=RE
el URL esta en formato GET y ya lo he probado desde el explorador y funciona bien, pero si lo ejecuto dentro del store procedure no me funciona. Transcribo el store procedure:
CREATE PROCEDURE sp_SET_EAI_MONITOR
@DROP_ATM INT,
@OPERACION NCHAR(2)
AS
DECLARE @SERVIDOR AS NVARCHAR(20),
@CMD AS NVARCHAR(4000),
@RESULTADO INT
SET @SERVIDOR = '10.231.8.28'
IF @DROP_ATM IS NULL RETURN
IF @OPERACION IS NULL RETURN
-- EN FORMATO GET
SET @CMD = 'start /B http://'+ @SERVIDOR + '/mbi/monitor.asmx/AgregarRemoverCajero?Drop=' + CONVERT(VARCHAR, @DROP_ATM) + '&TipoOperacion=' + @OPERACION
SELECT @CMD
EXEC @RESULTADO = master.dbo.xp_cmdshell @CMD, NO_OUTPUT
IF @RESULTADO = 0
PRINT 'Finalizacion OK'
ELSE
PRINT 'Falla en la ejecucion'
GO
Valora esta pregunta


0