A3ERP Limpieza de sistema
10/05/2016SQL Server: Cómo listar todas las tablas y columnas de una base de datos
31/05/2016Premisas Previas
Una de las informaciones que se echa de menos en A3ERP son las fechas de altas (en algunos sitios) y fechas de última Modificación.La manera que hemos obtenido para solventarlo, es mediante Triggers, ya que mediante el diccionario de la empresa no es posible al dar errores en los cambios de versión (concrétamente de la 0 a la 10).
Diccionario A3ERP
Si que es imprescindible que via diccionario se añadan los campos «fecha de alta» y «fecha de última modificación» donde queramos guardar esta información.
- KLS_LASTUPDATE
- KLS_CREATEDATE
Las tablas que en este caso controlamos son (siempre podéis añadir la tabla que queráis):
- Artículos
- Clientes
- Direcciones
- Movimientos de Stock
- Precios Especiales
- Tarifas
Crear Triggers
Sin más os dejo el script que tenéis que ejecutar en SQL para crear los TriggersCREATE TRIGGER FECHA_ALTA_ARTICULOON ARTICULO AFTER INSERTASSET NOCOUNT ON;BEGINDECLARE @artinsertado varchar(50)SET @artInsertado= (select codart from inserted)UPDATE ARTICULO SET ARTICULO.KLS_CREATEDATE=GETDATE() WHERE ARTICULO.CODART=@artInsertadoENDGOCREATE TRIGGER FECHA_ULTIMA_MODIFICACION_ARTICULOON SPACERS.DBO.ARTICULO AFTER UPDATEASSET NOCOUNT ON;BEGINDECLARE @artinsertado varchar(50)SET @artInsertado= (select codart from inserted)UPDATE ARTICULO SET ARTICULO.KLS_LASTUPDATE=GETDATE() WHERE ARTICULO.CODART=@artInsertadoENDGOCREATE TRIGGER FECHA_ALTA_CLIENTEON __CLIENTES AFTER INSERTASSET NOCOUNT ON;BEGINDECLARE @clienteInsertado varchar(50)SET @clienteInsertado = (select codcli from inserted)UPDATE __CLIENTES SET __CLIENTES.KLS_CREATEDATE=GETDATE() WHERE __CLIENTES.CODCLI=@clienteInsertadoENDGOCREATE TRIGGER FECHA_ULTIMA_MODIFICACION_CLIENTEON __CLIENTES AFTER UPDATEASSET NOCOUNT ON;BEGINDECLARE @clienteInsertado varchar(50)SET @clienteInsertado =(select codcli from inserted)UPDATE __CLIENTES SET __CLIENTES.KLS_LASTUPDATE=GETDATE() WHERE __CLIENTES.CODCLI=@clienteInsertadoENDGOCREATE TRIGGER FECHA_ALTA_DIRENTON DIRENT AFTER INSERTASSET NOCOUNT ON;BEGINDECLARE @direccionInsertada varchar(50)SET @direccionInsertada = (select iddirent from inserted)UPDATE DIRENT SET DIRENT.KLS_CREATEDATE=GETDATE() WHERE DIRENT.IDDIRENT=@direccionInsertadaENDGOCREATE TRIGGER FECHA_ULTIMA_MODIFICACION_DIRENTON DIRENT AFTER UPDATEASSET NOCOUNT ON;BEGINDECLARE @direccionInsertada varchar(50)SET @direccionInsertada = (select iddirent from inserted)UPDATE DIRENT SET DIRENT.KLS_LASTUPDATE=GETDATE() WHERE DIRENT.IDDIRENT=@direccionInsertadaENDGOCREATE TRIGGER FECHA_ALTA_PRECIOS_ESP_VENTAON PRCESP AFTER INSERTASSET NOCOUNT ON;BEGINDECLARE @idPrcEsp varchar(50)SET @idPrcEsp= (select IDPRCESP from inserted)UPDATE PRCESP SET PRCESP.KLS_CREATEDATE=GETDATE() WHERE PRCESP.IDPRCESP=@idPrcEspENDGOCREATE TRIGGER FECHA_ULTIMA_MODIFICACION_PRECIOS_ESP_VENTAON PRCESP AFTER UPDATEASSET NOCOUNT ON;BEGINDECLARE @idPrcEsp varchar(50)SET @idPrcEsp= (select IDPRCESP from inserted)UPDATE PRCESP SET PRCESP.KLS_LASTUPDATE=GETDATE() WHERE PRCESP.IDPRCESP=@idPrcEspENDGOCREATE TRIGGER FECHA_ALTA_MOVIMIENTO_STOCKON STOCKALM AFTER INSERTASSET NOCOUNT ON;BEGINDECLARE @idInsertado varchar(50)SET @idInsertado= (select ID from inserted)UPDATE STOCKALM SET STOCKALM.KLS_CREATEDATE=GETDATE() WHERE STOCKALM.ID=@idInsertadoENDGOCREATE TRIGGER FECHA_ULTIMA_MODIFICACION_STOCKON STOCKALM AFTER UPDATEASSET NOCOUNT ON;BEGINDECLARE @idInsertado varchar(50)SET @idInsertado= (select ID from inserted)UPDATE STOCKALM SET STOCKALM.KLS_LASTUPDATE=GETDATE() WHERE STOCKALM.ID=@idInsertadoENDGOCREATE TRIGGER FECHA_ALTA_TARIFAS_VENTAON TARIFAVE AFTER INSERTASSET NOCOUNT ON;BEGINDECLARE @idTarifaV varchar(50)SET @idTarifaV= (select IDTARIFAV from inserted)UPDATE TARIFAVE SET TARIFAVE.KLS_CREATEDATE=GETDATE() WHERE TARIFAVE.IDTARIFAV=@idTarifaVENDGOCREATE TRIGGER FECHA_ULTIMA_MODIFICACION_TARIFAS_VENTAON TARIFAVE AFTER UPDATEASSET NOCOUNT ON;BEGINDECLARE @idTarifaV varchar(50)SET @idTarifaV= (select IDTARIFAV from inserted)UPDATE TARIFAVE SET TARIFAVE.KLS_LASTUPDATE=GETDATE() WHERE TARIFAVE.IDTARIFAV=@idTarifaVENDGO
Borrar Triggers
Finalmente, antes de hacer cualquier «upgrade» de versión de A3ERP y como medida de precaución, será necesario borrar los Triggers que hemos creadoDROP TRIGGER FECHA_ALTA_ARTICULODROP TRIGGER FECHA_ALTA_CLIENTEDROP TRIGGER FECHA_ALTA_DIRENTDROP TRIGGER FECHA_ALTA_MOVIMIENTO_STOCKDROP TRIGGER FECHA_ALTA_PRECIOS_ESP_VENTADROP TRIGGER FECHA_ALTA_TARIFAS_VENTADROP TRIGGER FECHA_ULTIMA_MODIFICACION_ARTICULODROP TRIGGER FECHA_ULTIMA_MODIFICACION_CLIENTEDROP TRIGGER FECHA_ULTIMA_MODIFICACION_DIRENTDROP TRIGGER FECHA_ULTIMA_MODIFICACION_PRECIOS_ESP_VENTADROP TRIGGER FECHA_ULTIMA_MODIFICACION_STOCKDROP TRIGGER FECHA_ULTIMA_MODIFICACION_TARIFAS_VENTA
Обращаясь к нам за деньгами, вы легко и быстро сможете получить займ на карту мгновенно круглосуточно на любые нужды в день обращения. Мы так же поможем взять мгновенно онлайн кредит на карту в банке без отказа через интернет круглосуточно.