SlideShare a Scribd company logo
1 of 49
Download to read offline
Diagnosing account, enrolment and snapshot problems using the APIs Dr Malcolm MurrayDurham University Photo by Terry Bain: http://www.flickr.com/photos/axis/2897335784/
Conference Blurb… I've designed custom user and course tools to help diagnose and repair problems with user feeds and snapshotted enrolments. I'll demonstrate how you can use APIs to access fields not exposed in the UI. I'll also discuss times when directly querying the database is still the best thing to do (i.e. when there aren't comprehensive enough classes to use). I'll conclude with a discussion of managing access by portal role.
1 Modelling Users Looking at the APIs and peeking under the covers into the database
bb-platform.jar Models common objects seen in the UI blackboard.data.user.User blackboard.data.role.PortalRole blackboard.data.course.Course blackboard.data.course.CourseMembership blackboard.data.course.CourseMembership$Role etcetera
bb-platform.jar blackboard.data.user.User
bb-platform.jar blackboard.data.user.User
bb-platform.jar blackboard.data.user.User ,[object Object]
getDataSourceId() String
getIsAvailable()boolean
getUserName() String
getId() Id,[object Object]
getDataSourceId() String
getIsAvailable() boolean
getUserName() String
getId() IdTwo unique fields! UserName & BatchUid
bb-platform.jar blackboard.data.user.User ,[object Object]
getDataSourceId() String
getIsAvailable() boolean
getUserName() String
getId() Id,[object Object]
Snapshot Making sense of complicated data Users Portal Roles Courses Course Roles Quota
Snapshot Reality: multiple sources, frequently changing Courses: Timetabling Roles: LDAP Roles: Student Record System Users: Student Record System Courses: Student Record System Users: HR System Roles: HR System
Managing Snapshot Preparation, Preparation, Preparation Quota feed Course feed User feed Enrol feed Role feed
Snapshot Simplified scenarios – snapshotting Users Users are only ever blocked, not removed SNAPSHOT 2 SNAPSHOT 1
3 Data Source Keys Mean nothing to you?Stay awake through this bit then
Data Source Keys Ownership: Makes Snapshot work blackboard.data.user.User ,[object Object]
getDataSourceId() String
getIsAvailable() boolean
getUserName() String
getId() IdUsers created using the UI are given a Data Source Key of SYSTEM Snapshot runs with a different DSK and controls the ROW_STATUS field of all Users with this DSK
Data Source Keys blackboard.data.datasource.DataSource ,[object Object]
getId() Id
RowStatus not exposed
getBatchUid() String
getDescription() String,[object Object]
4 And then there were Two... Working with multiple JAR filesuntil these are finally merged in a future API release
Enter bb-cms-admin.jar Many of the classes seen in bb-platform.jar blackboard.data.user.User blackboard.data.role.PortalRole blackboard.data.course.Course blackboard.data.course.CourseMembership blackboard.data.course.CourseMembership$Role are extended by classes in bb-cms-admin.jar ,[object Object]
blackboard.admin.data.role.PortalRoleMembership
blackboard.admin.data.course.CourseSite
blackboard.admin.data.course.Membership
blackboard.admin.data.course.Enrollment
blackboard.admin.data.course.StaffAssignment,[object Object]
Loaders & Persisters blackboard.persist.user.UserDbLoader – many options But... UserDbLoader will only load User objects where the underlying USERS database table entry has  ROW_STATUS = 0
Loaders & Persisters blackboard.admin.persist.user.PersonLoader PersonLoader loads any entry
Loading Persons by Template SELECT * FROM BB_BB60.USERS WHERE AVAILABLE_IND = ‘N' AND LASTNAME = 'Smith' AND ROW_STATUS = 2;
5 Applying this knowledge Account Problems – “I can’t log in...”
ACCESS? Diagnosis requirements – User Account User Availability User.getIsAvailable() or Person.getIsAvailable() Row Status Person.getRowStatus() Data Source Key Two parts: Person.getDataSourceBatchUid()  - may be enoughUser only exposes getDataSourceId() blackboard.admin.persist.datasource.DataSourceLoader. loadByBatchUid()  no loadById() method blackboard.admin.data.datasource.DataSource.getDescription() OWNER?
Model of the Process Not Rocket Science... Entry Point: Module Username Known? NO Search Tool YES Identify User Display Information Fix Problem
Implementation

More Related Content

Viewers also liked

Creative Commons Licences-Quick Fact Sheets
Creative Commons Licences-Quick Fact SheetsCreative Commons Licences-Quick Fact Sheets
Creative Commons Licences-Quick Fact Sheets
Reba Gordon Matthews
 
FREE TOOLS for ANIMATION
FREE TOOLS for ANIMATIONFREE TOOLS for ANIMATION
FREE TOOLS for ANIMATION
Tanja Gvozdeva
 
College Success Chapter 1: You and Your College Experience
College Success Chapter 1: You and Your College ExperienceCollege Success Chapter 1: You and Your College Experience
College Success Chapter 1: You and Your College Experience
coreyd33
 
Presentation spain waste management
Presentation spain waste managementPresentation spain waste management
Presentation spain waste management
TakiTamMaciej
 

Viewers also liked (11)

Content Recycling - B2B Marketing Summit 2012 - Scot McKee
Content Recycling - B2B Marketing Summit 2012 - Scot McKee Content Recycling - B2B Marketing Summit 2012 - Scot McKee
Content Recycling - B2B Marketing Summit 2012 - Scot McKee
 
Nice quotes animated
Nice quotes animatedNice quotes animated
Nice quotes animated
 
Creative Commons Licences-Quick Fact Sheets
Creative Commons Licences-Quick Fact SheetsCreative Commons Licences-Quick Fact Sheets
Creative Commons Licences-Quick Fact Sheets
 
FREE TOOLS for ANIMATION
FREE TOOLS for ANIMATIONFREE TOOLS for ANIMATION
FREE TOOLS for ANIMATION
 
College Success Chapter 1: You and Your College Experience
College Success Chapter 1: You and Your College ExperienceCollege Success Chapter 1: You and Your College Experience
College Success Chapter 1: You and Your College Experience
 
Animated photography
Animated photography Animated photography
Animated photography
 
Presentation spain waste management
Presentation spain waste managementPresentation spain waste management
Presentation spain waste management
 
Animated Radar Presentation Template
Animated Radar Presentation TemplateAnimated Radar Presentation Template
Animated Radar Presentation Template
 
Fastlane snapshot presentation
Fastlane snapshot presentationFastlane snapshot presentation
Fastlane snapshot presentation
 
Getting Serious About Carbon Pricing: Putting a Price on Carbon #priceoncarbon
Getting Serious About Carbon Pricing: Putting a Price on Carbon #priceoncarbonGetting Serious About Carbon Pricing: Putting a Price on Carbon #priceoncarbon
Getting Serious About Carbon Pricing: Putting a Price on Carbon #priceoncarbon
 
Presentation skills
Presentation skillsPresentation skills
Presentation skills
 

Similar to Diagnosing account, enrolment and snapshot problems using the APIs

01 Persistence And Orm
01 Persistence And Orm01 Persistence And Orm
01 Persistence And Orm
Ranjan Kumar
 
Java Technology
Java TechnologyJava Technology
Java Technology
ifnu bima
 
Jdbc Lecture5
Jdbc Lecture5Jdbc Lecture5
Jdbc Lecture5
phanleson
 
RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...
RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...
RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...
jpalley
 
How to disassemble one monster app into an ecosystem of 30
How to disassemble one monster app into an ecosystem of 30How to disassemble one monster app into an ecosystem of 30
How to disassemble one monster app into an ecosystem of 30
fiyuer
 
Patni Hibernate
Patni   HibernatePatni   Hibernate
Patni Hibernate
patinijava
 

Similar to Diagnosing account, enrolment and snapshot problems using the APIs (20)

Tuning and optimizing webcenter spaces application white paper
Tuning and optimizing webcenter spaces application white paperTuning and optimizing webcenter spaces application white paper
Tuning and optimizing webcenter spaces application white paper
 
Rails and alternative ORMs
Rails and alternative ORMsRails and alternative ORMs
Rails and alternative ORMs
 
01 Persistence And Orm
01 Persistence And Orm01 Persistence And Orm
01 Persistence And Orm
 
Java Technology
Java TechnologyJava Technology
Java Technology
 
Teradata admin track
Teradata admin trackTeradata admin track
Teradata admin track
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web Development
 
Data access
Data accessData access
Data access
 
Jdbc Lecture5
Jdbc Lecture5Jdbc Lecture5
Jdbc Lecture5
 
Integration Between Blackboard Learn™, Release 9.1, Vista 8, Others and Peopl...
Integration Between Blackboard Learn™, Release 9.1, Vista 8, Others and Peopl...Integration Between Blackboard Learn™, Release 9.1, Vista 8, Others and Peopl...
Integration Between Blackboard Learn™, Release 9.1, Vista 8, Others and Peopl...
 
RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...
RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...
RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...
 
How to disassemble one monster app into an ecosystem of 30
How to disassemble one monster app into an ecosystem of 30How to disassemble one monster app into an ecosystem of 30
How to disassemble one monster app into an ecosystem of 30
 
Patni Hibernate
Patni   HibernatePatni   Hibernate
Patni Hibernate
 
Resthub framework presentation
Resthub framework presentationResthub framework presentation
Resthub framework presentation
 
Example Of Import Java
Example Of Import JavaExample Of Import Java
Example Of Import Java
 
myEquivalents, aka a new cross-reference service
myEquivalents, aka a new cross-reference servicemyEquivalents, aka a new cross-reference service
myEquivalents, aka a new cross-reference service
 
RoR 101: Session 6
RoR 101: Session 6RoR 101: Session 6
RoR 101: Session 6
 
College information management system.doc
College information management system.docCollege information management system.doc
College information management system.doc
 
Korhan bircan
Korhan bircanKorhan bircan
Korhan bircan
 
Sql interview question part 8
Sql interview question part 8Sql interview question part 8
Sql interview question part 8
 
Ebook8
Ebook8Ebook8
Ebook8
 

More from Malcolm Murray

More from Malcolm Murray (12)

Lecture capture: the big bang theory
Lecture capture: the big bang theoryLecture capture: the big bang theory
Lecture capture: the big bang theory
 
Durham University’s first institution-wide implementation of eXplorance Blue
Durham University’s first institution-wide implementation of eXplorance BlueDurham University’s first institution-wide implementation of eXplorance Blue
Durham University’s first institution-wide implementation of eXplorance Blue
 
Learning from student perspectives on digital assessment
Learning from student perspectives on digital assessmentLearning from student perspectives on digital assessment
Learning from student perspectives on digital assessment
 
Extending the breadth and depth of interaction using gamification
Extending the breadth and depth of interaction using gamificationExtending the breadth and depth of interaction using gamification
Extending the breadth and depth of interaction using gamification
 
eLearning at Durham: a UK Perspective
eLearning at Durham: a UK PerspectiveeLearning at Durham: a UK Perspective
eLearning at Durham: a UK Perspective
 
Student voice : is honesty the best policy?
Student voice : is honesty the best policy?Student voice : is honesty the best policy?
Student voice : is honesty the best policy?
 
Replacing duo
Replacing duoReplacing duo
Replacing duo
 
Replacing duo: towards a business case
Replacing duo: towards a business caseReplacing duo: towards a business case
Replacing duo: towards a business case
 
Copy is a 4 letter word
Copy  is a 4 letter wordCopy  is a 4 letter word
Copy is a 4 letter word
 
Rethinking student feedback
Rethinking student feedbackRethinking student feedback
Rethinking student feedback
 
Letting the lunatics run the asylum - students developing code for the prod...
Letting the lunatics run the asylum - students developing code for the prod...Letting the lunatics run the asylum - students developing code for the prod...
Letting the lunatics run the asylum - students developing code for the prod...
 
Of Course you Can!
Of Course you Can!Of Course you Can!
Of Course you Can!
 

Recently uploaded

1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
PECB
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 

Recently uploaded (20)

APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 

Diagnosing account, enrolment and snapshot problems using the APIs