Buen día.
Para crear el registro en el contexto (xxx_context) en los campos PATH y DEPTH son:
Para una categoria:
1.- Obtener el ID del siguiente registro a insertar en el "xxx_context"
Esto se obtiene con el siguiente valor de una secuencia:
vSigRegistro = m_cont_id_seq.nextval
2.- Insertar el registro
ID = vSigRegistro
CONTEXTLEVEL = 40
INSTANCEID = <Id. de la categoria> (Tomado del xxx_course_categories)
PATH = '/1/vSigRegistro
DEPTH = 2
Para un curso:
1.- Obtener el ID del siguiente registro a insertar en el "xxx_context"
Esto se obtiene con el siguiente valor de una secuencia:
vSigRegistro = m_cont_id_seq.nextval
2.- Conseguir el "id" del contexto de la categoria a la que pertenece SELECT id FROM xxx_context WHERE contextlevel =40AND instanceid = "Id de la categoria"
vcontextoCategoria = "id" del registro recuperado en el select anterior
3.- Insertar el registro en xxx_context, con los valores de:
ID = vSigRegistro
CONTEXTLEVEL = 50
INSTANCEID = <Id. del curso> (Tomado del xxx_course)
PATH = '/1/vcontextoCategoria/vSigRegistro
DEPTH = 3
Entonces para crear el registro de inscripción en el xxx_role_assignments:
1.- Obtener el Id del rol de "ESTUDIANTE" (xxx_role) en vIdRole
2.- Obtener el id del curso (vIdCurso)
3.- Obtener el id del contexto del "curso":
vContextCurso = "SELECT id FROM xxx_context WHERE contextlevel=50 AND instanceid = vIdCurso
4.- Obtener id del usuario (xxx_user) vIdUsuario
5.- Insertar el registro en xxx_context con los valores siguientes:
ROLEID = vIdRole
CONTEXTID = vContextCurso
USERID = vIdUsuario
TIMESTART = Fecha y hora en UNIX
MODIFIERID = Id del usuario que modificó el registro
Espero que sea de utilidad.
Saludos