Seguramente alguien ya posteó esta pregunta… pero busqué en el foro y no encontré ningún hilo al respecto.
Guarani 2 tiene como restricción que el nombre de usuario de conexión no puede superar los 8 caracteres… no se como se comporta Guarani 3 (y de momento por suerte no me afecta:)
La pregunta es ¿Se puede quitar esta limitación? ¿alguien ya lo hizo? ¿verían muy complicada esta modificación? Aparte de la modificación obvia de la ventana de ingreso… ¿se debería editar algo más?
Hasta ahora solo hice alter table de todas las tablas con un campo usuario de tipo varchar(8).
Como parte de la personalización del ABM de usuarios (acc00001) edité d_usuarios para que tome el cambio de acc_usuarios.usuario (de 8 a 30 caracteres) y el Limit de entrada de 8 a 30 en PowerBuider.
Creé el usuario desde Guarani, le di permiso en la BD, pero en la ventana de login luego de hacer clic en Aceptar se cierra PowerBuilder con un error no controlado.
La limitación de los 8 caracteres para los ids de usuarios de Gestion (Power Builder), esta porque el dato “usuario” es parte de la clave primaria de la tabla de usuarios (acc_usuarios) que fue definida en un principio de 8 caracteres, no recuerdo el porque de esa longitud, creo tenia que ver con los usuarios de Windows que en los comienzos de Guarani 2 debia soportarse para Windows 95 (o Windows 3.11)… y me parece que de ahi viene la restricción máxima de 8 caracteres que windows soportaba para los ids de usuarios.
Cambiar eso implicaría realizar muchos cambios en el sistema. Por un lado cada tabla de log (cada tabla del sistema tiene su tabla de log) que tiene el campo usuario de 8 caracteres. Ademas hay algunas tablas que tienen foreign keys a la tabla de usuarios y procedures que reciben o retornan el dato de usuario con esta longitud. Por ejemplo en procesos automáticos donde se deja registro del usuario que realizó tal proceso.
Con lo cual un cambio de este tipo implicaría revisar todo el sistema. Creo que este tema ya habia sido solicitado por alguien hace mucho tiempo atras y por el costo de lo que implicaba enfrentar este cambio es que no se hizo.
Tal vez si este tema es algo imprescindible, la solución venga por tener algun tipo de tabla de conversion de ids de usuarios. Pensar en tener tu propia tabla de usuarios con la longitud que quieras y por cada uno de estos usuarios, tener un usuario en la tabla de usuarios del sistema y que seran los que se creen en la base de datos y en el sistema operativo donde se encuentre el motor informix.
Entonces, lo que debieras modificar sería el código de la ventana de conexion, es decir:
El usuario ingresa su id de usuario (el nuevo) y la password (password que se correponde con el usuario asociado de la tabla acc_usuarios
El sistema se conecta por primera vez a la base con un usuario genérico con el verificas que el id de usuario ingresado exista en la tabla personalizada. Si existe y tiene su usuario asociado (el que esta en acc_usuarios y que esta creado en la base y sistema operativo), entonces recuperas el id de usuario asociado, te desconectas de la conexion a la base e intentas conectarte con el usuario asociado y la password ingresada y de ser asi continuas con el proceso de login del sistema.
Es decir, seguiras registrando en la base los usuarios como hasta ahora, pero para el usuario del sistema, su id de usuario podria ser uno con la longitud que creas conveniente. Igualmente esta opcion tiene la restricción de que los usuarios del sistema operativo seguiran siendo como máximo de 8 caracteres…
Para los [b]usuarios web/b la longitud máxima es de 20 caracteres.
En Guarani 3 la longitud máxima es de 60 caracteres.
Mi opinión es que es mucho lío para ese cambio que como dice Ale viene desde el principio y en ese momento tenía sentido.
A tus preguntas: “La pregunta es ¿Se puede quitar esta limitación? ¿alguien ya lo hizo? ¿verían muy complicada esta modificación? Aparte de la modificación obvia de la ventana de ingreso… ¿se debería editar algo más?”, para mi no vale la pena el esfuerzo, en todo caso invertiría tiempo en pasarse al Guaraní 3.
Las respuestas serían: es un lío quitar esa limitación (como lo explicó Ale) y nadie lo hizo, justamente porque el SIU ya había hecho el análisis y descartó la posibilidad de hacerlo. Y todos aprendimos a convivir con esa limitación.