Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

For primary courses (not cross listings), lets setup a job which manages the memberships and security: !studentsLoader.gif! Image Added This shows:

  • The data is coming from our warehouse (configured in grouper-loader.properties)
  • There is a grouper group type applied to the group, which is addIncludeExclude.  This automatically creates the includes, excludes, and overall groups
  • The job runs once per day at 8am
  • It is a SQL_GROUP_LIST which manages many groups at once
  • The membership query: (penn_id and group_name one), returns data like this:
    12345678    penn:community:student:course:2009C:EG:BE:099:001:students_systemOfRecord
    12345679    penn:community:student:course:2009C:EG:BE:100:001:students_systemOfRecord
    12345677    penn:community:student:course:2009C:EG:BE:100:001:students_systemOfRecord
    12345676    penn:community:student:course:2009C:EG:BE:100:001:students_systemOfRecord
    12345675    penn:community:student:course:2009C:EG:BE:101:001:students_systemOfRecord
    12345678    penn:community:student:course:2009C:EG:BE:101:001:students_systemOfRecord
  • The groups query, controls empty groups, names groups, and sets the security.  It returns data that looks like this:

    GROUP_NAME

    READERS

    UPDATERS

      
    penn:community:student:course:2009C:EG:BE:099:001:students_systemOfRecord       

    penn:community:student:security:courseReaders, penn:community:student:course:2009C:EG:BE:099:001:assistants,penn:community:student:course:2009C:EG:BE:099:001:instructors

    penn:community:student:security:courseUpdaters, penn:community:student:course:2009C:EG:BE:099:001:assistants,penn:community:student:course:2009C:EG:BE:099:001:instructors

    penn:community:student:course:2009C:EG:BE:100:001:students_systemOfRecord      

    penn:community:student:security:courseReaders, penn:community:student:course:2009C:EG:BE:100:001:assistants,penn:community:student:course:2009C:EG:BE:100:001:instructors

    penn:community:student:security:courseUpdaters, penn:community:student:course:2009C:EG:BE:100:001:assistants,penn:community:student:course:2009C:EG:BE:100:001:instructors

    penn:community:student:course:2009C:EG:BE:100:201:students_systemOfRecord     

    penn:community:student:security:courseReaders, penn:community:student:course:2009C:EG:BE:100:201:assistants,penn:community:student:course:2009C:EG:BE:100:201:instructors 

    penn:community:student:security:courseUpdaters, penn:community:student:course:2009C:EG:BE:100:201:assistants,penn:community:student:course:2009C:EG:BE:100:201:instructors

  • Note that the queries in the loader job are built on views, it is important that you do this so you can see when upgrades make things not compile, and so the SQL can be changed without editing the job, and since there is a character limit for attribute values
  • First I create a stem name view, which includes if a course is primary or not (cross listed).  Note this also restricts which terms to select from

...