This method is implemented by the itslearning proprietary ExtendedPersonManagement service, see Managing persons, and is not part of the formal IMS ES spec. 




Method description


Method to read all users in the system, including manually created users without a sync key. Also allows a sync key to be created on read. NOTE: ReadAllPersons will also return users without a synckey

Preconditions for use

Method needs to be enabled in IMS-ES integration settings.

Message Schema

Input parameters / request message elements

Name

Description

Data type

Allowed values

M/O

PageIndex

The page number which should be returned.

Integer

>=1

M

PageSize

The page size (maximum user count on the page). For performance reasons it is recommened to use 100 as maximum value.

Integer

>=1

M

CreatedFrom

Returns all users created after a specific date. Date must be in UTC format.

Date (UTC)


O

OnlyManuallyCreatedUsers

Returns only those users who are manually created. The default value is "false".

Manually created users are:

  • Users without a synckey in itslearning
  • Users with a synckey generated by itslearning. 


ITSL internal note: When a person's synckey is generated by itslearning, the field Person.SyncSource is set to 'ITSL' in itslearning. Any person created/updated/replaced by IMS ES will get field Person.SyncSource set to 'Import Application'.

Boolean

true/false

O

ConvertFromManual

Autogenerate synckey for users missing syncKey. This means that if a user returned does not have any syncID in itslearning at the time you do the request, a syncID for the user is autogenerated and stored on the person in itslearning.

  • For this to work, the previous parameter <OnlyManuallyCreatedUsers> must be set to true.
  • This syncID will have the format 'itsla-<GUID>'. The default value is 'false'.
  • Autogenerating synckey will only be for the page you request. In this example only for the page 1 (PageIndex=1) – not for all 78 (virtual count)

Boolean

true/false

O

Please refer to the WSDL for the full element structure, only key elements are described here.


Response message elements


Name

Description

Data type

<personIdPairSet>

Wrapper element for a list of personIdPair elements

<personIdPair>

Wrapper element for one <sourcedId><identifier> and one <person> element


<personIdPair><sourcedId><identifier>

The sync ID of the person object

Text

<personIdPair><person>

The person object itself

Object

VirtualCount

Total count of persons in I itslearning to be retuned

Integer

Example 1

Description

I want to read all active users (manually and not manually created) in itslearning, and I only want 3 persons to be returned per request.

Example request message

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ims="http://www.imsglobal.org/services/pms/xsd/imsPersonManMessSchema_v1p0" xmlns:ims1="http://www.imsglobal.org/services/common/imsMessBindSchema_v1p0">
<soapenv:Header>
<ims1:syncRequestHeaderInfo>
<ims1:messageIdentifier>1234567890</ims1:messageIdentifier>
</ims1:syncRequestHeaderInfo>
</soapenv:Header>
<soapenv:Body>
<ims:readAllPersonsRequest>
<ims:PageIndex>1</ims:PageIndex>
<ims:PageSize>3</ims:PageSize>
</ims:readAllPersonsRequest>
</soapenv:Body>
</soapenv:Envelope>


Example response message

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<h:syncResponseHeaderInfo>
<messageIdentifier>1234567890</messageIdentifier>
<statusInfo>
<codeMajor>success</codeMajor>
<severity>status</severity>
<messageIdRef>1234567890</messageIdRef>
</statusInfo>
</h:syncResponseHeaderInfo>
<o:Security s:mustUnderstand="1">
<u:Timestamp u:Id="_0">
<u:Created>2011-02-04T15:01:36.218Z</u:Created>
<u:Expires>2011-02-04T15:06:36.218Z</u:Expires>
</u:Timestamp>
</o:Security>
</s:Header>
<s:Body>
<readAllPersonsResponse>
<personIdPairSet>
<personIdPair>
<sourcedId>
<identifier>66666</identifier>
</sourcedId>
<person>
<formatName/>
<name>
<partName>
<namePartType>First</namePartType>
<namePartValue>John</namePartValue>
</partName>
<partName>
<namePartType>Last</namePartType>
<namePartValue>Johnsen</namePartValue>
</partName>
<partName>
<namePartType>Nick</namePartType>
<namePartValue/>
</partName>
</name>
<email/>
<URL/>
<userId>
<userIdValue>jonjon</userIdValue>
</userId>
<address>
<extadd/>
<locality/>
<postcode/>
<street/>
</address>
<demographics>
<gender>Male</gender>
</demographics>
<institutionRole>
<institutionRoleType>Student</institutionRoleType>
<primaryRoleType>true</primaryRoleType>
</institutionRole>
<tel>
<telValue/>
</tel>
<tel>
<telValue/>
</tel>
<extension/>
</person>
</personIdPair>
<personIdPair>
<sourcedId>
<identifier>77777</identifier>
</sourcedId>
<person>
<formatName/>
<name>
<partName>
<namePartType>First</namePartType>
<namePartValue>Anny</namePartValue>
</partName>
<partName>
<namePartType>Last</namePartType>
<namePartValue>Olseon</namePartValue>
</partName>
<partName>
<namePartType>Nick</namePartType>
<namePartValue/>
</partName>
</name>
<email/>
<URL/>
<userId>
<userIdValue>annols</userIdValue>
</userId>
<address>
<extadd/>
<locality/>
<postcode/>
<street/>
</address>
<demographics>
<gender>Male</gender>
</demographics>
<institutionRole>
<institutionRoleType>Student</institutionRoleType>
<primaryRoleType>true</primaryRoleType>
</institutionRole>
<tel>
<telValue/>
</tel>
<tel>
<telValue/>
</tel>
<extension/>
</person>
</personIdPair>
<personIdPair>
<sourcedId>
<identifier>abc123</identifier>
</sourcedId>
<person>
<formatName/>
<name>
<partName>
<namePartType>First</namePartType>
<namePartValue>Nelly</namePartValue>
</partName>
<partName>
<namePartType>Last</namePartType>
<namePartValue>Anderson</namePartValue>
</partName>
<partName>
<namePartType>Nick</namePartType>
<namePartValue/>
</partName>
</name>
<URL/>
<userId>
<userIdValue>neland</userIdValue>
</userId>
<address>
<extadd/>
<locality/>
<postcode/>
<street/>
</address>
<demographics>
<gender>Male</gender>
</demographics>
<institutionRole>
<institutionRoleType>Student</institutionRoleType>
<primaryRoleType>true</primaryRoleType>
</institutionRole>
<tel>
<telValue/>
</tel>
<tel>
<telValue/>
</tel>
<extension/>
</person>
</personIdPair>
<personIdPair>
<sourcedId>
<identifier/>
</sourcedId>
<person>
<formatName/>
<name>
<partName>
<namePartType>First</namePartType>
<namePartValue>External</namePartValue>
</partName>
<partName>
<namePartType>Last</namePartType>
<namePartValue>External</namePartValue>
</partName>
<partName>
<namePartType>Nick</namePartType>
<namePartValue/>
</partName>
</name>
<email/>
<URL/>
<userId>
<userIdValue>External</userIdValue>
</userId>
<address>
<extadd/>
<locality/>
<postcode/>
<street/>
</address>
<demographics>
<gender>Male</gender>
</demographics>
<institutionRole>
<institutionRoleType>Guest</institutionRoleType>
<primaryRoleType>true</primaryRoleType>
</institutionRole>
<tel>
<telValue/>
</tel>
<tel>
<telValue/>
</tel>
<extension>
<extensionField>
<fieldName>IsExternalUser</fieldName>
<fieldType>Bool</fieldType>
<fieldValue>True</fieldValue>
</extensionField>
<extensionField>
<fieldName>nationalidentitynumber</fieldName>
<fieldType>String</fieldType>
<fieldValue>External_ABC</fieldValue>
</extensionField>
<extensionField>
<fieldName>customstring2</fieldName>
<fieldType>String</fieldType>
<fieldValue>External_DEF</fieldValue>
</extensionField>
</extension>
</person>
</personIdPair>
</personIdPairSet>
<virtualCount>78</virtualCount>
</readAllPersonsResponse>
</s:Body>
</s:Envelope>

Example 2

Description

I want to read all users (manually and not manually created) in itslearning that were created after '2011-11-27 14:30:23'

Example request message

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ims="http://www.imsglobal.org/services/pms/xsd/imsPersonManMessSchema_v1p0" xmlns:ims1="http://www.imsglobal.org/services/common/imsMessBindSchema_v1p0">
<soapenv:Header>
<ims1:syncRequestHeaderInfo>
<ims1:messageIdentifier>1234567890</ims1:messageIdentifier>
</ims1:syncRequestHeaderInfo>
</soapenv:Header>
<soapenv:Body>
<ims:readAllPersonsRequest>
<ims:PageIndex>1</ims:PageIndex>
<ims:PageSize>2</ims:PageSize>
<ims:CreatedFrom> 2011-12-30T10:21:00Z</ims:CreatedFrom>
</ims:readAllPersonsRequest>
</soapenv:Body>
</soapenv:Envelope>


Example response message

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Header>
<h:syncResponseHeaderInfo>
<messageIdentifier>1234567890</messageIdentifier>
<statusInfo>
<codeMajor>success</codeMajor>
<severity>status</severity>
<messageIdRef>1234567890</messageIdRef>
</statusInfo>
</h:syncResponseHeaderInfo>
<o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<u:Timestamp u:Id="_0">
<u:Created>2011-12-30T12:08:11.415Z</u:Created>
<u:Expires>2011-12-30T12:13:11.415Z</u:Expires>
</u:Timestamp>
</o:Security>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<readAllPersonsResponse>
<personIdPairSet>
<personIdPair>
<sourcedId>
<identifier>1111</identifier>
</sourcedId>
<person>
<formatName xsi:nil="true"/>
<name>
<partName>
<namePartType>First</namePartType>
<namePartValue>James</namePartValue>
</partName>
<partName>
<namePartType>Last</namePartType>
<namePartValue>Dean</namePartValue>
</partName>
<partName>
<namePartType>Nick</namePartType>
<namePartValue>jamie</namePartValue>
</partName>
</name>
<email>[email protected]</email>
<URL/>
<userId>
<userIdValue>jamdea</userIdValue>
</userId>
<address>
<extadd/>
<locality/>
<postcode/>
<street/>
</address>
<demographics>
<gender>Male</gender>
<bday>1926-07-03</bday>
</demographics>
<institutionRole>
<institutionRoleType>Student</institutionRoleType>
<primaryRoleType>true</primaryRoleType>
</institutionRole>
<tel>
<telValue>12774</telValue>
</tel>
<tel>
<telValue>876987</telValue>
</tel>
</person>
</personIdPair>
</personIdPairSet>
<virtualCount>1</virtualCount>
</readAllPersonsResponse>
</s:Body>
</s:Envelope>

Example 3

Description

I want to read only manually created users.

Example request message

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ims="http://www.imsglobal.org/services/pms/xsd/imsPersonManMessSchema_v1p0" xmlns:ims1="http://www.imsglobal.org/services/common/imsMessBindSchema_v1p0">
<soapenv:Header>
<ims1:syncRequestHeaderInfo>
<ims1:messageIdentifier>1234567890</ims1:messageIdentifier>
</ims1:syncRequestHeaderInfo>
</soapenv:Header>
<soapenv:Body>
<ims:readAllPersonsRequest>
<ims:PageIndex>1</ims:PageIndex>
<ims:PageSize>2</ims:PageSize>
<ims:OnlyManuallyCreatedUsers>true</ims:OnlyManuallyCreatedUsers>
</ims:readAllPersonsRequest>
</soapenv:Body>
</soapenv:Envelope>


Example response message

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Header>
<h:syncResponseHeaderInfo xmlns:h="http://www.imsglobal.org/services/common/imsMessBindSchema_v1p0" xmlns="http://www.imsglobal.org/services/common/imsMessBindSchema_v1p0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<messageIdentifier/>
<statusInfo>
<codeMajor>success</codeMajor>
<severity>status</severity>
<messageIdRef/>
</statusInfo>
</h:syncResponseHeaderInfo>
<o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<u:Timestamp u:Id="_0">
<u:Created>2013-07-26T11:07:47.720Z</u:Created>
<u:Expires>2013-07-26T11:12:47.720Z</u:Expires>
</u:Timestamp>
</o:Security>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<readAllPersonsResponse xmlns="http://www.imsglobal.org/services/pms/xsd/imsPersonManMessSchema_v1p0">
<personIdPairSet>
<personIdPair>
<sourcedId>
<identifier xmlns="http://www.imsglobal.org/services/common/imsCommonSchema_v1p0"/>
</sourcedId>
<person>
<formatName xsi:nil="true" xmlns="http://www.imsglobal.org/services/pms/xsd/imsPersonManDataSchema_v1p0"/>
<name xmlns="http://www.imsglobal.org/services/pms/xsd/imsPersonManDataSchema_v1p0">
<partName>
<namePartType>First</namePartType>
<namePartValue>Bagge</namePartValue>
</partName>
<partName>
<namePartType>Last</namePartType>
<namePartValue>Trond Reinhold</namePartValue>
</partName>
<partName>
<namePartType>Nick</namePartType>
<namePartValue/>
</partName>
</name>
<email xmlns="http://www.imsglobal.org/services/common/imsCommonSchema_v1p0"/>
<URL xmlns="http://www.imsglobal.org/services/common/imsCommonSchema_v1p0"/>
<userId xmlns="http://www.imsglobal.org/services/pms/xsd/imsPersonManDataSchema_v1p0">
<userIdValue xmlns="http://www.imsglobal.org/services/common/imsCommonSchema_v1p0">BT00</userIdValue>
</userId>
<address xmlns="http://www.imsglobal.org/services/pms/xsd/imsPersonManDataSchema_v1p0">
<extadd/>
<locality/>
<postcode/>
<street/>
</address>
<demographics xmlns="http://www.imsglobal.org/services/pms/xsd/imsPersonManDataSchema_v1p0">
<gender>Male</gender>
</demographics>
<institutionRole xmlns="http://www.imsglobal.org/services/pms/xsd/imsPersonManDataSchema_v1p0">
<institutionRoleType>Student</institutionRoleType>
<primaryRoleType>true</primaryRoleType>
</institutionRole>
<tel xmlns="http://www.imsglobal.org/services/pms/xsd/imsPersonManDataSchema_v1p0">
<telType>Voice</telType>
<telValue/>
</tel>
<tel xmlns="http://www.imsglobal.org/services/pms/xsd/imsPersonManDataSchema_v1p0">
<telType>Mobile</telType>
<telValue/>
</tel>
</person>
</personIdPair>
</personIdPairSet>
<virtualCount>6393</virtualCount>
</readAllPersonsResponse>
</s:Body>
</s:Envelope>

Example 4

Description

I want read all manually created users and autogenerate synckey for users missing synckey

Example request message

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ims="http://www.imsglobal.org/services/pms/xsd/imsPersonManMessSchema_v1p0" xmlns:ims1="http://www.imsglobal.org/services/common/imsMessBindSchema_v1p0">
<soapenv:Header>
<ims1:syncRequestHeaderInfo>
<ims1:messageIdentifier>1234567890</ims1:messageIdentifier>
</ims1:syncRequestHeaderInfo>
</soapenv:Header>
<soapenv:Body>
<ims:readAllPersonsRequest>
<ims:PageIndex>1</ims:PageIndex>
<ims:PageSize>1</ims:PageSize>
<ims:OnlyManuallyCreatedUsers>true</ims:OnlyManuallyCreatedUsers>
<ims:ConvertFromManual>true</ims:ConvertFromManual>
</ims:readAllPersonsRequest>
</soapenv:Body>
</soapenv:Envelope>


Example response message

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<h:syncResponseHeaderInfo>
<messageIdentifier>1234567890</messageIdentifier>
<statusInfo>
<codeMajor>success</codeMajor>
<severity>status</severity>
<messageIdRef>1234567890</messageIdRef>
</statusInfo>
</h:syncResponseHeaderInfo>
<o:Security s:mustUnderstand="1">
<u:Timestamp u:Id="_0">
<u:Created>2011-02-04T15:01:36.218Z</u:Created>
<u:Expires>2011-02-04T15:06:36.218Z</u:Expires>
</u:Timestamp>
</o:Security>
</s:Header>
<s:Body>
<readAllPersonsResponse>
<personIdPairSet>
<personIdPair>
<sourcedId>
<identifier/>
<identifier>itsla-26ba98b5-539a-4055-ba0e-249ed2673c36</identifier>
</sourcedId>
<person>
<formatName/>
<name>
<partName>
<namePartType>First</namePartType>
<namePartValue>External</namePartValue>
</partName>
<partName>
<namePartType>Last</namePartType>
<namePartValue>External</namePartValue>
</partName>
<partName>
<namePartType>Nick</namePartType>
<namePartValue/>
</partName>
</name>
<email/>
<URL/>
<userId>
<userIdValue>External</userIdValue>
</userId>
<address>
<extadd/>
<locality/>
<postcode/>
<street/>
</address>
<demographics>
<gender>Male</gender>
</demographics>
<institutionRole>
<institutionRoleType>Guest</institutionRoleType>
<primaryRoleType>true</primaryRoleType>
</institutionRole>
<tel>
<telValue/>
</tel>
<tel>
<telValue/>
</tel>
<extension>
<extensionField>
<fieldName>IsExternalUser</fieldName>
<fieldType>Bool</fieldType>
<fieldValue>True</fieldValue>
</extensionField>
<extensionField>
<fieldName>nationalidentitynumber</fieldName>
<fieldType>String</fieldType>
<fieldValue>External_ABC</fieldValue>
</extensionField>
<extensionField>
<fieldName>customstring2</fieldName>
<fieldType>String</fieldType>
<fieldValue>External_DEF</fieldValue>
</extensionField>
</extension>
</person>
</personIdPair>
</personIdPairSet>
<virtualCount>78</virtualCount>
</readAllPersonsResponse>
</s:Body>
</s:Envelope>