SHEBanG
- Moodle 3.0–3.5
- 更新 2018-09-21
This enrollment plugin provides a way for Moodle to consume Banner® LMB (Luminis Message Broker) messages. This module is not an Ellucian product, and is neither endorsed nor supported by Ellucian.
SHEBanG enrol plugin for Moodle
This plugin is not an Ellucian product, and is neither endorsed nor supported by Ellucian.
The SHEBanG enrol plugin is used to import Luminis Message Broker (LMB) messages from Ellucian (formerly SunGard HE) Banner. Messages are POSTed by LMB to a specified target URL, which for this plugin would be {hostname}/enrol/shebang/secure/post.php . You can also import from an uploaded file.
There is already an enrolment plugin, LMB , developed by Eric Merrill that processes Banner data, and has many more configuration options and features. We used Eric’s plugin successfully for several years at Appalachian State with only a few basic alterations.
So why write a new one? Why reinvent? There were a few reasons.
In our particular installtion of Banner/LMB, we kept getting several identical messages in succession which resulted in duplicate rows in one of the staging tables. Normally not a big problem, but eventually the staging table becomes bloated with duplicates.
We also wanted to log each of the XML messages received, but not in the database; putting them in a log file is more practical for us. The message log file is locked while the message is being processed in order to serialize message processing, which helps with the previously mentioned problem of identical messages sent in succession.
In the case where additional data from the XML message was needed, a regular expression had to be added–most often this is simple enough given an existing pattern from which to start, but in some instances where the message format changes ever so slightly (e.g. recstatus), it makes more sense to use DOMXPath queries to extract message data.
XMLParser is used to break up the input, whether from file or posted XML, into the principal elements we want ( <group> , <person> , and <membership> ), and from that point use the DOMDocument and DOMXPath to query for the needed values.
Some other differences:
Messages imported from a file are not logged since the message source file is available for reference.
A cross-list course parent is created only when the first message for that cross-list arrives, and then it will be created by copying names and other information from the child course.
A cross-reference table is used to associate the Moodle user id and the Luminis id; this allows the IDNUMBER field to be populated with the SCT/Banner id, which our faculty prefer.
The only scheduled task activity is the monitor for last message arrival time.
Installation & Configuration
Place the shebang directory in the site’s enrol directory. Access the notifications page (Settings block->Site administration->Notifications) to initiate database setup.
First configure and then enable the plugin (Site administration->Plugins->Enrolments->Manage enrol plugins)
Configure your LMB to POST messages to the URL corresponding to the enrol/shebang/secure/post.php file, for example:
https://moodle.someuniversity.edu/enrol/shebang/secure/post.php
- 0.0.1Moodle 1.9