Ce service sert à affecter les comptes d’utilisateur dans Brightspace.
Opérations mises en œuvre
- deletePerson
- replacePerson
- readPerson
Prénom et nom de famille préférés
Les clients dotés de LIS 2.0 peuvent inclure et gérer les noms préférés des utilisateurs au moyen de balises XML dans une intégration LIS. L’interface utilisateur IPSIS se conforme aux règles ci-dessous lorsque le système informatique de renseignements sur les élèves (SIS) est autorisé à remplacer les noms préférés d’un utilisateur dans Brightspace :
- Si le prénom préféré indiqué dans le service LIS est vide pour un utilisateur qui comprend un prénom préféré dans Brightspace, le prénom préféré est supprimé.
- Si le nom de famille préféré indiqué dans le service LIS est vide pour un utilisateur qui comprend un nom de famille préféré dans Brightspace, le nom de famille préféré est supprimé.
- Si le service LIS ne comprend que le nom de famille préféré de l’utilisateur, il ignore le prénom préféré dans Brightspace et n’y actualise que le nom de famille préféré.
- Si le service LIS ne comprend que le prénom préféré de l’utilisateur, il ignore le nom de famille préféré dans Brightspace et n’y actualise que le prénom préféré.
- Si la section des noms préférés est absente de la requête, le service LIS supprime le prénom et le nom de famille préférés.
- Si la section des noms préférés est présente dans la requête et comprend des valeurs, le prénom ou le nom de famille préféré est actualisé dans Brightspace.
Remarque : Le champ de type de nom Preferred (Préférés) comprend les valeurs de noms préférés d’un utilisateur; ces valeurs peuvent être transmises avec le reste des renseignements de nom en tant qu’éléments d’un objet Person (Personne).
Pour les clients qui utilisent IPSIS V1.0 :
- Le traducteur PersonRequestPreferredFirstAndLastNameOptionalTranslator peut figurer n’importe où dans la liste.
- Les gestionnaires ReplaceUserPreferredFirstNameNoUpdateHandler et ReplaceUserPreferredLastNameNoUpdateHandler doivent figurer avant le gestionnaire ReplaceUserSaveLMSHandler.
À propos de l’opération deletePerson
L’opération deletePerson sert à supprimer des utilisateurs de Brightspace.
Flux de traitement : deletePerson
- À la réception d’une requête deletePerson du LIS, l’adaptateur obtient l’ID unique de l’utilisateur à partir du champ sourcedId de la requête, sans avoir recours à un traducteur.
- Une fois l’ID de personne obtenu, les gestionnaires de la plateforme IDeleteUserHandler sont utilisés pour traiter la requête.
- La réponse du LIS est ensuite générée depuis le gestionnaire de réponse.
Exemple de requête deletePerson
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ims="http://www.imsglobal.org/services/lis/mms2p0/wsdl11/sync/imsmms_v2p0">
<soapenv:Header>
<ims:imsx_syncRequestHeaderInfo>
<ims:imsx_version>V1.0</ims:imsx_version>
<ims:imsx_messageIdentifier>1234</ims:imsx_messageIdentifier>
</ims:imsx_syncRequestHeaderInfo>
</soapenv:Header>
<soapenv:Body>
<ims:deletePersonRequest>
<ims:sourcedId>Demo_User</ims:sourcedId>
</ims:deletePersonRequest>
</soapenv:Body>
</soapenv:Envelope>
Champs d’en-tête et de corps de requête deletePerson
Champs de l’en-tête de la requête
Pour plus d’informations, reportez-vous à la grille d'évaluation Utiliser le service LIS v2.0 > En-têtes de requête et de réponse.
Champs du corps de la requête
L’adaptateur accepte les champs suivants dans la requête :
Propriété
|
Mise en correspondance de requête LIS
|
Requise
|
Code
|
deletePersonRequest.sourcedId
|
Oui
|
Exemple de réponse deletePerson
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<h:imsx_syncResponseHeaderInfo
xmlns:h="http://www.imsglobal.org/services/lis/mms2p0/wsdl11/sync/imsmms_v2p0"
xmlns="http://www.imsglobal.org/services/lis/mms2p0/wsdl11/sync/imsmms_v2p0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<imsx_version>V1.0</imsx_version>
<imsx_messageIdentifier>MMS_deletePerson_20120120T191434_9913552Z</imsx_messageIdentifier>
<imsx_statusInfo>
<imsx_codeMajor>success</imsx_codeMajor>
<imsx_severity>status</imsx_severity>
<imsx_messageRefIdentifier>1234</imsx_messageRefIdentifier>
<imsx_description/>
<imsx_codeMinor>
<imsx_codeMinorField>
<imsx_codeMinorFieldName>TargetEndSystem</imsx_codeMinorFieldName>
<imsx_codeMinorFieldValue>fullsuccess</imsx_codeMinorFieldValue>
</imsx_codeMinorField>
</imsx_codeMinor>
</imsx_statusInfo>
</h:imsx_syncResponseHeaderInfo>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>
</s:Envelope>
Champs d’en-tête et de corps de réponse deletePerson
Champs de l’en-tête de réponse
Pour plus d’informations, reportez-vous à la grille d'évaluation Utiliser le service LIS v2.0 > En-têtes de requête et de réponse.
Champs du corps de réponse
Aucun champ n’est retourné dans le corps de la réponse.
À propos de l’opération replacePerson
L’opération replacePerson sert à créer ou mettre à jour les utilisateurs de Brightspace.
Lorsque vous utilisez les configurations par défaut, suivant le succès de l’opération, vous pouvez valider la création ou la mise à jour de l’utilisateur le cas échéant, grâce à l’outil Gérer les utilisateurs dans Brightspace.
Flux de traitement : replacePerson
- Lorsqu’une requête replacePerson du LIS est reçue, Brightspace la traduit à l’aide des traducteurs LIS configurés pour ITranslatePerson qui convertissent la requête dans un format que la plateforme IPSIS comprend.
- Une fois la requête traduite, les gestionnaires de la plateforme IPSIS configurés pour IReplaceUserHandler traitent la requête.
- Une réponse du LIS est ensuite générée depuis le gestionnaire de réponse.
Exemple de requête replacePerson
Remarque : Cet exemple de requête comprend un champ d’extension facultatif (en caractères gras) qui permet de modifier l’état d’un utilisateur après sa création initiale. Le champ d’extension est requis pour cette action puisque l’état de l’utilisateur ne correspond pas directement à un champ de la spécification LIS.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ims="http://www.imsglobal.org/services/lis/pms2p0/wsdl11/sync/imspms_v2p0">
<soapenv:Header>
<ims:imsx_syncRequestHeaderInfo>
<ims:imsx_version>V1.0</ims:imsx_version>
<ims:imsx_messageIdentifier>12346</ims:imsx_messageIdentifier>
</ims:imsx_syncRequestHeaderInfo>
</soapenv:Header>
<soapenv:Body>
<ims:replacePersonRequest>
<!--Not Used by D2L-->
<ims:sourcedId>Demo_User</ims:sourcedId>
<ims:personRecord>
<ims:sourcedGUID>
<ims:sourcedId>Demo_User</ims:sourcedId>
</ims:sourcedGUID>
<!--Optional:-->
<ims:person>
<!--Zero or more repetitions:-->
<ims:name>
<ims:nameType>
<ims:instanceIdentifier>
<ims:language>en-US</ims:language>
<ims:textString>Contact</ims:textString>
</ims:instanceIdentifier>
<ims:instanceVocabulary>http://www.imsglobal.org/lis/pmsv2p0/nametypevocabularyv1p0</ims:instanceVocabulary>
<ims:instanceValue>
<ims:language>en-US</ims:language>
<ims:textString>Contact</ims:textString>
</ims:instanceValue>
</ims:nameType>
<!--1 or more repetitions:-->
<ims:partName>
<ims:instanceIdentifier>
<ims:language>en-US</ims:language>
<ims:textString>Contact-First</ims:textString>
</ims:instanceIdentifier>
<ims:instanceVocabulary>http://www.imsglobal.org/lis/pmsv2p0/partnamevocabularyv1p0</ims:instanceVocabulary>
<ims:instanceName>
<ims:language>en-US</ims:language>
<ims:textString>First</ims:textString>
</ims:instanceName>
<ims:instanceValue>
<ims:language>en-US</ims:language>
<ims:textString>Demo</ims:textString>
</ims:instanceValue>
</ims:partName>
<ims:partName>
<ims:instanceIdentifier>
<ims:language>en-US</ims:language>
<ims:textString>Contact-Last</ims:textString>
</ims:instanceIdentifier>
<ims:instanceVocabulary>http://www.imsglobal.org/lis/pmsv2p0/partnamevocabularyv1p0<:/ims:instanceVocabulary>
<ims:instanceName>
<ims:language>en-US</ims:language>
<ims:textString>Last</ims:textString>
</ims:instanceName>
<ims:instanceValue>
<ims:language>en-US</ims:language>
<ims:textString>User</ims:textString>
</ims:instanceValue>
</ims:partName>
</ims:name>
<!--Zero or more repetitions:-->
<ims:contactinfo>
<ims:contactinfoType>
<ims:instanceIdentifier>
<ims:language>en-US</ims:language>
<ims:textString>EmailPrimary</ims:textString>
</ims:instanceIdentifier>
<ims:instanceVocabulary>http://www.imsglobal.org/lis/pmsv2p0/contactinfotypevocabularyv1p0</ims:instanceVocabulary>
<ims:instanceValue>
<ims:language>en-US</ims:language>
<ims:textString>EmailPrimary</ims:textString>
</ims:instanceValue>
</ims:contactinfoType>
<ims:contactinfoValue>
<ims:language>en-US</ims:language>
<ims:textString>duser@demo.com</ims:textString>
</ims:contactinfoValue>
</ims:contactinfo>
<!--Zero or more repetitions:-->
<ims:roles>
<ims:enterpriserolesType>
<ims:instanceIdentifier>
<ims:language>en-US</ims:language>
<ims:textString>StudentInformationSystem</ims:textString>
</ims:instanceIdentifier>
<ims:instanceVocabulary>http://www.imsglobal.org/lis/pmsv2p0/epriserolestypevocabularyv1p0</ims:instanceVocabulary>
<ims:instanceValue>
<ims:language>en-US</ims:language>
<ims:textString>StudentInformationSystem</ims:textString>
</ims:instanceValue>
</ims:enterpriserolesType>
<!--Zero or more repetitions:-->
<ims:institutionRole>
<ims:institutionroletype>
<ims:instanceIdentifier>
<ims:language>en-US</ims:language>
<ims:textString>StudentInformationSystem-Student</ims:textString>
</ims:instanceIdentifier>
<ims:instanceVocabulary>http://www.imsglobal.org/lis/pmsv2p0/institutionroletypevocabularyv1p0</ims:instanceVocabulary>
<ims:instanceValue>
<ims:language>en-US</ims:language>
<ims:textString>Student</ims:textString>
</ims:instanceValue>
</ims:institutionroletype>
<ims:primaryroletype>1</ims:primaryroletype>
</ims:institutionRole>
<!--Optional:-->
<ims:userId>
<ims:userIdValue>
<ims:language>en-US</ims:language>
<ims:textString>duser</ims:textString>
</ims:userIdValue>
<!--Optional:-->
<ims:password>
<ims:language>en-US</ims:language>
<ims:textString>d2l</ims:textString>
</ims:password>
</ims:userId>
</ims:roles>
<ims:extension>
<ims:extensionField>
<ims:fieldName>IsActive</ims:fieldName>
<ims:fieldType>Boolean</ims:fieldType>
<ims:fieldValue>True</ims:fieldValue>
</ims:extensionField>
</ims:extension>
</ims:person>
</ims:personRecord>
</ims:replacePersonRequest>
</soapenv:Body>
</soapenv:Envelope>
<ims:agent>
<ims:agentId>
<ims:language>en-US</ims:language>
<ims:textString>{Parent user Id}</ims:textString>
</ims:agentId>
<ims:agentDomain>
<ims:language>en-US</ims:language>
<ims:textString>{Parent role}</ims:textString>
</ims:agentDomain>
</ims:agent>
<ims:extension>
<ims:extensionField>
<ims:fieldName>SynchronizeRelationships</ims:fieldName>
<ims:fieldType>Boolean</ims:fieldType>
<ims:fieldValue>true</ims:fieldValue>
</ims:extensionField>
</ims:extension>
Champs d’en-tête et de corps de requête replacePerson
Champs de l’en-tête de la requête
Pour plus d’informations, reportez-vous à la grille d'évaluation Utiliser le service LIS v2.0 > En-têtes de requête et de réponse.
Champs du corps de la requête
Le modèle de configuration du traducteur accepte les champs suivants de la requête :
Propriété
|
Mise en correspondance de requête LIS
|
Requise
|
OrgDefinedId
|
sourcedGUID.sourcedId
|
Oui
|
Nom complet
|
person.name.formname
|
Non
|
Prénom
|
person.name.partName.instanceValue.textString
where person.name.partName.instanceName.textString = "First" or "Given"
|
Oui
|
Nom de famille
|
person.name.partName.instanceValue.textString
where person.name.partName.instanceName.textString = "Last", "Family" or "Surname"
|
Oui
|
Adresse de courriel
|
person.contactinfo.contactinfoValue.textString
where person.contactinfo.contactinfoType.instanceValue = "EmailPrimary"
|
Non
|
Rôle
|
person.roles.institutionRole(*).institutionroletype.instanceValue.textString
|
Non
|
Rôle primaire
|
person.roles.institutionRole(*).institutionroletype.instanceValue.textString
when person.roles.institutionRole(*).primaryroletype = true
|
Non
|
Nom d’utilisateur
|
person.roles.userId.userIdValue.textString
|
Non
|
Type de nom d’utilisateur
|
person.roles.userId.userIdType.textString
|
Non
|
Mot de passe
|
person.roles.userId.password.textString
|
Non
|
Type de chiffrement
|
person.roles.userId.pwEncryptionType.textString
|
Non
|
Type d’authentification
|
person.roles.userId.authenticationType.textString
|
Non
|
IsActive
|
person.extension.extensionField.fieldValue
|
Non
|
Exemple de réponse replacePerson
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<h:imsx_syncResponseHeaderInfo
xmlns:h="http://www.imsglobal.org/services/lis/pms2p0/wsdl11/sync/imspms_v2p0"
xmlns="http://www.imsglobal.org/services/lis/pms2p0/wsdl11/sync/imspms_v2p0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<imsx_version>V1.0</imsx_version>
<imsx_messageIdentifier>PMS_replacePerson_20120418T234324_4244880Z</imsx_messageIdentifier>
<imsx_statusInfo>
<imsx_codeMajor>success</imsx_codeMajor>
<imsx_severity>warning</imsx_severity>
<imsx_messageRefIdentifier>12346</imsx_messageRefIdentifier>
<imsx_description/>
<imsx_codeMinor>
<imsx_codeMinorField>
<imsx_codeMinorFieldName>TargetEndSystem</imsx_codeMinorFieldName>
<imsx_codeMinorFieldValue>partialdatastorage</imsx_codeMinorFieldValue>
</imsx_codeMinorField>
</imsx_codeMinor>
</imsx_statusInfo>
</h:imsx_syncResponseHeaderInfo>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>
</s:Envelope>
Champs d’en-tête et de corps de réponse replacePerson
Champs de l’en-tête de réponse
Pour plus d’informations, reportez-vous à la grille d'évaluation Utiliser le service LIS v2.0 > En-têtes de requête et de réponse.
Champs du corps de réponse
Aucun champ n’est retourné dans le corps de la réponse.
Exemple de requête readPerson
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ims="http://www.imsglobal.org/services/lis/pms2p0/wsdl11/sync/imspms_v2p0">
<soapenv:Header>
<ims:imsx_syncRequestHeaderInfo>
<ims:imsx_version>1.0</ims:imsx_version>
<ims:imsx_messageIdentifier>1234567</ims:imsx_messageIdentifier>
<!--Optional:-->
<ims:imsx_sendingAgentIdentifier/>
</ims:imsx_syncRequestHeaderInfo>
</soapenv:Header>
<soapenv:Body>
<ims:readPersonRequest>
<ims:sourcedId>Demo_User</ims:sourcedId>
</ims:readPersonRequest>
</soapenv:Body>
</soapenv:Envelope>
Exemple de réponse readPerson
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<h:imsx_syncResponseHeaderInfo xmlns:h="http://www.imsglobal.org/services/lis/pms2p0/wsdl11/sync/imspms_v2p0"
xmlns="http://www.imsglobal.org/services/lis/pms2p0/wsdl11/sync/imspms_v2p0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<imsx_version>V1.0</imsx_version>
<imsx_messageIdentifier>PMS_readPerson_20120720T192847_4131414Z</imsx_messageIdentifier>
<imsx_statusInfo>
<imsx_codeMajor>success</imsx_codeMajor>
<imsx_severity>warning</imsx_severity>
<imsx_messageRefIdentifier>12354</imsx_messageRefIdentifier>
<imsx_description>PMS.readPerson</imsx_description>
<imsx_codeMinor>
<imsx_codeMinorField>
<imsx_codeMinorFieldName>TargetEndSystem</imsx_codeMinorFieldName>
<imsx_codeMinorFieldValue>partialdatastorage</imsx_codeMinorFieldValue>
</imsx_codeMinorField>
</imsx_codeMinor>
</imsx_statusInfo>
</h:imsx_syncResponseHeaderInfo>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<readPersonResponse xmlns="http://www.imsglobal.org/services/lis/pms2p0/wsdl11/sync/imspms_v2p0">
<personRecord>
<sourcedGUID>
<sourcedId>Demo_User</sourcedId>
</sourcedGUID>
<person>
<formname>
<formnameType>
<instanceIdentifier>
<language>en-US</language>
</instanceIdentifier>
<instanceVocabulary>http://www.imsglobal.org/lis/pmsv2p0/formatnmetypevocabularyv1p0</instanceVocabulary>
<instanceValue>
<language>en-US</language>
<textString>Full</textString>
</instanceValue>
</formnameType>
<formattedName>
<language>en-US</language>
<textString>Demo User</textString>
</formattedName>
</formname>
<name>
<nameType>
<instanceIdentifier>
<language>en-US</language>
</instanceIdentifier>
<instanceVocabulary>http://www.imsglobal.org/lis/pmsv2p0/nametypevocabularyv1p0</instanceVocabulary>
<instanceValue>
<language>en-US</language>
<textString>Full</textString>
</instanceValue>
</nameType>
<partName>
<instanceIdentifier>
<language>en-US</language>
</instanceIdentifier>
<instanceVocabulary>http://www.imsglobal.org/lis/pmsv2p0/partnamevocabularyv1p0</instanceVocabulary>
<instanceName>
<language>en-US</language>
<textString>First</textString>
</instanceName>
<instanceValue>
<language>en-US</language>
<textString>Demo</textString>
</instanceValue>
</partName>
<partName>
<instanceIdentifier>
<language>en-US</language>
</instanceIdentifier>
<instanceVocabulary>http://www.imsglobal.org/lis/pmsv2p0/partnamevocabularyv1p0</instanceVocabulary>
<instanceName>
<language>en-US</language>
<textString>Last</textString>
</instanceName>
<instanceValue>
<language>en-US</language>
<textString>User</textString>
</instanceValue>
</partName>
</name>
</person>
</personRecord>
</readPersonResponse>
</s:Body>
</s:Envelope>