Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

The Degree Navigator system stores all of its course description data in a single table called COURSEDESCRIPTION_DAG.

COURSEDESCRIPTION_DAG

Column

Description

coursecode_dag

An encoded course id, the encoding is a direct concatenation of Subject Code and Course Number

description_dag

The course description, which always starts with the coursecode and a space. Course descriptions generally tun into the hundreds and thousands of characters.

startterm_dag

The first term in which this course description applies. This field is never null.

endterm_dag

The last term in which this course description applies. If this field is null the course description is considered to be the active course description.

Data Inconsistencies

The Degree Navigator data is plagued by an inconsistency of the start and end term data. Specifically, there are some cases in which there are multiple coursecodes for which the endterm_dag field is null. Functionally, this makes it harder to distinguish which is the active course description. Our code will perform a max on the starttterm field combined with the check for a null endterm field, this will have the effect of isolating out the newest course description.

Requirements

  • Availability: The Degree Navigator data used by Sakai must be available on a 24x7 basis.
  • Refresh: While course descriptions are rarely updated in Degree Navigator, Sakai will need to have any updates as soon as they are available. In practice, a nightly feed will be sufficient.

...

The Degree Navigator pl/sql procedure and table have been copied following the model used by MyUCDavis CourseManagement. The feed procedure performs a simple insert of all records from degree navigator and then deletes all records created before the last insert.

Code Block

create or replace PROCEDURE                DN4_EXTRACT
IS
BEGIN
declare
    v_timestamp_current date;

begin
  select sysdate into v_timestamp_current from dual;

  begin
    insert into sakai_external.degree_nav_desc(
            coursecode,
            description,
            start_term,
            end_term,
            subj_code,
            crse_numb,
            activity_date)
    select  coursecode_dag,
            description_dag,
            startterm_dag,
            endterm_dag,
            substr(coursecode_dag,1,3),
            substr(coursecode_dag,4,6),
            v_timestamp_current
    from navigate.coursedescription_dag@DN4.UCDAVIS.EDU;
  end;

  commit;

  begin
    delete from degree_nav_desc where activity_date <> v_timestamp_current;
  end;

  commit;
end;

END; -- Procedure DN4_EXTRACT