Obtener Avance Usuarios en Grupos

obtener_avance_usuarios_grupos (1{id_usuario as String , id_grupo as Integer}n)

El método nos permite consultar el avance para múltiples usuarios simultáneamente en múltiples grupos, pudiendo discriminar de QUE usuarios queremos consultar el avance en QUE grupos específicos.

Devuelve: 0{id_usuario + id_grupo + avance}n


Funcionamiento

  • Si queremos consultar el avance de un usuario para un grupo específico al que pertenece, debemos correr el WS pasandole como parámetros el 'id_usuario' de dicho usuario, junto con el 'id_grupo' del grupo en el que se quiere consultar el avance del usuario.
  • La estructura correspondiente(aula:usuario_grupo) debe ser repetida n veces según la cantidad de tuplas usuario-grupo que se quieran consultar.
  • El usuario debe pertenecer al grupo del cual se requiere consultar su avance, y tener asignado permiso 'cursa'.
  • El avance del usuario es un valor numérico con decimales (float) entre 0 y 100. El avance igual a 100 determina que el usuario ya finalizo el curso.
  • Para el caso de que el aula no registre avance se retorna 100 .
  • En las aulas sin unidades retorna un avance de 0.


Ejemplo de Respuesta

Ejemplo de respuesta de la llamada obtener_avance_usuarios_grupos que indica consultar el avance para dos usuarios, cada uno en un grupo distinto.


  • Llamada:

     <aula:obtener_avance_usuarios_grupos>
       <aula:usuario_grupo>
          <aula:id_usuario>alumno_2</aula:id_usuario>
          <aula:id_grupo>36</aula:id_grupo>
       </aula:usuario_grupo>
       <aula:usuario_grupo>
          <aula:id_usuario>alumno_3</aula:id_usuario>
          <aula:id_grupo>40</aula:id_grupo>
       </aula:usuario_grupo>
    </aula:obtener_avance_usuarios_grupos>

En esta llamada, podemos observar que: se solicita consultar el avance para un usuario con 'id_usuario'= "alumno_2" en el grupo con 'id_grupo'= "36", y para un usuario con 'id_usuario'= "alumno_3" en el grupo con 'id_grupo'= "40".


  • Respuesta:

<obtener_avance_usuarios_grupos_response xmlns="urn:Educativa/Aula/">
       <usuario_grupo>
          <id_usuario>alumno_2</id_usuario>
          <id_grupo>36</id_grupo>
          <avance>50</avance>
       </usuario_grupo>
       <usuario_grupo>
          <id_usuario>alumno_3</id_usuario>
          <id_grupo>40</id_grupo>
          <avance>100</avance>
       </usuario_grupo>
    </obtener_avance_usuarios_grupos_response>

Tanto el mensaje indicando el avance de un usuario para el grupo, como el mensaje por error de validación, deben presentarse junto con el id_usuario y el id_grupo ingresados correspondientes. Es decir, en la salida debe mostrarse un bloque por cada dupla de datos ingresada junto con un mensaje indicando la situación de cada una.


Errores de validación


  • Educativa::Aula::Error::IdUsuarioInvalido - cuando el 'id_usuario' ingresado contiene caracteres inválidos.
  • Educativa::Aula::Error::UsuarioInexistente - ocurre cuando el usuario no existe en la plataforma.
  • Educativa::Aula::Error::UsuarioAnonimo - ocurre cuando el usuario que se intenta consultar es el usuario _anonimo.
  • Educativa::Aula::Error::IdGrupoInvalido - El 'id_grupo' ingresado no es integer.
  • Educativa::Aula::Error::GrupoInexistente - ocurre cuando el grupo ingresado no existe en la base de datos.
  • Educativa::Aula::Error::UsuarioInexistenteEnGrupo - ocurre cuando se intenta consultar el avance para un usuario en un grupo en el que no existe.
  • Educativa::Aula::Error::PermisoUsuarioInvalido - ocurre cuando se intenta obtener avance para un usuario que tiene un permiso <> 'cursa'.