Foro XOne
Solucionado LogonColl con usuarios que tienen el mismo login pero son de empresas distintas - Versión para impresión

+- Foro XOne (http://www.xoneisp.com/foro)
+-- Foro: Foro Técnico (/forumdisplay.php?fid=6)
+--- Foro: Programación (/forumdisplay.php?fid=7)
+--- Tema: Solucionado LogonColl con usuarios que tienen el mismo login pero son de empresas distintas (/showthread.php?tid=885)



LogonColl con usuarios que tienen el mismo login pero son de empresas distintas - Bernardo - 03-10-2018 10:50 AM

Hola,
tengo un proyecto en el que hasta ahora, por selectividad, a un terminal sólo le llegaba una empresa y los usuarios de esa empresa. Ahora, el cliente pide que a un mismo terminal le llegue más de una empresa y los correspondientes usuarios. El problema lo tengo en que hay usuarios de distintas empresas con el mismo login. En la colección de Login, puedo poner un desplegable para que el usuario seleccione la empresa, y así controlar usuario y contraseña. Pero al pasar los datos de login al framework, no se indica la empresa y dentro de la aplicación, las macros ##USERID## y ##ENTID## se cargan con el primer usuario con el login introducido.
¿Se puede solventar de alguna manera o es obligatorio que el campo login de la tabla de usuarios sea único?
Un saludo


RE: LogonColl con usuarios que tienen el mismo login pero son de empresas distintas - Ruben - 03-10-2018 11:30 AM

Hola, para ello puedes utilizar el nuevo método de login, que lo tenemos con JavaScript.

En el botón que programas para aceptar el login, llamaras por ejemplo a esta funcion:

Código:
function doLoginNew() {
    var params = {
        userName: self.MAP_USER,
        password: self.MAP_PASSWORD,
        entryPoint: "Menu",
        // entryPoint: "EspecialChat",

        // Opcional
        onLoginSuccessful: function() {
            ui.showToast("Login OK!");
        },

        // Opcional
        onLoginFailed: function() {
            ui.showToast("Login failed!");
        }
    };
    appData.login(params);
}

Dentro del código, tu podrás realizar una consulta a una tabla, para buscar por el login, pero también por la empresa.


RE: LogonColl con usuarios que tienen el mismo login pero son de empresas distintas - Bernardo - 03-10-2018 11:49 AM

Hola Rubén,
Ya había contemplado esta forma, pero no veo cómo el framework puede relacionar el usuario introducido con la empresa. Me explico, después de hacer las comprobaciones pertinentes en doLogin (usuario, contraseña y empresa), a appData.login se le pasan los parámetros con el usuario y la contraseña introducidos, pero no la empresa. Internamente, el framework, cuando vaya a obtener los datos del usuario que necesite, y dar valor a las macros, no puede saber qué usuario es el introducido realmente si se repiten en empresas distintas. Algo se me escapa.


RE: LogonColl con usuarios que tienen el mismo login pero son de empresas distintas - afernandez - 03-10-2018 11:53 AM

Buenas

No se si ha quedado claro en el mensaje anterior, pero lo que tendrías que hacer, después de que selecciones las empresa, ponerle un filtro a la colección "Usuarios" con la empresa seleccionada.

Ejemplo:

Código:
var usuario = appData.getCollection("Usuarios");
usuario.setFilter("IDEMPRESA=" + self.MAP_IDEMPRESA);



RE: LogonColl con usuarios que tienen el mismo login pero son de empresas distintas - Bernardo - 03-10-2018 12:01 PM

¡Ah! Pues eso es lo que se me escapaba. Así sí que funciona. Gracias