Banner Messages

Draft - In progress

Person

A person's name and UH Number. 

ROUTING KEY: person.refresh

{
    "messageType":"refreshPerson",
    "transmissionDate":"2016-05-09 13:58:00",
    "bannerEventNumber": ,
    "messageBody":{
        "fullName":"",
        "firstName":"",
        "preferredFirstName":"",
        "lastName":"",
        "middleName":"",
        "nameSuffix":"",
        "uhUuid":"",
        "pidm":
    }
}


The retrofitPerson message is sent before any refreshStudentAcademicProfile or refreshInstructorAssignment message. We don't need retrofitPerson before any other type of messages because a person is either a student or faculty, and those two messages appear for a student or faculty respectively before any other type of messages (e.g. refreshStudentAcademicProfile for a student appears before any refreshStudentRegistration messages, so we don't need to send a retrofitPerson before every registration message)

NOTE: refreshPerson uses a built-in trigger which fires on events other than name changes.  You may get refreshPerson messages where the name data hasn't changed.

ROUTING KEY: person.retrofit

{
    "messageType":"retrofitPerson",
    "transmissionDate":"2016-05-09 13:58:00",
    "bannerEventNumber": ,
    "messageBody":{
        "uhUuid":"",
        "actions":[
            {
                "messageType":"refreshPerson",
                "messageBody":{
                    "fullName":"",
                    "firstName":"",
                    "preferredFirstName":"",
                    "lastName":"",
                    "middleName":"",
                    "nameSuffix":"",
                    "uhUuid":"",
                    "pidm":
                }
            }
        ]
    }
}


Students

Useful for creating groups of students by major.

ROUTING KEY: studentAcademicProfile.refresh

{
    "messageType":"refreshStudentAcademicProfile",
    "transmissionDate":"2015-10-30 14:29:16",
    "messageBody":{
		"uhUuid":"12345678",
		"pidm":123456,
		"studentAcademicProfile":[
		{
			"startingTerm":"201430",
			"endingTerm":"999999",
			"residency":"N",
			"studentStatus":"AS",
			"studentType":"C",
			"studentCurriculum":[
			{
				"priority":1,
				"org":"KAP",
				"campus":"KAP",
				"level":"UG",
				"program":"AS-NMA-ANIM",
				"major":"NMA",
				"degreeGoal":"AS",
				"college":"AR",
				"department":"AR"
			 },
			{
				"priority":2,
				"org":"MAN",
				"campus":"MAN",
				"level":"UG",
				"program":"ART-BA",
				"major":"ART",
				"degreeGoal":"BA",
				"college":"10",
				"department":"ARTH"
			}]
		},
		{
			"startingTerm":"201310",
			"endingTerm":"201430",
			"residency":"N",
			"studentStatus":"AS",
			"studentType":"C",
			"studentCurriculum":[
 			{
				"priority":1,
				"org":"KAP",
				"campus":"KAP",
				"level":"UG",
				"program":"AS-NMA-ANIM",
				"major":"NMA",
				"degreeGoal":"AS",
				"concentration":"ANIM",
				"college":"AR",
				"department":"AR"
			 }]
		}]
	}
}

Registration

ROUTING KEY: studentRegistration.refresh

{
	"messageType":"refreshStudentRegistration",
    "transmissionDate":"2015-10-30 14:29:16",
    "messageBody":{
		"uhUuid":"12345678",
		"pidm":123456,
		"term":"201430",
		 "courseList":[
			{
				"org":"KAP",
				"subjectCode":"MUS",
				"courseNumber":"121Z",
				"crn":"12345",
 				"creditHours":2.0,
				"registrationStatus":"RW",
				"withdrawn":"N",
				"waitlisted":"N"
			}
		],
	"totalCreditHours":2.0
	}
},

(question) Consider including sectionNumber in the courseList, it is friendlier than CRN and goes well together with subjectCode and courseNumber.

Instructor

ROUTING KEY: instructorAssignment.refresh

{
    "messageType":"refreshInstructorAssignment",
    "transmissionDate":"2015-10-30 14:29:16",
    "bannerEventNumber":36524674,
    "messageBody":{
        "org":"HAW",
        "term":"201610",
        "subjectCode":"",
        "courseNumber":"",
        "sectionNumber":"",
        "crn":"15720",
        "instructorList":[
            {
                "pidm":123456,
                "uhUuid":"10101010",
                "lastName":"Fiction",
                "firstName":"Pulp",
                "middleName":"P",
                "primary":"Y"
            },
            {
                "pidm":155552,
                "uhUuid":"10202020",
                "lastName":"Minde",
                "firstName":"Neva",
                "preferredFirstName":"Neva",
                "middleName":"U",
                "primary":"N"
            }
        ]
    }
}

Note: an empty instructorList means that there are no instructors assigned to this course section. If subjectCode, courseNumber and sectionNumber are missing, interpret this message as a course section deletion.

Course Section

ROUTING KEY: courseSection.refresh

{
    "messageType":"refreshCourseSection",
    "transmissionDate":"2015-10-30 14:31:20",
    "bannerEventNumber":12341322,
    "messageBody":{
        "org":"MAU",
        "term":"201630",
        "crn":"12123",
        "subjectCode":"DENT",
        "courseNumber":"152",
        "sectionNumber":"0",
        "sectionStatus":"A",
        "courseStartDate":"2016-01-11",
        "courseEndDate":"2016-05-13",
        "maximumEnrollment":12,
        "waitlistCapacity":0,
        "meetingTimesList":[
            {
                "days":"M",
                "meetingStartTime":"08:00",
                "meetingEndTime":"08:50",
                "building":"NOII",
                "roomNumber":"201",
                "meetingStartDate":"2016-01-11",
                "meetingEndDate":"2016-05-13",
                "meetingType":"CLAS"
            },
            {
                "days":"T",
                "meetingStartTime":"08:00",
                "meetingEndTime":"11:50",
                "building":"NOII",
                "roomNumber":"",
                "meetingStartDate":"2016-01-11",
                "meetingEndDate":"2016-05-13",
                "meetingType":"CLAS"
            },
        ],
        "title":"Chairside Dent Asst"
    }
}

If subjectCode, courseNumber and sectionNumber are missing, interpret this message as a course section deletion

Published by UHIMS to the Banner exchange

Affiliation

ROUTING KEY: affiliation.add

{
  "messageType":"addAffiliation",
  "messageBody":
    {
      "uhUuid":"10202020",
      "role":"u",
      "org":"WIN"
    }
}

ROUTING KEY: affiliation.delete

{
  "messageType":"deleteAffiliation",
  "messageBody":
    {
      "uhUuid":"10202020",
      "role":"u",
      "org":"WIN"
    }
}

Home Campus

ROUTING KEY: homeCampus.add

{
  "messageType":"addHomeCampus",
  "messageBody":
    {
      "uhUuid":"10202020",
      "org":"WIN"
    }
}

ROUTING KEY: homeCampus.modify

{
  "messageType":"modifyHomeCampus",
  "messageBody":
    {
      "uhUuid":"10202020",
      "org":"WIN",
      "oldOrg":"LEE",
    }
}

ROUTING KEY: homeCampus.delete

{
  "messageType":"deleteHomeCampus",
  "messageBody":
    {
      "uhUuid":"10202020",
      "org":"WIN"
    }
}