lunes, 15 de junio de 2020

15/06/2020

  • Se implemento la tabla de bitacora de cambios.
  • Se implemento el SP que inserta en la bitacora.
BEGIN 
BEGIN TRY
SET NOCOUNT ON 
SET XACT_ABORT ON
DECLARE @userid int
SET @userid = (SELECT [id] FROM [dbo].[Usuario] WHERE [nombre] = @inInsertedBy)
INSERT INTO [dbo].[BitacoraCambio] ([idEntityType], [entityID], [jsonAntes],[jsonDespues],[insertedAt],[insertedBy],[insertedIn])
SELECT @inIdEntityType, @inEntityID, @inJsonAntes,@inJsonDespues,getdate(),@userid,@inInsertedIn
END TRY
BEGIN CATCH
THROW 762839,'Error: No se ha podido guardar el cambio en la bitacora',1;
END CATCH
END
  • Se modificaron los SP que insertar, actualizan y eliminan usuarios y propietarios
+ declare @jsonAntes varchar(500),@jsonDespues varchar(500), @idModified int
+--GUARDA EL JSON DEL ROW DE PROPIETARIO ANTES
SET @jsonAntes = (SELECT [id], [nombre], [valorDocId], [identificacion], [fechaDeIngreso]
FROM [dbo].[Propietario] WHERE [identificacion] = @inIdentificacionOriginal
FOR JSON PATH)
+--GUARDA EL JSON DEL ROW DE PROPIETARIO DESPUES
SET @jsonDespues = (SELECT [id], [nombre], [valorDocId], [identificacion], [fechaDeIngreso]
FROM [dbo].[Propietario] WHERE [identificacion] = @inIdentificacionOriginal
FOR JSON PATH)
--GUARDA EL ID
SET @idModified = (SELECT [id] FROM [dbo].[Propietario] WHERE [identificacion] = @inIdentificacionOriginal)
--INSERTA EL CAMBIO
EXEC [dbo].[SP_BitacoraCambioInsert] @inIdEntityType = 1,@inEntityID = @idModified, @inJsonAntes = @jsonAntes,
@inJsonDespues = @jsonDespues, @inInsertedBy = @inUsuarioACargo, 
@inInsertedIn = @inIPusuario

  • Se generan los json y se guardan como se muestra en el codigo anterior.
  • Se implemento el begin tran con rollback como se muestra en el codigo anterior
  • Se empezo a crear el trigger para guardar los cambios de la tabla propiedades pero no se como es posible ya que algunos datos los necesito como parametros y no se los puedo pasra al trigger.
Referencias:

UPDATE:

Se termino el trigger para guardar los cambios de la propiedad:

declare @jsonAntes varchar(500), @jsonDespues varchar(500), @idModified int
SET @idModified = (SELECT id FROM Inserted)

SET @jsonAntes = (SELECT [id], [valor], [direccion], [numFinca], [fechaDeIngreso],[M3acumuladosAgua],[M3AcumuladosUltimoRecibo]
FROM deleted
FOR JSON PATH)
SET @jsonDespues = (SELECT [id], [valor], [direccion], [numFinca], [fechaDeIngreso],[M3acumuladosAgua],[M3AcumuladosUltimoRecibo]
FROM inserted WHERE [activo] = 1
FOR JSON PATH)
EXEC [dbo].[SP_BitacoraCambioInsert] @inIdEntityType = 1,@inEntityID = @idModified, @inJsonAntes = @jsonAntes,
@inJsonDespues = @jsonDespues, @inInsertedBy = 'usuario1', 
@inInsertedIn = 123

Se trabajo por 7 horas.

No hay comentarios:

Publicar un comentario