Registrar unidades

registrar_unidades ( 1{  id_grupo as Integer,  nombre as String,  descripcion as String,  id_responsable as String,  (opcional) estado as Boolean,  (opcional) correlativa as Boolean  }n )

El metodo crea unidades de programa en grupos del campus, asociandolas con un docente responsable y estableciendo las caracteri­sticas especificadas. Permite procesar la creacion de multiples unidades simultaneamente, incluso en diferentes grupos, en una sola invocacion.


Devuelve: 1{id_grupo + nombre + id_unidad + estado + (error_code + error_string)}n

+ estado 'true' si la unidad fue creada correctamente en el grupo indicado: por cada tupla de datos que se pudo procesar correctamente.

+ estado 'false' por cada tupla de datos que NO se pudo procesar correctamente. En este caso se muestra tambien el error correspondiente.


Funcionamiento

  • Para crear una unidad se deben especificar valores para los siguientes campos obligatorios: 'id_grupo', 'nombre', 'descripcion' e 'id_responsable'.
  • La estructura correspondiente (unidad) debe ser repetida n veces segun la cantidad de unidades que se quieran procesar.
    • El 'id_grupo' debe corresponder con un valor existente para 'id_curso' en la tabla cursos.
    • El 'nombre' ingresado no puede estar vaci­o ni contener solo espacios (maximo 50 caracteres).
    • La 'descripcion' ingresada no puede estar vaci­a ni contener solo espacios.
    • El 'id_responsable' debe ser un username valido de un usuario que:
      • Pertenezca al grupo especificado.
      • No tenga perfil de Alumno ('A').
      • El username esta sujeto a las mismas validaciones de formato que al ingresarlo desde la administracion.
  • Si no se especifican valores para los campos opcionales, se setean los siguientes valores por defecto:
    • 'estado' se seteara true (activo).
    • 'correlativa' se seteara true (obligatoria).
  • Los campos 'estado' y 'correlativa' son de tipo booleano, por lo tanto deberi­an pasarse valores true o false.
    • 'estado':
        • true o 1: La unidad se crea activa.
        • false o 0: La unidad se crea desactivada.
    • 'correlativa':
        • true o 1: La unidad es obligatoria/correlativa.
        • false o 0: La unidad no es obligatoria.
  • Cada unidad se procesa de forma independiente. Si una unidad falla en las validaciones, las demas continuan procesandose normalmente.
  • Las unidades se crean con un numero de orden secuencial automatico dentro de cada grupo.


Ejemplo de llamada:

+ Para el formato de ingreso de datos se utiliza un array de elementos 'unidad', cada uno con sus parametros.


+ Llamada: ingresari­amos el siguiente bloque n veces:


     <aula:registrar_unidades>
        <aula:unidad>
           <aula:id_grupo>123</aula:id_grupo>
           <aula:nombre>Unidad 1 - Introduccion</aula:nombre>
           <aula:descripcion>Conceptos basicos del curso</aula:descripcion>
           <aula:id_responsable>docente1</aula:id_responsable>
           <aula:estado>true</aula:estado>
           <aula:correlativa>true</aula:correlativa>
        </aula:unidad>
        <aula:unidad>
           <aula:id_grupo>123</aula:id_grupo>
           <aula:nombre>Unidad 2 - Desarrollo</aula:nombre>
           <aula:descripcion>Temas avanzados del curso</aula:descripcion>
           <aula:id_responsable>docente1</aula:id_responsable>
        </aula:unidad>
        <aula:unidad>
           <aula:id_grupo>456</aula:id_grupo>
           <aula:nombre>Modulo A</aula:nombre>
           <aula:descripcion>Primer modulo del programa</aula:descripcion>
           <aula:id_responsable>instructor2</aula:id_responsable>
           <aula:correlativa>false</aula:correlativa>
        </aula:unidad>
     </aula:registrar_unidades>


  • En esta llamada, podemos observar que se solicita crear 3 unidades con los siguientes atributos:
    • 'id_grupo': aula a la que pertenecerá la unidad. Por ejemplo "123".
    • 'nombre'= nombre de la unidad. Por ejemplo "Unidad 1 - Introduccion".
    • 'descripcion'= descripción de la unidad, por ejemplo "Conceptos basicos del curso".
    • 'id_responsable= id_usuario del responsable principal de la unidad, por ejemplo "docente1".
    • 'estado'= "true". Se indica crear el unidad activada.
    • 'correlativa'= "true". Se indica que la unidad es correlativa a las anteriores.



Ejemplo de Respuesta

En la salida se muestra un bloque por cada unidad ingresada junto con un mensaje indicando la situacion de cada una.


  • Respuesta exitosa:

    <registrar_unidades_response xmlns="urn:Educativa/Aula/">
        <unidad>
           <id_grupo>123</id_grupo>
           <nombre>Unidad 1 - Introduccion</nombre>
           <id_unidad>1001</id_unidad>
           <estado>true</estado>
        </unidad>
        <unidad>
           <id_grupo>123</id_grupo>
           <nombre>Unidad 2 - Desarrollo</nombre>
           <id_unidad>1002</id_unidad>
           <estado>true</estado>
        </unidad>
        <unidad>
           <id_grupo>456</id_grupo>
           <nombre>Modulo A</nombre>
           <id_unidad>1003</id_unidad>
           <estado>true</estado>
        </unidad>
     </registrar_unidades_response>



  • Respuesta con error:

    <registrar_unidades_response xmlns="urn:Educativa/Aula/">
        <unidad>
           <id_grupo>123</id_grupo>
           <nombre>Unidad 1</nombre>
           <id_unidad>1001</id_unidad>
           <estado>true</estado>
        </unidad>
        <unidad>
           <id_grupo>789</id_grupo>
           <nombre>Unidad X</nombre>
           <id_unidad>0</id_unidad>
           <estado>false</estado>
           <error>
              <error_code>Educativa::Aula::Error::GrupoInexistente</error_code>
              <error_string>No existe el grupo "789"</error_string>
           </error>
        </unidad>
        <unidad>
           <id_grupo>123</id_grupo>
           <nombre></nombre>
           <id_unidad>0</id_unidad>
           <estado>false</estado>
           <error>
              <error_code>Educativa::Aula::Error::NombreUnidadRequerido</error_code>
              <error_string>El nombre de la unidad es requerido</error_string>
           </error>
        </unidad>
     </registrar_unidades_response>



Errores de validación

  • Educativa::Aula::Error::IdUsuarioInvalido - cuando el valor del parametro 'id_responsable' (username) ingresado contiene caracteres invalidos.
  • Educativa::Aula::Error::IdGrupoInvalido - cuando el 'id_grupo' ingresado no es numerico o supera el valor 4294967295.
  • Educativa::Aula::Error::GrupoInexistente - ocurre cuando el grupo especificado no existe en la plataforma.
  • Educativa::Aula::Error::UsuarioAnonimo - ocurre cuando se intenta usar el usuario anonimo ('_anonimo') como responsable.
  • Educativa::Aula::Error::UsuarioInexistenteEnGrupo - ocurre cuando el usuario especificado como responsable no pertenece al grupo indicado.
  • Educativa::Aula::Error::UsuarioConPerfilAlumno - ocurre cuando el usuario especificado como responsable tiene perfil de Alumno ('A').
  • Educativa::Aula::Error::NombreUnidadRequerido - cuando el nombre de la unidad esta vaci­o o contiene solo espacios.
  • Educativa::Aula::Error::DescripcionUnidadRequerida - cuando la descripcion de la unidad esta vaci­a o contiene solo espacios.