lunes, 21 de julio de 2025

Borrar líneas sin cabecera y cabeceras sin líneas

 

Síntomas

Durante la introducción de las líneas de un documento de compra o de venta aparece el mensaje

El sistema ha detectado irregularidades en la red

También podrían aparecer líneas de documentos borrados al crear un documento nuevo con el mismo número que el borrado.

Nota

Las comprobaciones de las tablas las realizaremos con las Utilidades del supervisor:

  • Para Eurowin 6 el programa Util.exe, opción "Bases de datos".
  • Para Eurowin 8 SQL el programa Utilcs.exe, opción "Editor de campos".

Procedimiento

Recordar que antes de realizar cualquier operación sobre las tablas se debe hacer una copia de seguridad de todos los datos con el programa menrepa. Los pasos de la revisión son los siguientes:

Suponemos que vamos a revisar el albarán de compra cuyas tablas son C_albcom y D_albcom.

  • Buscar y borrar líneas sin cabecera.
# Ver las líneas sin cabecera

SELECT empresa, numero, proveedor FROM d_albcom WHERE !DELETED() AND empresa+numero+proveedor NOT IN (SELECT empresa + numero + proveedor FROM c_albcom WHERE !DELETED())

# Borrar las líneas sin cabecera

DELETE FROM d_albcom WHERE !DELETED() AND empresa + numero + proveedor NOT IN (SELECT empresa + numero + proveedor FROM c_albcom WHERE !DELETED())
  • Buscar y borrar cabeceras sin líneas.
# Ver las cabeceras sin líneas

SELECT empresa, numero, proveedor FROM c_albcom WHERE !DELETED() AND empresa + numero + proveedor NOT IN (SELECT empresa + numero + proveedor FROM d_albcom WHERE !DELETED())

# Borrar las cabeceras sin líneas

DELETE FROM c_albcom WHERE !DELETED() AND empresa + numero + proveedor NOT IN (SELECT empresa + numero + proveedor FROM d_albcom WHERE !DELETED())
  • Buscar y borrar líneas sin número, sin empresa o sin proveedor.
# Ver los registros vacíos

SET FILTER TO EMPTY(numero) OR EMPTY(empresa) OR EMPTY(proveedor)

# Borrar los registros vacíos

DELETE FOR EMPTY(numero) OR EMPTY(empresa) OR EMPTY(proveedor)
  • Reindexar y empaquetar las dos tablas.
  • Cambiar las vistas de los terminales. Hay dos procedimientos distintos:
    • Borrar las carpetas de las vistas de todos los terminales (NO DEL SERVIDOR!!!)
    • En la tabla Comunes!Actua añadir un registro de tipo 3 con la fecha y hora actuales.

Finalmente, realizaremos una reparación de índices desde las Utilidades del usuario, programa Menrepa.exe.

martes, 19 de marzo de 2024

REGISTROS REPETIDOS

 

Se infringe la unicidad del índice empresa1

Síntomas

Durante la reparación de índices o durante la actualización aparece el mensaje

Se infringe la unicidad del índice empresa1

Causas

Cuando aparece el mensaje de error Se infringe la unicidad del índice -nombre del índice- quiere decir que en la tabla existen registros repetidos incorrectos, puesto que el índice principal debe ser único. Por ejemplo:

  • No puede haber dos artículos con el mismo código (tabla Articulo, índice principal "Codigo").
  • Ni dos albaranes de la misma empresa con el mismo número y letra (tabla C_albven, índice principal "Empresa+Numero+Letra").

Solución

Podemos solucionar este problema de dos formas:

  • En el apartado Procesos de las Utilidades del supervisor, programa Util.exe, se encuentra el proceso "Eliminar registros repetidos". Al ejecutar este proceso hay que seleccionar la base de datos de la tabla, la tabla y escribir la expresión del índice. Por ejemplo, para la tabla D_albcom la expresión del índice principal es "Empresa+Proveedor+Numero+STR(Linia, 7)". Aparecerán los registros repetidos. Con el botón "Borrar todos" podremos borrar los registros incorrectos.
  • También, podemos hacer la reparación manualmente desde las Utilidades del supervisor con las indicaciones siguientes:
  1. Entrar en la opción Bases de datos y seleccionar la ruta de la base de datos a la que pertenece la tabla que vamos a reparar.
  2. Marcar la tabla y pulsar el botón Contenido. Activar la opción Ventana de comandos en la parte inferior de la pantalla.
  3. Para ver los registros repetidos hay que ejecutar la siguiente instrucción:

SELECT empresa + proveedor + numero + STR(linia, 7) as clave, COUNT(*) as conta FROM d_albcom WHERE !DELETED() GROUP BY 1 HAVING conta > 1 TO PRINTER NOCONSOLE

# Con la cláusula TO PRINTER NOCONSOLE se realiza la impresión del resultado en papel.

Esta consulta mostrará la lista de claves repetidas. Después para cada clave deberemos realizar un filtro de la tabla para examinar los registros repetidos y borrar los que no procedan.

SET FILTER TO Empresa+Proveedor+Numero+STR(Linia, 7) = "clave"

viernes, 18 de junio de 2021

Tallas y colores no se activa

 


Por tablas poner a True la opcion 9004 :


SELECT empresa, tipo_opc, estado FROM [2009i1].dbo.opcemp WHERE empresa='01' and tipo_opc=9004

viernes, 26 de marzo de 2021

Cambiar la empresa stock de una empresa

 

  • Desde las Utilidades del supervisor (programas Util.exe o Utilcs.exe), entrar en la opción "Bases de datos" y seleccionar la base de datos del ejercicio.
  • Abrir la tabla FACTUCNF.
  • Introducir el código de la empresa stock en el campo emp_stock de la empresa que queremos modificar. Lo podemos hacer manualmente o con la siguiente instrucción en la tabla factucnf :

 REPLACE emp_stock with "SS" FOR empresa = "EE"


donde SS es el código de la empresa stock y EE es el código de la empresa a la que cambiaremos el stock.

  • Después vaciar las tablas stocks y stocks2 desde las utilidades del supervisor.
  • Y realizar un recálculo de stock desde EUROWIN en la empresa a la que hemos cambiado la empresa stock.

martes, 23 de marzo de 2021

Cambio de servidor con Eurowin 8.0 SQL con SQL Server


 Para cambiar el servidor de Eurowin hay que seguir estos pasos:

  1. Liberar la licencia de la instalación antigua. En el caso de trabajar con multiempresa hay que repetir la operación para todos los grupos.
  2. Realizar la copia de seguridad completa del servidor de Eurowin Ew800serv.
  3. Realizar copia de seguridad completa, con la herramienta Menrepa, incluyendo todos los ejercicios de gestión, todos los comunes, reports y módulos. Si está instalado el módulo Gestión Documental, NO marcar la opción "Incluir documentos", se copiarán manualmente.
  4. Instalar Eurowin en el nuevo servidor. No es necesario instalar módulos ni multiempresa.
  5. (opcional) Tomar nota de las bases de datos que se crean durante la instalación para borrar las que no se utilicen una vez finalizado el proceso.
  6. Restaurar las carpetas del servidor de Eurowin: INFORADI, PRGS_MOD, PRGS_ERR, MODULOS, UTIL, REPORTS, GRUPOS, MULTIEMPRESA.
  7. Restaurar copia de seguridad de los datos realizada con la herramienta Menrepa.
  8. (opcional recomendable) Actualizar toda la instalación de Eurowin con el CD de instalación.
  9. Hacer los cambios pertinentes en los ficheros de configuración config.ini, cfgclisrv.dbf y grupos.dbf para que las rutas hagan referencia a la nueva ubicación y las instancias sean las de la nueva máquina. En el caso de tener multiempresa se debe verificar que exista un registro para cada grupo. El código de grupo debe coincidir con los 4 últimos dígitos de la base de datos comunes del grupo. Recordar que hay una tabla CFGCLISRV.dbf en todos los GRUPOS y todos deben ser corregidos. En el módulo Gestión Documental también hay que corregir el campo PATHDOC de la tabla TIPO_DOC en la base de datos EWGESTDOC.
  10. Arrancar Eurowin y registrar licencia. Si trabaja con multiempresa, con la versión 8.37.54 del 02-03-2011 o posterior, entrando en el grupo principal se pueden registrar masivamente todos los grupos si en la tabla CODCOM de Comunes de todos los grupos existe el campo EFEC_REMC. Si no, el registro se hará individualmente.
  11. Compartir la carpeta del Ew800serv y configurar el firewall o cortafuegos.
  12. Cambiar las rutas del fichero Config.ini del resto de terminales.

martes, 20 de agosto de 2019

Crear el usuario Eurowin en el servidor de SQL Server


Entrar en el programa SQL Server Management Studio Express con el usuario "sa" y la clave correspondiente. Por defecto en Eurowin es 902211218 o ew#711203.
  • Explorador de objetos - Object explorer
    • Instancia Servidor\Sqlexpress
      • Seguridad - Security
        • Inicios de sesión - Logins
          • (con el botón derecho del ratón) Nuevo inicio de sesión - New login
            • Pantalla Inicio de sesión - Nuevo / Login - New
              • General - General
                • Nombre de inicio de sesión - Login name: Introducir el nombre del nuevo usuario 'Eurowin'
                • Autenticación de SQL Server - SQL Server authentication: Marcar esta opción
                • Contraseña - Password: En Eurowin es 902211218 o ew#211203 
                • Confirmar contraseña - Confirm password
                • Idioma predeterminado - Default language: Spanish
              • Pantalla Asignación de usuarios - User Mapping
                • Usuarios asignados a este inicio de sesión - Users mapped to this login: Marcar las bases de datos de la aplicación para el usuario Eurowin.
                • Asignar el usuario Eurowin como Propietario - Owner de todas las bases de datos de Eurowin (se explica en el siguiente punto). Como consecuencia, en el apartado "Miembros de la función de base de datos para - Database role membership for": (nombre de base de datos seleccionada en la parte superior), están marcadas las opciones siguientes para cada base de datos.
                  • db_owner
                  • public
Asignar el usuario Eurowin como Propietario de las bases de datos de Eurowin: Aceptar para volver a la pantalla principal y buscar las propiedades de las bases de datos que hemos seleccionado en el paso anterior:
  • Explorador de objetos - Object explorer
    • Instancia Servidor\Sqlexpress
      • Bases de datos - Databases
        • 2011i1
          • (con el botón derecho del ratón) Propiedades - Properties
            • Pantalla Propiedades de la base de datos 2005i1 - Database Properties 2011i1
              • Ficheros - Files
                • Propietario - Owner: Asignar como propietario al usuario 'Eurowin'.
              • General » Base de datos » Propietario - General » Database » Owner = Eurowin (comprobación).
Aceptar y repetir el proceso para todas las bases de datos del programa.

miércoles, 23 de mayo de 2018

Recuperar una base de datos cuando sólo se tiene el archivo MDF de una base de datos de SQL Server


Procedimiento

Este procedimiento es aplicable en SQL Server 2005 y en SQL Server 2008.
1. En SQL Server Management Studio iniciamos la sesión con el usuario "sa".
2. En el Explorador de objetos > basede datos, hacer clic en el nodo derecho y seleccionar la opción "Adjuntar …" de la lista desplegable.
3. Esto abre la ventana "Adjuntar basede datos" donde se encuentra el botón "Agregar …" que abre la ventana "Buscar archivos de basede datos".
4. En la ventana "Buscar archivos de basede datos" seleccionar el fichero MDF de la base de datos que carece de fichero LDF.5. En la ventana "Adjuntar basede datos", SQL Server informa de que el archivo de registro no se encuentra. Con el fin de adjuntar la base de datos sin el fichero de registro de transacciones LDF hay que pulsar sobre el registro del fichero LDF, pulsar el botón "Quitar" y, finalmente, hacer clic en "Aceptar" para adjuntar la base de datos sin el fichero deregistro de transacciones.
Hemos adjuntado una base de datos sin utilizar el archivo de registro de transacciones. SQL Server crea un nuevo archivo de registro de transacciones y lo coloca en la misma carpeta que el archivo de datos. Se recomienda ejecutar una instrucción DBCC CHECKDB sobre la base de datos adjuntada para comprobar su integridad.

Uso de T-SQL para adjuntar una base de datos de SQL Server sin un archivo de registro de transacciones

También puede adjuntar una base de datos de SQL Server sin un registro de transacciones con el siguiente código T-SQL.
En este script utilizamos la instrucción CREATE DATABASE con la opción de adjuntar y especificando el nombre y la ubicación del archivo MDF que tenemos de la base de datos.
USE [master]
GO
CREATE DATABASE [COMU] ON
(FILENAME=C:\Archivosdeprograma\MicrosoftSQLServer\MSSQL.1\MSSQL\Data\COMU0001.mdf ')
FOR ATTACH
GO
Una vez ejecutado el script con éxito obtenemos un mensaje informando de que SQL Server ha creado un nuevo archivo de registro de transacciones de la base de datos. Se recomienda comprobar la integridad física y lógica de todos los objetos dentro de la base de datos mediante la ejecución de un DBCC CHECKDB.
Hay que tener en cuenta los siguientes puntos:
  • Si la base de datos tiene datos de múltiples archivos se puede utilizar este método, así como crear un nuevo archivo de registro de transacciones.
  • Si la base de datos tenía varios archivos de registro de transacciones emplearemos la opción ATTACH_REBUILD_LOG con el comando CREATE DATABASE.
  • Si pierde uno de sus archivos de datos para una base de datos no puede utilizar este procedimiento.