LIS 2.0 Person

Learn person elements supported by LIS

Learn Users Field Required For Insert Unique LIS Source Field
Added Node Batch Uid No No Person Institutional Hierarchy Associations
Available No No  
Batch Uid Yes Yes Person Sourced Id
Birthdate No No Person Birthdate
City No No Person City
Company No No  
Country No No Person Country
Data Source Key Yes No Person Data Source
Department No No  
Education Level No No  
Email No No Person Email
First Name Yes No Person First Name
Gender No No Person Gender
Home Fax No No  
Home Phone No No Person Home Primary Phone Number
Home Phone (Secondary) No No Person Home Secondary Phone Number
Job Title No No  
Last Name Yes No Person Last Name
Middle Name No No Person Middle Name
Mobile Phone No No Person Mobile Number
Other Name No No Person Particle Name
Password Yes No Person Role Password
Password Encryption Type No No Person Role Password Encryption Type
Primary Institution Role No No Person Primary Institution Role
Pronouns No No Person Pronouns
Replacement Batch Uid No Yes Person Sourced Id
Replacement Data Source Batch Uid No No  
Row Status No No  
Secondary Institution Roles No No Person Secondary Institution Roles
State / Province No No Person Address State/Province
Street 1 No No Person Address Street 1
Street 2 No No Person Address Street 2
Student ID No No Person Role User Id
Suffix No No Person Suffix Name
System Role No No Person System Role
Title No No Person Prefix Name
Username Yes Yes Person Role User Id
Website No No Person Web Address
Work Fax No No Person Work Fax
Work Phone No No Person Work Primary Phone Number
Work Phone (Secondary) No No Person Work Secondary Phone Number
Zip / Postal Code No No Person Zip/Postal Code

LIS person object

Supported Learn Objects are bold in the below descriptions, associated values are bold-italicized.

LIS SOAP Message Element Comment

Learn Object Relationship

<SOAP-ENV:Body>
<replacePersonRequest xmlns:pms="http://www.imsglobal.org/services/lis/pms2p0/wsdl11/sync/imspms_v2p0">
<sourcedId>AA0011</sourcedId>

SOAP-ENV Body element and element defining the request operation

This sourcedId is the source Id for message


None

xmlns:pms= "http://www.imsglobal.org/services/lis/pms2p0/wsdl11/sync/imspms_v2p0"> Begin the person record block

None

<sourcedGUID>
<refAgentInstanceID>SIS</refAgentInstanceID>
   <sourcedId>55555</sourcedId>
</sourcedGUID>

The SourcedGUID providing the unique identifier for this person record and the source of the identifier

BATCH UID :: Person SourcedId

<person> Begin the person data

None

<formname>
  <formnameType>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http://www.imsglobal.org/lis/pmsv2p0/formatnmetypevocabularyv1p0
    </instanceVocabulary>
    <instanceValue>
      <language>en</language>
      <textString>Full</textString>
    </instanceValue>
    </formnameType>
    <formattedName>
    <language>en</language>
    <textString> Dr. First Middle Last, Jr. </textString>
  </formattedName>
</formname>

One component LIS formatting style is the blocking of elements and their attributes between supporting defining elements. In this case the formal name (formname), the Full name is blocked between identifiers which provide the language used for the data - in this case en, the textString - in this case Full, and the textString containing the actual data for the formattedName - in this case Dr. First Middle Last, Jr.

Note the instanceVocabulary provides the IMS vocabulary for the object in question.


None

<name>
  <nameType>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary> http://www.imsglobal.org/lis/pmsv2p0...vocabularyv1p0
    </instanceVocabulary>
    <instanceValue>
      <language>en</language>
      <textString>Full</textString>
    </instanceValue>
  </nameType>
  <partName>
    <instanceIdentifier>
     <language>en</language>
     <textString>Nickname</textString>
    </instanceIdentifier>
    <instanceVocabulary> Nickname not used </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>Nickname</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString> nickname </textString>
    </instanceValue>
  </partName>
  <partName>
    <instanceIdentifier>
      <language>en</language>
      <textString>Family</textString>
    </instanceIdentifier>
    <instanceVocabulary> Family </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString> Family </textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>King</textString>
    </instanceValue>
  </partName>
  <partName>
    <instanceIdentifier>
      <language>en</language>
      <textString>Given</textString>
    </instanceIdentifier>
    <instanceVocabulary> Given </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>Given</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>Martin</textString>
    </instanceValue>
  </partName>
  <partName>
    <instanceIdentifier>
      <language>en</language>
      <textString>Prefix</textString>
    </instanceIdentifier>
    <instanceVocabulary> Prefix </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>Prefix</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString> Dr. </textString>
    </instanceValue>
  </partName>
  <partName>
     <instanceIdentifier>
       <language>en</language>
      <textString>Suffix</textString>
    </instanceIdentifier>
    <instanceVocabulary> Suffix </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>Suffix</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>Jr.</textString>
    </instanceValue>
  </partName>
  <partName>
    <instanceIdentifier>
      <language>en</language>
      <textString>Middle</textString>
    </instanceIdentifier>
    <instanceVocabulary> Middle </instanceVocabulary>
    <instanceName>
       <language>en</language>
       <textString>Middle</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>Luther</textString>
    </instanceValue>
  </partName>
</name>

An additional LIS style is the support for components of a multipart object such as a name which may be build from prefix, first, middle, last, and suffix parts. This is handled through the addition of "parts". Combined with the instance elements these multipart objects are easily describable and are enclosed in descriptive partName elements.


Learn Title :: Person:Name:Prefix

Learn First Name :: Person:Name:Given

Learn Middle Name :: Person:Name:Middle

Learn Last Name :: Person:Name:Last

Learn Title :: Person:Name:Suffix

Not supported by Learn:

Person:Name:Nickname

<address>
  <addressType>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary>
      http:00www.imsglobal.org/lis/pmsv2p0/... </instanceVocabulary>
    <instanceValue>
      <language>en</language>
      <textString></textString>
    </instanceValue>
  </addressType>
  <addressPart>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary> http:00www.imsglobal.org/lis/pmsv2p0/addresspartvocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>NonfieldedStreetAddress1</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>1234 Street</textString>
    </instanceValue>
  </addressPart>
  <addressPart>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/addresspartvocabularyv1p0    
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>NonfieldedStreetAddress2</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>Apt. 122</textString>
    </instanceValue>
  </addressPart>
  <addressPart>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/addresspartvocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>City</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>Atlanta</textString>
    </instanceValue>
  </addressPart>
  <addressPart>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/addresspartvocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>StatePr</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>GA</textString>
    </instanceValue>
  </addressPart>
  <addressPart>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/addresspartvocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>Postcode</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>12345</textString>
    </instanceValue>
  </addressPart>
  <addressPart>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary> http:00www.imsglobal.org/lis/pmsv2p0/addresspartvocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>Country</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>USA</textString>
    </instanceValue>
  </addressPart>
</address>

The person address block follows the same pattern as the above name block.

Learn Street1 ::

    Person:Address: NonFieldedStreetAddress1

Learn Street2 ::

    Person:Address:NonFieldedStreetAddress2

Learn City ::

    Person:Address:City

Learn State/Province ::

    Person:Address:StatePr

Learn Zip/Postal code::

    Person:Address:Postcode

Learn Country ::

    Person:Address:Country

<contactinfo>
  <contactinfoType>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/contactinfotypevocabularyv1p0
    </instanceVocabulary>
    <instanceValue>
      <language>en</language>
      <textString>EmailPrimary</textString>
    </instanceValue>
  </contactinfoType>
  <contactinfoValue>
    <language>en</language>
    <textString>[email protected]</textString><!--E-Mail Address VALUE -->
  </contactinfoValue>
</contactinfo>

Contactinfo provides the email address associated with this person record.


Learn email :: Person:ContactInfo:EmailPrimary

<demographics>
  <demographicsType>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/demographicsinfovocabularyv1p0
    </instanceVocabulary>
    <instanceValue>
      <language>en</language>
      <textString>Primary</textString>
    </instanceValue>
  </demographicsType>
  <eventDate>
    <instanceIdentifier>
      <language>en</language>
      <textString>Birth</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/eventdatevocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>Birth</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>1972-03-05</textString><!-- Date of Birth VALUE (YYYY-MM-DD) -->
    </instanceValue>
  </eventDate>
  <eventDate>
    <instanceIdentifier>
      <language>en</language>
      <textString>Death</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/eventdatevocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>Death</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
    <textString></textString><!-- Date of Death IGNORED by Learn -->
    </instanceValue>
  </eventDate>
  <gender>male</gender><!-- Gender VALUE (male/female) -->
  <demographicInfo>
    <instanceIdentifier>
      <language>en</language>
      <textString>PlaceofBirth</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/demographicsinfovocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>PlaceofBirth</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>Silver Spring</textString>
    </instanceValue>
  </demographicInfo>
  <demographicInfo>
    <instanceIdentifier>
      <language>en</language>
      <textString>MaritalStatus</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/demographicsinfovocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>MaritalStatus</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>S</textString>
    </instanceValue>
  </demographicInfo>
  <demographicInfo>
    <instanceIdentifier>
      <language>en</language>
      <textString>Ethnicity</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/demographicsinfovocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>Ethnicity</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>4</textString>
    </instanceValue>
  </demographicInfo>
</demographics>
This section provides demographics information such as gender, date of birth, etc.

Learn Birthdate :: Person:DemographicInfo:Birth

Learn Gender :: Person:DemographicInfo:Gender

Not supported by Learn

Person:Demographics:Death

Person:Demographics:MaritalStatus

Person:Demographics:Ethnicity

<roles>
  <enterpriserolesType>
    <instanceIdentifier>
      <language>en</language>
      <textString>StudentInformationSystem</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/epriserolestypevocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>StudentInformationSystem</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>role</textString>
    </instanceValue>
  </enterpriserolesType>
  <institutionRole>
    <institutionroletype>
      <instanceIdentifier>
        <language>en</language>
        <textString>unknown</textString>
      </instanceIdentifier>
      <instanceVocabulary>
      http:00www.imsglobal.org/lis/pmsv2p0/systemrolevocabularyv1p0
      </instanceVocabulary>
      <instanceValue>
        <language>en</language>
        <textString>none</textString><!-- System Role VALUE -->
      </instanceValue>
    </institutionroletype>
    <primaryroletype>false</primaryroletype>
  </institutionRole>
  <institutionRole>
    <institutionroletype>
      <instanceIdentifier>
        <language>en</language>
        <textString>unknown</textString>
      </instanceIdentifier>
      <instanceVocabulary>
      http:00www.imsglobal.org/lis/pmsv2p0/systemrolevocabularyv1p0
      </instanceVocabulary>
      <instanceValue>
        <language>en</language>
        <textString>Student</textString><!-- Institution Role VALUE -->
      </instanceValue>
    </institutionroletype>
    <primaryroletype>false</primaryroletype>
  </institutionRole>
  <userId>
  <userIdValue>
    <language>en</language>
    <textString>loginidblah</textString>
  </userIdValue>
  <userIdType>
    <language>en</language>
    <textString>Logon ID</textString>
  </userIdType>
  <password>
    <language>en</language>
    <textString> {SSHA}JCkADpIzxrezO7Y9H0Swprn6veJNUEMxTENRVg== </textString>
  </password>
  <pwEncryptionType>
    <language>en</language>
    <textString>SSHA</textString>
  </pwEncryptionType>
  <authenticationType>
    <language>en</language>
    <textString></textString>
  </authenticationType>
  </userId>
  <userId>
    <userIdValue>
      <language>en</language>
      <textString>A00001154</textString><!-- ID IGNORED by Learn -->
    </userIdValue>
    <userIdType>
      <language>en</language>
      <textString>SISID</textString>
    </userIdType>
    <password>
      <language>en</language>
      <textString>
      {SSHA}JCkADpIzxrezO7Y9H0Swprn6veJNUEMxTENRVg==
      </textString>
    </password>
    <pwEncryptionType>
      <language>en</language>
      <textString>SSHA</textString>
    </pwEncryptionType>
    <authenticationType>
      <language>en</language>
      <textString></textString>
    </authenticationType>
  </userId>
  <userId>
    <userIdValue>
      <language>en</language>
      <textString>
      user_firstlastname<!-- User_ID and Student_ID VALUE -->
      </textString>
    </userIdValue>
    <userIdType>
      <language>en</language>
      <textString>Email ID</textString>
    </userIdType>
    <password>
      <language>en</language>
      <textString>change_me</textString><!-- User Password VALUE -->
    </password>
    <pwEncryptionType>
      <language>en</language>
      <textString></textString><!-- Encryption value (if applicable) -->
    </pwEncryptionType>
    <authenticationType>
      <language>en</language>
      <textString></textString>
    </authenticationType>
  </userId>
</roles>
The roles section provides the institutional role and account login information (username and password) for this person record.

Learn Primary Institution Role :: Person:Roles:Role:InstitutionRole

Learn System Role :: Person:Roles:Role:InstitutionRole

See "Institution Roles" or "System Roles" in the System Admin panel for lists of valid Institution and System Roles.

Learn Username and Student ID::

Person:Roles:Role:userId

Learn Password:

Person:Roles:Role:Password

Learn Password Encryption Type:

Person:Roles:Role:PwEncryptionType

Important!

Learn only uses the last userId record - if multiple userId records are provided ensure that the login information - username and password - are in the last userId record. So this sample person would login to Learn using

username: user_firstlastname

password: change_me

Not supported by Learn

authenticationType

      </person>
    </personRecord>
  </replacePersonRequest>
</SOAP-ENV:Body>
Closing element tags.

Blackboard extensions to LIS

Blackboard Learn supports data elements in addition to those defined in the standard.

LIS SOAP Message Element Comment

<extension>
       <extensionNameVocabulary>unknown</extensionNameVocabulary>
       <extensionValueType>unknown</extensionValueType> 
       <extensionField> 
              <fieldName>inst_email</fieldName> 
              <fieldType>unknown</fieldType> 
              <fieldValue>[email protected]</fieldValue> 
       </extensionField> 
</extension>

<extension>
   <extensionNameVocabulary>unknown</extensionNameVocabulary>.
   <extensionValueType>unknown</extensionValueType>
   <extensionField>
       <fieldName>pronouns</fieldName>
       <fieldType>unknown</fieldType
       <fieldValue>they/them,she/her,ze/zir</fieldValue>
   </extensionField>
</extension>

Institution email is distinct from personal email and used for integrations requiring use of an official address such as the Microsoft Teams integration. Administrators can edit the institution through the SIS Framework, but there is no option for end users to edit.

There are 2 scenarios to be considered:

     A. When Person Email is the Institution Email
     B. When Person Email isn’t the institution email

 

Person Email is the Institution Email

For scenario A, the Institution Email (inst_email) is by default set to person email within the SIS integration specifications, and therefore no additional action is required to change this on behalf of the administrator.

 

Person Email isn’t the institution email

For scenario B, when the person email field isn’t the institution email address and there is a need to update/change this, it’s possible to use a script to populate the institutional email field values using field mapping rather than directly adding data to this field.

This is an example script for populating the institution email field using the Use a custom script text box:

(function() {
     var v = data.person.extensions.get('inst_email'); 
     return v ? v.value : null;
}());

It’s important to note that if required, an admin can revert the field mapping back to ‘Person Email’. If a custom script has been used, this will be preserved.

 

Multiple pronoun values for a person

It’s possible to send multiple pronoun values per student. This is sent as a single fieldValue entry with the different values separated by commas.

<extension>
       <extensionNameVocabulary>unknown</extensionNameVocabulary>
       <extensionValueType>unknown</extensionValueType>
       <extensionField>
              <fieldName>pronunciation</fieldName>
              <fieldType>unknown</fieldType>
              <fieldValue>kris-chun</fieldValue>
       </extensionField>
</extension>

Name pronunciation

The name pronunciation field is text (unicode) to support phonetic spelling or a pronunciation guide. Exchange of audio recording files aren’t supported with the SIS integration framework.