Cosas de Administradores

 
 
Picture of Juan Carlos Romero Frenchy
conectar base de datos externa ayuda por favor
 
Apreciados amigos.

Hay alguna manera de enlazar una base de datos AS-400 para que me importe los usuarios y la carga academica que ellos tienen????...es decir que queden automáticamente matriculados en los cursos que van a ver en todo el semestre sin necesidad de hacer eso manual.......se que depronto un WEB-Service o un API de conectividad me pueden ayudar, pero realmente me gustaria saber que archivos tocar en el moodle para cumplir con mi objetivo.


Muchas gracias apreciare su ayuda.
 
Average of ratings: -
Bass
Re: conectar base de datos externa ayuda por favor
 
Hola Juan.
Actualmente me encuentro con un problema similar, lo que sucede es que el SGBD es MySQL. Necesito automatricular a los usuarios. La idea es exportar los datos desde MySQL a un fichero CSV y después ejecutar un script que ejecute la consulta SQL correspondiente contra la BBDD de Moodle. La parte del CSV la he solucionado sin problemas:

SELECT name,pass,mail,'Usuario' as firstname,'Apellido1' as lastname,'PD01' as course1 INTO OUTFILE '/tmp/csv.txt' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' FROM users WHERE uid != 0;

Para la segunda, he encontrado el plugin Enrolment Method: Auto Upload Users. De momento no le conseguido que funcione, devuelve el error " "" is not a valid...". Si tú puedes, ya me contarás, de momento(casi) me rindo.

La autenticación del moodle que administro es externa, contra la BBDD de un CMS(Drupal). Hasta el día de hoy, parece que funciona.Como alternativa para automatricular a los usuarios, estoy pensando en generar una vista en MySQL o añadir algunos campos a la tabla user de Drupal, con los datos necesarios para inscribirse automáticamente. En lo que queda de semana espero implementarlo y documentarlo.

Supongo que esto no te ha servido de mucho, pero a lo mejor me puedes dar una idea sobre cómo hacerlo en mi caso.

Saludos.


 
Average of ratings:Útil (1)
Picture of Antonio Piedras
Re: conectar base de datos externa ayuda por favor
Group Moodlers de gran ayuda
Y has consultao esta página (http://moodle.org/help.php?file=uploadusers.html) para hacer eso que intentas? Porque de esta manera solo has de generar un fichero CSV y usar la opción Subir usuarios del panel de administración.

Saludos.
 
Average of ratings: -
Bass
Re: conectar base de datos externa ayuda por favor
 
Hola Antonio.
Lo que necesito es automatizar esta tarea, es decir, cada 10-15 minutos, el servidor o servidores de Moodle, deben automatricular a los usuarios tomando como datos de matrícula los que una aplicación externa(o script en mi caso) han generado en un CSV. Lo que comentas es el modo manual de realizarlo(creo).

Saludos.
 
Average of ratings: -
Picture of Juan Raul Garcia Canet
Re: conectar base de datos externa ayuda por favor
 
Hola Alberto,
Y en lugar de todo eso, ¿no sería más sencillo usar el PLugin de Matriculación desde Base de Datos externa?

Moode iene preparado para trabajar con un montón de BD, Mysql entre ellas. Lo único que tendrías que hacer es crear un vista en el Mysql con todos los datos de matricula que necesites que se consulten desde Moodle.

Creo que eso te podría evitar muchaos problemas.

Respecto al tema del AS/400, Juan Carlos: ¿la base de datos es DB2?
Te recomiendo lo mismo que a Alberto. Intentar configurar ekl plugin de Matriculación desde Base de Datos Externa.

Aquí una pequeña referencia:
http://docs.moodle.org/es/Matriculaci%C3%B3n_Base_de_Datos_Externa

Hasta pronto,
Salu2
J.Raul (juagarc4) cool
 
Average of ratings:Útil (1)
Bass
Re: conectar base de datos externa ayuda por favor
 
Hola Juan.
Coincido contigo, lo intentaré con el plugin que comentas. De hecho creo que si funciona correctamente, no necesitaría el CSV. Tengo creada la vista en MySQL, pero no logro configurar correctamente los campos requeridos en "Campos de base de datos (remota) de inscrición". ¿ Lo has configurado de esto modo alguna vez ? El link que envías(gracias!) es puramente descriptivo.
Saludos y gracias!
 
Average of ratings:Útil (1)
Picture of Carlos Eduardo Campos
Re: conectar base de datos externa ayuda por favor
 
Buenas,

Ese dato del plugin esta muy interesante, pero al mirar el documento de referencia nombran muchas BD pero entre ellas no esta AS/400, sin embargo voy a intentar implementar este plugin para conectar con el AS/400.

De nuevo muchas gracias por la información y si logramos que funcione lo cumunicaremos por acá o los avance que tengamos.

O si depronto Alberto avanza en el tema seria interesante conocerlos un poco.
 
Average of ratings: -
Picture of Juan Raul Garcia Canet
Re: conectar base de datos externa ayuda por favor
 
Hola Carlos,

Realmente lamento no ser de más ayuda, no he trabajado con el AS/400, así que no se excatamente que tipo de base de datos tiene.

Hasta el momento no he podido encontrar referencias de uso con AS/400 en ningun foro de Moodle (ni en inglés ni en español).
En un foro de "Using Moodle" he encotrado un mensaje dónde "escuetamente" dicen que hacen volcados nocturno de los datos que necesitan de sus bases de datos de AS400 hacia un postgre_sql para que moodle pueda trabajar con ese postgre_sql.

Hasta pronto,
Salu2
J. Raul (juagarc4) cool

 
Average of ratings: -
Picture of Juan Raul Garcia Canet
Re: conectar base de datos externa ayuda por favor
 
Hola Alberto,

Pues sí, actualemento uso tanto la Autenticación como la Matriculacion desde base de datos externa.
¿Los usuarios los creas usando el CVS o también peudes coger los datos desde la base de datos externa. Con la misma vista puedes hacer tanto la matriculación como la autenticación

Detalles del Plugin de Autenticación:

- Creará las cuentas, siempre y cuando existan en la vista, aunque no tengan ninguna asignatura matriculada.

Detalles del Plugin de Matriculación:

- Creará las cuentas, siempre y cuando existan en la vista, y tengan asignaturas matriculadas.

- Creará las asignatura automáticamente usando como nombre de la asignatura el valor del campo enrol_localcoursefield. A menos que la opción enrol_db_autocreate está a "No".

- Matriculará a los usuarios basándose en los campos: enrol_remoteuserfield, enrol_localuserfield, enrol_localcoursefield, enrol_remotecoursefield

Por tanto, en la vista necesitarás:

usuario, password, apellidos, nombre, email, codasignatura, rol(aunque esto no es necesario si sólo es para el acceso de alumnos).

Vamos a ver si lo conseguimos:
Campos de la base de datos (remota) de matriculación.

enrol_localcoursefield: Nombre del campo en tabla mdl_course de la base de datos de Moodle que va a identificar la asignatura en la tabla (Vista) de la base de datos remota. (por ejemplo: idnumber)

enrol_remotecoursefield: Nombre del campo en Vista externa que va a identificar la asignatura en la tabla local mld_courses (p.ej: codasignatura)

enrol_localuserfield: Nombre del campo que contiene el nombre de usuario(username) en la tabla mld_user (p.ej: username)

enrol_remoteuserfield: Nombre del campo que contiene el username en la Vista externa (p.ej: usuario)

enrol_db_remoterolefield: Nombre el campo en la Vista de base de datos externa que contiene el nombre corto (student, editingteacher, teacher, etc..) del rol. (p.ej: rol).
Si esto no se especifica, entonces se usará el definido en el campo enrol_db_defaultcourseroleid

enrol_db_defaultcourseroleid: (Por defecto). Todos los usuarios que esten en la vista y que moodle matriculará tendrán el Rol que se haya especificado en la asignatura de moodle (normalmente serán estudiantes).

No se si en la vista sólo te aparecen los alumnos o tambien los profesores, así que, de momento, no puedo decirte nada más. Inténtalo así, a ver si te sirve.

En mi caso, tengo enla misma vista de matriculación a los alumnos y a los profesores y el campo rol, lo he creado asignando el valor student o teacher, dependiendo de las consultas que intervienen en la vista, que sería algo así como:

SELECT usuario, pass, correo, apellidos, nombre, 'editingteacher' AS Rol, codasig
FROM tabla_asignacion_profesores INNER JOIN tabla_datos_personales on tabla_asigancion_profesores.claveusuario=tabla_datos_personales.clave
inner join tabla_asignaturas on tabla_asignaturas.claveasig=tabla_asignacion_profesores.claveasig
union
SELECT usuario, pass, correo, apellidos, nombre, 'student' AS Rol, codasig
FROM tabla_matriculas INNER JOIN tabla_datos_personales on tabla_matriculas.claveusuario=tabla_datos_personales.clave
inner join tabla_asignaturas on tabla_asignaturas.claveasig=tabla_matriculas.claveasig

Fijate que lo único que hago son dos consultas dónde obtengo los mismos datos, pero con tablas distintas y luego les hago un UNION.
En la primera consulta obtengo los profesores con la asignatura que imparten
En la segunda los alumnos con las asignaturas que tiene matriculadas

Lo más difícil es hacer la vista, el resto ya es más sencillo.
Si necesitas ayuda para la vista, no dudes en preguntar ¿ok?

Hasta pronto,
Salu2
J. RAul (juagarc4) cool

 
Average of ratings:Útil (3)
Bass
Re: conectar base de datos externa ayuda por favor
 
Hola de nuevo.
Muchas gracias , tanto por la calidad como por la rapidez de la respuesta. Intentaré ponerlo en práctica tan pronto como pueda(ya!). Ya comentaré cómo me ha ido, pero por lo de pronto, esto ya tiene mejor pinta que al inicio.
De nuevo muchas gracias!
 
Average of ratings: -
Picture of Carlos Eduardo Campos
Re: conectar base de datos externa ayuda por favor
 
Hola Alberto como estas?.

Queria preguntate si al fin pudiste configurar tu Moodle para que la Matriculación se hiciera a través de una BD externa, pues yo lo he intentado pero estoy teniendo inconvenientes con esto y no lo he podido hacer funcionar.

Cree la vista y configure los campos con los cuales se sincronizan las BD
pero el resultado no es el esperado, si se logea un usuario, este puede ingresar y ver los cursos que se hayan creado manualmente pero no se reflejan o no se crean en Moodle los cursos relacionados en la BD externa y que estan asociados a ese usuario.

Te agradezco si puedes compartir tus avances, seria de mucha ayuda...

Hasta pronto.
 
Average of ratings: -
Bass
Re: conectar base de datos externa ayuda por favor
 
Hola Juan.
Acabo de testear en local lo que me has comentado en tu post y funciona de maravilla. Ahora intentaré implementarlo en el server de producción. Cuando termine, publicaré un mini-como, explicando el escenario y cómo lo he resuelto, con tu(vuestra) inestimable ayuda.

Saludos y muchas gracias!
 
Average of ratings: -
Picture of Carlos Eduardo Campos
Re: conectar base de datos externa ayuda por favor
 
Hola Alberto, tu información ha sido muy valiosa.
He estado buscando mas información en la web sobre el tema, pero es muy escasa.

De acuerdo a tu información, primero se debe hacer la autenticación y luego la matriculación, pero tengo una inquietud con respecto a la vista que se debe crear de la BD externa, en el ejemplo colocas los siguientes campos:

usuario, password, apellidos, nombre, email, codasignatura, rol

Pero si un estudiante tiene una relación con varias asignaturas, debo crear en la vista un registro de ese estudiante por cada asignatura, o como se maneja esto???

De nuevo mil gracias por la atención y colaboración prestada.


 
Average of ratings: -
-
Re: conectar base de datos externa ayuda por favor
 
Hola Alberto, Carlos, Juan

Estoy armando una bad externa, partí duplucando la mdl_user así tengo todo los datos, pero no se como hacer cuando yo tengo un alumno con varios curso...
a mi me gustaría matricular a alguien en los cursos existentes... o sino dejar que el plugin lo haga automaticamente...
Pero por mi ignoracia en codigos y db no se como hacer que mi bd externa tenga los campos de todos los cursos disponiles...

Si alguin me da una mano o muestra algun ejempo realmente de darán una mano increible...

Saludos a todos,

Mariano
 
Average of ratings: -
Picture of Carlos Eduardo Campos
Re: conectar base de datos externa ayuda por favor
 
Hola Mariano,

Yo tambien soy nuevo en Moodle y por ende no tengo mucha experiencia, pero de lo que he podido leer en los foros, encontre que la forma para poder asociar o matricular a los estudiantes en todas las asignaturas a las que pertenecen a través del plugin de matriculación con BD externa, es creando una vista en la BD externa que contenga como minimo 3 campos (Identificador del estudiante, Identificador de la asignatura e Identificador del Rol), y los datos los puedes colocar de la siguiente forma más o menos (dependiendo de los datos que selecciones):

Estudiante - Asignatura - Rol
Juan Matematicas I Estudiante
Juan física Estudiante
Juan Idiomas Estudiante
pepe Matematicas I Estudiante
...

Y así sucesivamente.

espero que aclare tu duda.


 
Average of ratings: -
Picture of Juan Raul Garcia Canet
Re: conectar base de datos externa ayuda por favor
 
Hola todos,
Voy a intentar responder a todos.

Para Todos:
Una vista no es más que una consulta sobre la base de datos mediante la cuál obtengo una tabla (que se actualiza en función de las tablas originales cada vez que es consultada), con los datos que necesito de otras tablas:

Por ejemplo:
Tabla 1: DPersonales (NIF, nombre, apellidos, password...) - Una fila por persona
Tabla 2: Asignaturas (CodigoAsig, nombreAsig) - Una fla por asignatura
Tabla 3: Matriculaciones (CodigoAsig, NIF) - Tantasfilas como asignaturas tenga matriculads un alumno

VISTA: Consulta sobre las tres tablas dónde obtengo el NIF, password, apellidos, nombre, CodigoAsig, nombreAsig

Desde la línea de comandos se haría así

CREATE VIEW VISTA

AS

SELECT DP.NIF, DP.password, DP.apellidos, DP.nombre, A.CodigoAsig, A.nombreAsig

FROM DPersonales DP INNER JOIN

Matriculaciones M ON M.NIF=DP.NIF INNER JOIN
Asignaturas A ON A.CodAsig=M.CodigoAsig

Si tienes, en la herramienta de gestión de bases de datos, una opción de "Crear Vista", sólo debes ponerel código que hay a partir del SELECT

En esta vista apareceran los alumnos tantas veces como asignaturas tienen matriculadas.
Ahora mi tabla externa (para moodle) debe ser VISTA.
Cunado configuracmos el PLugin de Matriculacion desde BD Externa, configuraremos los campos en funciona de los campos que tengo en la VISTA.

SAM: Con informix las vistas se hacen igual.
MARIANO: No hace falta duplicar la tabla mdl_user, para eso están las VISTAS.
CARLOS: Respecto a tu pregunta:
"Pero si un estudiante tiene una relación con varias asignaturas, debo crear en la vista un registro de ese estudiante por cada asignatura"

Realmente la consulta sobre las tablas te va sacar los resultados ya preparados. Ahora bien, según tu afirmación, me das a entender que estás construyendo la vsta a mano y en ese caso, eso no es una vista, sino una tabla y eso no es factible de mantener.
Precisamente las vistas pretenden evitar eso, ya qe si un alumno se matricula nuevo en na asignatura, al consultar la vista, se ejecutará a cnsulta y el alumno aparecera ya directamente en ella.

Espero que este rollo que os he soltado clare más que líe, porque las vistas son un concepto un poco extraño, sino entiendes algo de Bases de Datos.

Hasta pronto,
Salu2
J. Raul (juagarc4) cool

 
Average of ratings:Útil (2)
Picture of Carlos Eduardo Campos
Re: conectar base de datos externa ayuda por favor
 
Hola Juan,

Con respecto a lo de la vista, si tienes toda la razón muy buena aclaración.

Mi inconveniente no pasa por la vista (ya la he creado), mi problema es que despues de diligenciar el formulario de configuración de matriculación con BD externa, le doy "Guardar Cambios" y tengo la duda si ahí finaliza la configuración o se debe hacer algo más?????

Porque cuando ingreso con algun estudiante (que efectivamente tiene registros en la vista) allí en Moodle no se cargan estos datos, ya he verificado el nombre de la BD, el usuario de conexión, los campos de integración entre las dos BD, pero sigo en el limbo...

hasta pronto...
 
Average of ratings: -
Picture of Sam Anza
Re: conectar base de datos externa ayuda por favor
 

Enormemente agradecido por tu respuesta. Pero sumo un interrogante: ¿Se puede automatizar esa vista?

Es decir, ¿puede hacerse un script en el cuál el profesor de la materia ejecute dicha vista y genere el curso y la comisión correspondiente en el moodle?

Mejor aún, mediante una base externa, ¿Se pueden generar cursos?

Saludos y muchísimas gracias,

Sam.

 
Average of ratings: -
Picture of Sam Anza
Re: conectar base de datos externa ayuda por favor
 

Juan, luego de tu fantástica respuesta te pregunto: ¿Que es hacer un vista en base? ¿Como se hace? Mi caso es con informix.

Saludos y gracias,
Sam

 
Average of ratings: -
Bass
Re: conectar base de datos externa ayuda por favor
 
Hola a tod@s.
Al final he logrado configurar la automatriculación y autenticación contra un CMS(Drupal). En agradecimiento a todos los comentarios, he creado un mini-como que pongo a disposición de toda la comunidad. No soy ningún experto en moodle, espero os sirva de ayuda.

Gracias a todos, en especial a Juan Raul García.
[ Descargar documento ]


 
Average of ratings:Útil (1)
Phantom
Re: conectar base de datos externa ayuda por favor
 
En primera instancia gracias todas las intervenciones me han resuelto una de las dudas con respecto a la matriculación (aunque aun no inicio). Pero tengo unas preguntas aclaro inicialmente que soy nuevo en moodle y quiero integrarla a una pequeña base de datos.

Puedo crear las asignaturas desde una Base Datos Externa (BDE) (cada vez que registre una asignatura se cree un metacurso)

Que cuando cree un curso en la BDE - (Profesor - Asignatunra) me genere un curso del metacurso asignandole el profe.

Que me valide los docentes con una vista de la BDE (Lo de la vista lo deduzco de la matriculacion), diferente de donde me valida los estudiantes. En pocas palabras traer los usuarios de cada rol por vias diferentes.

Agradezco su ayuda.


 
Average of ratings: -
-
Re: conectar base de datos externa ayuda por favor
 
Hola a totos, MUCHISIMAS gracias por toda la info... de a poco voy avanzando.

Pude lograr las tres tablas, y creé la vista que me permite ver toda la info necesaria de las tres tablas... hasta acá vamos fantatico.
Pero a la hora de ontentar configurar le pluging no pasa nada... lo hice tal cual explica Juan, pero el usuario no tiene permisos a los cusos qeu le asigne desde las tablas...

Se debe hacer algo mas??? si yo a las matriculaciones las asigno desde mi tabla extena, esto debería reflejar en las del moodle automaticamente?? o hay qeu hacer algo mas???

Saludos a todos... este es uno de los post que ma me han ayudado...
 
Average of ratings: -