El primer punto a tener en cuenta es activar Ole Automation Procedures en nuestro Servidor, dado que es muy probable que esté desactivado si no lo hemos utilizado anteriormente. Esto lo podemos hacer ejecutando el siguiente código:
sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'Ole Automation Procedures', 1; GO RECONFIGURE; GO
Una vez que hemos activado Ole Automation Procedures, ahora si podemos incluir las llamadas a los Web Services desde un Stored Procedure o un Trigger, tal como muestra el siguiente ejemplo con JSON.
Inicia 28 de Noviembre
CREATE PROCEDURE NombreStoredProcedure
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Object as Int;
DECLARE @Status Int;
DECLARE @ResponseText as Varchar (8000);
DECLARE @requestBody NVARCHAR(MAX) = ‘
{variable1 : «texto»,
variable2 : 1 }’
EXEC sp_OACreate ‘WinHttp.WinHttpRequest.5.1’, @Object OUT;
EXEC sp_OAMethod @Object, ‘Open’, NULL, ‘POST’, ‘https://server/api/method’, ‘false‘
EXEC sp_OAMethod @Object, ‘setRequestHeader’, null, ‘Content-Type’, ‘application/json’
DECLARE @len INT = len(@requestBody)
EXEC sp_OAMethod @Object, ‘setRequestHeader’, null, ‘Content-Length’, @len
EXEC sp_OAMethod @Object, ‘send’, null, @requestBody
EXEC sp_OAGetProperty @Object, ‘Status’, @Status OUT
EXEC sp_OAMethod @Object, ‘responseText’, @ResponseText OUTPUT
SELECT @ResponseText
EXEC sp_OADestroy @Object
END