<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.inlogic.dk/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Khm</id>
	<title>UmsWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.inlogic.dk/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Khm"/>
	<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php/Special:Contributions/Khm"/>
	<updated>2026-05-30T21:09:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=SSO&amp;diff=4754</id>
		<title>SSO</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=SSO&amp;diff=4754"/>
		<updated>2023-09-14T13:17:53Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Single-Sign-On-SSO-DK.png|thumb]]&lt;br /&gt;
Our Single Sign-on (SSO) module is designed for schools that would like to make it easy for employees and students to use the school&#039;s various electronic systems. With the SSO module, users get one login and password that logs them into all the associated services at once.&lt;br /&gt;
&lt;br /&gt;
For example, students can Access the school&#039;s LMS system, library system, digital dictionaries and databases with scientific publications - all by signing in with SSO once and for all.&lt;br /&gt;
&lt;br /&gt;
This saves time and effort whenever users need to use one of the school&#039;s systems. At the same time, it gives users a simpler everyday life because they do not have to worry about having to keep in mind several logins.&lt;br /&gt;
&lt;br /&gt;
==Prerequisite and purpose==&lt;br /&gt;
&lt;br /&gt;
===Prerequisite===&lt;br /&gt;
This requires that:&lt;br /&gt;
&lt;br /&gt;
*An installed Active Directory federation services (AD FS) server.&lt;br /&gt;
*Access to configuration snap in. Either via Remote PowerShell or directly on the server.&lt;br /&gt;
*An UMS installation, licensed to SSO from inLogic.&lt;br /&gt;
*A star or new certificate for the address that the AD FS server needs.&lt;br /&gt;
&lt;br /&gt;
===purpose===&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
==Change ADFS certificates in UMS==&lt;br /&gt;
The UMS server also needs the certificates from the ADFS server. This is done by consuming the metadata. &#039;&#039;You can use &amp;lt;nowiki&amp;gt;https://samlmd2cert.azurewebsites.net/&amp;lt;/nowiki&amp;gt; to get the certificate files.&#039;&#039; &amp;lt;!-- You can use https://samlmd2cert.azurewebsites.net/ to get the certificate files. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When you have the new and updated certificates from ADFS it needs to be in rootfolder of the UMS Application.&lt;br /&gt;
&lt;br /&gt;
Physical path (C:\inetpub\wwwroot).&lt;br /&gt;
&lt;br /&gt;
And we need to update the records in the UMS database, if the name of the file has changed.&lt;br /&gt;
 Update SSOSetting set PartnerCertificateFile = &#039;TheNameOfCertificate_signing.cer&#039;&lt;br /&gt;
 Where ID = &amp;lt;The id of the active setting&amp;gt;&lt;br /&gt;
It is the signing certificate the UMS needs from the ADFS.&lt;br /&gt;
&lt;br /&gt;
It is needed to be exported in base64 format, otherwise the UMS can&#039;t load the certificate.&lt;br /&gt;
&lt;br /&gt;
Now delete the old certificate files from your UMS folder, do an iisreset to let the UMS resolve the newly entered information in the databse.&lt;br /&gt;
&lt;br /&gt;
==Changing the Self Signed Certificate in SSO.==&lt;br /&gt;
&lt;br /&gt;
#Get started by clicking on the house icon in the menu. Search for IIS and click on Internet Information Services (IIS) Manager.[[File:Sso iis manager.png|none|thumb]]&lt;br /&gt;
#In the Connections column on the left, click on the name of the server. Double-click on Server Certificates.[[File:IIS-Cert-1.png|none|thumb|497x497px]]&lt;br /&gt;
#In the Actions column on the right, click on Create Self-Signed Certificate.[[File:IIS-Cert-2.png|none|thumb|499x499px]]&lt;br /&gt;
#Enter any friendly name and then click OK.[[File:IIS-Cert-3.png|none|thumb|508x508px]]&lt;br /&gt;
#You will now have an IIS Self Signed Certificate valid for 1 year listed under Server Certificates.&lt;br /&gt;
#Right click on the new create certificate and then click &#039;&#039;&#039;Export.&#039;&#039;&#039;[[File:IIS-Cert-4.png|none|thumb|742x742px]]&lt;br /&gt;
#Remember to delete the old self signed certificate (C:\inetpub\wwwroot).[[File:IIS-Cert-5.png|none|thumb|573x573px]]&lt;br /&gt;
#Enter the path (C:\inetpub\wwwroot\UMS-SSO). The new password you type will be used later on when you set up your environment. Please remember this password. Click OK.[[File:IIS-Cert-8.png|none|thumb|771x771px]]&lt;br /&gt;
#Open SQl Management Studio and type “&#039;&#039;select * from SSOSetting&#039;&#039;”. You will see all settings for UMS SSO.&lt;br /&gt;
#Update the Certificate by typing “&#039;&#039;update SSOSetting set LocalCertificateFile =&#039;UMS-SSO.pfx&#039;&#039;”&lt;br /&gt;
#Update the Password by typing “&#039;&#039;update SSOSetting set LocalCertificatePassword =&#039;Velk0mmen2018&#039;&#039;”.[[File:IIS-Cert-9.png|none|thumb|781x781px]]&lt;br /&gt;
#Open the IIS Server and click Start. Click Run type IISReset and then click OK.[[File:IIS-Cert-10.png|none|thumb|377x377px]]&lt;br /&gt;
#Open the AD FS Server and search for AD FS. Click on AD FS Management.[[File:IIS-Cert-11.png|none|thumb|305x305px]]&lt;br /&gt;
#Click on the Trust Relationships folder and then click on Relying Party Trusts.&lt;br /&gt;
#In the details panel, click the relying party trust that you want to update from federation metadata.&lt;br /&gt;
#In the Action panel, click Update from Federation Metadata.&lt;br /&gt;
#In the properties dialog box for the trust, click Update to start the update.&lt;br /&gt;
#When the update is complete, click OK.[[File:IIS-Cert-12.png|none|thumb|745x745px]]&lt;br /&gt;
&lt;br /&gt;
==Certificates - Update Service Communication Certificate==&lt;br /&gt;
&lt;br /&gt;
===Things to have ready:===&lt;br /&gt;
A new updated certificate with private key - &amp;lt;file&amp;gt;.pfx&lt;br /&gt;
&lt;br /&gt;
A connection to AD FS server, with administrator rights.&lt;br /&gt;
&lt;br /&gt;
First install the certificate on the server, select my computer when asked.&lt;br /&gt;
&lt;br /&gt;
Now go to AD FS -&amp;gt; Service -&amp;gt; Certificates -&amp;gt; Set Service Communications Certificate...&lt;br /&gt;
&lt;br /&gt;
Now select &amp;quot;view more&amp;quot; -&amp;gt; And select the new certificate&lt;br /&gt;
&lt;br /&gt;
[[File:ADFSChangeCertificate.png|1389x1389px]]&lt;br /&gt;
&lt;br /&gt;
And now we need to set the certificate on the http.sys on adfs&lt;br /&gt;
 Set-AdfsSslCertificate -Thumbprint xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&lt;br /&gt;
Now go to Services and restart the AD FS Service&lt;br /&gt;
&lt;br /&gt;
==Certificates - Automatic rollover==&lt;br /&gt;
Out of the box, ADFS generates two self-signed certificates that are good for one year. One certificate for token signing, and one for token encryption.&lt;br /&gt;
&lt;br /&gt;
The token signing certificate is for signing the tokens used in the user sign on process, and it is considered the “bedrock of security” for ADFS. If someone gained access to this certificate (the public/private key pair), they could impersonate your ADFS environment.&lt;br /&gt;
&lt;br /&gt;
The token decryption certificate is used for encrypting the tokens used in the user sign on process. This certificate isn’t used very often.&lt;br /&gt;
&lt;br /&gt;
For more information about AD FS Certificates see https://blogs.technet.microsoft.com/askpfeplat/2015/01/26/adfs-deep-dive-certificate-planning/&lt;br /&gt;
&lt;br /&gt;
===Token Certificate Validity Periods===&lt;br /&gt;
By default, ADFS is configured to generate self-signed token certificates with a duration of one year. This duration can be changed, but keep in mind that the token-signing certificate is the foundation of the sign on process, and therefore, it really shouldn’t have a duration longer than 3 years.&lt;br /&gt;
&lt;br /&gt;
===ADFS Federation Metadata===&lt;br /&gt;
The public key portion of both certificates are included in the ADFS Federation Metadata, and are available from a public URL endpoint on all ADFS servers in the farm. Relying Party (RP) applications that can consume federation metadata will automatically pick up certificate changes whenever they pull the federation metadata file (FederationMetadata.xml) from your ADFS environment.&lt;br /&gt;
&lt;br /&gt;
Example URL&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://adfs.contoso.com/FederationMetadata/2007-06/FederationMetadata.xml&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Before performing a token certificate rollover, you will want to reach out to your RP partners (application owners) to see how often their application pulls the federation metadata so that they will experience little to no downtime before trusting the new certificates.&lt;br /&gt;
&lt;br /&gt;
However, most applications do not automatically retrieve the federation metadata on a schedule. Instead, an application owner will need to import the federation metadata from an XML file, or manually force the application to retrieve the federation metadata from the URL endpoint.&lt;br /&gt;
&lt;br /&gt;
And then there’s the applications that don’t consume federation metadata at all — they have to be manually updated. This means you will need to send the public key portion of the new certificates to the application owners.&lt;br /&gt;
&lt;br /&gt;
===Certificate and Rollover Settings===&lt;br /&gt;
Run the following PowerShell command on the primary ADFS server to view the properties related to certificates:&lt;br /&gt;
 Get-AdfsProperties | FL AutoCert*, Certificate*&lt;br /&gt;
&lt;br /&gt;
===ADFS Properties Related to Certificate Renewal===&lt;br /&gt;
&#039;&#039;&#039;Auto Certificate Rollover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the auto-rollover process is enabled (set to “True”), ADFS will automatically generate new “Secondary” certificates before the current ones expire, and then eventually promote them to be “Primary”.  For a manual renewal process, this should be set to “False” until you’re ready to generate new “Secondary” certificates.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Certificate Generation Threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
New certificates will be generated this number of days before the expiration of the current “Primary” certificates.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Certificate Promotion Threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Number of days the newly generated certificate will exist before being promoted from the “Secondary” certificate to the “Primary” certificate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Certificate Critical Threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Number of days prior to expiry of the certificates before a new certificate is generated and promoted to the “Primary” certificate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Certificate Duration&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Validity period of the auto-generated certificates. Default is 1 year.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Certificate Rollover Interval&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Number of minutes at which ADFS checks to see if a new certificate needs to be generated.&lt;br /&gt;
&lt;br /&gt;
===Token Certificate Rollover Process===&lt;br /&gt;
There are 3 approaches for rolling over the token certificates. Which one to use will depend on the number of relying party trusts you have, the level of control you wish to exert upon the process, and the timing of the certificate expirations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatic Staged Rollover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You would use this process when ADFS controls when the new self-signed token certificates are generated, and when they are promoted to become the “Primary” certificates.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manual Staged Rollover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You would use this process to manually control when the new self-signed token certificates are generated, and when they are promoted to become the “Primary” certificates.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Immediate Manual Rollover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Think of this as a certificate cut-over process.  You would do this if you wanted to roll over your certificates immediately without having a set of primary and secondary certificates.  You would also do this if your current certificates expired and you need to renew immediately.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that there will be outage when Token certificates are immediately generated &amp;amp; promoted.  The relying parties (application owners) must update their configuration with the new certificates, but until they do so, single sign-on will not work.&lt;br /&gt;
&lt;br /&gt;
===Automatic Staged Rollover===&lt;br /&gt;
This process should only be used if you have already communicated to all your relying party application owners with information about the schedule for which the new certificates will be generated, when they will be promoted to the “Primary” certificate, and when the old certificates will expire.&lt;br /&gt;
&lt;br /&gt;
Note that an ADFS administrator will need to export the public portion of the new certificates and send them to the application owners.&lt;br /&gt;
&lt;br /&gt;
Additionally, you can use this process if all of the relying party applications pull your ADFS federation metadata automatically on a schedule. However, this is very rare because most SaaS providers do not want to incur the expense of querying federation metadata changes for hundreds, thousands, or even millions of endpoints. More than likely, you will need to coordinate with the application owners to update their applications.&lt;br /&gt;
&lt;br /&gt;
Permissions: Domain Admin &amp;amp; Local Admin on the primary ADFS server in the farm.&lt;br /&gt;
&lt;br /&gt;
Step 1: Certificate Duration&lt;br /&gt;
&lt;br /&gt;
Set the number of days that will become the validity period of the new self-signed token certificates.&lt;br /&gt;
&lt;br /&gt;
*1 Year: 365&lt;br /&gt;
*3 Years: 1095&lt;br /&gt;
*5 Years: 1827&lt;br /&gt;
&lt;br /&gt;
 Set-ADFSProperties -CertificateDuration 1095&lt;br /&gt;
Step 2: Certificate Generation Threshold&lt;br /&gt;
&lt;br /&gt;
Set the number of days before the expiration date of the current certificates that ADFS should generate the new certificates. Thirty days is usually a good number, but you could make it more.&lt;br /&gt;
 Set-ADFSProperties -CertificateGenerationThreshold 30&lt;br /&gt;
Step 3: Certificate Promotion Threshold&lt;br /&gt;
&lt;br /&gt;
When ADFS generates the new self-signed certificates, they are initially set as “Secondary” certificates. ADFS will then use the value of this property to determine the number of days after the new certificates are generated to promote them to be the “Primary” certificates.&lt;br /&gt;
 Set-ADFSProperties -CertificatePromotionThreshold 25&lt;br /&gt;
Step 4: Certificate Critical Threshold&lt;br /&gt;
&lt;br /&gt;
If for some reason ADFS has not generated new self-signed certificates, or newly generated certificates have not been promoted to “Primary”, ADFS will perform these actions within the number of days set in this property prior to expiry of the current primary certificates. Leaving the default 2 days is usually best.&lt;br /&gt;
 Set-ADFSProperties -CertificateCriticalThreshold 2&lt;br /&gt;
Step 5: Auto Certificate Rollover&lt;br /&gt;
&lt;br /&gt;
This enables/disables the ADFS certificate rollover process, which uses the properties configured in the previous steps to rollover (renew &amp;amp; promote) the token certificates. This needs to be enabled.&lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $true&lt;br /&gt;
Step 6: Export the New Certificates&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, export the new certificates without their private keys. You can do this while the new certificates are set as “Secondary”.&lt;br /&gt;
&lt;br /&gt;
Open the ADFS Management Console: ADFS &amp;gt; Service &amp;gt; Certificates&lt;br /&gt;
&lt;br /&gt;
For each token certificate, perform the following:&lt;br /&gt;
&lt;br /&gt;
*Right-click the certificate &amp;gt; View Certificate…&lt;br /&gt;
*In the new window &amp;gt; Details (tab) &amp;gt; Copy to File (button) &amp;gt; Next&lt;br /&gt;
*Select: DER Encoded Binary X.509 (.CER) -or- Base-64 Encoded X.509 (.CER)&lt;br /&gt;
*Next &amp;gt; Browse to a location to save the file and give it a name&lt;br /&gt;
*Next &amp;gt; Finish&lt;br /&gt;
&lt;br /&gt;
Note: To export the certificate in .PEM format, choose Base-64 Encoded X.509 (.CER), and then rename the saved file with the .pem file extension.&lt;br /&gt;
&lt;br /&gt;
Step 7: Export the Federation Metadata XML&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, run the below PowerShell commands on the ADFS server to export the new ADFS Federation Metadata XML file. Make sure you modify the File Path before running the commands.&lt;br /&gt;
 # Set the file path&lt;br /&gt;
 $FilePath = &amp;quot;C:\Users\ADFSAdmin\Desktop\ADFS-MetaData.xml&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Export MetaData XML&lt;br /&gt;
 $mUrl = (Get-ADFSEndpoint | where Protocol -eq &amp;quot;Federation Metadata&amp;quot;).FullUrl.ToString()&lt;br /&gt;
 $httpHelper = new-object System.Net.WebClient&lt;br /&gt;
 $metadataAsString = $httpHelper.DownloadString($mUrl)&lt;br /&gt;
 $httpHelper.DownloadFile($mUrl , &amp;quot;$($FilePath)&amp;quot;)&lt;br /&gt;
Note:  If you export the metadata while there are both primary and secondary certificates, both of the certificates will be included in the XML file.  After the secondary certificates are promoted to primary, and the old certificates are deleted, you should generate a new XML file for future use.&lt;br /&gt;
&lt;br /&gt;
===Manual Staged Rollover===&lt;br /&gt;
You would use this process to manually control when the new self-signed token certificates are generated, and when they are promoted to become the “Primary” certificates. You will have full control over the rollover process. ADFS will not do anything automatically.&lt;br /&gt;
&lt;br /&gt;
Permissions: Domain Admin &amp;amp; Local Admin on the primary ADFS server in the farm.&lt;br /&gt;
&lt;br /&gt;
Step 1: Auto Certificate Rollover&lt;br /&gt;
&lt;br /&gt;
This enables/disables the ADFS certificate rollover process, which uses the properties configured in the below steps to rollover (renew &amp;amp; promote) the token certificates automatically. This should be set to False. If not, run the following command.&lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $false&lt;br /&gt;
Step 2: Certificate Duration&lt;br /&gt;
&lt;br /&gt;
Set the number of days that will become the validity period of the new self-signed token certificates.&lt;br /&gt;
&lt;br /&gt;
*1 Year: 365&lt;br /&gt;
*3 Years: 1095&lt;br /&gt;
*5 Years: 1827&lt;br /&gt;
&lt;br /&gt;
 Set-ADFSProperties -CertificateDuration 1095&lt;br /&gt;
Step 3: Certificate Generation Threshold&lt;br /&gt;
&lt;br /&gt;
Set the number of days before the expiration date of the current certificates that ADFS should generate the new certificates. Depending on when you plan to manually generate the new certificates, this number should be greater than the number of days between when you generate the new certificates, and when the old certificates expire.&lt;br /&gt;
&lt;br /&gt;
You need to set this because you have to enable the ADFS auto rollover process in order to generate the new certificates. After you generate the new certificates, you will immediately disable the auto rollover process.&lt;br /&gt;
&lt;br /&gt;
Assuming you will generate the new certificates 30 days before the old ones expire, you could set this to 40.&lt;br /&gt;
 Set-ADFSProperties -CertificateGenerationThreshold 40&lt;br /&gt;
Step 4: Certificate Promotion Threshold&lt;br /&gt;
&lt;br /&gt;
When ADFS generates the new self-signed certificates, they are initially set as “Secondary” certificates. ADFS will then use the value of this property to determine the number of days after the new certificates are generated to promote them to be the “Primary” certificates.&lt;br /&gt;
&lt;br /&gt;
Even though the ADFS auto rollover process will be disabled, this property should be set to a number lower than the above Certificate Generation Threshold property.&lt;br /&gt;
 Set-ADFSProperties -CertificatePromotionThreshold 35&lt;br /&gt;
Step 5: Certificate Critical Threshold&lt;br /&gt;
&lt;br /&gt;
If for some reason ADFS has not generated new self-signed certificates, or newly generated certificates have not been promoted to “Primary”, ADFS will perform these actions within the number of days set in this property prior to expiry of the current primary certificates. Leaving the default 2 days is usually best.&lt;br /&gt;
 Set-ADFSProperties -CertificateCriticalThreshold 2&lt;br /&gt;
Step 6: Generate the New Certificates&lt;br /&gt;
&lt;br /&gt;
When you are ready to generate the new token certificates as “Secondary” certificates, use the below PowerShell commands. Both the current “Primary” certificates and the new “Secondary” certificates will be available to the relying party applications.&lt;br /&gt;
&lt;br /&gt;
Note that you cannot manually generate the new token certificates when the ADFS auto rollover process is disabled. Therefore, the commands enable the process, generates the new certificates as “Secondary”, and then disables the process.&lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $true&lt;br /&gt;
 &lt;br /&gt;
 Update-AdfsCertificate -CertificateType Token-Decrypting&lt;br /&gt;
 Update-AdfsCertificate -CertificateType Token-Signing&lt;br /&gt;
 &lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $false&lt;br /&gt;
Step 7: Export the Certificates&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, export the certificates without their private keys.&lt;br /&gt;
&lt;br /&gt;
Open the ADFS Management Console: ADFS &amp;gt; Service &amp;gt; Certificates&lt;br /&gt;
&lt;br /&gt;
For each token certificate, perform the following:&lt;br /&gt;
&lt;br /&gt;
*Right-click the certificate &amp;gt; View Certificate…&lt;br /&gt;
*In the new window &amp;gt; Details (tab) &amp;gt; Copy to File (button) &amp;gt; Next&lt;br /&gt;
*Select: DER Encoded Binary X.509 (.CER) -or- Base-64 Encoded X.509 (.CER)&lt;br /&gt;
*Next &amp;gt; Browse to a location to save the file and give it a name&lt;br /&gt;
*Next &amp;gt; Finish&lt;br /&gt;
&lt;br /&gt;
Note: To export the certificate in .PEM format, choose Base-64 Encoded X.509 (.CER), and then rename the saved file with the .pem file extension.&lt;br /&gt;
&lt;br /&gt;
Step 8: Export the Federation Metadata XML&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, run the below PowerShell commands on the ADFS server to export the ADFS Federation Metadata XML file. Make sure you modify the File Path before running the commands.&lt;br /&gt;
 # Set the file path&lt;br /&gt;
 $FilePath = &amp;quot;C:\Users\ADFSAdmin\Desktop\ADFS-MetaData.xml&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Export MetaData XML&lt;br /&gt;
 $mUrl = (Get-ADFSEndpoint | where Protocol -eq &amp;quot;Federation Metadata&amp;quot;).FullUrl.ToString()&lt;br /&gt;
 $httpHelper = new-object System.Net.WebClient&lt;br /&gt;
 $metadataAsString = $httpHelper.DownloadString($mUrl)&lt;br /&gt;
 $httpHelper.DownloadFile($mUrl , &amp;quot;$($FilePath)&amp;quot;)&lt;br /&gt;
Note:  Both primary and secondary certificates will be included in the XML file.  After you promote the new certificates and delete the old certificates, you should generate a new XML file for future use.&lt;br /&gt;
&lt;br /&gt;
Step 9: Promote the New Certificates&lt;br /&gt;
&lt;br /&gt;
Before the old certificates expire, you need to promote the new certificates to “Primary”.&lt;br /&gt;
&lt;br /&gt;
ADFS Management Console: ADFS &amp;gt; Service &amp;gt; Certificates&lt;br /&gt;
&lt;br /&gt;
For each “Secondary” token certificate, perform the following:&lt;br /&gt;
&lt;br /&gt;
*Right-click the certificate &amp;gt; Set as Primary&lt;br /&gt;
&lt;br /&gt;
Step 10: Delete the Old Certificates&lt;br /&gt;
&lt;br /&gt;
After the old certificates have expired, you can delete them from the ADFS Management Console. Note that you only have the option to delete “Secondary” certificates. You cannot delete a “Primary” certificate.&lt;br /&gt;
&lt;br /&gt;
ADFS Management Console: ADFS &amp;gt; Service &amp;gt; Certificates&lt;br /&gt;
&lt;br /&gt;
For each “Secondary” token certificate, perform the following:&lt;br /&gt;
&lt;br /&gt;
*Right-click the certificate &amp;gt; Delete&lt;br /&gt;
&lt;br /&gt;
===Immediate Manual Rollover===&lt;br /&gt;
When doing an immediate rollover, you force ADFS to immediately generate new certificates, promote them to “Primary”, and delete the old certificates.&lt;br /&gt;
&lt;br /&gt;
You would use these steps if you have a few relying party trusts and the application owners are ready to pull the new federation metadata from the ADFS public endpoint after a rollover. You would also use these steps if the ADFS auto rollover process is disabled, and your token certificates have expired.&lt;br /&gt;
&lt;br /&gt;
After the rollover, you can export the new certificates &amp;amp; federation metadata, and send them to your relying party application owners.&lt;br /&gt;
&lt;br /&gt;
Permissions: Domain Admin &amp;amp; Local Admin on the primary ADFS server in the farm.&lt;br /&gt;
&lt;br /&gt;
Step 1: Certificate Duration&lt;br /&gt;
&lt;br /&gt;
Set the number of days that will become the validity period of the new self-signed token certificates.&lt;br /&gt;
&lt;br /&gt;
*1 Year: 365&lt;br /&gt;
*3 Years: 1095&lt;br /&gt;
*5 Years: 1827&lt;br /&gt;
&lt;br /&gt;
 Set-ADFSProperties -CertificateDuration 1095&lt;br /&gt;
Step 2: Generate the New Certificates&lt;br /&gt;
&lt;br /&gt;
Note that you cannot generate the new token certificates when the ADFS auto rollover process is disabled. Therefore, the below commands enable the process, generate the new certificates, and then disable the process. The -Urgent switch indicates that the certificate rollover process should happen immediately, and remove older certificates.&lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $true&lt;br /&gt;
 &lt;br /&gt;
 Update-AdfsCertificate -CertificateType Token-Decrypting -Urgent&lt;br /&gt;
 Update-AdfsCertificate -CertificateType Token-Signing -Urgent&lt;br /&gt;
 &lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $false&lt;br /&gt;
Step 3: Export the Certificates&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, export the certificates without their private keys.&lt;br /&gt;
&lt;br /&gt;
Open the ADFS Management Console: ADFS &amp;gt; Service &amp;gt; Certificates&lt;br /&gt;
&lt;br /&gt;
For each token certificate, perform the following:&lt;br /&gt;
&lt;br /&gt;
*Right-click the certificate &amp;gt; View Certificate…&lt;br /&gt;
*In the new window &amp;gt; Details (tab) &amp;gt; Copy to File (button) &amp;gt; Next&lt;br /&gt;
*Select: DER Encoded Binary X.509 (.CER) -or- Base-64 Encoded X.509 (.CER)&lt;br /&gt;
*Next &amp;gt; Browse to a location to save the file and give it a name&lt;br /&gt;
*Next &amp;gt; Finish&lt;br /&gt;
&lt;br /&gt;
Note: To export the certificate in .PEM format, choose Base-64 Encoded X.509 (.CER), and then rename the saved file with the .pem file extension.&lt;br /&gt;
&lt;br /&gt;
Step 4: Export the Federation Metadata XML&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, run the below PowerShell commands on the ADFS server to export the ADFS Federation Metadata XML file. Make sure you modify the File Path before running the commands.&lt;br /&gt;
 # Set the file path&lt;br /&gt;
 $FilePath = &amp;quot;C:\Users\ADFSAdmin\Desktop\ADFS-MetaData.xml&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Export MetaData XML&lt;br /&gt;
 $mUrl = (Get-ADFSEndpoint | where Protocol -eq &amp;quot;Federation Metadata&amp;quot;).FullUrl.ToString()&lt;br /&gt;
 $httpHelper = new-object System.Net.WebClient&lt;br /&gt;
 $metadataAsString = $httpHelper.DownloadString($mUrl)&lt;br /&gt;
 $httpHelper.DownloadFile($mUrl , &amp;quot;$($FilePath)&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How to set SPN&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;http://www.gatepoint.ch/cmdreferenz/html/9341c753-11ff-4acc-993c-b05d50f32330.htm#bkmk_examples&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Update metadata to Office365.  (&#039;&#039;&#039;Update-MsolFederatedDomain -DomainName mydomain.com -SupportMultiDomain&#039;&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FOCES certificate til STIL OIOSAML 3.0 ===&lt;br /&gt;
https://www.nets.eu/dk-da/l%C3%B8sninger/nemid/funktionssignatur&lt;br /&gt;
&lt;br /&gt;
==Final==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=Username_Generator&amp;diff=4750</id>
		<title>Username Generator</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=Username_Generator&amp;diff=4750"/>
		<updated>2023-07-31T12:49:46Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is used to generate usernames for users in UMS.&lt;br /&gt;
&lt;br /&gt;
==Steps==&lt;br /&gt;
First you need to create some options for the setting your going to create later on.&lt;br /&gt;
&lt;br /&gt;
Then add the database replacements.&lt;br /&gt;
&lt;br /&gt;
Then create a setting with a list of prioritized options.&lt;br /&gt;
&lt;br /&gt;
Finally add a username setting to the template that needs this.&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
&lt;br /&gt;
====AddString====&lt;br /&gt;
This option lets you add a fixed string to the username&lt;br /&gt;
[[File:UsernameGenerator Options AddString.jpg|none|thumb|765x765px]]&lt;br /&gt;
&lt;br /&gt;
===== Append =====&lt;br /&gt;
Append string to end.&lt;br /&gt;
&lt;br /&gt;
=====Start index=====&lt;br /&gt;
This lets you specify the position in the string to insert &amp;quot;&#039;&#039;&#039;String to add&#039;&#039;&#039;&amp;quot;. &amp;quot;&#039;&#039;&#039;String to add&#039;&#039;&#039;&amp;quot; will be appended if start index is larger than the length of the string. &lt;br /&gt;
&lt;br /&gt;
====AutoNumber====&lt;br /&gt;
This option lets you add a number to the username.&lt;br /&gt;
[[File:UsernameGenerator Options AutoNumber.jpg|none|frame]]&lt;br /&gt;
&lt;br /&gt;
You can define the starting number and pad left to make sure it has the correct length.&lt;br /&gt;
&lt;br /&gt;
If you set the start number to 1 and set pad left to 4, the number will be 0001&lt;br /&gt;
&lt;br /&gt;
If you check &amp;quot;&#039;&#039;&#039;Skip number on first occurence&#039;&#039;&#039;&amp;quot; it will not add the generated number string to the first username.&lt;br /&gt;
&lt;br /&gt;
This number will automatically increase when a duplicate string is found in username.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;eg - If the username starts with AB then it will return AB0001&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AB0001 (first instance autonumber)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AC0001 (first instance autonumber)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AD0001 (first instance autonumber)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AB0002 (next  instance autonumber)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The username number is stored in the database in the table &amp;quot;UsernameGenerator_Numbers&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====DBField====&lt;br /&gt;
This option lets you take a field from the database table ImportFromDB and use as a starting string.&lt;br /&gt;
[[File:UsernameGenerator Options DBField.jpg|none|thumb|656x656px]]&lt;br /&gt;
&lt;br /&gt;
====LowerCase====&lt;br /&gt;
This lowercases the username.&lt;br /&gt;
[[File:UsernameGenerator Options LowerCase.jpg|none|thumb|656x656px]]&lt;br /&gt;
&lt;br /&gt;
====Pad====&lt;br /&gt;
This lets you pad the username either left or right with a character you specify and a length.&lt;br /&gt;
[[File:UsernameGenerator Options Pad.jpg|none|thumb|656x656px]]&lt;br /&gt;
If you pad 12 right and the username is AB it will return ABkkkkkkkkkk.&lt;br /&gt;
&lt;br /&gt;
====Replace====&lt;br /&gt;
This lets you replace characters in the username with new characters or blank.&lt;br /&gt;
[[File:UsernameGenerator Options Replace.jpg|none|thumb|656x656px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you check &amp;quot;Use replace from database table&amp;quot; it will use this feature &amp;quot;Database replacements&amp;quot;.&lt;br /&gt;
[[File:UsernameGenerator Options DBReplace.jpg|none|thumb|656x656px]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Replace all non alphanumeric====&lt;br /&gt;
This will replace all characters in the username that are not within these ranges with the new string or blank&lt;br /&gt;
&lt;br /&gt;
a-z&lt;br /&gt;
&lt;br /&gt;
A-Z&lt;br /&gt;
&lt;br /&gt;
0-9&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
[[File:UsernameGenerator Options ReplaceAllNonAlphanumeric.jpg|none|thumb|765x765px]]&lt;br /&gt;
&lt;br /&gt;
====Substring====&lt;br /&gt;
This will replace a part of the username with a new string or blank.&lt;br /&gt;
[[File:UsernameGenerator Options SubString.jpg|none|thumb|656x656px]]&lt;br /&gt;
====Uppercase====&lt;br /&gt;
This uppercases the username.&lt;br /&gt;
[[File:UsernameGenerator Options UpperCase.jpg|none|thumb|656x656px]]&lt;br /&gt;
&lt;br /&gt;
====Add random string of chars====&lt;br /&gt;
This option lets you add a fixed string to the username&lt;br /&gt;
[[File:UsernameGenerator Options AddRandomChars.jpg|none|frame]]&lt;br /&gt;
&lt;br /&gt;
===== Characters to use from =====&lt;br /&gt;
Enter the characters to choose from when generating the string&lt;br /&gt;
&lt;br /&gt;
===== Number of Characters =====&lt;br /&gt;
Choose the length of string&lt;br /&gt;
&lt;br /&gt;
===== Append =====&lt;br /&gt;
Append string to end.&lt;br /&gt;
&lt;br /&gt;
=====Start index=====&lt;br /&gt;
This lets you specify the position in the string to insert &amp;quot;&#039;&#039;&#039;String to add&#039;&#039;&#039;&amp;quot;. &amp;quot;&#039;&#039;&#039;String to add&#039;&#039;&#039;&amp;quot; will be appended if start index is larger than the length of the string.&lt;br /&gt;
&lt;br /&gt;
==== UniLogin ====&lt;br /&gt;
[[File:UsernameGenerator Options UniLogin.jpg|none|frame]]The value of UniLogin/UniID is only used if its 8 characters long.&lt;br /&gt;
&lt;br /&gt;
The options added after this is in the setting will not be processed if it is 8 charaters long.&lt;br /&gt;
&lt;br /&gt;
If the user does not have a UniLogin/UniID they will not get a username in UMS.&lt;br /&gt;
&lt;br /&gt;
If UniLogin is found for user UMS will not check in SLI table for an existing username.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pseudo logic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;unilogin&amp;gt; is null -&amp;gt; Stop processing this user&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;unilogin&amp;gt; is 8 characters long, take &amp;lt;unilogin&amp;gt; as username and stop processing any other rules.&lt;br /&gt;
&lt;br /&gt;
if &amp;lt;unilogin&amp;gt; is 10 characters long, does nothing with &amp;lt;unilogin&amp;gt; and start username generator logic&lt;br /&gt;
&lt;br /&gt;
==Database replacements==&lt;br /&gt;
Define the strings you want to have replace with new or blank string.&lt;br /&gt;
[[File:UsernameGenerator Database replacements.jpg|none|thumb|492x492px]]&lt;br /&gt;
When it looks at a username it will run through all the rows and replace them if they are found.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example as uni-login==&lt;br /&gt;
&lt;br /&gt;
===2 first letters of first name followed by 2 first letters of last name and Autonumber.===&lt;br /&gt;
&lt;br /&gt;
===Create these Option:===&lt;br /&gt;
&lt;br /&gt;
*First name: Create option that retrieves first name from DBfield&lt;br /&gt;
*Last Name : Create option that retrieves last name from DBfield&lt;br /&gt;
*AutoNumber : Create option autonumber. As shown below in Autonumber picture&lt;br /&gt;
*DB Replace: Create option DB replace, which change å, ø, å etc.  As shown below in DB Replacement picture.&lt;br /&gt;
*First 2 characters : Create option take first 2 characters. As shown below in first 2 characters picture.&lt;br /&gt;
*First 4 characters : Create option take first 4 characters. As shown below in first 4 characters picture.&lt;br /&gt;
*Pad Right 2: Create option Pad Right 2.  As shown below in Pad Right 2 picture.&lt;br /&gt;
*Pad Right 4: Create option Pad Right 4. As shown below in Pad Right 4 picture.&lt;br /&gt;
*Replace all non alphanumeric&lt;br /&gt;
*LowerCase ALL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vicktor Jeppesen : VIJE0123&lt;br /&gt;
&lt;br /&gt;
Tonny Thomsen : TOTH0124&lt;br /&gt;
&lt;br /&gt;
Sultan Kirkegård SUKI0125&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Autonumber starts at 123 and runs up. Padding character 0 and pad length 4.   e.g. Sultan Kirkegård S U K I 0 1 2 3&lt;br /&gt;
[[File:Skærmbillede 2022-07-06 090457.png|none|thumb|489x489px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DB Replacement. &lt;br /&gt;
[[File:Replacement.png|none|thumb|491x491px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First 2 characters.&lt;br /&gt;
[[File:First2chara.png|none|thumb|491x491px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First 4 characters&lt;br /&gt;
[[File:First4.png|none|thumb|495x495px]]&lt;br /&gt;
Pad right 2 (J Hansen)  Username = JFHA&lt;br /&gt;
[[File:Imagesdf.png|none|thumb|514x514px]]&lt;br /&gt;
&lt;br /&gt;
Pad Right 4 (Jan H)  Username = JAHF&lt;br /&gt;
[[File:Sds.png|none|thumb|520x520px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
This is where you create a prioritized list options. This setting is then attached to a template.&lt;br /&gt;
[[File:UsernameGenerator Settings.jpg|none|thumb|383x383px]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=App&amp;diff=4738</id>
		<title>App</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=App&amp;diff=4738"/>
		<updated>2023-05-02T11:36:42Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UMS School App.png|frame]]&lt;br /&gt;
UMS School App is available for iPhone, Android. It will be designed with the school’s own logo, color and style. The app gives the basic functionality to see:&lt;br /&gt;
&lt;br /&gt;
*News&lt;br /&gt;
*Timetable&lt;br /&gt;
*Homework&lt;br /&gt;
*Grades&lt;br /&gt;
*User information&lt;br /&gt;
&lt;br /&gt;
Additional licenses gives the ability to create, edit and see more information from various modules. For an overview of module requirement see &amp;quot;[http://wiki.inlogic.dk/index.php?title=App&amp;amp;section=6&amp;amp;wteswitched=1#Additional_functionality Additional functionality&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
==Support==&lt;br /&gt;
We provide regular support for the following and newer versions:&lt;br /&gt;
&lt;br /&gt;
*Android version 7.0. We support the same versions as Google provide security updates for. Find an overview [[wikipedia:Android_version_history#Code_names|here]].&lt;br /&gt;
&lt;br /&gt;
*iOS version 10 &lt;br /&gt;
&lt;br /&gt;
*Windows 10 Mobile (version 10)&lt;br /&gt;
&lt;br /&gt;
Please note that it is possible to run older versions. If support for older versions is needed, we offer support at our hourly rate.&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
===Supported administrative systems===&lt;br /&gt;
&lt;br /&gt;
*Userinfo: Easy-A, SIS, LUDUS and Lectio (Only mobile number).&lt;br /&gt;
*Grades: Easy-A, Lectio and SIS&lt;br /&gt;
*Homework: Easy-A and SIS.&lt;br /&gt;
*Timetable: Easy-A and SIS&lt;br /&gt;
*Attendance registration: Timetable data is retrieved from Easy-A, SIS, LUDUS, Tabulex and Lectio. Howerver, absence is only registered to Easy-A&lt;br /&gt;
&lt;br /&gt;
===Module requirements===&lt;br /&gt;
&lt;br /&gt;
*UMS Web (contains and run all the webservice that is required for the app to receive information and communicate with the server)&lt;br /&gt;
&lt;br /&gt;
===Additional functionality===&lt;br /&gt;
You get more functionality in the app by having the following modules, these are all optional:&lt;br /&gt;
&lt;br /&gt;
*Attendance Registration: Gives “Your attendance”, which shows student statistics, the student are able to add absence reason and see their absence status in the timetable&lt;br /&gt;
*Attendance Registration for UMS School App: gives employee “attendance registration” and student the ability to &amp;quot;report absence&amp;quot;&lt;br /&gt;
*Homework: gives the employee the ability to create homework&lt;br /&gt;
*Link Collection: gives links/bookmarks the school can setup&lt;br /&gt;
*User info: gives “Your information” the ability to edit the information. This also adds the functionality for the user to upload a new profile image (a selfie) to be used in the student id card&lt;br /&gt;
*Student &amp;amp; Employee Id: Gives the students a “student id card” and the employees an “employee id card”. To update their student id card profile image you’ll need the “User info” module&lt;br /&gt;
*Parking: Parkzone &amp;amp; APCOA Integration. Gives the option to create and edit parking permits from Parkzone and APCOA&lt;br /&gt;
*User information (add/edit)&lt;br /&gt;
&lt;br /&gt;
Note: All Attendance functionality requires Attendance Registration.&lt;br /&gt;
&lt;br /&gt;
===Testing after setup===&lt;br /&gt;
&lt;br /&gt;
The app will be tested internally at inLogic before release. The test requires access to a user with relevant data. You can either create a fictional student who is associated to a real course, or alternatively use a real student&#039;s account, if the person agrees that the account is being used for a system test of the school&#039;s APP.&lt;br /&gt;
&lt;br /&gt;
===What to have ready===&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Important&#039;&#039;&#039;: The UMS site needs to use HTTPS and be public available. It needs a valid SSL certificate.&lt;br /&gt;
*Materials that can be used for designing the app. For example: Logo, brochure, design guide line, etc.&lt;br /&gt;
&lt;br /&gt;
*Optional: It is possible for the school to have its own account where the app is located. An account in the App Store cost $99 per year(necessary if the school is not using &amp;quot;My Education App&amp;quot;), while an account for Google Play costs a onetime fee of $25. The school self-manage these accounts.&lt;br /&gt;
&lt;br /&gt;
===Physical hardware requirements===&lt;br /&gt;
&lt;br /&gt;
Having a smartphone is a necessity, either an Android, iOS or a Windows 10 Mobile.&lt;br /&gt;
&lt;br /&gt;
===Should third party be contacted===&lt;br /&gt;
&lt;br /&gt;
If the school is using a dedicated hosting service, they have to be informed on how you wish the news feed should be setup.&lt;br /&gt;
&lt;br /&gt;
==Installation and setup==&lt;br /&gt;
inLogic will publish and update the app.  &lt;br /&gt;
&lt;br /&gt;
If you want your own AppStore and Google Play store pages, you will need your own Apple Developer Account for the iOS version, this is a requirements from Apples Guidelines. [[App Store Connect|Please follow the guide App Store Connect]]. &lt;br /&gt;
&lt;br /&gt;
Android and Windows Phone can be published through inLogics account or your schools own account (if you have acquired one). If you have your own account inLogic needs to be informed as well. To publish the app, inLogic needs the following information:&lt;br /&gt;
&lt;br /&gt;
*[[UMS Web]] url  address- This is the address that you use wen you access UMS Web. (If you are running any kind of gateway (TMG, UAG etc.) you will need to create rules for the services on UMS Web, contact us for more information)&lt;br /&gt;
**&#039;&#039;&amp;lt;nowiki&amp;gt;https://*****.dk/&amp;lt;/nowiki&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===My Education App===&lt;br /&gt;
My Education App (Danish: My Education App) is the inLogic app that is hosted by inLogic, this lets your school get started using the app faster and cheaper, and also there is less maintenance for you.&lt;br /&gt;
&lt;br /&gt;
======What does this mean?======&lt;br /&gt;
Pros:&lt;br /&gt;
&lt;br /&gt;
*Lower start-up price.&lt;br /&gt;
*No need to set up an Apple Developer account.&lt;br /&gt;
*Upon contacting InLogic Support your app can be live within a few hours.&lt;br /&gt;
*You can change logo, images &amp;amp; colors after the app is deployed&lt;br /&gt;
&lt;br /&gt;
Cons:&lt;br /&gt;
&lt;br /&gt;
*The app will not be called your schools name on you phone and in AppStore/Google Play, but is instead called &#039;My Education App&#039; (danish: My Education App), and its app icon cannot be customized.&lt;br /&gt;
*When students &amp;amp; teachers starts up the app for the first time, they will need to select their specific school before proceeding to login.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Setting up My Education App=====&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Configurator -&amp;gt; Web setup -&amp;gt; App -&amp;gt; Setting&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:App levitas settings.png|none|frame]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here you need to configure a Primary and Secondary color, as well as a Logo. The Login background and Menu background images are optional.&lt;br /&gt;
&lt;br /&gt;
The first time you set this up, you will need to contact InLogic support, and provide the following:&lt;br /&gt;
&lt;br /&gt;
*A 64x64 pixels version of your logo (this logo is used in the the login dropdown, it will make it easier for users to find your school)&lt;br /&gt;
*UMS Web url (See [[App#Installation and setup|Installation and Setup]])&lt;br /&gt;
&lt;br /&gt;
==Styling==&lt;br /&gt;
To style the app following is needed:&lt;br /&gt;
&lt;br /&gt;
*Primary color&lt;br /&gt;
*Secondary color&lt;br /&gt;
*Logo (.png, vector file: .psd, .ai etc.)&lt;br /&gt;
*Icon for app logo (.png, vector file: .psd, .ai etc.)&lt;br /&gt;
&lt;br /&gt;
The primary color will mostly be used as the default background color. The secondary color is the highlight color, and will be used when something is active or being activated like a button.&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
&lt;br /&gt;
*Background image for login (size 1080x1920)&lt;br /&gt;
*Background image for top bar of menu (size 1080x480)&lt;br /&gt;
&lt;br /&gt;
===Examples of styling===&lt;br /&gt;
&lt;br /&gt;
*Primary and secondary colors&lt;br /&gt;
&lt;br /&gt;
[[File:App - Timetable view.png|none|thumb|Example of primary and secondary colors used in the app.&lt;br /&gt;
The primary color is used in the Header navigation bar, and the secondary color as border on the selected Calendar date&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
*The schools logo - Max. 1024x576&lt;br /&gt;
&lt;br /&gt;
[[File:Branding-af-app-inLogic-logo.png|none|thumb|Example of the inLogic logo used in the Demo app]]&lt;br /&gt;
&lt;br /&gt;
*App logo - 1024x1024. If not supplied, inLogic will generate an App logo based on the schools logo (does not apply to My Education App)&lt;br /&gt;
&lt;br /&gt;
[[File:Simulator Screen Shot - iPhone SE - 2018-05-15 at 12.57.23.png|none|thumb|Example of app logo in use]]&lt;br /&gt;
&lt;br /&gt;
*Login background image - 1080x1920. If not supplied, a white background will be shown, with your logo on top&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;NOTE: The app will place your logo on top of the background image. This means when you supply a background image, it needs to be without logo on it.&#039;&#039;&#039;&#039;&#039;[[File:App - Login screen.png|none|thumb|Example of a background image used on the Demo app login screen.&lt;br /&gt;
The school logo will be displayed on top of the background image, as seen here&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
*Menu top bar image - 1080x480. If not supplied, a white background will be shown&lt;br /&gt;
&lt;br /&gt;
[[File:App - Sidebar menu.png|none|thumb|Example of an image used on the Demo app menu view]]&lt;br /&gt;
&lt;br /&gt;
==Technical settings==&lt;br /&gt;
&lt;br /&gt;
The following sections show how to configure the app. This information only applies to services that are directly connected to the app, i.e. how to set up schedule tasks in the app. The only exception is &#039;UMS RSS Feeds&#039;, which is a specific service for app. If a fully detailed setup guide is needed, please go to that specific module. &lt;br /&gt;
&lt;br /&gt;
Some of the configurations are not set up specifically for app, i.e. ParkZone. If you cannot find the setup guide you are looking for, you can find it by searching or on the front page. Please note that some changes made in the configurator not only will affect the app but also UMS Web.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important&#039;&#039;&#039; As many settings only loads once the website is initializing, most changes require an IIS reset on the server. The app retrieves settings from UMS once a day, which means that changes will be visible the next time you log in or the next day.&lt;br /&gt;
&lt;br /&gt;
===Menu Settings===&lt;br /&gt;
&lt;br /&gt;
You are able to set the order and which menu buttons should be shown per template for the users&lt;br /&gt;
&lt;br /&gt;
#Open UMS Configurator&lt;br /&gt;
#Templates -&amp;gt; Edit -&amp;gt; select a template -&amp;gt; App&lt;br /&gt;
#Under Menu order select Manage -&amp;gt; Add&lt;br /&gt;
#Write a Description&lt;br /&gt;
#Drap and drop the menu you want&lt;br /&gt;
&lt;br /&gt;
[[File:MeunOrderSettings.png|none|thumb|789x789px]]&lt;br /&gt;
Here three menubuttons will be visible to the users on that specific template.&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
Before version 2.0.917, you used to choose the modules displayed in the app via the Configurator -&amp;gt; Web Setup.&lt;br /&gt;
&lt;br /&gt;
We have moved the menu order into the Configurator -&amp;gt; Template Editor -&amp;gt; App -&amp;gt; Menu order.&lt;br /&gt;
[[File:Menu settings history.png|none|thumb|1600x1600px]]&lt;br /&gt;
This change was made to allow a different menu items and orders on Templates.&lt;br /&gt;
&lt;br /&gt;
===News===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This describes how to setup news for the app.&lt;br /&gt;
&lt;br /&gt;
*App News created from UMS Web&lt;br /&gt;
*Add a RSS feed&lt;br /&gt;
*Add Facebook feed&lt;br /&gt;
&lt;br /&gt;
It is possible to use all three setups together. Combine as you like and set difference feed for difference templates.&lt;br /&gt;
&lt;br /&gt;
====Setup for App News from UMS Web====&lt;br /&gt;
&lt;br /&gt;
You need to create or use an existing AD group. This group will have access to create and modify news in&lt;br /&gt;
App News on UMS Web.&lt;br /&gt;
&lt;br /&gt;
#Open UMS Configurator&lt;br /&gt;
#Menu -&amp;gt; Web Setup -&amp;gt; Edit -&amp;gt; App&lt;br /&gt;
#Add the AD group for News Access group&lt;br /&gt;
&lt;br /&gt;
[[File:App newsaccessgroup.png|none|thumb|767x767px]]&lt;br /&gt;
&lt;br /&gt;
====Setup for RSS feed====&lt;br /&gt;
Add server name for the service for RSS feed in Menu -&amp;gt; Modules -&amp;gt; Settings -&amp;gt; RSS Feeds&lt;br /&gt;
&lt;br /&gt;
[[File:App rssfeedservice.png|thumb|none|594x594px]]&lt;br /&gt;
To setup Rss feed you will need the url for the rss. (E.g. http://inlogic.dk/feed)&lt;br /&gt;
&lt;br /&gt;
Menu -&amp;gt; Templates -&amp;gt; Edit -&amp;gt; select template -&amp;gt; Rss Feeds&lt;br /&gt;
&lt;br /&gt;
Manage -&amp;gt; Add… -&amp;gt; Fill in description, feed url and access token&lt;br /&gt;
[[File:App rssfeedurl.png|none|thumb|920x920px]]&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; You only need an access token if the feed is from Facebook&lt;br /&gt;
&lt;br /&gt;
The RSS feed runs as a service called “UMS RSS Feeds”. Default running every 5 min.&lt;br /&gt;
[[File:App services.png|none|thumb|561x561px]]&lt;br /&gt;
Restart the service to test it and check the output in /UserManagement/RSSFeeds.Log&lt;br /&gt;
[[File:App rssfeedlog.png|none|thumb|944x944px]]&lt;br /&gt;
&lt;br /&gt;
====Setup for Facebook news====&lt;br /&gt;
&lt;br /&gt;
If you want to use a Facebook page news feed, you need two things:&lt;br /&gt;
&lt;br /&gt;
*Facebook Page Url Feed&lt;br /&gt;
*Access Token&lt;br /&gt;
&lt;br /&gt;
=====Facebook Page Url Feed=====&lt;br /&gt;
&lt;br /&gt;
To create the feed url&lt;br /&gt;
&lt;br /&gt;
#Get your facebook page url&lt;br /&gt;
#*E.g. https://www.facebook.com/inlogic.dk&lt;br /&gt;
#Copy the name. E.g. “inlogic.dk”&lt;br /&gt;
#*Note: this can also be a number “142642699097242”&lt;br /&gt;
#Replace “inlogic.dk” with your name in this url&lt;br /&gt;
#*&amp;lt;nowiki&amp;gt;https://graph.facebook.com/v3.0/inlogic.dk/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your facebook page url feed should look something like this:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;https://graph.facebook.com/v3.0/schoolname/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is your feed URL. &lt;br /&gt;
&lt;br /&gt;
=====Create a facebook access token=====&lt;br /&gt;
The personal Facebook account that you use to register as a developer does not need to be associated in any way with the page or group whose posts you want to display. You cannot log in to the Developer site using a Facebook Page or Business account. You must use the username and password from your personal Facebook profile. Facebook doesn’t allow businesses to register as developers, only individuals.&lt;br /&gt;
&lt;br /&gt;
Please follow [https://developers.facebook.com/docs/apps/register Facebook guide] to enable yourself as developer on facebook.&lt;br /&gt;
&lt;br /&gt;
When you have a facebook developer account and created an app go to [https://developers.facebook.com/tools/explorer Facebook Graph Explorer]&lt;br /&gt;
&lt;br /&gt;
#Select application&lt;br /&gt;
#Select “Get Token” and “Get App Token”&lt;br /&gt;
#Copy the Access Token&lt;br /&gt;
&lt;br /&gt;
[[File:App facebookgettoken.png|none|thumb|968x968px]]&lt;br /&gt;
Now you have the access token you need to paste into the configurator.&lt;br /&gt;
[[File:App rssfeedurl.png|none|thumb|920x920px]]&lt;br /&gt;
Reload the service UMS Rss Feed in Services and look in the RSS Feed log to validate.&lt;br /&gt;
&lt;br /&gt;
===Grades===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can set the default view for grades, that filters the grades accordingly. The options are Course, Day and period.&lt;br /&gt;
&lt;br /&gt;
Configurator -&amp;gt; Web Setup -&amp;gt; Edit -&amp;gt; App -&amp;gt; Default grade view&lt;br /&gt;
[[File:App gradesview.png|none|thumb|801x801px]]&lt;br /&gt;
To specific the period you can set how your terms are set with start and end day for each period.&lt;br /&gt;
&lt;br /&gt;
Configurator -&amp;gt; Modules -&amp;gt; Grades -&amp;gt; Select the Datasource -&amp;gt; Edit -&amp;gt; Terms&lt;br /&gt;
[[File:App gradesterms.png|none|thumb|706x706px]]&lt;br /&gt;
Depending on which administration system you’re exporting grades from the columns can vary. You can set which grades column should be used and in which order.&lt;br /&gt;
&lt;br /&gt;
Configurator -&amp;gt; Web Setup -&amp;gt; Edit -&amp;gt; App -&amp;gt; Select grade columns&lt;br /&gt;
[[File:App gradescolumns.png|none|thumb|709x709px]]&lt;br /&gt;
The grades view in the App will change accordingly to which columns chosen, a max of 4 columns will be shown in the App. The columns will be shown for each grade in order from 1 to 4.&lt;br /&gt;
&lt;br /&gt;
If no grade columns settings is made the default columns will be selected in the following order:&lt;br /&gt;
&lt;br /&gt;
*EducationDescription&lt;br /&gt;
*CourseDescription&lt;br /&gt;
*EvaluationFormDescription&lt;br /&gt;
*GradeValue&lt;br /&gt;
&lt;br /&gt;
===Your information===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can select which fields in user information that should be editable.&lt;br /&gt;
&lt;br /&gt;
Configurator -&amp;gt; Web Setup -&amp;gt; Edit -&amp;gt; Userinfo&lt;br /&gt;
[[File:App userinfo.png|none|thumb|800x800px]]&lt;br /&gt;
You need to set permission before the users are able to upload their own student photo (a selfie).&lt;br /&gt;
&lt;br /&gt;
Configurator -&amp;gt; Web Setup -&amp;gt; Edit -&amp;gt; UMS Photo -&amp;gt; Enable Selfie in App&lt;br /&gt;
[[File:App userinfoselfie.png|none|thumb|802x802px]]&lt;br /&gt;
This will enable selfie function.&lt;br /&gt;
&lt;br /&gt;
===Student ID And Employee ID===&lt;br /&gt;
&lt;br /&gt;
----&amp;lt;blockquote&amp;gt;&#039;&#039;This content has been moved to [[Student / Employee ID]]&#039;&#039;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===My Absence===&lt;br /&gt;
----The students are able to write an absence reason on an already registered subject. This can be enabled in the template editor.&lt;br /&gt;
&lt;br /&gt;
Select the template -&amp;gt; Absence -&amp;gt; Manage -&amp;gt; Create a new settings or select an existing one -&amp;gt; Add/Edit&lt;br /&gt;
&lt;br /&gt;
Check &amp;quot;Allow students to register absence reason&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:Absence settings.png|none|thumb|570x570px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Allow students to register absence reason&#039;&#039;&#039; will allow the students to set an absence reason when a teacher has set the student as absent. The student can set an absence reason in &amp;quot;My absence&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Days back&#039;&#039;&#039; is the number of days back the students are allowed to set an absence reason.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Show Course&#039;&#039;&#039; will show the course view (this will effect both web and app).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Show Activity&#039;&#039;&#039; will show the activity view (this will effect both web and app).&lt;br /&gt;
&lt;br /&gt;
===Push Notification===&lt;br /&gt;
----&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;&#039;&#039;Temporarily disabled&#039;&#039;&#039;&#039;&#039;&amp;lt;/blockquote&amp;gt;UMS can send push notifications when there are news, grades, or changes in your timetable. It is possible to receive a daily notification with your timetable for the day.&lt;br /&gt;
&lt;br /&gt;
In addition the app can receive [[SMS Alert]] messages. &lt;br /&gt;
&lt;br /&gt;
To set up push notifications go to Web Setup -&amp;gt; App -&amp;gt; Manage -&amp;gt; Add&lt;br /&gt;
[[File:AppPushNotificationSettings.png|none|thumb|526x526px]]&lt;br /&gt;
&lt;br /&gt;
Set the description&lt;br /&gt;
&lt;br /&gt;
FCM Server Api Key:&lt;br /&gt;
&lt;br /&gt;
#Receive the key string from inLogic and paste it&lt;br /&gt;
&lt;br /&gt;
Windows Phone:&lt;br /&gt;
&lt;br /&gt;
#Receive the Package SID and Client secret from inLogic and paste the strings&lt;br /&gt;
&lt;br /&gt;
====School account====&lt;br /&gt;
In case the school has it&#039;s own account do the following to retrieve the information&lt;br /&gt;
&lt;br /&gt;
FCM Server Api Key:&lt;br /&gt;
&lt;br /&gt;
#Open https://play.google.com/apps/publish&lt;br /&gt;
#Google Play Console -&amp;gt; Settings -&amp;gt; API Access -&amp;gt; Create linked project and open it -&amp;gt; Credentials&lt;br /&gt;
#Create API Key&lt;br /&gt;
#Select the API Key and make key restriction for Android&lt;br /&gt;
#Type in your package name and SHA-1 certificate fingerprint&lt;br /&gt;
#Copy the API key and paste it inside FCM Server API Key&lt;br /&gt;
&lt;br /&gt;
Windows Phone:&lt;br /&gt;
&lt;br /&gt;
#Open https://developer.microsoft.com/en-us/dashboard/apps/overview&lt;br /&gt;
#Select your app&lt;br /&gt;
#Services -&amp;gt; Push notification -&amp;gt; WNS/MPNS&lt;br /&gt;
#Select &amp;quot;Live Services site&amp;quot;&lt;br /&gt;
#Copy and paste the Package SID into the configurator&lt;br /&gt;
#Generate an Application Secret if none exist&lt;br /&gt;
#Copy and paste the Application Secret into the configurator (This is the Client Secret)&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
----[[UMS Links]] can be used by both UMS Web and UMS App. Check the [[UMS Links|guide]].&lt;br /&gt;
&lt;br /&gt;
===Homework===&lt;br /&gt;
----See [[UMS Homework]]&lt;br /&gt;
&lt;br /&gt;
===Parking===&lt;br /&gt;
----See [[Parking]]&lt;br /&gt;
&lt;br /&gt;
===Notify absence===&lt;br /&gt;
----See [[Attendance Registration#SMS and App settings for notify absence|App settings for notify absence in attendance registration]]&lt;br /&gt;
&lt;br /&gt;
===Sms Alert===&lt;br /&gt;
----See [[SMS Alert]]&lt;br /&gt;
&lt;br /&gt;
===Privacy Policy===&lt;br /&gt;
----To add your own privary policy in the app go to Web Setup -&amp;gt; App&lt;br /&gt;
&lt;br /&gt;
Insert into &amp;quot;Privacy Policy Url:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If left empty privacy policy will not be shown.&lt;br /&gt;
&lt;br /&gt;
InLogic has a default privacy policy &amp;quot;https://www.inlogic.dk/om-inlogic/privacy-policy/&amp;quot;, you can refer to it, but we take no responsibility if you deviate from said policy.&lt;br /&gt;
[[File:App privacypolicyurl.png|none|thumb|792x792px]]&lt;br /&gt;
&lt;br /&gt;
To add it to the App Store login &lt;br /&gt;
&lt;br /&gt;
#https://appstoreconnect.apple.com/&lt;br /&gt;
#My Apps&lt;br /&gt;
#Select the app&lt;br /&gt;
#Select the top menu App Store&lt;br /&gt;
#Select App Information in the left menu&lt;br /&gt;
#Add your privacy policy url to &amp;quot;Privacy Policy URL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:App appstore privacypolicy.png|none|thumb|955x955px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
===Force language setting===&lt;br /&gt;
----Should you wish to, you have the option to force the language of the app to use a specific language, rather than the phones default language.&lt;br /&gt;
&lt;br /&gt;
This is changed via the &#039;Forced language&#039; feature in the Configurator.&lt;br /&gt;
[[File:Forced language.png|none|frame]]&lt;br /&gt;
The list of languages will expand over time, as UMS adds support for new languages.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Custom localization resources==&lt;br /&gt;
see [[Custom Terms and Localization]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==When changes take effect==&lt;br /&gt;
Changes to settings are effectuated in the app and different times, depending on what kind of change it is. The vast amount of changes will be template changes and are more or less instant, though there are exceptions.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Change Table&lt;br /&gt;
!Change Type&lt;br /&gt;
!When change takes effect&lt;br /&gt;
|-&lt;br /&gt;
|Setup changes&lt;br /&gt;
|IIS/Frontend Restart&lt;br /&gt;
|-&lt;br /&gt;
|Template changes&lt;br /&gt;
|Instant (in app needs to reload the page it is on for that to update&lt;br /&gt;
|-&lt;br /&gt;
|Changes to links&lt;br /&gt;
|Re-login&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
===Untrusted Certificate Error on Android===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;We do not recommend using Comodo certificates since they have been known to cause these issues.&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Can&#039;t login on some Android devices? This could be due to an untrusted Comodo SSL Certificate. We were able to reproduced it on Android version 4.1, 4.4.2, 5.0.1 and 8.1.0, but it may be present on any number of versions.&lt;br /&gt;
&lt;br /&gt;
You can test your SSL certificate on https://www.ssllabs.com/ssltest/analyze.html&lt;br /&gt;
&lt;br /&gt;
Do the following on the server&lt;br /&gt;
&lt;br /&gt;
#Delete the Comodo RSA Certification Authority issued by Comodo RSA Certification Authority with an expiration date of January 18, 2038.&lt;br /&gt;
#Enable automatic root certificate updates on the server&lt;br /&gt;
&lt;br /&gt;
Please checkout the Comodo support site: https://support.comodo.com/index.php?/Knowledgebase/Article/View/1019/38/untrusted-certificate-error-on-android&lt;br /&gt;
&lt;br /&gt;
For future conservation:&amp;lt;blockquote&amp;gt;Certificate is not installed correctly; the certificate needs to be chained back to the Addtrust root certificate in order to be trusted on the Android.&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The issue is that the Windows server is not presenting the complete certificate chain; clients which do not have the complete certificate chain will result in this error as encountered on the Android phone. In order to resolve this, on the server which this certificate is installed on, please open the MMC (Microsoft Management Console), and add the certificate snap-in for the computer account on the local computer.&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;In the Intermediate Certification Authorities folder, verify if the Comodo RSA Domain Validation Secure Server CA and Comodo RSA Certification Authority(issued to Comodo RSA Certification Authority, issued by AddTrustExternal CA Root) are installed in this certificate store.&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;In the Trusted Root Certification Authorities folder verify if the AddTrustExternal CA Root is installed.  Also, if you see the Comodo RSA Certification Authority (issued to and issued by Comodo RSA Certification Authority with an expiration date of January 18, 2038) is present, if it is please delete this certificate.&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;If any of these certificates are missing  the intermediate and root certificates were provided to you in the .zip file when the certificate was issued, or are available via this support article - &amp;lt;nowiki&amp;gt;https://support.comodo.com/index.php?/Default/Knowledgebase/Article/View/979/108/domain-validation-sha-2&amp;lt;/nowiki&amp;gt; .&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;If you had to delete the Comodo RSA Certification Authority from the Trusted Root Authorities folder, you will also need to disable automatic root certificate updates on the server - https://support.comodo.com/index.php?/Default/Knowledgebase/Article/View/769/17/turn-off-automatic-root-certificates-updates-server-2008&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;If you have performed these steps and the certificate chain has not updated on the server, to force IIS to update the certificate chain you will need to either change the certificate binding in IIS to another certificate, and then switch the certificate bindings to the correct certificate. Alternately, you will need to restart the server.&amp;lt;/blockquote&amp;gt;Conservation for https://support.comodo.com/index.php?/Default/Knowledgebase/Article/View/769/17/turn-off-automatic-root-certificates-updates-server-2008&amp;lt;blockquote&amp;gt;To perform this procedure, you must be a member of the local Administrators group, or you must have been delegated the appropriate authority.&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;To turn off Automatic Root Certificates Update:&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;1. Click Start, and then click Run.&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;2. Type gpedit.msc, and then click OK.&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;3. If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;4. Double-click Administrative Templates, double-click System, double-click Internet Communication Management, and then click Internet Communication settings.&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;5. Double-click Turn off Automatic Root Certificates Update, click Enabled, and then click OK.&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;6. Close the Local Group Policy Editor.&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;Note: You can use Group Policy to set policy settings that apply across a given site, domain, or organizational unit in Active Directory Domain Services.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Issues with the app===&lt;br /&gt;
If you&#039;re facing issues with the app, please perform the following steps before contacting support:&lt;br /&gt;
&lt;br /&gt;
*Check the AppStore/GooglePlay for app updates and install any present&lt;br /&gt;
*Shut down the app completely, and start it back up&lt;br /&gt;
*Restart the phone&lt;br /&gt;
*Uninstall the app, and redownload it from AppStore/GooglePlay&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Known issues ===&lt;br /&gt;
A small incomplete list of known issues and potential workarounds that may resolve them, if you do not find your issue here please contact the inlogic support on helpdesk and we will investigate and fix it / explain the issue if it is setup related. &lt;br /&gt;
&lt;br /&gt;
* Unable to startup app when it has previously been able to and was logged in&lt;br /&gt;
** 1 of the issues that causes this is the cached login token not working or the school website being down or a combo of these. To fix this you can reinstall the app.&lt;br /&gt;
** Other causes are being looked into.&lt;br /&gt;
* &amp;quot;Unknown push notification, please contact your school it-department&amp;quot;, app received a push notification of a type we do not support.&lt;br /&gt;
** The current theory is that virus or app/tools installed on the phone use the info to send push to the phone, it is possible a factory reset may fix it, but we have not been able to reproduce it on any of our devices. We are looking into it with what we have available.&lt;br /&gt;
*IOS 16 phones (usually so far reported to by iphone 14), have hangups on login that make them unable to login&lt;br /&gt;
**We are looking into this issue with multiple schools trying to replicate it, and planning a test to solve the issue (november 2022).&lt;br /&gt;
*Android doesn&#039;t clear all data/settings when uninstalling/reinstalling&lt;br /&gt;
**We are trying to fix this issue with patch 3.7.1 by disabling the android cloud backup for the app.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=Password_Self_Service&amp;diff=4660</id>
		<title>Password Self Service</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=Password_Self_Service&amp;diff=4660"/>
		<updated>2023-02-21T13:53:28Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With Password Self-service, users can change their own password, without involving the IT-department. The password is changed through UMS in a browser, regardless if the user is logged in or not. Because the users can change their own passwords, it only takes a few moments before they can get back to studying. It saves time for the students as well as the IT-department, which can focus on other tasks. The module ensures that the user’s password meets the school’s own password guidelines, as well as the guidelines of the school’s other IT-systems, e.g. Google Apps and Office 365.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
=== Supported administrative systems ===&lt;br /&gt;
&lt;br /&gt;
=== Module requirements ===&lt;br /&gt;
&lt;br /&gt;
=== Additional functionality ===&lt;br /&gt;
&lt;br /&gt;
=== Testing after setup ===&lt;br /&gt;
&lt;br /&gt;
=== What to have ready ===&lt;br /&gt;
&lt;br /&gt;
=== Is any physical item required ===&lt;br /&gt;
&lt;br /&gt;
=== Should third party be contacted ===&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Open Configurator and click ”Setup web access”&lt;br /&gt;
[[File:Passwordselfservicesetupweb.png|none|thumb|554x554px]]&lt;br /&gt;
&lt;br /&gt;
Click “Reset own password”&lt;br /&gt;
[[File:Passwordselfserviceresetownpassword.png|none|thumb|563x563px]]&lt;br /&gt;
* Language:  Choose the language for which you wish to edit policy text.&lt;br /&gt;
* Shown policy description:  The text to show on frontend when using password-selfservice.&lt;br /&gt;
* Require non alphanumeric:  Set option to require special character in password.&lt;br /&gt;
* Require numeric:   Set option to require number in password.&lt;br /&gt;
* Require alpha:  Set option to require character in alphabet.&lt;br /&gt;
** Only letters from the US alphabet:  Set option to allow only a-z or A-Z (country specific characters not allowed). Only available if Require alpha is set.&lt;br /&gt;
** Require capitol and no capital:  Set option to require upper and lower case characters. Only available if Require alpha is set.&lt;br /&gt;
&lt;br /&gt;
* Can not contain username:  Set option to restrict the use of users login name.&lt;br /&gt;
* Require minimum length:  Set minimum password length. If checked it will enforce length.&lt;br /&gt;
* Require maximum length:  Set maximum password length. If checked it will enforce length.&lt;br /&gt;
&lt;br /&gt;
=== Setup Service account to use with Password-Selfservice: ===&lt;br /&gt;
Open Configurator and click “Settings” then “Service Accounts”&lt;br /&gt;
[[File:Passwordselfserviceserviceaccount.png|none|thumb|556x556px]]&lt;br /&gt;
&lt;br /&gt;
Create Service Account attachment&lt;br /&gt;
[[File:Passwordselfserviceserviceaccountssetup.png|none|thumb|557x557px]]&lt;br /&gt;
* Display name:  Descriptive name.&lt;br /&gt;
* User name:  User name for domain account with rights to Create/Delete/Reset Password in AD.&lt;br /&gt;
* Password:  &lt;br /&gt;
* Domain:  FQDN for the Domain to which the username connects.&lt;br /&gt;
* Mailserver:  For sending mails in UMS web (FQDN)&lt;br /&gt;
* Displayname on web:  Descriptive name.&lt;br /&gt;
* Show on web:  if multiple service accounts are shown on web, there will be a dropdown box, where the service accounts can be chosen, in the Password-Selfservice popup on UMS Web.&lt;br /&gt;
If you have multiple service accounts, both on local domains and Office 365 - remember to use an account that corresponds to the hosting environment of the mailserver !&lt;br /&gt;
&lt;br /&gt;
When filled, remember to click “Add”&lt;br /&gt;
&lt;br /&gt;
== Forgot password ==&lt;br /&gt;
It&#039;s now possible to override the default language when linking to the forgot password page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
examples:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Danish&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;https://umssite/UMSLogin/ForgotPassword.aspx?lang=da_DK&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;English&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;https://umssite/UMSLogin/ForgotPassword.aspx?lang=en&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible to use the ID:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Danish&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;https://umssite/UMSLogin/ForgotPassword.aspx?lang=0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;English&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;https://umssite/UMSLogin/ForgotPassword.aspx?lang=1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!ID&lt;br /&gt;
!Language&lt;br /&gt;
!Code&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|Danish&lt;br /&gt;
|da_DK&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|English&lt;br /&gt;
|en&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Norwegian&lt;br /&gt;
|no&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Faroese&lt;br /&gt;
|fo_FO&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|Greenlandic&lt;br /&gt;
|kl_GL&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|German&lt;br /&gt;
|de_DE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Technical settings ==&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=SMS_From_CSV&amp;diff=4626</id>
		<title>SMS From CSV</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=SMS_From_CSV&amp;diff=4626"/>
		<updated>2023-01-18T14:29:25Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Access===&lt;br /&gt;
From the Configurator - &amp;gt; Website Settings  you can select which AD Group should be able to access the SMS From CSV feature.&lt;br /&gt;
[[File:SMS Csv Settings.png|thumb|Options to show/hide SMS CSV |none|660x660px]]&lt;br /&gt;
&lt;br /&gt;
To see SMS From CSV you must be a global admin or part of the selected AD group.&lt;br /&gt;
&lt;br /&gt;
If you select &amp;quot;show SMS on front page&amp;quot; the option will be shown on the frontpage as well as in the control panel.&lt;br /&gt;
===Sending SMS===&lt;br /&gt;
Your csv file should be structured with two columns that are separated with a semicolon ;&lt;br /&gt;
&lt;br /&gt;
*mobile number&lt;br /&gt;
*message&lt;br /&gt;
&lt;br /&gt;
The first row defines the column header name (e.g. mobile and message). All the following rows are will be send with the first column being the receivers mobile number and the second column the message that will be send.&lt;br /&gt;
&lt;br /&gt;
For linebreaks use &amp;lt;nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of csv:&lt;br /&gt;
 mobile;message&lt;br /&gt;
 42408883;Min første besked&lt;br /&gt;
 41787710;Min anden besked&lt;br /&gt;
 41787710;Min anden besked&amp;lt;nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/nowiki&amp;gt;new line&lt;br /&gt;
&lt;br /&gt;
=== Errors with danish characters ===&lt;br /&gt;
Try saving with another encoding. UTF8 With BOM works.&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=SSO/Office365&amp;diff=4601</id>
		<title>SSO/Office365</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=SSO/Office365&amp;diff=4601"/>
		<updated>2022-12-12T12:23:07Z</updated>

		<summary type="html">&lt;p&gt;Khm: /* Reset password for others */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;This feature requires the SSO module included in License&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You also need Office365 Tenant settings to be setup in configurator (Must be same tenant as users are synced with)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==How to use Office 365 as login provider instead of Active Directory==&lt;br /&gt;
You need to create an &#039;&#039;&#039;Enterprise application&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Login into [https://portal.azure.com/#blade/Microsoft_AAD_IAM/StartboardApplicationsMenuBlade/AllApps/menuId/ portal.azure.com]&lt;br /&gt;
&lt;br /&gt;
*Find &#039;&#039;&#039;Azure Active Directory&#039;&#039;&#039;&lt;br /&gt;
*Find &#039;&#039;&#039;Enterprise applications&#039;&#039;&#039;&lt;br /&gt;
*Click &#039;&#039;&#039;New application&#039;&#039;&#039;&lt;br /&gt;
*Click &#039;&#039;&#039;Create your own application&#039;&#039;&#039;&lt;br /&gt;
*Enter a name&lt;br /&gt;
*Choose &#039;&#039;&#039;Integrate any other application you don&#039;t find in the gallery (Non-gallery)&#039;&#039;&#039;&lt;br /&gt;
*Click Create (This will also create an &#039;&#039;&#039;App registration&#039;&#039;&#039;)&lt;br /&gt;
*Find &#039;&#039;&#039;Properties&#039;&#039;&#039; for the Enterprise application you just created&lt;br /&gt;
*Set &#039;&#039;&#039;User assignment required?&#039;&#039;&#039; and &#039;&#039;&#039;Visible to users?&#039;&#039;&#039; to false&lt;br /&gt;
*Click &#039;&#039;&#039;Save&#039;&#039;&#039;&lt;br /&gt;
*Click &#039;&#039;&#039;Single sign-on&#039;&#039;&#039;&lt;br /&gt;
*Click &#039;&#039;&#039;SAML&#039;&#039;&#039;&lt;br /&gt;
**Click edit under &#039;&#039;&#039;Basic SAML Configuration&#039;&#039;&#039;&lt;br /&gt;
***Enter this in &#039;&#039;&#039;Identifier (Entity ID)&#039;&#039;&#039;&lt;br /&gt;
****Enter the URL &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;https://{URL}/{CustomerID}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; replace {CustomerID} with you number. This can be found in the configurator program under license info&lt;br /&gt;
****Delete other URL&#039;s&lt;br /&gt;
***Enter this in &#039;&#039;&#039;Reply URL (Assertion Consumer Service URL)&#039;&#039;&#039;&lt;br /&gt;
****&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;https://{URL}/SSO/AssertionConsumerServiceAzureAd.aspx&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
**Under &#039;&#039;&#039;SAML Signing Certificate&#039;&#039;&#039;&lt;br /&gt;
***Click download for &#039;&#039;&#039;Certificate (RAW)&#039;&#039;&#039;&lt;br /&gt;
***This file must be placed in the root directory of your UMS Academic installation (Normally C:\inetpub\wwwroot)&lt;br /&gt;
*Find &#039;&#039;&#039;Azure Active Directory&#039;&#039;&#039;&lt;br /&gt;
*Find &#039;&#039;&#039;App registrations&#039;&#039;&#039;&lt;br /&gt;
*Find your application that was created as an &#039;&#039;&#039;Enterprise applications&#039;&#039;&#039;&lt;br /&gt;
**Click &#039;&#039;&#039;API permissions&#039;&#039;&#039;&lt;br /&gt;
**Click &#039;&#039;&#039;Add a permission&#039;&#039;&#039;&lt;br /&gt;
***Click &#039;&#039;&#039;Microsoft Graph&#039;&#039;&#039;&lt;br /&gt;
****Click A&#039;&#039;&#039;pplication permissions&#039;&#039;&#039;&lt;br /&gt;
*****Add these permissions&lt;br /&gt;
******User.ReadWrite.All&lt;br /&gt;
******UserAuthenticationMethod.ReadWrite.All&lt;br /&gt;
**Click &#039;&#039;&#039;Grant admin consent for {Tenant}&#039;&#039;&#039;&lt;br /&gt;
***Click &#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
*Open &#039;&#039;&#039;SQL Management Studio&#039;&#039;&#039; connect to the database&lt;br /&gt;
**Run this SQL Command&lt;br /&gt;
***Update UMSWebGeneralSettings Set SetSSO = 1&lt;br /&gt;
*Open UMS web&lt;br /&gt;
**You will be redirected to SSO setup&lt;br /&gt;
***Click &#039;&#039;&#039;Add,&#039;&#039;&#039; enter a name and click &#039;&#039;&#039;Create&#039;&#039;&#039;&lt;br /&gt;
***Choose the name in the drop down and click &#039;&#039;&#039;Edit&#039;&#039;&#039;&lt;br /&gt;
***Click &#039;&#039;&#039;Add&#039;&#039;&#039; under the section &#039;&#039;&#039;Create new Single Sign On&#039;&#039;&#039;&lt;br /&gt;
****Choose &#039;&#039;&#039;Azure AD&#039;&#039;&#039; in the &#039;&#039;&#039;Type&#039;&#039;&#039; drop down&lt;br /&gt;
****In the boxes &#039;&#039;&#039;Name&#039;&#039;&#039;, &#039;&#039;&#039;SingleSignOnServiceUrl&#039;&#039;&#039; and &#039;&#039;&#039;SingleLogoutServiceUrl&#039;&#039;&#039; replace &#039;&#039;&#039;{TenantID}&#039;&#039;&#039; with the application id of your Enterprise application&lt;br /&gt;
****The &#039;&#039;&#039;LocalCertificateFile&#039;&#039;&#039; must be entered with a PFX certificate. This file must be placed in the root directory of your UMS Academic installation (Normally C:\inetpub\wwwroot)&lt;br /&gt;
****The &#039;&#039;&#039;LocalCertificatePassword&#039;&#039;&#039; must be entered to be able to read the PFX certificate&lt;br /&gt;
****The &#039;&#039;&#039;PartnerCertificateFile&#039;&#039;&#039; is a certificate the is generated during Azure SSO setup (The file downloaded from &#039;&#039;&#039;Certificate (Raw)&#039;&#039;&#039;). Remember to include the filename extension&lt;br /&gt;
*****This file must be placed in the root directory of your UMS Academic installation (Normally C:\inetpub\wwwroot)&lt;br /&gt;
****Click &#039;&#039;&#039;Save&#039;&#039;&#039;&lt;br /&gt;
***Click &#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
***Click &#039;&#039;&#039;Save&#039;&#039;&#039;&lt;br /&gt;
***Click &#039;&#039;&#039;Add to website&#039;&#039;&#039;&lt;br /&gt;
***Choose website setting and click &#039;&#039;&#039;Add&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
*Open UMS &#039;&#039;&#039;Configurator&#039;&#039;&#039; program&lt;br /&gt;
**Click &#039;&#039;&#039;Web Setup&#039;&#039;&#039;&lt;br /&gt;
**Select &#039;&#039;&#039;General settings&#039;&#039;&#039;&lt;br /&gt;
***Select &#039;&#039;&#039;Azure AD&#039;&#039;&#039; in the &#039;&#039;&#039;Check login against&#039;&#039;&#039; drop down list&lt;br /&gt;
*Open SQL Management Studio on the UMS Server and connect to the database&lt;br /&gt;
**Run this SQL Command&lt;br /&gt;
***Update UMSWebGeneralSettings Set SetSSO = 0&lt;br /&gt;
*Restart IIS&lt;br /&gt;
*The changes above may take some time to be distributed into Client Tenant system&lt;br /&gt;
*&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reset password for others===&lt;br /&gt;
&lt;br /&gt;
*Go to &#039;&#039;&#039;Azure Active Directory&#039;&#039;&#039;&lt;br /&gt;
*Click &#039;&#039;&#039;Roles and administrators&#039;&#039;&#039;&lt;br /&gt;
*Find &#039;&#039;&#039;Password administrator&#039;&#039;&#039;&lt;br /&gt;
*Click &#039;&#039;&#039;Add assignments&#039;&#039;&#039;&lt;br /&gt;
*Find the name of the Enterprise application you created earlier&lt;br /&gt;
*Select it and click &#039;&#039;&#039;Add&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Change password ===&lt;br /&gt;
See also [[Password Change Azure AD]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== UMS Graph API connection in Office365 Tenant settings ===&lt;br /&gt;
When creating the Office365 tenant settings, just add the client_id and clientsecret from the SSO APP registration settings created above.&lt;br /&gt;
&lt;br /&gt;
==FAQ :==&lt;br /&gt;
If you get this message when trying to connect it might be a matter of waiting for Client tenant distribution&lt;br /&gt;
[[File:SSO login error message.png|left|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=MSGraphPermissions&amp;diff=4600</id>
		<title>MSGraphPermissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=MSGraphPermissions&amp;diff=4600"/>
		<updated>2022-12-12T12:22:01Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;MS graph permissions are required by these UMS modules&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;LiveAtEdu&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;OneNote&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;SharePoint&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Office 365 Time blocks&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;MS Teams&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Creating App Registration==&lt;br /&gt;
Go to [http://portal.azure.com Azure Portal] and login with you admin account( &#039;&#039;&#039;the same UMS uses&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;!!! ATTENTION !!!  use service account that UMS uses&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When logged in go to Azure Active Directory:&lt;br /&gt;
[[File:Graph1.jpg|left|thumb|832x832px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Go to App registrations&lt;br /&gt;
[[File:Graph2.jpg|none|thumb|831x831px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click on New application registration&lt;br /&gt;
[[File:Graph3.jpg|none|thumb|909x909px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Give the new App a name ex. &amp;quot;UMSGraph&amp;quot;, Choose &amp;quot;Web app / API&amp;quot; in Application type, set &amp;quot;Sign-on URL&amp;quot; to &amp;quot;http://localhost&amp;quot;. After setting Application Permission values click &amp;quot;Create&amp;quot;&lt;br /&gt;
[[File:Graph43.jpg|none|thumb|913x913px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will return to previous screen, here click &amp;quot;your new app&amp;quot;&lt;br /&gt;
[[File:Grahp5.jpg|none|thumb|905x905px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Certificates &amp;amp; secrets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;New Client Secret&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Enter a &amp;quot;Description&amp;quot; and set &amp;quot;Expires&amp;quot; to the interval that suits your needs.&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Add&amp;quot;&lt;br /&gt;
[[File:Graph6.jpg|none|thumb|908x908px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Copy &amp;quot;Value ID&amp;quot;    We will use this later &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;!!! ATTENTION !!! the key value will never be visible again so ensure to copy it.&#039;&#039;&#039; [[File:Graph7.png|none|thumb|790x790px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Copy the &amp;quot;VALUE Key into &amp;quot;UMS Configurator&amp;quot; field Client Secret&lt;br /&gt;
&lt;br /&gt;
[[File:Tewxddf.png|frameless|566x566px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Copy the &amp;quot;Directory Tenant ID &amp;quot; into &amp;quot;UMS Configurator&amp;quot; Field Tenant ID&lt;br /&gt;
&lt;br /&gt;
Copy the &amp;quot;Appplication Client ID &amp;quot; into &amp;quot;UMS Configurator&amp;quot; Field Client ID&lt;br /&gt;
[[File:Id.jpg|none|thumb|1120x1120px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Api permissions&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Add a permission&amp;quot;&lt;br /&gt;
[[File:Graph8.png|none|thumb|780x780px]]&lt;br /&gt;
&lt;br /&gt;
==Setup SharePoint, OneNote Class Notebook or Onedrive provisioning==&lt;br /&gt;
&#039;&#039;&#039;You do not need to fill out the settings in UMS (This was done in the above text) when using OneDrive provisioning.&#039;&#039;&#039; Only the &amp;quot;Add SharePoint App permissions&amp;quot; chapter.&lt;br /&gt;
&lt;br /&gt;
In the UMS Configurator go to Modules-&amp;gt;Office 365 and click &amp;quot;SharePoint organization settings&amp;quot;&lt;br /&gt;
[[File:UMSConfiguratorSharepointOrganizationSettings.png|none|thumb|600x600px]]&lt;br /&gt;
Choose your SharePoint organization setting and click &amp;quot;Edit...&amp;quot;&lt;br /&gt;
[[File:UMSConfiguratorSharepointOrganizationSettingsEdit.png|none|thumb|600x600px]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;SharePointOrganizationSettings&amp;quot;&amp;gt;Input&amp;lt;/span&amp;gt; your &amp;quot;Tenant Name&amp;quot; ex. &amp;quot;cortenso&#039;&#039;&#039;.onmicrosoft.com&#039;&#039;&#039;&amp;quot;, insert Application ID into &amp;quot;Client ID&amp;quot; field, insert &amp;quot;Client secret&amp;quot; and &amp;quot;Tenant ID&amp;quot; and click &amp;quot;Ok&amp;quot;&lt;br /&gt;
[[File:SharepointOrganization SettingsEdit.jpg|none|thumb|585x585px]]&lt;br /&gt;
&lt;br /&gt;
===Add SharePoint App permissions===&lt;br /&gt;
&lt;br /&gt;
*Go to https://&#039;&#039;&#039;&amp;lt;tenantname&amp;gt;&#039;&#039;&#039;-admin.sharepoint.com/_layouts/15/appinv.aspx&lt;br /&gt;
*Enter app Id (AKA Client Id) and press lookup.&lt;br /&gt;
*Copy paste the below text in Permission Request XML and save&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;AppPermissionRequests AllowAppOnlyPolicy=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;AppPermissionRequest Scope=&amp;quot;http://sharepoint/content/tenant&amp;quot; Right=&amp;quot;FullControl&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;AppPermissionRequest Scope=&amp;quot;http://sharepoint/social/tenant&amp;quot; Right=&amp;quot;FullControl&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/AppPermissionRequests&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:SharePoint Organization Settings App permission.jpg|none|thumb|389x389px|Enter anything you like into Title]]&lt;br /&gt;
&lt;br /&gt;
====Open Powershell 5 on the server running the program====&lt;br /&gt;
&#039;&#039;&#039;This only works in Powershell 5&#039;&#039;&#039;&lt;br /&gt;
 #Enable TLS 1.2 for Powershell commands&lt;br /&gt;
 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12  &lt;br /&gt;
 &lt;br /&gt;
 $NugetPackageProvider = Get-PackageProvider -ListAvailable -Name NuGet -ErrorAction SilentlyContinue&lt;br /&gt;
 if (!$NugetPackageProvider) {Install-PackageProvider -Name NuGet -RequiredVersion 2.8.5.201 -Scope AllUsers -Force}&lt;br /&gt;
 &lt;br /&gt;
 Install-Module -Name Microsoft.Online.SharePoint.PowerShell -Force&lt;br /&gt;
 Import-Module Microsoft.Online.SharePoint.PowerShell&lt;br /&gt;
 Connect-SPOService -Url https://&#039;&#039;&#039;&amp;lt;tenantname&amp;gt;&#039;&#039;&#039;-admin.sharepoint.com&lt;br /&gt;
 Set-SPOTenant -DisableCustomAppAuthentication $false&lt;br /&gt;
&lt;br /&gt;
===Remove SharePoint App permissions===&lt;br /&gt;
If you want to remove existing app permission use this link. Maybe you are not using the module anymore.&lt;br /&gt;
 https://&#039;&#039;&#039;&amp;lt;tenantname&amp;gt;&#039;&#039;&#039;-admin.sharepoint.com/_layouts/15/TA_AllAppPrincipals.aspx&lt;br /&gt;
&lt;br /&gt;
==Permissions overview==&lt;br /&gt;
&lt;br /&gt;
===Microsoft Graph===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+Default permissions&lt;br /&gt;
!Permission name&lt;br /&gt;
!Permission type&lt;br /&gt;
!API&lt;br /&gt;
!Used for&lt;br /&gt;
!Used by&lt;br /&gt;
|-&lt;br /&gt;
|User.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Setting attributes on the user in Office 365&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|Group.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Setting group attributes on Office 365 groups&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|GroupMember.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Manage GroupMembers in Office 365&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|Directory.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Setting attributes on the user in Azure Active Directory&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|MailboxSettings.ReadWrite&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Used to set mailbox settings in Office 365.&lt;br /&gt;
Used to get/create categories&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
Skemabrikker.exe&lt;br /&gt;
|-&lt;br /&gt;
|Calendars.ReadWrite&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Used to allow UMS to sync calendar events to Office 365&lt;br /&gt;
|Skemabrikker.exe&lt;br /&gt;
|-&lt;br /&gt;
|Files.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Used to provision OneDrive for users&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Teams sync permissions===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Permission name&lt;br /&gt;
!Permission type&lt;br /&gt;
!API&lt;br /&gt;
!Used for&lt;br /&gt;
!Used by&lt;br /&gt;
|-&lt;br /&gt;
|EduRoster.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Allows the UMS to handle users on roster&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|Member.Read.Hidden&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Allows the UMS to handle users on roster&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|TeamMember.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Used to add or remove users from Team&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|TeamsTab.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Used to create tabs in teams&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|TeamsAppInstallation.ReadForTeam.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Used to install app in teams&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|Team.Create&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Used to create Teams&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|Team.ReadBasic.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Used to read teams&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Change Password when using Azure AD as login===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Permission name&lt;br /&gt;
!Permission type&lt;br /&gt;
!API&lt;br /&gt;
!Used for&lt;br /&gt;
!Used by&lt;br /&gt;
|-&lt;br /&gt;
|Directory.AccessAsUser.All&lt;br /&gt;
|Delegated&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|&lt;br /&gt;
|UMS Web&lt;br /&gt;
|-&lt;br /&gt;
|User.Read&lt;br /&gt;
|Delegated&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|&lt;br /&gt;
|UMS Web&lt;br /&gt;
|}&lt;br /&gt;
See also [[Password Change Azure AD]]&lt;br /&gt;
&lt;br /&gt;
===Password Sync===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Permission name&lt;br /&gt;
!Permission type&lt;br /&gt;
!API&lt;br /&gt;
!Used for&lt;br /&gt;
!Used by&lt;br /&gt;
|-&lt;br /&gt;
|Roles and Administrators&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Reset password for Users&lt;br /&gt;
|Password_Sync&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===SharePoint===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Permission name&lt;br /&gt;
!Permission type&lt;br /&gt;
!API&lt;br /&gt;
!Used for&lt;br /&gt;
!Used by&lt;br /&gt;
|-&lt;br /&gt;
|Sites.FullControl.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Have full control of all site collections&lt;br /&gt;
|Office365_SP_OneNote.exe&lt;br /&gt;
|-&lt;br /&gt;
|User.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Read and write user profiles&lt;br /&gt;
|Office365_SP_OneNote.exe&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===OneNote===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Permission name&lt;br /&gt;
!Permission type&lt;br /&gt;
!API&lt;br /&gt;
!Used for&lt;br /&gt;
!Used by&lt;br /&gt;
|-&lt;br /&gt;
|Notes.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|&lt;br /&gt;
|Office365_SP_OneNote.exe&lt;br /&gt;
|}&amp;lt;br /&amp;gt;&lt;br /&gt;
===Password Administrator===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To Add Password administrator roles. Click &#039;&#039;&#039;Roles and administrator&#039;&#039;&#039;&lt;br /&gt;
[[File:Passwordd.png|thumb|1167x1167px|none]]&lt;br /&gt;
&lt;br /&gt;
*Click Add Assignments and Search for App Registrations name and Click Add.&lt;br /&gt;
&lt;br /&gt;
[[File:Password1.png|1167x1167px|thumb|none]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FAQ :==&lt;br /&gt;
If you get this message when trying to reset password in Office365 using MS Graph Api. This is because user is global Admin and therefore MS graph can not Reset password&lt;br /&gt;
[[File:Passwordsync.png|none|thumb|1245x1245px]]&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=Password_Change_Azure_AD&amp;diff=4599</id>
		<title>Password Change Azure AD</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=Password_Change_Azure_AD&amp;diff=4599"/>
		<updated>2022-12-12T12:20:28Z</updated>

		<summary type="html">&lt;p&gt;Khm: Created page with &amp;quot;Changing password in Azure AD  809x809px   Press &amp;quot;Add a platform&amp;quot;   552x552px  Select Single-Page Application   Enter Redirect URIs  E.G &amp;lt;nowiki&amp;gt;https://ums.com&amp;lt;/nowiki&amp;gt;  726x726px  Select both checkboxes under &amp;quot;Implicit grant and hybrid flows&amp;quot;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Changing password in Azure AD&lt;br /&gt;
&lt;br /&gt;
[[File:Untitledaaa.png|frameless|809x809px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press &amp;quot;Add a platform&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:SPA.png|frameless|552x552px]]&lt;br /&gt;
&lt;br /&gt;
Select Single-Page Application&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enter Redirect URIs&lt;br /&gt;
&lt;br /&gt;
E.G &amp;lt;nowiki&amp;gt;https://ums.com&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ImplicitFlow.png|frameless|726x726px]]&lt;br /&gt;
&lt;br /&gt;
Select both checkboxes under &amp;quot;Implicit grant and hybrid flows&amp;quot;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=File:ImplicitFlow.png&amp;diff=4598</id>
		<title>File:ImplicitFlow.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=File:ImplicitFlow.png&amp;diff=4598"/>
		<updated>2022-12-12T12:19:43Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ImplicitFlow&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=File:SPA.png&amp;diff=4597</id>
		<title>File:SPA.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=File:SPA.png&amp;diff=4597"/>
		<updated>2022-12-12T12:18:17Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SPA&lt;br /&gt;
&#039;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=File:Untitledaaa.png&amp;diff=4596</id>
		<title>File:Untitledaaa.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=File:Untitledaaa.png&amp;diff=4596"/>
		<updated>2022-12-12T12:17:05Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Untitledaaa&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=File:Azure_App.png&amp;diff=4595</id>
		<title>File:Azure App.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=File:Azure_App.png&amp;diff=4595"/>
		<updated>2022-12-12T12:16:17Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Azure App&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=File:App_registration.png&amp;diff=4594</id>
		<title>File:App registration.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=File:App_registration.png&amp;diff=4594"/>
		<updated>2022-12-12T12:13:52Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;App registration&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=Studily&amp;diff=4542</id>
		<title>Studily</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=Studily&amp;diff=4542"/>
		<updated>2022-11-08T12:52:56Z</updated>

		<summary type="html">&lt;p&gt;Khm: /* Update all existing timetable blocks from today -&amp;gt; forward */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&amp;lt;big&amp;gt;The Studi.ly syncronization module exports timetable blocks to the Studi.ly APP in Teams.&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
[[GetTimetable]] - This needs to be executed before export data is available&amp;lt;br /&amp;gt;&lt;br /&gt;
===UMS Configurator settings===&lt;br /&gt;
[[File:Studily settings.png|none|thumb|664x664px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Description&lt;br /&gt;
&lt;br /&gt;
*Insert a name or description for the setting&lt;br /&gt;
&lt;br /&gt;
Tenant settings&lt;br /&gt;
&lt;br /&gt;
*Select the tenant settings available from [[Office365 Tenant]]&lt;br /&gt;
&lt;br /&gt;
ClientID&lt;br /&gt;
&lt;br /&gt;
*Insert ClientID requested from Inlogic&lt;br /&gt;
&lt;br /&gt;
ClientSecret&lt;br /&gt;
&lt;br /&gt;
*Insert ClientSecret requested from Inlogic&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
*Choose the environment your Studily is running on (default production)&lt;br /&gt;
&lt;br /&gt;
SQL Sentence&lt;br /&gt;
&lt;br /&gt;
*insert parameters for filtering purposes&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Studily FAQ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Why does Studily calender view contain more timetable blocks than personal calendar?====&lt;br /&gt;
&lt;br /&gt;
*Studily will per default show all timetable blocks for the ALL Teams you are a member or owner of.&lt;br /&gt;
*Your personal calendar only contains your own timetable blocks&lt;br /&gt;
*Therefore users may have differences in Calendar view of Studily and their personal calendar.&lt;br /&gt;
&lt;br /&gt;
====Overlapping Timetable blocks shown in Studily====&lt;br /&gt;
&lt;br /&gt;
*Due to above mentioned presentation of Teams timetable blocks, there might be overlapping blocks in case teams are planned at the same time &lt;br /&gt;
&lt;br /&gt;
====How do I activate the Studily timetable module?====&lt;br /&gt;
&lt;br /&gt;
*Studi.ly timetable block sync requires the &#039;&#039;&#039;Studily&#039;&#039;&#039; module in your UMS License (please contact salg@inlogic.dk)&lt;br /&gt;
&lt;br /&gt;
==== See timetable blocks for a specific day on a specific teacher sent to studily ====&lt;br /&gt;
 Select * from Studily_TimeTableBlocks&lt;br /&gt;
 Join SkemaBrikker on SkemaBrikker.SkemaBegivenhed_ID = Studily_TimeTableBlocks.SkemaBegivenhed_ID and SkemaBrikker.SkemaBrikkerAdminServers_ID = Studily_TimeTableBlocks.SkemaBrikkerAdminServers_ID&lt;br /&gt;
 Join SkemaBrikker_Teachers on Studily_TimeTableBlocks.SkemaBegivenhed_ID = SkemaBrikker_Teachers.SkemaBegivenhed_ID AND SkemaBrikker_Teachers.SkemaBrikkerAdminServers_ID = Studily_TimeTableBlocks.SkemaBrikkerAdminServers_ID&lt;br /&gt;
 Left Join SkemaBrikker_Rooms on Studily_TimeTableBlocks.SkemaBegivenhed_ID = SkemaBrikker_Rooms.SkemaBegivenhed_ID AND SkemaBrikker_Rooms.SkemaBrikkerAdminServers_ID = Studily_TimeTableBlocks.SkemaBrikkerAdminServers_ID&lt;br /&gt;
 Where skemabrikker.Dato = &#039;31-08-2022&#039; -- Date&lt;br /&gt;
 And SkemaBrikker_Teachers.Initialer = &#039;&#039; -- Teachers initials&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Update all existing timetable blocks from today -&amp;gt; forward ======&lt;br /&gt;
 UPDATE &lt;br /&gt;
     Studily_TimeTableBlocks&lt;br /&gt;
 SET &lt;br /&gt;
     NeedToBeUpdated = &#039;True&#039;&lt;br /&gt;
 FROM &lt;br /&gt;
     Studily_TimeTableBlocks&lt;br /&gt;
     Join SkemaBrikker on SkemaBrikker.SkemaBegivenhed_ID = Studily_TimeTableBlocks.SkemaBegivenhed_ID AND SkemaBrikker.SkemaBrikkerAdminServers_ID = Studily_TimeTableBlocks.SkemaBrikkerAdminServers_ID&lt;br /&gt;
 WHERE &lt;br /&gt;
     convert (date, SkemaBrikker.Dato, 105) &amp;gt; GETDATE()&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=Studily&amp;diff=4541</id>
		<title>Studily</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=Studily&amp;diff=4541"/>
		<updated>2022-11-08T12:50:56Z</updated>

		<summary type="html">&lt;p&gt;Khm: /* Studily FAQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&amp;lt;big&amp;gt;The Studi.ly syncronization module exports timetable blocks to the Studi.ly APP in Teams.&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
[[GetTimetable]] - This needs to be executed before export data is available&amp;lt;br /&amp;gt;&lt;br /&gt;
===UMS Configurator settings===&lt;br /&gt;
[[File:Studily settings.png|none|thumb|664x664px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Description&lt;br /&gt;
&lt;br /&gt;
*Insert a name or description for the setting&lt;br /&gt;
&lt;br /&gt;
Tenant settings&lt;br /&gt;
&lt;br /&gt;
*Select the tenant settings available from [[Office365 Tenant]]&lt;br /&gt;
&lt;br /&gt;
ClientID&lt;br /&gt;
&lt;br /&gt;
*Insert ClientID requested from Inlogic&lt;br /&gt;
&lt;br /&gt;
ClientSecret&lt;br /&gt;
&lt;br /&gt;
*Insert ClientSecret requested from Inlogic&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
*Choose the environment your Studily is running on (default production)&lt;br /&gt;
&lt;br /&gt;
SQL Sentence&lt;br /&gt;
&lt;br /&gt;
*insert parameters for filtering purposes&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Studily FAQ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Why does Studily calender view contain more timetable blocks than personal calendar?====&lt;br /&gt;
&lt;br /&gt;
*Studily will per default show all timetable blocks for the ALL Teams you are a member or owner of.&lt;br /&gt;
*Your personal calendar only contains your own timetable blocks&lt;br /&gt;
*Therefore users may have differences in Calendar view of Studily and their personal calendar.&lt;br /&gt;
&lt;br /&gt;
====Overlapping Timetable blocks shown in Studily====&lt;br /&gt;
&lt;br /&gt;
*Due to above mentioned presentation of Teams timetable blocks, there might be overlapping blocks in case teams are planned at the same time &lt;br /&gt;
&lt;br /&gt;
====How do I activate the Studily timetable module?====&lt;br /&gt;
&lt;br /&gt;
*Studi.ly timetable block sync requires the &#039;&#039;&#039;Studily&#039;&#039;&#039; module in your UMS License (please contact salg@inlogic.dk)&lt;br /&gt;
&lt;br /&gt;
==== See timetable blocks for a specific day on a specific teacher sent to studily ====&lt;br /&gt;
 Select * from Studily_TimeTableBlocks&lt;br /&gt;
 Join SkemaBrikker on SkemaBrikker.SkemaBegivenhed_ID = Studily_TimeTableBlocks.SkemaBegivenhed_ID and SkemaBrikker.SkemaBrikkerAdminServers_ID = Studily_TimeTableBlocks.SkemaBrikkerAdminServers_ID&lt;br /&gt;
 Join SkemaBrikker_Teachers on Studily_TimeTableBlocks.SkemaBegivenhed_ID = SkemaBrikker_Teachers.SkemaBegivenhed_ID AND SkemaBrikker_Teachers.SkemaBrikkerAdminServers_ID = Studily_TimeTableBlocks.SkemaBrikkerAdminServers_ID&lt;br /&gt;
 Left Join SkemaBrikker_Rooms on Studily_TimeTableBlocks.SkemaBegivenhed_ID = SkemaBrikker_Rooms.SkemaBegivenhed_ID AND SkemaBrikker_Rooms.SkemaBrikkerAdminServers_ID = Studily_TimeTableBlocks.SkemaBrikkerAdminServers_ID&lt;br /&gt;
 Where skemabrikker.Dato = &#039;31-08-2022&#039; -- Date&lt;br /&gt;
 And SkemaBrikker_Teachers.Initialer = &#039;&#039; -- Teachers initials&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Update all existing timetable blocks from today -&amp;gt; forward ======&lt;br /&gt;
 UPDATE &lt;br /&gt;
     Studily_TimeTableBlocks&lt;br /&gt;
 SET &lt;br /&gt;
     NeedToBeUpdated = &#039;True&#039;&lt;br /&gt;
 FROM &lt;br /&gt;
     Studily_TimeTableBlocks&lt;br /&gt;
     Join SkemaBrikker on SkemaBrikker.SkemaBegivenhed_ID = Studily_TimeTableBlocks.SkemaBegivenhed_ID&lt;br /&gt;
 WHERE &lt;br /&gt;
     convert (date, skemabrikker.Dato, 105) &amp;gt; GETDATE()&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=SSO&amp;diff=4503</id>
		<title>SSO</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=SSO&amp;diff=4503"/>
		<updated>2022-09-07T08:29:57Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Single-Sign-On-SSO-DK.png|thumb]]&lt;br /&gt;
Our Single Sign-on (SSO) module is designed for schools that would like to make it easy for employees and students to use the school&#039;s various electronic systems. With the SSO module, users get one login and password that logs them into all the associated services at once.&lt;br /&gt;
&lt;br /&gt;
For example, students can Access the school&#039;s LMS system, library system, digital dictionaries and databases with scientific publications - all by signing in with SSO once and for all.&lt;br /&gt;
&lt;br /&gt;
This saves time and effort whenever users need to use one of the school&#039;s systems. At the same time, it gives users a simpler everyday life because they do not have to worry about having to keep in mind several logins.&lt;br /&gt;
&lt;br /&gt;
==Prerequisite and purpose==&lt;br /&gt;
&lt;br /&gt;
===Prerequisite===&lt;br /&gt;
This requires that:&lt;br /&gt;
&lt;br /&gt;
*An installed Active Directory federation services (AD FS) server.&lt;br /&gt;
*Access to configuration snap in. Either via Remote PowerShell or directly on the server.&lt;br /&gt;
*An UMS installation, licensed to SSO from inLogic.&lt;br /&gt;
*A star or new certificate for the address that the AD FS server needs.&lt;br /&gt;
&lt;br /&gt;
===purpose===&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
==Change ADFS certificates in UMS==&lt;br /&gt;
The UMS server also needs the certificates from the ADFS server. This is done by consuming the metadata. &#039;&#039;You can use &amp;lt;nowiki&amp;gt;https://samlmd2cert.azurewebsites.net/&amp;lt;/nowiki&amp;gt; to get the certificate files.&#039;&#039; &amp;lt;!-- You can use https://samlmd2cert.azurewebsites.net/ to get the certificate files. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When you have the new and updated certificates from ADFS it needs to be in rootfolder of the UMS Application.&lt;br /&gt;
&lt;br /&gt;
Physical path (C:\inetpub\wwwroot).&lt;br /&gt;
&lt;br /&gt;
And we need to update the records in the UMS database, if the name of the file has changed.&lt;br /&gt;
 Update SSOSetting set PartnerCertificateFile = &#039;TheNameOfCertificate_signing.cer&#039;&lt;br /&gt;
 Where ID = &amp;lt;The id of the active setting&amp;gt;&lt;br /&gt;
It is the signing certificate the UMS needs from the ADFS.&lt;br /&gt;
&lt;br /&gt;
Now delete the old certificate files from your UMS folder, do an iisreset to let the UMS resolve the newly entered information in the databse.&lt;br /&gt;
&lt;br /&gt;
==Changing the Self Signed Certificate in SSO.==&lt;br /&gt;
&lt;br /&gt;
#Get started by clicking on the house icon in the menu. Search for IIS and click on Internet Information Services (IIS) Manager.[[File:Sso iis manager.png|none|thumb]]&lt;br /&gt;
#In the Connections column on the left, click on the name of the server. Double-click on Server Certificates.[[File:IIS-Cert-1.png|none|thumb|497x497px]]&lt;br /&gt;
#In the Actions column on the right, click on Create Self-Signed Certificate.[[File:IIS-Cert-2.png|none|thumb|499x499px]]&lt;br /&gt;
#Enter any friendly name and then click OK.[[File:IIS-Cert-3.png|none|thumb|508x508px]]&lt;br /&gt;
#You will now have an IIS Self Signed Certificate valid for 1 year listed under Server Certificates.&lt;br /&gt;
#Right click on the new create certificate and then click &#039;&#039;&#039;Export.&#039;&#039;&#039;[[File:IIS-Cert-4.png|none|thumb|742x742px]]&lt;br /&gt;
#Remember to delete the old self signed certificate (C:\inetpub\wwwroot).[[File:IIS-Cert-5.png|none|thumb|573x573px]]&lt;br /&gt;
#Enter the path (C:\inetpub\wwwroot\UMS-SSO). The new password you type will be used later on when you set up your environment. Please remember this password. Click OK.[[File:IIS-Cert-8.png|none|thumb|771x771px]]&lt;br /&gt;
#Open SQl Management Studio and type “&#039;&#039;select * from SSOSetting&#039;&#039;”. You will see all settings for UMS SSO.&lt;br /&gt;
#Update the Certificate by typing “&#039;&#039;update SSOSetting set LocalCertificateFile =&#039;UMS-SSO.pfx&#039;&#039;”&lt;br /&gt;
#Update the Password by typing “&#039;&#039;update SSOSetting set LocalCertificatePassword =&#039;Velk0mmen2018&#039;&#039;”.[[File:IIS-Cert-9.png|none|thumb|781x781px]]&lt;br /&gt;
#Open the IIS Server and click Start. Click Run type IISReset and then click OK.[[File:IIS-Cert-10.png|none|thumb|377x377px]]&lt;br /&gt;
#Open the AD FS Server and search for AD FS. Click on AD FS Management.[[File:IIS-Cert-11.png|none|thumb|305x305px]]&lt;br /&gt;
#Click on the Trust Relationships folder and then click on Relying Party Trusts.&lt;br /&gt;
#In the details panel, click the relying party trust that you want to update from federation metadata.&lt;br /&gt;
#In the Action panel, click Update from Federation Metadata.&lt;br /&gt;
#In the properties dialog box for the trust, click Update to start the update.&lt;br /&gt;
#When the update is complete, click OK.[[File:IIS-Cert-12.png|none|thumb|745x745px]]&lt;br /&gt;
&lt;br /&gt;
==Certificates - Update Service Communication Certificate==&lt;br /&gt;
&lt;br /&gt;
===Things to have ready:===&lt;br /&gt;
A new updated certificate with private key - &amp;lt;file&amp;gt;.pfx&lt;br /&gt;
&lt;br /&gt;
A connection to AD FS server, with administrator rights.&lt;br /&gt;
&lt;br /&gt;
First install the certificate on the server, select my computer when asked.&lt;br /&gt;
&lt;br /&gt;
Now go to AD FS -&amp;gt; Service -&amp;gt; Certificates -&amp;gt; Set Service Communications Certificate...&lt;br /&gt;
&lt;br /&gt;
Now select &amp;quot;view more&amp;quot; -&amp;gt; And select the new certificate&lt;br /&gt;
&lt;br /&gt;
[[File:ADFSChangeCertificate.png|1389x1389px]]&lt;br /&gt;
&lt;br /&gt;
And now we need to set the certificate on the http.sys on adfs&lt;br /&gt;
 Set-AdfsSslCertificate -Thumpprint xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&lt;br /&gt;
Now go to Services and restart the AD FS Service&lt;br /&gt;
&lt;br /&gt;
==Certificates - Automatic rollover==&lt;br /&gt;
Out of the box, ADFS generates two self-signed certificates that are good for one year. One certificate for token signing, and one for token encryption.&lt;br /&gt;
&lt;br /&gt;
The token signing certificate is for signing the tokens used in the user sign on process, and it is considered the “bedrock of security” for ADFS. If someone gained access to this certificate (the public/private key pair), they could impersonate your ADFS environment.&lt;br /&gt;
&lt;br /&gt;
The token decryption certificate is used for encrypting the tokens used in the user sign on process. This certificate isn’t used very often.&lt;br /&gt;
&lt;br /&gt;
For more information about AD FS Certificates see https://blogs.technet.microsoft.com/askpfeplat/2015/01/26/adfs-deep-dive-certificate-planning/&lt;br /&gt;
&lt;br /&gt;
===Token Certificate Validity Periods===&lt;br /&gt;
By default, ADFS is configured to generate self-signed token certificates with a duration of one year. This duration can be changed, but keep in mind that the token-signing certificate is the foundation of the sign on process, and therefore, it really shouldn’t have a duration longer than 3 years.&lt;br /&gt;
&lt;br /&gt;
===ADFS Federation Metadata===&lt;br /&gt;
The public key portion of both certificates are included in the ADFS Federation Metadata, and are available from a public URL endpoint on all ADFS servers in the farm. Relying Party (RP) applications that can consume federation metadata will automatically pick up certificate changes whenever they pull the federation metadata file (FederationMetadata.xml) from your ADFS environment.&lt;br /&gt;
&lt;br /&gt;
Example URL&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://adfs.contoso.com/FederationMetadata/2007-06/FederationMetadata.xml&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Before performing a token certificate rollover, you will want to reach out to your RP partners (application owners) to see how often their application pulls the federation metadata so that they will experience little to no downtime before trusting the new certificates.&lt;br /&gt;
&lt;br /&gt;
However, most applications do not automatically retrieve the federation metadata on a schedule. Instead, an application owner will need to import the federation metadata from an XML file, or manually force the application to retrieve the federation metadata from the URL endpoint.&lt;br /&gt;
&lt;br /&gt;
And then there’s the applications that don’t consume federation metadata at all — they have to be manually updated. This means you will need to send the public key portion of the new certificates to the application owners.&lt;br /&gt;
&lt;br /&gt;
===Certificate and Rollover Settings===&lt;br /&gt;
Run the following PowerShell command on the primary ADFS server to view the properties related to certificates:&lt;br /&gt;
 Get-AdfsProperties | FL AutoCert*, Certificate*&lt;br /&gt;
&lt;br /&gt;
===ADFS Properties Related to Certificate Renewal===&lt;br /&gt;
&#039;&#039;&#039;Auto Certificate Rollover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the auto-rollover process is enabled (set to “True”), ADFS will automatically generate new “Secondary” certificates before the current ones expire, and then eventually promote them to be “Primary”.  For a manual renewal process, this should be set to “False” until you’re ready to generate new “Secondary” certificates.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Certificate Generation Threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
New certificates will be generated this number of days before the expiration of the current “Primary” certificates.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Certificate Promotion Threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Number of days the newly generated certificate will exist before being promoted from the “Secondary” certificate to the “Primary” certificate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Certificate Critical Threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Number of days prior to expiry of the certificates before a new certificate is generated and promoted to the “Primary” certificate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Certificate Duration&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Validity period of the auto-generated certificates. Default is 1 year.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Certificate Rollover Interval&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Number of minutes at which ADFS checks to see if a new certificate needs to be generated.&lt;br /&gt;
&lt;br /&gt;
===Token Certificate Rollover Process===&lt;br /&gt;
There are 3 approaches for rolling over the token certificates. Which one to use will depend on the number of relying party trusts you have, the level of control you wish to exert upon the process, and the timing of the certificate expirations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatic Staged Rollover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You would use this process when ADFS controls when the new self-signed token certificates are generated, and when they are promoted to become the “Primary” certificates.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manual Staged Rollover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You would use this process to manually control when the new self-signed token certificates are generated, and when they are promoted to become the “Primary” certificates.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Immediate Manual Rollover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Think of this as a certificate cut-over process.  You would do this if you wanted to roll over your certificates immediately without having a set of primary and secondary certificates.  You would also do this if your current certificates expired and you need to renew immediately.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that there will be outage when Token certificates are immediately generated &amp;amp; promoted.  The relying parties (application owners) must update their configuration with the new certificates, but until they do so, single sign-on will not work.&lt;br /&gt;
&lt;br /&gt;
===Automatic Staged Rollover===&lt;br /&gt;
This process should only be used if you have already communicated to all your relying party application owners with information about the schedule for which the new certificates will be generated, when they will be promoted to the “Primary” certificate, and when the old certificates will expire.&lt;br /&gt;
&lt;br /&gt;
Note that an ADFS administrator will need to export the public portion of the new certificates and send them to the application owners.&lt;br /&gt;
&lt;br /&gt;
Additionally, you can use this process if all of the relying party applications pull your ADFS federation metadata automatically on a schedule. However, this is very rare because most SaaS providers do not want to incur the expense of querying federation metadata changes for hundreds, thousands, or even millions of endpoints. More than likely, you will need to coordinate with the application owners to update their applications.&lt;br /&gt;
&lt;br /&gt;
Permissions: Domain Admin &amp;amp; Local Admin on the primary ADFS server in the farm.&lt;br /&gt;
&lt;br /&gt;
Step 1: Certificate Duration&lt;br /&gt;
&lt;br /&gt;
Set the number of days that will become the validity period of the new self-signed token certificates.&lt;br /&gt;
&lt;br /&gt;
*1 Year: 365&lt;br /&gt;
*3 Years: 1095&lt;br /&gt;
*5 Years: 1827&lt;br /&gt;
&lt;br /&gt;
 Set-ADFSProperties -CertificateDuration 1095&lt;br /&gt;
Step 2: Certificate Generation Threshold&lt;br /&gt;
&lt;br /&gt;
Set the number of days before the expiration date of the current certificates that ADFS should generate the new certificates. Thirty days is usually a good number, but you could make it more.&lt;br /&gt;
 Set-ADFSProperties -CertificateGenerationThreshold 30&lt;br /&gt;
Step 3: Certificate Promotion Threshold&lt;br /&gt;
&lt;br /&gt;
When ADFS generates the new self-signed certificates, they are initially set as “Secondary” certificates. ADFS will then use the value of this property to determine the number of days after the new certificates are generated to promote them to be the “Primary” certificates.&lt;br /&gt;
 Set-ADFSProperties -CertificatePromotionThreshold 25&lt;br /&gt;
Step 4: Certificate Critical Threshold&lt;br /&gt;
&lt;br /&gt;
If for some reason ADFS has not generated new self-signed certificates, or newly generated certificates have not been promoted to “Primary”, ADFS will perform these actions within the number of days set in this property prior to expiry of the current primary certificates. Leaving the default 2 days is usually best.&lt;br /&gt;
 Set-ADFSProperties -CertificateCriticalThreshold 2&lt;br /&gt;
Step 5: Auto Certificate Rollover&lt;br /&gt;
&lt;br /&gt;
This enables/disables the ADFS certificate rollover process, which uses the properties configured in the previous steps to rollover (renew &amp;amp; promote) the token certificates. This needs to be enabled.&lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $true&lt;br /&gt;
Step 6: Export the New Certificates&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, export the new certificates without their private keys. You can do this while the new certificates are set as “Secondary”.&lt;br /&gt;
&lt;br /&gt;
Open the ADFS Management Console: ADFS &amp;gt; Service &amp;gt; Certificates&lt;br /&gt;
&lt;br /&gt;
For each token certificate, perform the following:&lt;br /&gt;
&lt;br /&gt;
*Right-click the certificate &amp;gt; View Certificate…&lt;br /&gt;
*In the new window &amp;gt; Details (tab) &amp;gt; Copy to File (button) &amp;gt; Next&lt;br /&gt;
*Select: DER Encoded Binary X.509 (.CER) -or- Base-64 Encoded X.509 (.CER)&lt;br /&gt;
*Next &amp;gt; Browse to a location to save the file and give it a name&lt;br /&gt;
*Next &amp;gt; Finish&lt;br /&gt;
&lt;br /&gt;
Note: To export the certificate in .PEM format, choose Base-64 Encoded X.509 (.CER), and then rename the saved file with the .pem file extension.&lt;br /&gt;
&lt;br /&gt;
Step 7: Export the Federation Metadata XML&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, run the below PowerShell commands on the ADFS server to export the new ADFS Federation Metadata XML file. Make sure you modify the File Path before running the commands.&lt;br /&gt;
 # Set the file path&lt;br /&gt;
 $FilePath = &amp;quot;C:\Users\ADFSAdmin\Desktop\ADFS-MetaData.xml&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Export MetaData XML&lt;br /&gt;
 $mUrl = (Get-ADFSEndpoint | where Protocol -eq &amp;quot;Federation Metadata&amp;quot;).FullUrl.ToString()&lt;br /&gt;
 $httpHelper = new-object System.Net.WebClient&lt;br /&gt;
 $metadataAsString = $httpHelper.DownloadString($mUrl)&lt;br /&gt;
 $httpHelper.DownloadFile($mUrl , &amp;quot;$($FilePath)&amp;quot;)&lt;br /&gt;
Note:  If you export the metadata while there are both primary and secondary certificates, both of the certificates will be included in the XML file.  After the secondary certificates are promoted to primary, and the old certificates are deleted, you should generate a new XML file for future use.&lt;br /&gt;
&lt;br /&gt;
===Manual Staged Rollover===&lt;br /&gt;
You would use this process to manually control when the new self-signed token certificates are generated, and when they are promoted to become the “Primary” certificates. You will have full control over the rollover process. ADFS will not do anything automatically.&lt;br /&gt;
&lt;br /&gt;
Permissions: Domain Admin &amp;amp; Local Admin on the primary ADFS server in the farm.&lt;br /&gt;
&lt;br /&gt;
Step 1: Auto Certificate Rollover&lt;br /&gt;
&lt;br /&gt;
This enables/disables the ADFS certificate rollover process, which uses the properties configured in the below steps to rollover (renew &amp;amp; promote) the token certificates automatically. This should be set to False. If not, run the following command.&lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $false&lt;br /&gt;
Step 2: Certificate Duration&lt;br /&gt;
&lt;br /&gt;
Set the number of days that will become the validity period of the new self-signed token certificates.&lt;br /&gt;
&lt;br /&gt;
*1 Year: 365&lt;br /&gt;
*3 Years: 1095&lt;br /&gt;
*5 Years: 1827&lt;br /&gt;
&lt;br /&gt;
 Set-ADFSProperties -CertificateDuration 1095&lt;br /&gt;
Step 3: Certificate Generation Threshold&lt;br /&gt;
&lt;br /&gt;
Set the number of days before the expiration date of the current certificates that ADFS should generate the new certificates. Depending on when you plan to manually generate the new certificates, this number should be greater than the number of days between when you generate the new certificates, and when the old certificates expire.&lt;br /&gt;
&lt;br /&gt;
You need to set this because you have to enable the ADFS auto rollover process in order to generate the new certificates. After you generate the new certificates, you will immediately disable the auto rollover process.&lt;br /&gt;
&lt;br /&gt;
Assuming you will generate the new certificates 30 days before the old ones expire, you could set this to 40.&lt;br /&gt;
 Set-ADFSProperties -CertificateGenerationThreshold 40&lt;br /&gt;
Step 4: Certificate Promotion Threshold&lt;br /&gt;
&lt;br /&gt;
When ADFS generates the new self-signed certificates, they are initially set as “Secondary” certificates. ADFS will then use the value of this property to determine the number of days after the new certificates are generated to promote them to be the “Primary” certificates.&lt;br /&gt;
&lt;br /&gt;
Even though the ADFS auto rollover process will be disabled, this property should be set to a number lower than the above Certificate Generation Threshold property.&lt;br /&gt;
 Set-ADFSProperties -CertificatePromotionThreshold 35&lt;br /&gt;
Step 5: Certificate Critical Threshold&lt;br /&gt;
&lt;br /&gt;
If for some reason ADFS has not generated new self-signed certificates, or newly generated certificates have not been promoted to “Primary”, ADFS will perform these actions within the number of days set in this property prior to expiry of the current primary certificates. Leaving the default 2 days is usually best.&lt;br /&gt;
 Set-ADFSProperties -CertificateCriticalThreshold 2&lt;br /&gt;
Step 6: Generate the New Certificates&lt;br /&gt;
&lt;br /&gt;
When you are ready to generate the new token certificates as “Secondary” certificates, use the below PowerShell commands. Both the current “Primary” certificates and the new “Secondary” certificates will be available to the relying party applications.&lt;br /&gt;
&lt;br /&gt;
Note that you cannot manually generate the new token certificates when the ADFS auto rollover process is disabled. Therefore, the commands enable the process, generates the new certificates as “Secondary”, and then disables the process.&lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $true&lt;br /&gt;
 &lt;br /&gt;
 Update-AdfsCertificate -CertificateType Token-Decrypting&lt;br /&gt;
 Update-AdfsCertificate -CertificateType Token-Signing&lt;br /&gt;
 &lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $false&lt;br /&gt;
Step 7: Export the Certificates&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, export the certificates without their private keys.&lt;br /&gt;
&lt;br /&gt;
Open the ADFS Management Console: ADFS &amp;gt; Service &amp;gt; Certificates&lt;br /&gt;
&lt;br /&gt;
For each token certificate, perform the following:&lt;br /&gt;
&lt;br /&gt;
*Right-click the certificate &amp;gt; View Certificate…&lt;br /&gt;
*In the new window &amp;gt; Details (tab) &amp;gt; Copy to File (button) &amp;gt; Next&lt;br /&gt;
*Select: DER Encoded Binary X.509 (.CER) -or- Base-64 Encoded X.509 (.CER)&lt;br /&gt;
*Next &amp;gt; Browse to a location to save the file and give it a name&lt;br /&gt;
*Next &amp;gt; Finish&lt;br /&gt;
&lt;br /&gt;
Note: To export the certificate in .PEM format, choose Base-64 Encoded X.509 (.CER), and then rename the saved file with the .pem file extension.&lt;br /&gt;
&lt;br /&gt;
Step 8: Export the Federation Metadata XML&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, run the below PowerShell commands on the ADFS server to export the ADFS Federation Metadata XML file. Make sure you modify the File Path before running the commands.&lt;br /&gt;
 # Set the file path&lt;br /&gt;
 $FilePath = &amp;quot;C:\Users\ADFSAdmin\Desktop\ADFS-MetaData.xml&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Export MetaData XML&lt;br /&gt;
 $mUrl = (Get-ADFSEndpoint | where Protocol -eq &amp;quot;Federation Metadata&amp;quot;).FullUrl.ToString()&lt;br /&gt;
 $httpHelper = new-object System.Net.WebClient&lt;br /&gt;
 $metadataAsString = $httpHelper.DownloadString($mUrl)&lt;br /&gt;
 $httpHelper.DownloadFile($mUrl , &amp;quot;$($FilePath)&amp;quot;)&lt;br /&gt;
Note:  Both primary and secondary certificates will be included in the XML file.  After you promote the new certificates and delete the old certificates, you should generate a new XML file for future use.&lt;br /&gt;
&lt;br /&gt;
Step 9: Promote the New Certificates&lt;br /&gt;
&lt;br /&gt;
Before the old certificates expire, you need to promote the new certificates to “Primary”.&lt;br /&gt;
&lt;br /&gt;
ADFS Management Console: ADFS &amp;gt; Service &amp;gt; Certificates&lt;br /&gt;
&lt;br /&gt;
For each “Secondary” token certificate, perform the following:&lt;br /&gt;
&lt;br /&gt;
*Right-click the certificate &amp;gt; Set as Primary&lt;br /&gt;
&lt;br /&gt;
Step 10: Delete the Old Certificates&lt;br /&gt;
&lt;br /&gt;
After the old certificates have expired, you can delete them from the ADFS Management Console. Note that you only have the option to delete “Secondary” certificates. You cannot delete a “Primary” certificate.&lt;br /&gt;
&lt;br /&gt;
ADFS Management Console: ADFS &amp;gt; Service &amp;gt; Certificates&lt;br /&gt;
&lt;br /&gt;
For each “Secondary” token certificate, perform the following:&lt;br /&gt;
&lt;br /&gt;
*Right-click the certificate &amp;gt; Delete&lt;br /&gt;
&lt;br /&gt;
===Immediate Manual Rollover===&lt;br /&gt;
When doing an immediate rollover, you force ADFS to immediately generate new certificates, promote them to “Primary”, and delete the old certificates.&lt;br /&gt;
&lt;br /&gt;
You would use these steps if you have a few relying party trusts and the application owners are ready to pull the new federation metadata from the ADFS public endpoint after a rollover. You would also use these steps if the ADFS auto rollover process is disabled, and your token certificates have expired.&lt;br /&gt;
&lt;br /&gt;
After the rollover, you can export the new certificates &amp;amp; federation metadata, and send them to your relying party application owners.&lt;br /&gt;
&lt;br /&gt;
Permissions: Domain Admin &amp;amp; Local Admin on the primary ADFS server in the farm.&lt;br /&gt;
&lt;br /&gt;
Step 1: Certificate Duration&lt;br /&gt;
&lt;br /&gt;
Set the number of days that will become the validity period of the new self-signed token certificates.&lt;br /&gt;
&lt;br /&gt;
*1 Year: 365&lt;br /&gt;
*3 Years: 1095&lt;br /&gt;
*5 Years: 1827&lt;br /&gt;
&lt;br /&gt;
 Set-ADFSProperties -CertificateDuration 1095&lt;br /&gt;
Step 2: Generate the New Certificates&lt;br /&gt;
&lt;br /&gt;
Note that you cannot generate the new token certificates when the ADFS auto rollover process is disabled. Therefore, the below commands enable the process, generate the new certificates, and then disable the process. The -Urgent switch indicates that the certificate rollover process should happen immediately, and remove older certificates.&lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $true&lt;br /&gt;
 &lt;br /&gt;
 Update-AdfsCertificate -CertificateType Token-Decrypting -Urgent&lt;br /&gt;
 Update-AdfsCertificate -CertificateType Token-Signing -Urgent&lt;br /&gt;
 &lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $false&lt;br /&gt;
Step 3: Export the Certificates&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, export the certificates without their private keys.&lt;br /&gt;
&lt;br /&gt;
Open the ADFS Management Console: ADFS &amp;gt; Service &amp;gt; Certificates&lt;br /&gt;
&lt;br /&gt;
For each token certificate, perform the following:&lt;br /&gt;
&lt;br /&gt;
*Right-click the certificate &amp;gt; View Certificate…&lt;br /&gt;
*In the new window &amp;gt; Details (tab) &amp;gt; Copy to File (button) &amp;gt; Next&lt;br /&gt;
*Select: DER Encoded Binary X.509 (.CER) -or- Base-64 Encoded X.509 (.CER)&lt;br /&gt;
*Next &amp;gt; Browse to a location to save the file and give it a name&lt;br /&gt;
*Next &amp;gt; Finish&lt;br /&gt;
&lt;br /&gt;
Note: To export the certificate in .PEM format, choose Base-64 Encoded X.509 (.CER), and then rename the saved file with the .pem file extension.&lt;br /&gt;
&lt;br /&gt;
Step 4: Export the Federation Metadata XML&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, run the below PowerShell commands on the ADFS server to export the ADFS Federation Metadata XML file. Make sure you modify the File Path before running the commands.&lt;br /&gt;
 # Set the file path&lt;br /&gt;
 $FilePath = &amp;quot;C:\Users\ADFSAdmin\Desktop\ADFS-MetaData.xml&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Export MetaData XML&lt;br /&gt;
 $mUrl = (Get-ADFSEndpoint | where Protocol -eq &amp;quot;Federation Metadata&amp;quot;).FullUrl.ToString()&lt;br /&gt;
 $httpHelper = new-object System.Net.WebClient&lt;br /&gt;
 $metadataAsString = $httpHelper.DownloadString($mUrl)&lt;br /&gt;
 $httpHelper.DownloadFile($mUrl , &amp;quot;$($FilePath)&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How to set SPN&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;http://www.gatepoint.ch/cmdreferenz/html/9341c753-11ff-4acc-993c-b05d50f32330.htm#bkmk_examples&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Update metadata to Office365.  (&#039;&#039;&#039;Update-MsolFederatedDomain -DomainName mydomain.com -SupportMultiDomain&#039;&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FOCES certificate til STIL OIOSAML 3.0 ===&lt;br /&gt;
https://www.nets.eu/dk-da/l%C3%B8sninger/nemid/funktionssignatur&lt;br /&gt;
&lt;br /&gt;
==Final==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=Studily&amp;diff=4465</id>
		<title>Studily</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=Studily&amp;diff=4465"/>
		<updated>2022-08-26T07:51:43Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&amp;lt;big&amp;gt;The Studi.ly syncronization module exports timetable blocks to the Studi.ly APP in Teams.&amp;lt;/big&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
[[GetTimetable]] - This needs to be executed before export data is available&amp;lt;br /&amp;gt;&lt;br /&gt;
===UMS Configurator settings===&lt;br /&gt;
[[File:Studily settings.png|none|thumb|664x664px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Description&lt;br /&gt;
&lt;br /&gt;
*Insert a name or description for the setting&lt;br /&gt;
&lt;br /&gt;
Tenant settings&lt;br /&gt;
&lt;br /&gt;
*Select the tenant settings available from [[Office365 Tenant]]&lt;br /&gt;
&lt;br /&gt;
ClientID&lt;br /&gt;
&lt;br /&gt;
*Insert ClientID requested from Inlogic&lt;br /&gt;
&lt;br /&gt;
ClientSecret&lt;br /&gt;
&lt;br /&gt;
*Insert ClientSecret requested from Inlogic&lt;br /&gt;
&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
*Choose the environment your Studily is running on (default production)&lt;br /&gt;
&lt;br /&gt;
SQL Sentence&lt;br /&gt;
&lt;br /&gt;
*insert parameters for filtering purposes&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Studily FAQ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Why does Studily calender view contain more timetable blocks than personal calendar?====&lt;br /&gt;
&lt;br /&gt;
*Studily will per default show all timetable blocks for the ALL Teams you are a member or owner of.&lt;br /&gt;
*Your personal calendar only contains your own timetable blocks&lt;br /&gt;
*Therefore users may have differences in Calendar view of Studily and their personal calendar.&lt;br /&gt;
&lt;br /&gt;
====Overlapping Timetable blocks shown in Studily====&lt;br /&gt;
&lt;br /&gt;
*Due to above mentioned presentation of Teams timetable blocks, there might be overlapping blocks in case teams are planned at the same time &lt;br /&gt;
&lt;br /&gt;
====How do I activate the Studily timetable module?====&lt;br /&gt;
&lt;br /&gt;
*Studi.ly timetable block sync requires the &#039;&#039;&#039;Studily&#039;&#039;&#039; module in your UMS License (please contact salg@inlogic.dk)&lt;br /&gt;
&lt;br /&gt;
==== See timetable blocks for a specific day on a specific teacher sent to studily ====&lt;br /&gt;
 Select * from Studily_TimeTableBlocks&lt;br /&gt;
 Join SkemaBrikker on SkemaBrikker.SkemaBegivenhed_ID = Studily_TimeTableBlocks.SkemaBegivenhed_ID and SkemaBrikker.SkemaBrikkerAdminServers_ID = Studily_TimeTableBlocks.SkemaBrikkerAdminServers_ID&lt;br /&gt;
 Join SkemaBrikker_Teachers on Studily_TimeTableBlocks.SkemaBegivenhed_ID = SkemaBrikker_Teachers.SkemaBegivenhed_ID AND SkemaBrikker_Teachers.SkemaBrikkerAdminServers_ID = Studily_TimeTableBlocks.SkemaBrikkerAdminServers_ID&lt;br /&gt;
 Left Join SkemaBrikker_Rooms on Studily_TimeTableBlocks.SkemaBegivenhed_ID = SkemaBrikker_Rooms.SkemaBegivenhed_ID AND SkemaBrikker_Rooms.SkemaBrikkerAdminServers_ID = Studily_TimeTableBlocks.SkemaBrikkerAdminServers_ID&lt;br /&gt;
 Where skemabrikker.Dato = &#039;31-08-2022&#039; -- Date&lt;br /&gt;
 And SkemaBrikker_Teachers.Initialer = &#039;&#039; -- Teachers initials&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=Studily&amp;diff=4453</id>
		<title>Studily</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=Studily&amp;diff=4453"/>
		<updated>2022-08-24T08:01:10Z</updated>

		<summary type="html">&lt;p&gt;Khm: Created page with &amp;quot;Studi.ly timetable block sync&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Studi.ly timetable block sync&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=GetUsers/Lectio&amp;diff=4421</id>
		<title>GetUsers/Lectio</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=GetUsers/Lectio&amp;diff=4421"/>
		<updated>2022-06-29T13:41:19Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Requirements==&lt;br /&gt;
&lt;br /&gt;
===Required fields that needs to be filled out when extracting data===&lt;br /&gt;
For elever er det de felter med rød cirkel, som er vigtige og skal udfyldes fra start på nær udmeldelsesdato.&lt;br /&gt;
&lt;br /&gt;
Kan findes her: Hovedmenu -&amp;gt; elev -&amp;gt; rediger &lt;br /&gt;
[[File:Getstudentsredigerelev.png|none|thumb|788x788px]]&lt;br /&gt;
&lt;br /&gt;
Hvis ikke brugernavnet er udfyldt kommer eleven ikke med i UMS. Dette kan automatises ved at uploade f.eks. UNI-Login som beskrevet tidligere.&lt;br /&gt;
&lt;br /&gt;
Indmeldelsesdato: bestemmer hvornår den studerende bliver aktiv/oprettet i UMS. Dette kan påvirkes af Grace Period.&lt;br /&gt;
&lt;br /&gt;
Udmeldelsesdato: bestemmer hvornår den studerende stopper. Når denne dato er oprundet vil den studerende blive inaktiv i UMS. Dette kan påvirkes af Grace Period.&lt;br /&gt;
&lt;br /&gt;
For ansatte er det de felter med rød cirkel, som er vigtige og skal udfyldes fra start, på nær fratrædelsesdato.&lt;br /&gt;
&lt;br /&gt;
Kan findes her: Hovedmenu -&amp;gt; lærer -&amp;gt; rediger.&lt;br /&gt;
[[File:Getstudentsredigerlaerer.png|none|thumb|645x645px]]&lt;br /&gt;
&lt;br /&gt;
Ansættelsesdato: bestemmer hvornår læren bliver aktiv/oprettet i UMS. Dette kan påvirkes af Grace Period&lt;br /&gt;
&lt;br /&gt;
Fratædelsesdato: bestemmer hvornår læren stopper. Når denne dato er oprundet vil den ansatte blive inaktiv i UMS. Dette kan påvirkes af Grace Period&lt;br /&gt;
&lt;br /&gt;
Derudover skal den ansatte også være aktiv i dette skoleår.&lt;br /&gt;
&lt;br /&gt;
Notefelterne 1, 2 og 3 kan bruges som kriterier på dataudtrækkene.&lt;br /&gt;
&lt;br /&gt;
[[File:GetUsers Lectio.jpg|none|thumb|656x656px]]&lt;br /&gt;
&lt;br /&gt;
===[[GetUsers/Export Settings|Export settings]]===&lt;br /&gt;
===Field to use as username===&lt;br /&gt;
Choose a field from the administrative system to use as username in UMS. &#039;&#039;&#039;CAUTION if the template has another way to handle usernames (UNI-LOGIN/Username Generator) then THIS IS IGNORED!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Field to use as mobile phone===&lt;br /&gt;
Dette felt bestemmer hvor UMS skal finde mobiltelefon i Lectio eftersom Lectio ikke har et felt til dette. Dette er også det felt vi uploader til når der skrive tilbage. Hvis ikke det er udfyldt vil UMS ikke bruge noget fra Lectio som mobiltelefon.&lt;br /&gt;
&lt;br /&gt;
===[[GetUsers/ExportPictureSettings|Export picture settings]]===&lt;br /&gt;
===Update userinfo in Lectio i.e. (phone)===&lt;br /&gt;
Tillader UMS og sende mobiltelefon og mail adresse til Lectio. Dette kræver modulet brugerinfo.&lt;br /&gt;
&lt;br /&gt;
===Create teacher profession groups===&lt;br /&gt;
Dette er faggrupperne fra lectio f.eks. DA, PS, TY. De bliver oprettet som grupper i UMS og Aktivitet_LMS er sat til True.&lt;br /&gt;
&lt;br /&gt;
===Export teacher classes===&lt;br /&gt;
Henter de klasser/grupper fra Lectio som er automatisk generet og ikke kan ændres i Lectio. Disse bliver lagt sammen med de indbyggede grupper som også hentes&lt;br /&gt;
&lt;br /&gt;
===Export øvrige hold===&lt;br /&gt;
Henter øvrige hold fra Lectio da disse ikke kommer med i filerne som standard bliver hentet fra Lectio. Aktivitet_LMS er sat til True.&lt;br /&gt;
&lt;br /&gt;
===Update student username with UMS login. Enable password synchronization===&lt;br /&gt;
Dette tillader at man kan opdaterer brugernavne i Lectio med det som er tildelt i UMS f.eks. UNI-Login. Hvis de ændrer brugernavnet til noget andet i Lectio end det som er i UMS, vil den sætte brugernavnet og kodeordet i Lectio til det som UMS har.&lt;br /&gt;
&lt;br /&gt;
Det tillader også at UMS kan sende kodeords ændringer op til Lectio.&lt;br /&gt;
&lt;br /&gt;
===Field to use as Username when uploading to Lectio===&lt;br /&gt;
Dette felt bestemmer hvor UMS skal finde det brugernavn som bliver uploaded til Lectio. Det er i stedet for UMS normale brugernavn.&lt;br /&gt;
&lt;br /&gt;
Note - If value &amp;lt;not used&amp;gt; is selected the existing username extracted from Lectio will be used - (table Students_Before_Criteria is used by this program)&lt;br /&gt;
=FAQ=&lt;br /&gt;
===Rapporter er for store===&lt;br /&gt;
Fjern felter som ikke er påkrævede fra rapporter, husk at alle rapporter skal være ens sat op&lt;br /&gt;
===Rapporter er ikke ens sat op===&lt;br /&gt;
Hvis man har flere Lectio installation i samme UMS database SKAL felterne ligge i samme række følge. Ellers fejler GetStudents og GetSkemabrikker&lt;br /&gt;
===GetStudents er kun delvist udført===&lt;br /&gt;
Hvis brugere kun findes i students_before_criteria men aldrig kommer i students tabellen kan det skyldes problemer med [[STIL_UNI_Login]] synkroniseringen. Verificer at brugere kommer retur fra STIL, se XML filen i usermanagement folderen&lt;br /&gt;
===Lectio henter/bruger ikke rigtige telefonnumre===&lt;br /&gt;
Man skal huske under Lectio settings at angive hvilket felt der skal bruges som Mobile Phone når UMS laver trækket af studerende.&lt;br /&gt;
===Lectio trækket virker ikke===&lt;br /&gt;
Kør GetStudents manuelt ved at dobbeltklikke på exe filen. Tjek at kodeordet til Lectio stadig er gyldigt.&lt;br /&gt;
&amp;lt;br /&amp;gt;Hvorfor kan jeg ikke få Lectio stamklasser ud som LMS hold ?&lt;br /&gt;
&lt;br /&gt;
UMS opretter automatisk LMS hold til aktiviteter med rowtype &#039;LectioCoursesLMS&#039; men ikke til rowtype &#039;Lectiostamklasser&#039;&lt;br /&gt;
&lt;br /&gt;
For at løse dette problem henvises skolen til at oprette et hold på stamklassen, f.eks &amp;quot;MAGY_2018a&amp;quot; i Lectio som skal leve i 3 år.&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=GetUsers/Lectio&amp;diff=4420</id>
		<title>GetUsers/Lectio</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=GetUsers/Lectio&amp;diff=4420"/>
		<updated>2022-06-29T13:38:42Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Requirements==&lt;br /&gt;
&lt;br /&gt;
===Required fields that needs to be filled out when extracting data===&lt;br /&gt;
For elever er det de felter med rød cirkel, som er vigtige og skal udfyldes fra start på nær udmeldelsesdato.&lt;br /&gt;
&lt;br /&gt;
Kan findes her: Hovedmenu -&amp;gt; elev -&amp;gt; rediger &lt;br /&gt;
[[File:Getstudentsredigerelev.png|none|thumb|788x788px]]&lt;br /&gt;
&lt;br /&gt;
Hvis ikke brugernavnet er udfyldt kommer eleven ikke med i UMS. Dette kan automatises ved at uploade f.eks. UNI-Login som beskrevet tidligere.&lt;br /&gt;
&lt;br /&gt;
Indmeldelsesdato: bestemmer hvornår den studerende bliver aktiv/oprettet i UMS. Dette kan påvirkes af Grace Period.&lt;br /&gt;
&lt;br /&gt;
Udmeldelsesdato: bestemmer hvornår den studerende stopper. Når denne dato er oprundet vil den studerende blive inaktiv i UMS. Dette kan påvirkes af Grace Period.&lt;br /&gt;
&lt;br /&gt;
For ansatte er det de felter med rød cirkel, som er vigtige og skal udfyldes fra start, på nær fratrædelsesdato.&lt;br /&gt;
&lt;br /&gt;
Kan findes her: Hovedmenu -&amp;gt; lærer -&amp;gt; rediger.&lt;br /&gt;
[[File:Getstudentsredigerlaerer.png|none|thumb|645x645px]]&lt;br /&gt;
&lt;br /&gt;
Ansættelsesdato: bestemmer hvornår læren bliver aktiv/oprettet i UMS. Dette kan påvirkes af Grace Period&lt;br /&gt;
&lt;br /&gt;
Fratædelsesdato: bestemmer hvornår læren stopper. Når denne dato er oprundet vil den ansatte blive inaktiv i UMS. Dette kan påvirkes af Grace Period&lt;br /&gt;
&lt;br /&gt;
Derudover skal den ansatte også være aktiv i dette skoleår.&lt;br /&gt;
&lt;br /&gt;
Notefelterne 1, 2 og 3 kan bruges som kriterier på dataudtrækkene.&lt;br /&gt;
&lt;br /&gt;
[[File:GetUsers Lectio.jpg|none|thumb|656x656px]]&lt;br /&gt;
&lt;br /&gt;
===[[GetUsers/Export Settings|Export settings]]===&lt;br /&gt;
===Field to use as username===&lt;br /&gt;
Choose a field from the administrative system to use as username in UMS. &#039;&#039;&#039;CAUTION if the template has another way to handle usernames then THIS IS IGNORED!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Field to use as mobile phone===&lt;br /&gt;
Dette felt bestemmer hvor UMS skal finde mobiltelefon i Lectio eftersom Lectio ikke har et felt til dette. Dette er også det felt vi uploader til når der skrive tilbage. Hvis ikke det er udfyldt vil UMS ikke bruge noget fra Lectio som mobiltelefon.&lt;br /&gt;
&lt;br /&gt;
===[[GetUsers/ExportPictureSettings|Export picture settings]]===&lt;br /&gt;
===Update userinfo in Lectio i.e. (phone)===&lt;br /&gt;
Tillader UMS og sende mobiltelefon og mail adresse til Lectio. Dette kræver modulet brugerinfo.&lt;br /&gt;
&lt;br /&gt;
===Create teacher profession groups===&lt;br /&gt;
Dette er faggrupperne fra lectio f.eks. DA, PS, TY. De bliver oprettet som grupper i UMS og Aktivitet_LMS er sat til True.&lt;br /&gt;
&lt;br /&gt;
===Export teacher classes===&lt;br /&gt;
Henter de klasser/grupper fra Lectio som er automatisk generet og ikke kan ændres i Lectio. Disse bliver lagt sammen med de indbyggede grupper som også hentes&lt;br /&gt;
&lt;br /&gt;
===Export øvrige hold===&lt;br /&gt;
Henter øvrige hold fra Lectio da disse ikke kommer med i filerne som standard bliver hentet fra Lectio. Aktivitet_LMS er sat til True.&lt;br /&gt;
&lt;br /&gt;
===Update student username with UMS login. Enable password synchronization===&lt;br /&gt;
Dette tillader at man kan opdaterer brugernavne i Lectio med det som er tildelt i UMS f.eks. UNI-Login. Hvis de ændrer brugernavnet til noget andet i Lectio end det som er i UMS, vil den sætte brugernavnet og kodeordet i Lectio til det som UMS har.&lt;br /&gt;
&lt;br /&gt;
Det tillader også at UMS kan sende kodeords ændringer op til Lectio.&lt;br /&gt;
&lt;br /&gt;
===Field to use as Username when uploading to Lectio===&lt;br /&gt;
Dette felt bestemmer hvor UMS skal finde det brugernavn som bliver uploaded til Lectio. Det er i stedet for UMS normale brugernavn.&lt;br /&gt;
&lt;br /&gt;
Note - If value &amp;lt;not used&amp;gt; is selected the existing username extracted from Lectio will be used - (table Students_Before_Criteria is used by this program)&lt;br /&gt;
=FAQ=&lt;br /&gt;
===Rapporter er for store===&lt;br /&gt;
Fjern felter som ikke er påkrævede fra rapporter, husk at alle rapporter skal være ens sat op&lt;br /&gt;
===Rapporter er ikke ens sat op===&lt;br /&gt;
Hvis man har flere Lectio installation i samme UMS database SKAL felterne ligge i samme række følge. Ellers fejler GetStudents og GetSkemabrikker&lt;br /&gt;
===GetStudents er kun delvist udført===&lt;br /&gt;
Hvis brugere kun findes i students_before_criteria men aldrig kommer i students tabellen kan det skyldes problemer med [[STIL_UNI_Login]] synkroniseringen. Verificer at brugere kommer retur fra STIL, se XML filen i usermanagement folderen&lt;br /&gt;
===Lectio henter/bruger ikke rigtige telefonnumre===&lt;br /&gt;
Man skal huske under Lectio settings at angive hvilket felt der skal bruges som Mobile Phone når UMS laver trækket af studerende.&lt;br /&gt;
===Lectio trækket virker ikke===&lt;br /&gt;
Kør GetStudents manuelt ved at dobbeltklikke på exe filen. Tjek at kodeordet til Lectio stadig er gyldigt.&lt;br /&gt;
&amp;lt;br /&amp;gt;Hvorfor kan jeg ikke få Lectio stamklasser ud som LMS hold ?&lt;br /&gt;
&lt;br /&gt;
UMS opretter automatisk LMS hold til aktiviteter med rowtype &#039;LectioCoursesLMS&#039; men ikke til rowtype &#039;Lectiostamklasser&#039;&lt;br /&gt;
&lt;br /&gt;
For at løse dette problem henvises skolen til at oprette et hold på stamklassen, f.eks &amp;quot;MAGY_2018a&amp;quot; i Lectio som skal leve i 3 år.&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=UMS_Photo&amp;diff=4318</id>
		<title>UMS Photo</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=UMS_Photo&amp;diff=4318"/>
		<updated>2022-05-09T12:27:15Z</updated>

		<summary type="html">&lt;p&gt;Khm: /* FAQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UMS FOTO er en foto løsning til skoler og uddannelsesinstitutioner som bruger UMS. UMS FOTO gør det nemt, altid at have opdateret fotos på de studerende og ansatte. Det hele styres igennem UMS, og er nemt, hurtigt og intuitivt.&lt;br /&gt;
&lt;br /&gt;
UMS FOTO giver brugerne mulighed for selv at opdatere deres studiebilleder, der hvor det passer dem, når det passer dem og på den enhed de lige har ved hånden. Dette betyder at det er lige meget om du er ved en computer, bruger UMS App på din telefon eller om det er den søde kontordame der tager dit billede.&lt;br /&gt;
&lt;br /&gt;
Når billedet er blevet taget og sendt op til UMS skal det igennem en godkendelse, skolen bestemmer selv hvem der skal godkende billeder og om de overhovedet vil have godkendelsestrinet med.&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
&lt;br /&gt;
===Supported administrative systems===&lt;br /&gt;
&lt;br /&gt;
===Module requirements===&lt;br /&gt;
&lt;br /&gt;
===Additional functionality===&lt;br /&gt;
&lt;br /&gt;
===Testing after setup===&lt;br /&gt;
&lt;br /&gt;
===What to have ready===&lt;br /&gt;
&lt;br /&gt;
===Is any physical item required===&lt;br /&gt;
&lt;br /&gt;
===Should third party be contacted===&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
For at sætte UMS FOTO op skal vi et smut forbi Web setup i configuratoren. Der er et punkt som hedder UMS FOTO, hvor man kan slå de forskellige funktioner til og fra, som lyster. ”Enable selfie in userinfo” – giver brugerne mulighed for at selv at opdatere deres billede via bruger info modulet. Hvorimod at ”Enable selfie in app” giver mulighed for at opdatere billedet via UMS App.&lt;br /&gt;
&lt;br /&gt;
Derudover skal vi specificere et sted at ligge de uploadet billeder, og en service account som har rettigheder til at skrive i de angivet mapper.&lt;br /&gt;
&lt;br /&gt;
Selfie Access group er en sikkerheds gruppe i Active directory som bestemmer hvem der må godkende og se uploadet billeder.&lt;br /&gt;
[[File:Photowebsetup.png|none|thumb|460x460px]]&lt;br /&gt;
&lt;br /&gt;
Nu har vi fået sat det grundlæggende op for at få UMS FOTO til at virke, nu skal vi fortælle UMS hvor den skal finde de godkendte billeder, som skal flyttes over.&lt;br /&gt;
&lt;br /&gt;
Dette gøres under Settings -&amp;gt; Picture libraries&lt;br /&gt;
[[File:Photopicturelibrary.png|none|thumb|563x563px]]&lt;br /&gt;
&lt;br /&gt;
Her ses et eksempel på hvordan de sættes op.&lt;br /&gt;
&lt;br /&gt;
Når man har valgt sin sti, i vores tilfælde har vi valgt at ligge vores selfie billeder på [:File://file/d$/Development/AlfSite \\file\d$\Development\AlfSite] - systemet opretter så selv en rækker mapper inde under den folder.&lt;br /&gt;
&lt;br /&gt;
Der bliver oprettet tre mapper:&lt;br /&gt;
&lt;br /&gt;
Approved – til alle de godkendte billeder, ingen billeder bliver lagt her, før de er blevet godkendt igennem godkendelses systemet på UMS Web.&lt;br /&gt;
&lt;br /&gt;
Rejected – Til alle de billeder som ikke er blevet godkendt, bliver lagt med en dato for hvornår de er blevet afvist.&lt;br /&gt;
&lt;br /&gt;
Pending – Det er den folder som alle ventende billeder bliver lagt i.&lt;br /&gt;
&lt;br /&gt;
Så hvis man ikke vil have godkendelse af billeder, kan man vælge pending mappen i stedet for. Så springer man hele godkendelsesdelen over.&lt;br /&gt;
&lt;br /&gt;
===UMS Web – Bruger info===&lt;br /&gt;
[[File:Photouserinfo.png|none|thumb|636x636px]]&lt;br /&gt;
&lt;br /&gt;
Hvis UMS Foto er slået til på brugerinfo, vil man, når man er i gang med at rette sine oplysninger, få mulighed for at selv at uploade et billede til godkendelse.&lt;br /&gt;
&lt;br /&gt;
===UMS Web – Velkomst modul===&lt;br /&gt;
Det er også muligt at bruge UMS Velkomst til at uploade nyt billede i forbindelse med skolestart.&lt;br /&gt;
&lt;br /&gt;
Når man har sat siden ”update photo” ind i velkomst modulet, bliver brugerne vist en side hvor deres aktuelle billede vises, og hvor der er mulighed for at opdatere dette.&lt;br /&gt;
&lt;br /&gt;
Billedet bliver lagt i samme mappe som de andre billeder som venter på godkendelse.&lt;br /&gt;
[[File:Photowelcome.png|none|thumb|636x636px]]&lt;br /&gt;
&lt;br /&gt;
På sigt kommer der mulighed for at skrive nogle retningslinjer som bliver vist her.&lt;br /&gt;
&lt;br /&gt;
===UMS Web Tag billede===&lt;br /&gt;
Derudover er der mulighed for at tage billeder af de studerende ved hjælp af et webcam, dette gøres i kontrolpanelet.&lt;br /&gt;
&lt;br /&gt;
Når man har søgt en bruger fra, vælger man tag billede, og der kommer en popup op, hvor man bliver bedt om at aktivere kameraet via browserens sikkerhedsstyring.&lt;br /&gt;
&lt;br /&gt;
Når man har tændt kameraet er det bare at tage billedet, og billede er godkendt og sendt videre i systemet.&lt;br /&gt;
[[File:Photopicture.png|none|thumb|636x636px]]&lt;br /&gt;
&lt;br /&gt;
Denne funktion kræver at der bruges en moderne browser, som f.eks nyeste version af Google Chrome eller Firefox. Internet Explorer er i gang med at udvikle deres, så de også kan være med. Dog er det uvist hvornår dette er tilgængeligt. &lt;br /&gt;
&lt;br /&gt;
===UMS Photobooth===&lt;br /&gt;
Giver det administrative personale mulighed for at tage billeder af de studerende, således bliver de opstillede fotobokse overflødige og billedet kan godkendes med det samme.&lt;br /&gt;
&lt;br /&gt;
I kontrolpanelet forfindes&lt;br /&gt;
[[File:Photocontrolpanel.png|none|thumb|567x567px]]&lt;br /&gt;
[[File:Phototakepicture.png|none|thumb|567x567px]]&lt;br /&gt;
[[File:Phototakepicture2.png|none|thumb|378x378px]]&lt;br /&gt;
&lt;br /&gt;
===UMS App===&lt;br /&gt;
For at få adgang til at uploade et selfie billede skal opsætning i configuratoren være på plads og selfie slået til for app’en. Man tager et billede på mobilen ved at gå ind i Dine oplysninger -&amp;gt; Rediger og vælger ”Tag billede” eller ”Vælg fra fotos” hvor man vælger fra sit galleri.&lt;br /&gt;
[[File:Photoapp1.png|none|thumb]]&lt;br /&gt;
[[File:Photoapp2.png|none|thumb]]&lt;br /&gt;
[[File:Photoapp3.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
Når billedet er uploaded vises en information til brugeren at billedet nu er uploaded og venter på godkendelse.&lt;br /&gt;
&lt;br /&gt;
===Godkendelse af billeder===&lt;br /&gt;
[[File:Photoacceptpictures.png|none|thumb|571x571px]]&lt;br /&gt;
&lt;br /&gt;
Alle billeder som afventer godkendelse findes under kontrolpanelet under punktet ”Studiebilleder”.&lt;br /&gt;
&lt;br /&gt;
Der kan du se det aktive billede, afventende billede og tidspunkt for upload. Når du klikker på et af billederne, kommer det op stort.&lt;br /&gt;
&lt;br /&gt;
Når man vil godkende et billede, trykker man på det grønne flueben, og næste gang servicen kører, bliver billedet lagt over i ums.&lt;br /&gt;
&lt;br /&gt;
Hvis et billede er for frækt til at blive godkendt, trykker man på det røde kryds.&lt;br /&gt;
[[File:Photoallpictures.png|none|thumb|615x615px]]&lt;br /&gt;
&lt;br /&gt;
Så kommer der en boks op, hvor man har mulighed for at give brugeren en forklaring på hvorfor billedet ikke er blevet godkendt. Den meddelelse bliver sendt ud som en SMS, hvis man har det ellers sender den en mail til brugeren.&lt;br /&gt;
&lt;br /&gt;
==Technical settings==&lt;br /&gt;
&lt;br /&gt;
==UMS Photo and UMS Frontend in DMZ==&lt;br /&gt;
When the UMS Frontend server is placed inside the DMZ, theres no need to have the pictures inside the domain, unless you have some kind of student card printer.&lt;br /&gt;
&lt;br /&gt;
So one way is to place the pictures on a UNC share created on the DMZ frontend server. When this is created, you need to create a domain account using SQL.&lt;br /&gt;
Use the following:&lt;br /&gt;
&lt;br /&gt;
 INSERT INTO DomainAccounts (Description, DomainUser, DomainPassword, Domain, ShowOnWeb) VALUES (&#039;Description&#039;, &#039;DomainUser&#039;, &#039;DomainPassword&#039;, &#039;Domain&#039;, 0)&lt;br /&gt;
&lt;br /&gt;
You need to specify the computername of the frontend server in the domain column for this domain account.&lt;br /&gt;
&lt;br /&gt;
Description: The Description of DomainAccount&lt;br /&gt;
DomainUser: Username for the user used to connect to the UNC path&lt;br /&gt;
DomainPassword: The password used to connect to the UNC path&lt;br /&gt;
Domain: This must be set to the computername of DMZ frontend server&lt;br /&gt;
ShowOnWeb: Should this DomainAccount be used on the login page? In this case, NO!&lt;br /&gt;
&lt;br /&gt;
Now go inside the configurator, select Web Setup, Select UMS Photo and now select the newly created DomainAccount.&lt;br /&gt;
&lt;br /&gt;
-- picture --&lt;br /&gt;
&lt;br /&gt;
Restart the information service on the frontend server.&lt;br /&gt;
&lt;br /&gt;
Open the Event Viewer and check for errors, if none and the site starts, you can now test that your pictures is uploaded and located on the frontend server.&lt;br /&gt;
&lt;br /&gt;
Hereafter you&#039;ll need to get pictures from the UNC share into the UMS folder.&lt;br /&gt;
&lt;br /&gt;
The easiest way to do this, is to create a small .bat file containing:&lt;br /&gt;
 xcopy c:\pictures\Approved\*.jpg c:\inetpub\wwwroot\Pictures /s /y&lt;br /&gt;
 xcopy c:\pictures\Approved\*.jpeg c:\inetpub\wwwroot\Pictures /s /y&lt;br /&gt;
&lt;br /&gt;
and then trigger the bat file using Scheduled task inside windows.&lt;br /&gt;
&lt;br /&gt;
Last remarks:&lt;br /&gt;
&lt;br /&gt;
Do NOT use CPR for UMS Photo when deploying this setup.&lt;br /&gt;
Do NOT put UNC path inside wwwroot folder.&lt;br /&gt;
Handle the account like any other DomainAccount or Service Account - With care!&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Iphone does not present pictures available in Pictures folder?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If the UMS Frontend is installed on a Windows Server 2008 R2, the TLS version 1.2 must be enabled.&lt;br /&gt;
&lt;br /&gt;
We highly recommend upgrading your UMS servers to run Windows 2016 to have features enabled default.&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=SMS_Alert&amp;diff=4307</id>
		<title>SMS Alert</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=SMS_Alert&amp;diff=4307"/>
		<updated>2022-04-08T08:04:20Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SMS Alert provides fast and effective warnings in case of fire, bomb threats, school shootings and other emergency situations. When a crisis arises, everyone needs to be informed of it. And it needs to be done in a simple and transparent way. The SMS Alert module is separate from our other SMS modules, to avoid confusion with other SMS templates. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits==&lt;br /&gt;
There are many benefits of having SMS Alert. The module:&lt;br /&gt;
&lt;br /&gt;
*Supports direct message to the appropriate authorities&lt;br /&gt;
*Immediately notifies everyone via their mobile phones&lt;br /&gt;
*Creates a sense of security for everyone at the school and their relatives&lt;br /&gt;
*Gives you an easy editor with predefined texts, which are almost ready to be sent out&lt;br /&gt;
*Lets you defines who has access to SMS Alert&lt;br /&gt;
*Turns your entire screen red, when you open the open the module to issue an alarm&lt;br /&gt;
&lt;br /&gt;
==Requirement==&lt;br /&gt;
&lt;br /&gt;
This module is already installed with the standard UMS installation. It requires a valid license for the module, which can be checked under “Help/License info”:&lt;br /&gt;
[[File:SmsAlertMenuLicenseInfo.png|none|thumb|827x827px]]&lt;br /&gt;
&lt;br /&gt;
The required license is called “SMS Alert”:&lt;br /&gt;
[[File:SmsAlertLicenseInfo.png|none|thumb|651x651px]]&lt;br /&gt;
&lt;br /&gt;
After the license has been verified, UMS is ready to be configured.&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
All settings regarding this module are located in Template settings, just as “ordinary” users that UMS maintains.&lt;br /&gt;
The concept is that each template (group of users), has a location attached to them. This could be the same location for all users/templates-&amp;gt;All users on the school is alerted at the same time. Or it could be different locations (a large school with multiple addresses).&lt;br /&gt;
[[File:SmsAlertTemplateEditor.png|none|thumb|822x822px]]&lt;br /&gt;
&lt;br /&gt;
Simply edit an existing template and click “Manage…” under location.&lt;br /&gt;
&lt;br /&gt;
[[File:SmsAlertLocation.png|354x354px]]&lt;br /&gt;
&lt;br /&gt;
[[File:SmsAlertAccessGroup.png|none|thumb]] &lt;br /&gt;
&lt;br /&gt;
The settings for a location is:&lt;br /&gt;
&lt;br /&gt;
*Description: A descriptive name for the location (this is the name that the users are shown)&lt;br /&gt;
*Access group: Members of the chosen group will have the rights to publish an alert for this location&lt;br /&gt;
*Extra numbers: Insert extra phone numbers that will receive this message first (ex. The local police station)&lt;br /&gt;
*Extra mailing lists: Insert extra emails that will receive the message&lt;br /&gt;
*SMS Alerts: Choose/design the alert messages&lt;br /&gt;
&lt;br /&gt;
==Locations - and how they work==&lt;br /&gt;
When you stand on a template, it&#039;s only possible to select one location, but you can set the same location on all of your templates to give you a &amp;quot;Select all option&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The selected location in the dropdown is the only one that are visible to the selected users in the AD Group&lt;br /&gt;
&lt;br /&gt;
==SMS Alerts==&lt;br /&gt;
&lt;br /&gt;
Its possible to define multiple alert messages:&lt;br /&gt;
[[File:SmsAlertSmsTemplateEditor.png|none|thumb|467x467px]]&lt;br /&gt;
&lt;br /&gt;
Each alert needs a telling display name, and a short and easy to understand text.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==SMS sending order==&lt;br /&gt;
1. Custom number from UMS Configurator. (E.g., fire brigade and/or police)&lt;br /&gt;
&lt;br /&gt;
2. Learn who has teaching now. (If the alarm is at 11 o&#039;clock, everyone who teaches at 11 o&#039;clock will be notified first.)&lt;br /&gt;
&lt;br /&gt;
3. Teachers that have timetable blocks on that day.&lt;br /&gt;
&lt;br /&gt;
4. Guest users and multiple users.&lt;br /&gt;
&lt;br /&gt;
5. Students that have an active schema for today. (If the alarm is at 11 o&#039;clock, everyone who has class at 11 o&#039;clock will be notified first.)&lt;br /&gt;
&lt;br /&gt;
6. Students that have scheduled timetable blocks later that day. &lt;br /&gt;
&lt;br /&gt;
7. Other students at school.&lt;br /&gt;
&lt;br /&gt;
8. Other students.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Push Notification for SMS Alert App==&lt;br /&gt;
To add push notification go to Web Setup -&amp;gt; SMS Alert&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Send App push notification&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It requires UMS School App.&lt;br /&gt;
[[File:Smsalertpushnotification.png|none|thumb|804x804px]]&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=Timetable&amp;diff=4231</id>
		<title>Timetable</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=Timetable&amp;diff=4231"/>
		<updated>2022-01-27T13:11:43Z</updated>

		<summary type="html">&lt;p&gt;Khm: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Skemabrikker.exe is a small sync job that needs to run when timetables are created, updated, or deleted.&lt;br /&gt;
&lt;br /&gt;
Example of timetable in UMS and Outlook:&lt;br /&gt;
[[File:Timetable in UMS and Outlook.png|none|thumb|600x600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following systems are supported:&lt;br /&gt;
&lt;br /&gt;
*Office 365&lt;br /&gt;
*Exchange&lt;br /&gt;
*GSuite&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&lt;br /&gt;
===Usage===&lt;br /&gt;
 &amp;gt; Skemabrikker.exe [&amp;lt;optional&amp;gt; System] [&amp;lt;optional&amp;gt; Action] [&amp;lt;optional&amp;gt; Mail] [&amp;lt;optional&amp;gt; StartDate] [&amp;lt;optional&amp;gt; EndDate] [&amp;lt;optional&amp;gt; Type [UMS | NonUMS | All]]&lt;br /&gt;
Eg.&lt;br /&gt;
 &amp;gt; Skemabrikker.exe Office365 teachersonly&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; Skemabrikker.exe Office365 find tea@umsacademic.onmicrosoft.com 12-05-2019 13-05-2019 All&lt;br /&gt;
&lt;br /&gt;
====Applyrights====&lt;br /&gt;
Only works for Exchange and Office365. Restores rights for a room if they have accidentally been deleted or changed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Systems====&lt;br /&gt;
This parameter is used to define what system Skemabrikker.exe will populate the timetables to. We currently support timetable integration to these systems:&lt;br /&gt;
&lt;br /&gt;
Exchange&lt;br /&gt;
&lt;br /&gt;
Office365&lt;br /&gt;
&lt;br /&gt;
GoogleApps&lt;br /&gt;
&lt;br /&gt;
[[Timetable/itslearning|Itslearning]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Teachersonly=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to affect only teachers.&lt;br /&gt;
&lt;br /&gt;
=====Studentsonly=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to affect only students.&lt;br /&gt;
&lt;br /&gt;
=====Roomsonly=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to affect only a given physical Classroom (When this parameter is used you need to add the ID for the given room ie. [Action] [Mail] &#039;Room_ID&#039;).&lt;br /&gt;
&lt;br /&gt;
=====Activitiesonly=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to only affect a given activity (When this parameter is used you need to add the ID for the given activity ie. [Action] [Mail] &#039;Activity_ID&#039;).&lt;br /&gt;
&lt;br /&gt;
=====Coursesonly=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to only affect a given course (When this parameter is used you need to add the ID for the given course ie. [Action] [Mail] &#039;Activity_ID_Course_ID&#039;).&lt;br /&gt;
&lt;br /&gt;
====Action====&lt;br /&gt;
&lt;br /&gt;
=====find=====&lt;br /&gt;
Used to display the timetables associated with the given [mail] parameter.&lt;br /&gt;
&lt;br /&gt;
=====delete=====&lt;br /&gt;
Used to delete the timetables associated with the given [mail] parameter.&lt;br /&gt;
&lt;br /&gt;
=====update=====&lt;br /&gt;
Used to update the timetables that needs to be updated and are associated with the given [mail] parameter.&lt;br /&gt;
&lt;br /&gt;
=====cleanup=====&lt;br /&gt;
Used to find UMS appointments in users calendars and delete them if they are not found in UMS database.&lt;br /&gt;
&lt;br /&gt;
====Mail====&lt;br /&gt;
&lt;br /&gt;
=====mail/UPN=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to affect a specific user.&lt;br /&gt;
&lt;br /&gt;
=====AllTimeTableStudents=====&lt;br /&gt;
This will delete timetable blocks from all known students&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Works with&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Office 365&lt;br /&gt;
&lt;br /&gt;
Exchange&lt;br /&gt;
&lt;br /&gt;
=====AllTimeTableEmployees=====&lt;br /&gt;
This will delete timetable blocks from all known employees&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Works with&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Office 365&lt;br /&gt;
&lt;br /&gt;
Exchange&lt;br /&gt;
&lt;br /&gt;
=====AllTimeTableRooms=====&lt;br /&gt;
&lt;br /&gt;
This will delete timetable blocks from all known rooms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Works with&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Office 365&lt;br /&gt;
&lt;br /&gt;
====StartDate====&lt;br /&gt;
This parameter is used to define the start date in which the find, delete, or update parameter will affect the timetables. The format for this parameter is dd-mm-yyyy.&lt;br /&gt;
&lt;br /&gt;
====EndDate====&lt;br /&gt;
This parameter is used to define the end date in which the find, delete, or update parameter will affect the timetables The format for this parameter is dd-mm-yyyy.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Type====&lt;br /&gt;
UMS - This parameter is used to define that the timetables that have been generated by UMS, will be effected.&lt;br /&gt;
&lt;br /&gt;
NonUMS - This parameter is used to define that the timetables that have not been generated by UMS, will be effected.&lt;br /&gt;
&lt;br /&gt;
All - This parameter is used to define that timetables both from UMS and non UMS, will be effected.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External systems==&lt;br /&gt;
&lt;br /&gt;
===[[Timetable/itslearning|itslearning]]===&lt;br /&gt;
&lt;br /&gt;
===[[Timetable/Office365|Office 365]]===&lt;br /&gt;
&lt;br /&gt;
===[[Timetable/GoogleGSuite|Google GSuite]]===&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
====How do I find timetable blocks with skemabrikker.exe ?====&lt;br /&gt;
Example following the general parameters:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|skemabrikker.exe  office365 find tea@umsacademic.onmicrosoft.com 12-05-2019 13-05-2019 All&lt;br /&gt;
|}&lt;br /&gt;
Inspect the skemabrikker.log. The long string value in the log file refers to the ID in the table &#039;&#039;&#039;SkemaBrikkerSavedEntries_Students, SkemaBrikkerSavedEntries_Teachers, SkemaBrikkerSavedEntries_Rooms, SkemaBrikkerSavedEntries_Activities&#039;&#039;&#039;.&lt;br /&gt;
[[File:Skemabrikkerlog.png|none|thumb|864x864px]]&lt;br /&gt;
&lt;br /&gt;
====How do I find timetable blocks with SQL statements?====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Select  SkemaBrikkerNewEntries.*&lt;br /&gt;
&lt;br /&gt;
From  SkemaBrikkerNewEntries&lt;br /&gt;
&lt;br /&gt;
Join  SkemaBrikker_Students On SkemaBrikkerNewEntries.SkemaBegivenhed_ID  = SkemaBrikker_Students.SkemaBegivenhed_ID And  SkemaBrikkerNewEntries.SkemaBrikkerAdminServers_ID =  SkemaBrikker_Students.SkemaBrikkerAdminServers_ID&lt;br /&gt;
&lt;br /&gt;
And SkemaBrikkerNewEntries.Activity =  SkemaBrikker_Students.Activity&lt;br /&gt;
&lt;br /&gt;
Where &lt;br /&gt;
&lt;br /&gt;
SkemaBrikker_Students.cpr In (Select Cpr from Students where studienr= &#039;xxxxxx&#039;)&lt;br /&gt;
&lt;br /&gt;
and SkemaBrikkerNewEntries.Dato = &#039;28-11-2018&#039;&lt;br /&gt;
&lt;br /&gt;
Order By  RealStartDateTime&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====How do I change format and content of timetable blocks in Outlook?====&lt;br /&gt;
Open UMS Configurator, select Modules &amp;quot;TimeTable&amp;quot; and select your datasource, then edit Format And Content&lt;br /&gt;
&lt;br /&gt;
Variables can be replaced as pictured below.&lt;br /&gt;
[[File:Timetable format and content.png|none|thumb|1152x1152px]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Run only for one user===&lt;br /&gt;
&lt;br /&gt;
====Students====&lt;br /&gt;
Skemabrikker.exe studentsonly &amp;lt;username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Teachers====&lt;br /&gt;
Skemabrikker.exe teachersonly &amp;lt;username&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=Timetable&amp;diff=4230</id>
		<title>Timetable</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=Timetable&amp;diff=4230"/>
		<updated>2022-01-27T13:10:50Z</updated>

		<summary type="html">&lt;p&gt;Khm: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Skemabrikker.exe is a small sync job that needs to run when timetables are created, updated, or deleted.&lt;br /&gt;
&lt;br /&gt;
Example of timetable in UMS and Outlook:&lt;br /&gt;
[[File:Timetable in UMS and Outlook.png|none|thumb|600x600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following systems are supported:&lt;br /&gt;
&lt;br /&gt;
*Office 365&lt;br /&gt;
*Exchange&lt;br /&gt;
*GSuite&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&lt;br /&gt;
===Usage===&lt;br /&gt;
 &amp;gt; Skemabrikker.exe [&amp;lt;optional&amp;gt; System] [&amp;lt;optional&amp;gt; Action] [&amp;lt;optional&amp;gt; Mail] [&amp;lt;optional&amp;gt; StartDate] [&amp;lt;optional&amp;gt; EndDate] [&amp;lt;optional&amp;gt; Type [UMS | NonUMS | All]]&lt;br /&gt;
Eg.&lt;br /&gt;
 &amp;gt; Skemabrikker.exe Office365 teachersonly&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; Skemabrikker.exe Office365find tea@umsacademic.onmicrosoft.com 12-05-2019 13-05-2019 All&lt;br /&gt;
&lt;br /&gt;
====Applyrights====&lt;br /&gt;
Only works for Exchange and Office365. Restores rights for a room if they have accidentally been deleted or changed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Systems====&lt;br /&gt;
This parameter is used to define what system Skemabrikker.exe will populate the timetables to. We currently support timetable integration to these systems:&lt;br /&gt;
&lt;br /&gt;
Exchange&lt;br /&gt;
&lt;br /&gt;
Office365&lt;br /&gt;
&lt;br /&gt;
GoogleApps&lt;br /&gt;
&lt;br /&gt;
[[Timetable/itslearning|Itslearning]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Teachersonly=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to affect only teachers.&lt;br /&gt;
&lt;br /&gt;
=====Studentsonly=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to affect only students.&lt;br /&gt;
&lt;br /&gt;
=====Roomsonly=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to affect only a given physical Classroom (When this parameter is used you need to add the ID for the given room ie. [Action] [Mail] &#039;Room_ID&#039;).&lt;br /&gt;
&lt;br /&gt;
=====Activitiesonly=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to only affect a given activity (When this parameter is used you need to add the ID for the given activity ie. [Action] [Mail] &#039;Activity_ID&#039;).&lt;br /&gt;
&lt;br /&gt;
=====Coursesonly=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to only affect a given course (When this parameter is used you need to add the ID for the given course ie. [Action] [Mail] &#039;Activity_ID_Course_ID&#039;).&lt;br /&gt;
&lt;br /&gt;
====Action====&lt;br /&gt;
&lt;br /&gt;
=====find=====&lt;br /&gt;
Used to display the timetables associated with the given [mail] parameter.&lt;br /&gt;
&lt;br /&gt;
=====delete=====&lt;br /&gt;
Used to delete the timetables associated with the given [mail] parameter.&lt;br /&gt;
&lt;br /&gt;
=====update=====&lt;br /&gt;
Used to update the timetables that needs to be updated and are associated with the given [mail] parameter.&lt;br /&gt;
&lt;br /&gt;
=====cleanup=====&lt;br /&gt;
Used to find UMS appointments in users calendars and delete them if they are not found in UMS database.&lt;br /&gt;
&lt;br /&gt;
====Mail====&lt;br /&gt;
&lt;br /&gt;
=====mail/UPN=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to affect a specific user.&lt;br /&gt;
&lt;br /&gt;
=====AllTimeTableStudents=====&lt;br /&gt;
This will delete timetable blocks from all known students&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Works with&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Office 365&lt;br /&gt;
&lt;br /&gt;
Exchange&lt;br /&gt;
&lt;br /&gt;
=====AllTimeTableEmployees=====&lt;br /&gt;
This will delete timetable blocks from all known employees&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Works with&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Office 365&lt;br /&gt;
&lt;br /&gt;
Exchange&lt;br /&gt;
&lt;br /&gt;
=====AllTimeTableRooms=====&lt;br /&gt;
&lt;br /&gt;
This will delete timetable blocks from all known rooms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Works with&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Office 365&lt;br /&gt;
&lt;br /&gt;
====StartDate====&lt;br /&gt;
This parameter is used to define the start date in which the find, delete, or update parameter will affect the timetables. The format for this parameter is dd-mm-yyyy.&lt;br /&gt;
&lt;br /&gt;
====EndDate====&lt;br /&gt;
This parameter is used to define the end date in which the find, delete, or update parameter will affect the timetables The format for this parameter is dd-mm-yyyy.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Type====&lt;br /&gt;
UMS - This parameter is used to define that the timetables that have been generated by UMS, will be effected.&lt;br /&gt;
&lt;br /&gt;
NonUMS - This parameter is used to define that the timetables that have not been generated by UMS, will be effected.&lt;br /&gt;
&lt;br /&gt;
All - This parameter is used to define that timetables both from UMS and non UMS, will be effected.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External systems==&lt;br /&gt;
&lt;br /&gt;
===[[Timetable/itslearning|itslearning]]===&lt;br /&gt;
&lt;br /&gt;
===[[Timetable/Office365|Office 365]]===&lt;br /&gt;
&lt;br /&gt;
===[[Timetable/GoogleGSuite|Google GSuite]]===&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
====How do I find timetable blocks with skemabrikker.exe ?====&lt;br /&gt;
Example following the general parameters:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|skemabrikker.exe  office365 find tea@umsacademic.onmicrosoft.com 12-05-2019 13-05-2019 All&lt;br /&gt;
|}&lt;br /&gt;
Inspect the skemabrikker.log. The long string value in the log file refers to the ID in the table &#039;&#039;&#039;SkemaBrikkerSavedEntries_Students, SkemaBrikkerSavedEntries_Teachers, SkemaBrikkerSavedEntries_Rooms, SkemaBrikkerSavedEntries_Activities&#039;&#039;&#039;.&lt;br /&gt;
[[File:Skemabrikkerlog.png|none|thumb|864x864px]]&lt;br /&gt;
&lt;br /&gt;
====How do I find timetable blocks with SQL statements?====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Select  SkemaBrikkerNewEntries.*&lt;br /&gt;
&lt;br /&gt;
From  SkemaBrikkerNewEntries&lt;br /&gt;
&lt;br /&gt;
Join  SkemaBrikker_Students On SkemaBrikkerNewEntries.SkemaBegivenhed_ID  = SkemaBrikker_Students.SkemaBegivenhed_ID And  SkemaBrikkerNewEntries.SkemaBrikkerAdminServers_ID =  SkemaBrikker_Students.SkemaBrikkerAdminServers_ID&lt;br /&gt;
&lt;br /&gt;
And SkemaBrikkerNewEntries.Activity =  SkemaBrikker_Students.Activity&lt;br /&gt;
&lt;br /&gt;
Where &lt;br /&gt;
&lt;br /&gt;
SkemaBrikker_Students.cpr In (Select Cpr from Students where studienr= &#039;xxxxxx&#039;)&lt;br /&gt;
&lt;br /&gt;
and SkemaBrikkerNewEntries.Dato = &#039;28-11-2018&#039;&lt;br /&gt;
&lt;br /&gt;
Order By  RealStartDateTime&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====How do I change format and content of timetable blocks in Outlook?====&lt;br /&gt;
Open UMS Configurator, select Modules &amp;quot;TimeTable&amp;quot; and select your datasource, then edit Format And Content&lt;br /&gt;
&lt;br /&gt;
Variables can be replaced as pictured below.&lt;br /&gt;
[[File:Timetable format and content.png|none|thumb|1152x1152px]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Run only for one user===&lt;br /&gt;
&lt;br /&gt;
====Students====&lt;br /&gt;
Skemabrikker.exe studentsonly &amp;lt;username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Teachers====&lt;br /&gt;
Skemabrikker.exe teachersonly &amp;lt;username&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=Office_365&amp;diff=4229</id>
		<title>Office 365</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=Office_365&amp;diff=4229"/>
		<updated>2022-01-27T13:09:12Z</updated>

		<summary type="html">&lt;p&gt;Khm: /* Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Our Office 365 SharePoint Portal is a dedicated solution for school, which want an easy-to-use learning portal. Students and teachers are often presented with advanced and complex solutions that does everything they need and then some and as a result, they are difficult to use. We have decided to do things differently and therefore the Office 365 SharePoint Portal gives you the features you need to get the most out of SharePoint. Nothing more, nothing less. The portal is simple and easy to use. This way you avoid confusion and having to navigate yet another complex system. In terms of design, you have two options: the portal can use our standard skin, as pictured above, or our second skin, which we made for primary schools.&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
&lt;br /&gt;
===Module requirements===&lt;br /&gt;
[[UMS]]&lt;br /&gt;
&lt;br /&gt;
===Testing after setup===&lt;br /&gt;
Users get created in Office 365&lt;br /&gt;
&lt;br /&gt;
===What to have ready===&lt;br /&gt;
Install latest version of [https://www.google.com/search?q=Windows+Management+Framework&amp;amp;oq=Windows+Management+Framework Windows Management Framework]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Then run these powershell commands&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12  &#039;&#039;&#039;(to ensure TLS 1.2 enabled on Powershell commands)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Install-Module AzureAD&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use this command only if no repository is available&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Register-PSRepository -Default -Verbose&lt;br /&gt;
&lt;br /&gt;
===[[MSGraphPermissions|Graph permissions]]===&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Office 365===&lt;br /&gt;
Enter Admin credentials for a service account with administrator privileges to access Office 365.&lt;br /&gt;
[[File:Office365 Setting.jpg|none|thumb|838x838px]]&lt;br /&gt;
&lt;br /&gt;
===Credentials===&lt;br /&gt;
&lt;br /&gt;
=====Tenant setting=====&lt;br /&gt;
Choose a tenant setting used for connection to Office 365-&lt;br /&gt;
&lt;br /&gt;
=====Domain=====&lt;br /&gt;
Enter the domain that you want the users and groups to have when they are created. E.g. &amp;lt;Username&amp;gt;@&amp;lt;Domain&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Users===&lt;br /&gt;
&lt;br /&gt;
=====Login=====&lt;br /&gt;
Choose what the users shall use to log in to Office365.&lt;br /&gt;
&lt;br /&gt;
======Mail Address======&lt;br /&gt;
Choose what to use as the users mail address.&lt;br /&gt;
&lt;br /&gt;
=====Enable password never expires=====&lt;br /&gt;
When marked the password will never expire for the users.&lt;br /&gt;
&lt;br /&gt;
=====Disable strong password=====&lt;br /&gt;
Use this to bypass the default password complexity.&lt;br /&gt;
&lt;br /&gt;
=====Users are created through third party program=====&lt;br /&gt;
This normally means ADFS is used to synchronize users&lt;br /&gt;
&lt;br /&gt;
=====Forward mail to on premise mail server=====&lt;br /&gt;
This will forward the users Office 365 mail to the primary mail address from AD (If user does not have a proxy address it will read it from the mail attribute)&lt;br /&gt;
&lt;br /&gt;
=====Use Active Directory for info=====&lt;br /&gt;
This tells UMS to take Department, Title and Organization from AD instead of AD Attributes in UMS.&lt;br /&gt;
&lt;br /&gt;
=====Usage location=====&lt;br /&gt;
This will tell UMS to set usage location when creating a user&lt;br /&gt;
&lt;br /&gt;
=====Disable users=====&lt;br /&gt;
When marked the users will be disabled when they are no longer attending classes.&lt;br /&gt;
&lt;br /&gt;
=====Keep active before disabling x days=====&lt;br /&gt;
Specify a grace period where users are active before disabling.&lt;br /&gt;
&lt;br /&gt;
=====Delete users=====&lt;br /&gt;
Choose if users are to be deleted after grace period has ended.&lt;br /&gt;
&lt;br /&gt;
=====Keep disabled before deleting x days=====&lt;br /&gt;
Specify a grace period where users are disabled.&lt;br /&gt;
&lt;br /&gt;
=====Hide from address list=====&lt;br /&gt;
Hide the newly created item from address list. &lt;br /&gt;
&lt;br /&gt;
=====Mailbox language=====&lt;br /&gt;
Specify which language is to be default for the users.&lt;br /&gt;
&lt;br /&gt;
=====Mailbox time zone=====&lt;br /&gt;
Specify which time zone is to be default for the users.&lt;br /&gt;
&lt;br /&gt;
=====Calendar Rights=====&lt;br /&gt;
Set the calendar rights on a user when he is created&lt;br /&gt;
&lt;br /&gt;
=====Calendar object UPN=====&lt;br /&gt;
Specify the UPN to put on the users calendar with the rights specified below &lt;br /&gt;
&lt;br /&gt;
If using a group then it must be of type &amp;quot;&#039;&#039;&#039;Mail enabled security&#039;&#039;&#039;&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
====Group UPN for keep alive users====&lt;br /&gt;
Specify a group where users that is kept alive is a member of.&lt;br /&gt;
&lt;br /&gt;
This must be a Microsoft 365 group.&lt;br /&gt;
&lt;br /&gt;
UMS will create the group if it doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
====Group UPN for disabled users====&lt;br /&gt;
Specify a group where users that is disabled is a member of.&lt;br /&gt;
&lt;br /&gt;
This must be a Microsoft 365 group.&lt;br /&gt;
&lt;br /&gt;
UMS will create the group if it doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
===Template groups===&lt;br /&gt;
&lt;br /&gt;
====Maintain security group====&lt;br /&gt;
This will create the security group entered in the field template security group in the destination node in the template settings.&lt;br /&gt;
&lt;br /&gt;
====Maintain extra groups====&lt;br /&gt;
This will create all the groups from the [[Configurator/Extra groups|extra groups]] template tab. All users will have direct group member ship.&lt;br /&gt;
&lt;br /&gt;
===Distribution lists===&lt;br /&gt;
&lt;br /&gt;
====Maintain lists====&lt;br /&gt;
Mark this to create distribution groups in Office 365. The groups will be created, updated and deleted if this is specified.&lt;br /&gt;
&lt;br /&gt;
====Delete lists====&lt;br /&gt;
Mark this to delete distributions groups when they are no longer active in the administrative system. Check the data export manuals too when this happens&lt;br /&gt;
&lt;br /&gt;
====Delete unused lists after x days====&lt;br /&gt;
Specify in days how long the distribution groups are to be kept alive in Office 365 before deletion.&lt;br /&gt;
&lt;br /&gt;
====Only senders inside my organization====&lt;br /&gt;
With this marked only users in the domain will be able to send to distribution groups created by UMS.&lt;br /&gt;
&lt;br /&gt;
Disabling this will allow the groups to be visible in OneDrive and Classroom&lt;br /&gt;
&lt;br /&gt;
===Picture settings===&lt;br /&gt;
This takes the picture privacy setting that the user has set into consideration. The picture will not be uploaded if the user has chosen not to allow his picture to be shared. The picture will not be removed again if it has been uploaded.&lt;br /&gt;
&lt;br /&gt;
====Student picture library====&lt;br /&gt;
Define where the pictures are for the students that uses this template. If this is not set, no pictures will be uploaded to Office 365. &lt;br /&gt;
&lt;br /&gt;
====Employee picture library====&lt;br /&gt;
Define where the pictures are for the employees that uses this template. If this is not set, no pictures will be uploaded to Office 365.   &lt;br /&gt;
&lt;br /&gt;
===Timetable===&lt;br /&gt;
&lt;br /&gt;
====Maintain====&lt;br /&gt;
Mark this to create timetable blocks in Office 365. They will be created, updated and deleted.&lt;br /&gt;
&lt;br /&gt;
====Delete old====&lt;br /&gt;
Mark this to delete old timetable blocks from calendars.&lt;br /&gt;
&lt;br /&gt;
====Room setting====&lt;br /&gt;
Create rooms with timetable blocks.&lt;br /&gt;
&lt;br /&gt;
=====Manage=====&lt;br /&gt;
[[File:Office365roomsettings.png|none|thumb|378x378px]]&lt;br /&gt;
&lt;br /&gt;
=====Room displayname=====&lt;br /&gt;
&lt;br /&gt;
=====Prefix=====&lt;br /&gt;
Text that can be added to the start of what is chosen in Generator.&lt;br /&gt;
&lt;br /&gt;
=====Generator=====&lt;br /&gt;
Choose what is to define the room.&lt;br /&gt;
&lt;br /&gt;
=====Suffix=====&lt;br /&gt;
Text that can be added to the end of what is chosen in Generator.&lt;br /&gt;
&lt;br /&gt;
=====Resulting displayname=====&lt;br /&gt;
Summary of the chosen display name as it will be shown in Office 365.&lt;br /&gt;
&lt;br /&gt;
=====Set rights to rooms=====&lt;br /&gt;
Sets the rights on rooms when created&lt;br /&gt;
&lt;br /&gt;
This has to be a &#039;&#039;&#039;Distribution Group&#039;&#039;&#039; Otherwise it won&#039;t work&lt;br /&gt;
[[File:Office365roomsettings2.png|none|thumb|274x274px]]&lt;br /&gt;
&lt;br /&gt;
======Owner======&lt;br /&gt;
Users will be able to create, read, modify and delete all items and files, and create sub-folders. As the folder owner, they can change the permission levels others have for the folder. (Does not apply to delegates.).&lt;br /&gt;
&lt;br /&gt;
======Publishing Editor======&lt;br /&gt;
Users can create, read, modify and delete all items and files, and create sub-folders. (Does not apply to delegates.).&lt;br /&gt;
&lt;br /&gt;
======Editor======&lt;br /&gt;
Users can create, read, modify and delete all items and files..&lt;br /&gt;
&lt;br /&gt;
======Publishing Author======&lt;br /&gt;
Users can create and read items and files, create sub-folders, and modify and delete items and files they create. (Does not apply to delegates.).&lt;br /&gt;
&lt;br /&gt;
======Author======&lt;br /&gt;
Users can create and read items and files and modify and delete items and files you create.&lt;br /&gt;
&lt;br /&gt;
======Nonediting Author======&lt;br /&gt;
Users have full read details. Can create items and delete own items. Folder visible.&lt;br /&gt;
&lt;br /&gt;
======Reviewer======&lt;br /&gt;
Users can read items and files only.&lt;br /&gt;
&lt;br /&gt;
======Contributor======&lt;br /&gt;
Users can create items and files only. The contents of the folder does not appear. (Does not apply to delegates.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Note&#039;&#039;&#039;&#039;&#039; &#039;&#039;With author or editor permissions, a delegate has send-on-behalf-of permission. Sent messages contain both the managers and delegates names. Message recipients see the managers name in the Sent On Behalf Of box and the delegates name in the From box.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=====Define rooms to be created=====&lt;br /&gt;
Specify the rooms to be created based on a filter. If nothing is entered, every room will be created.&lt;br /&gt;
[[File:Office365criteria.png|none|thumb|202x202px]]&lt;br /&gt;
&lt;br /&gt;
======Room number and Room name======&lt;br /&gt;
Can be found in the skemabrikker_rooms table in SQL.&lt;br /&gt;
&lt;br /&gt;
===Office 365 SharePoint site setting===&lt;br /&gt;
This will create SharePoint sites&lt;br /&gt;
[[File:Office365sharepointsitesettings.png|none|thumb|720x720px]] &lt;br /&gt;
[[File:Office365sharepointsitesettings2.png|none|thumb|567x567px]] &lt;br /&gt;
&lt;br /&gt;
====&#039;&#039;Site settings&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
=====Automation type=====&lt;br /&gt;
Full: Means that site maintenance will be fully automated.&lt;br /&gt;
&lt;br /&gt;
=====Remove learner method=====&lt;br /&gt;
Deleted in AD&lt;br /&gt;
&lt;br /&gt;
Users will be removed from site when they are not active in UMS anymore&lt;br /&gt;
&lt;br /&gt;
Finished on activity/course&lt;br /&gt;
&lt;br /&gt;
Users will be removed when they have finished with the course. &lt;br /&gt;
&lt;br /&gt;
=====Delete sites=====&lt;br /&gt;
Auto delete&lt;br /&gt;
&lt;br /&gt;
Sites will be delete when the last student has left the site&lt;br /&gt;
&lt;br /&gt;
=====Manual Delete=====&lt;br /&gt;
Sites will not be deleted by UMS. This has to be done by an administrator&lt;br /&gt;
&lt;br /&gt;
=====Send mail to teacher(s)=====&lt;br /&gt;
Send mail notification to teachers when they are attached to a site.&lt;br /&gt;
&lt;br /&gt;
=====Create x days before=====&lt;br /&gt;
Choose how many days before start that the sites are to be created.&lt;br /&gt;
&lt;br /&gt;
=====Delete x days after end=====&lt;br /&gt;
Choose how many days after end that the sites are to be deleted.&lt;br /&gt;
&lt;br /&gt;
=====Teacher rights on sites=====&lt;br /&gt;
Rights the teacher will have on the site when attached.&lt;br /&gt;
&lt;br /&gt;
=====Learner rights on sites=====&lt;br /&gt;
Rights the student/learner will have on the site when attached. &lt;br /&gt;
&lt;br /&gt;
=====Check if group rights match=====&lt;br /&gt;
When UMS looks for UMS-groups on the site, it will do so based on two criteria’s.&lt;br /&gt;
&lt;br /&gt;
The correct rights and the correct name. Unchecking this will disable the first criteria and only look for a group with the right name. (This is when users change the UMS-group rights on a site manually)&lt;br /&gt;
&lt;br /&gt;
=====SQL Groups=====&lt;br /&gt;
Members of these groups will be attached to all sites created with this setting as teachers&lt;br /&gt;
[[File:Office365sqlgroups.png|none|thumb|447x447px]]&lt;br /&gt;
&lt;br /&gt;
=====Group name=====&lt;br /&gt;
This can only be a group that is found in UMS &lt;br /&gt;
&lt;br /&gt;
You get a list of these groups by running this SQL command:&lt;br /&gt;
&lt;br /&gt;
Select Distinct Aktivitet As Activity From Students Order By Activity&lt;br /&gt;
&lt;br /&gt;
====Activity Sites====&lt;br /&gt;
Do not create&lt;br /&gt;
&lt;br /&gt;
It will not create any sites based on activities.&lt;br /&gt;
&lt;br /&gt;
LMS has to be checked&lt;br /&gt;
&lt;br /&gt;
The field Aktivitet_LMS in the students table has to be True. (Look in the documentation for the specific administrative system to see how this is set)&lt;br /&gt;
&lt;br /&gt;
Based on template filter&lt;br /&gt;
&lt;br /&gt;
Create sites based on a filter that is specified per template.&lt;br /&gt;
[[File:Office365filters.png|none|thumb|507x507px]]&lt;br /&gt;
&lt;br /&gt;
All&lt;br /&gt;
&lt;br /&gt;
Create all sites.&lt;br /&gt;
&lt;br /&gt;
Title&lt;br /&gt;
&lt;br /&gt;
Title of the site. Changing this after a site has been created will cause it to be updated.&lt;br /&gt;
&lt;br /&gt;
Description&lt;br /&gt;
&lt;br /&gt;
Description of the site. Changing this after a site has been created will cause it to be updated.  &lt;br /&gt;
&lt;br /&gt;
===Search filter and criteria===&lt;br /&gt;
This will enable you to concatenate sites that would have been created as to or more sites to be created as one site.&lt;br /&gt;
&lt;br /&gt;
=====Remarks=====&lt;br /&gt;
This is just for description purposes. &lt;br /&gt;
&lt;br /&gt;
=====Filter=====&lt;br /&gt;
The SQL like filter (regular expression). If an activity matches, it will be subject to the settings below in semester roll&lt;br /&gt;
&lt;br /&gt;
=====Semester roll=====&lt;br /&gt;
Use replace string with empty&lt;br /&gt;
&lt;br /&gt;
This will replace a section of the site with an empty string.&lt;br /&gt;
&lt;br /&gt;
=====Start index=====&lt;br /&gt;
Determine where to start in string to remove.&lt;br /&gt;
&lt;br /&gt;
=====Length=====&lt;br /&gt;
How many characters will be removed from the string.&lt;br /&gt;
&lt;br /&gt;
=====Add activity short description to node ID=====&lt;br /&gt;
This will add the field Kort_Betegnelse (Short Description) from the students table to the node id.&lt;br /&gt;
&lt;br /&gt;
Node id is the URL.&lt;br /&gt;
&lt;br /&gt;
====Examples====&lt;br /&gt;
If you have three activities named English1, English2, English3 and you only want one SharePoint site.&lt;br /&gt;
&lt;br /&gt;
Set the settings as shown below&lt;br /&gt;
[[File:Office365filterexample.png|none|thumb|401x401px]]&lt;br /&gt;
&lt;br /&gt;
This filter ensures that it is only applied to activities that matches this SQL sentence. &lt;br /&gt;
&lt;br /&gt;
=====Course Sites=====&lt;br /&gt;
Course URL’s will always be created as activity_course.&lt;br /&gt;
&lt;br /&gt;
=====Do not create=====&lt;br /&gt;
It will not create any sites based on courses.&lt;br /&gt;
&lt;br /&gt;
=====LMS has to be checked=====&lt;br /&gt;
The field Skolefag_LMS in the students table has to be True. (Look in the documentation for the specific administrative system to see how this is set)&lt;br /&gt;
&lt;br /&gt;
=====Based on template filter=====&lt;br /&gt;
Create sites based on a filter that is specified per template.&lt;br /&gt;
[[File:Office365filters.png|none|thumb|507x507px]]&lt;br /&gt;
&lt;br /&gt;
=====All=====&lt;br /&gt;
Create all sites.&lt;br /&gt;
&lt;br /&gt;
=====Title=====&lt;br /&gt;
Title of the site. Changing this after a site has been created will cause it to be updated.&lt;br /&gt;
&lt;br /&gt;
=====Description=====&lt;br /&gt;
Description of the site. Changing this after a site has been created will cause it to be updated.  &lt;br /&gt;
&lt;br /&gt;
=====Search filter and criteria=====&lt;br /&gt;
This will enable you to concatenate sites that would have been created as two or more sites to be created as one site.&lt;br /&gt;
[[File:Office365filter.png|none|thumb|416x416px]]&lt;br /&gt;
&lt;br /&gt;
=====Remarks=====&lt;br /&gt;
This is just for description purposes. &lt;br /&gt;
&lt;br /&gt;
=====Course Filter=====&lt;br /&gt;
The SQL like filter (regular expression). If an activity matches, it will be subject to the settings below in semester roll.&lt;br /&gt;
&lt;br /&gt;
=====Semester roll=====&lt;br /&gt;
Use replace string with empty&lt;br /&gt;
&lt;br /&gt;
This will replace a section of the site with an empty string.&lt;br /&gt;
&lt;br /&gt;
=====Start index=====&lt;br /&gt;
Determine where to start in string to remove.&lt;br /&gt;
&lt;br /&gt;
=====Length=====&lt;br /&gt;
How many characters will be removed from the string.&lt;br /&gt;
&lt;br /&gt;
=====Activity Filter=====&lt;br /&gt;
The SQL like filter (regular expression). If an activity matches, it will be subject to the settings below in semester roll&lt;br /&gt;
&lt;br /&gt;
=====Semester roll=====&lt;br /&gt;
Use replace string with empty&lt;br /&gt;
&lt;br /&gt;
This will replace a section of the site with an empty string.&lt;br /&gt;
&lt;br /&gt;
=====Start index=====&lt;br /&gt;
Determine where to start in string to remove.&lt;br /&gt;
&lt;br /&gt;
=====Length=====&lt;br /&gt;
How many characters will be removed from the string.  &lt;br /&gt;
&lt;br /&gt;
After you have created the Office 365 setting you put in on a template.&lt;br /&gt;
[[File:Office365templateeditor.png|none|thumb|720x720px]]&lt;br /&gt;
&lt;br /&gt;
Setting: This will created the users with on this template in Office 365 with these settings&lt;br /&gt;
&lt;br /&gt;
===SharePoint settings===&lt;br /&gt;
Sites created with setting. If this is not specified no activities/courses on this template will be created.&lt;br /&gt;
[[File:Office365template.png|none|thumb|422x422px]]&lt;br /&gt;
&lt;br /&gt;
====Site URL====&lt;br /&gt;
Which site collection is used when creating sites&lt;br /&gt;
&lt;br /&gt;
Language: The default language of the created site&lt;br /&gt;
&lt;br /&gt;
Course Template&lt;br /&gt;
&lt;br /&gt;
Standard SharePoint: Use a standard template from SharePoint&lt;br /&gt;
&lt;br /&gt;
Course template: Enter a name of a template that resides in the site collection. If nothing is entered it will default to the Team site template&lt;br /&gt;
&lt;br /&gt;
UMS SharePoint Portal: Create sites based on the UMS SharePoint Portal product&lt;br /&gt;
&lt;br /&gt;
====OneNote Class Notebook setting====&lt;br /&gt;
Choose a Class Notebook setting. This will create a Class Notebook created in the SharePoint site.  &lt;br /&gt;
&lt;br /&gt;
====SQL Groups====&lt;br /&gt;
&lt;br /&gt;
Members of these groups will be attached to all sites created with this setting as teachers[[File:Office365sqlgroups.png|none|thumb|447x447px]]&lt;br /&gt;
&lt;br /&gt;
====Group name====&lt;br /&gt;
This can only be a group that is found in UMS &lt;br /&gt;
&lt;br /&gt;
You get a list of these groups by running this SQL command:&lt;br /&gt;
&lt;br /&gt;
Select Distinct Aktivitet As Activity From Students Order By Activity  &lt;br /&gt;
&lt;br /&gt;
OneNote Class Notebook setting  &lt;br /&gt;
&lt;br /&gt;
Define settings for OneNote Class Notebooks.&lt;br /&gt;
[[File:OneNotesections SharePoint.png|none|thumb|476x476px]]&lt;br /&gt;
&lt;br /&gt;
====Sections====&lt;br /&gt;
Define the section the Class Notebook will be created with. Students that are attached to this Class Notebook will have these sections.  &lt;br /&gt;
[[File:Office365onenoteclassnotebooksettingedit.png|none|thumb|447x447px]]Use Name instead of title for Notebooks (Last part of URL)&lt;br /&gt;
&lt;br /&gt;
This will make the title of the NoteBook be the same as the last part of the URL of the SharePoint site that the NoteBook is created in. It never changes unless this is unchecked.&lt;br /&gt;
&lt;br /&gt;
Never update Notebook title after creation&lt;br /&gt;
&lt;br /&gt;
The NoteBook will never update the title after it has been created, even though the SharePoint site changes title. it will be created with the title that SharePoint site has at createin time.&lt;br /&gt;
&lt;br /&gt;
===OneNote Class Notebook setting===&lt;br /&gt;
[[File:Office365onenoteclassnotebooksettings.png|none|thumb|720x720px]]&lt;br /&gt;
[[File:Office365onenoteclassnotebooksettings2.png|none|thumb|720x720px]]&lt;br /&gt;
&lt;br /&gt;
====&#039;&#039;Notebook settings&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
====Automation type====&lt;br /&gt;
Full: Means that Notebooks maintenance will be fully automated.&lt;br /&gt;
&lt;br /&gt;
====Remove learner method====&lt;br /&gt;
Deleted in AD&lt;br /&gt;
&lt;br /&gt;
Users will be removed from Notebooks when they are not active in UMS anymore&lt;br /&gt;
&lt;br /&gt;
Finished on activity/course&lt;br /&gt;
&lt;br /&gt;
Users will be removed when they have finished with the course. &lt;br /&gt;
&lt;br /&gt;
====Delete Notebooks====&lt;br /&gt;
Auto delete&lt;br /&gt;
&lt;br /&gt;
Notebooks will be delete when the last student has left the Notebook&lt;br /&gt;
&lt;br /&gt;
Manual Delete&lt;br /&gt;
&lt;br /&gt;
Notebooks will not be deleted by UMS. This has to be done by an administrator&lt;br /&gt;
&lt;br /&gt;
====Send mail to teacher(s)====&lt;br /&gt;
Send mail notification to teachers when they are attached to a Notebook.&lt;br /&gt;
&lt;br /&gt;
====Create x days before====&lt;br /&gt;
Choose how many days before start that the Notebooks are to be created.&lt;br /&gt;
&lt;br /&gt;
====Delete x days after end====&lt;br /&gt;
Choose how many days after end that the Notebooks are to be deleted.&lt;br /&gt;
&lt;br /&gt;
====SQL Groups====&lt;br /&gt;
&lt;br /&gt;
Members of these groups will be attached to all Notebooks created with this setting as teachers[[File:Office365sqlgroups.png|none|thumb|447x447px]]&lt;br /&gt;
&lt;br /&gt;
====Group name====&lt;br /&gt;
This can only be a group that is found in UMS &lt;br /&gt;
&lt;br /&gt;
You get a list of these groups by running this SQL command:&lt;br /&gt;
&lt;br /&gt;
Select Distinct Aktivitet As Activity From Students Order By Activity&lt;br /&gt;
&lt;br /&gt;
====Activity Notebooks====&lt;br /&gt;
&lt;br /&gt;
====Do not create====&lt;br /&gt;
It will not create any Notebooks based on activities.&lt;br /&gt;
&lt;br /&gt;
====LMS has to be checked====&lt;br /&gt;
The field Aktivitet_LMS in the students table has to be True. (Look in the documentation for the specific administrative system to see how this is set)&lt;br /&gt;
&lt;br /&gt;
====Based on template filter====&lt;br /&gt;
Create Notebooks based on a filter that is specified per template.&lt;br /&gt;
[[File:Office365filters.png|none|thumb|507x507px]]&lt;br /&gt;
&lt;br /&gt;
====All====&lt;br /&gt;
Create all Notebooks.&lt;br /&gt;
&lt;br /&gt;
====Title====&lt;br /&gt;
Title of the Notebook. Changing this after a Notebook has been created will cause it to be updated.  &lt;br /&gt;
&lt;br /&gt;
====Search filter and criteria====&lt;br /&gt;
This will enable you to concatenate Notebooks that would have been created as to or more Notebooks to be created as one Notebook.&lt;br /&gt;
[[File:Office365filterexample.png|none|thumb|401x401px]]&lt;br /&gt;
&lt;br /&gt;
====Remarks====&lt;br /&gt;
This is just for description purposes. &lt;br /&gt;
&lt;br /&gt;
====Filter====&lt;br /&gt;
The SQL like filter (regular expression). If an activity matches, it will be subject to the settings below in semester roll&lt;br /&gt;
&lt;br /&gt;
====Semester roll====&lt;br /&gt;
Use replace string with empty&lt;br /&gt;
&lt;br /&gt;
This will replace a section of the Notebook with an empty string.&lt;br /&gt;
&lt;br /&gt;
====Start index====&lt;br /&gt;
Determine where to start in string to remove.&lt;br /&gt;
&lt;br /&gt;
====Length====&lt;br /&gt;
How many characters will be removed from the string.&lt;br /&gt;
&lt;br /&gt;
====Add activity short description to node ID====&lt;br /&gt;
This will add the field Kort_Betegnelse (Short Description) from the students table to the node id.&lt;br /&gt;
&lt;br /&gt;
Node id is the URL.&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
If you have three activities named English1, English2, English3 and you only want one Notebook.&lt;br /&gt;
&lt;br /&gt;
Set the settings as shown below&lt;br /&gt;
[[File:Office365filterexample.png|none|thumb|401x401px]]&lt;br /&gt;
&lt;br /&gt;
This filter ensures that it is only applied to activities that matches this SQL sentence. &lt;br /&gt;
&lt;br /&gt;
====Course Notebooks====&lt;br /&gt;
Course URL’s will always be created as activity course.&lt;br /&gt;
&lt;br /&gt;
====Do not create====&lt;br /&gt;
It will not create any Notebooks based on courses.&lt;br /&gt;
&lt;br /&gt;
====LMS has to be checked====&lt;br /&gt;
The field Skolefag_LMS in the students table has to be True. (Look in the documentation for the specific administrative system to see how this is set)&lt;br /&gt;
&lt;br /&gt;
====Based on template filter====&lt;br /&gt;
Create Notebook based on a filter that is specified per template.&lt;br /&gt;
[[File:Office365filters.png|none|thumb|507x507px]]&lt;br /&gt;
&lt;br /&gt;
====All====&lt;br /&gt;
Create all Notebooks.&lt;br /&gt;
&lt;br /&gt;
====Title====&lt;br /&gt;
Title of the Notebook. Changing this after a Notebook has been created will cause it to be updated.  &lt;br /&gt;
&lt;br /&gt;
====Search filter and criteria====&lt;br /&gt;
This will enable you to concatenate Notebooks that would have been created as two or more Notebooks to be created as one Notebook.&lt;br /&gt;
[[File:Office365filter.png|none|thumb|416x416px]]&lt;br /&gt;
&lt;br /&gt;
====Remarks====&lt;br /&gt;
This is just for description purposes. &lt;br /&gt;
&lt;br /&gt;
====Course Filter====&lt;br /&gt;
The SQL like filter (regular expression). If an activity matches, it will be subject to the settings below in semester roll.&lt;br /&gt;
&lt;br /&gt;
====Semester roll====&lt;br /&gt;
Use replace string with empty&lt;br /&gt;
&lt;br /&gt;
This will replace a section of the Notebook with an empty string.&lt;br /&gt;
&lt;br /&gt;
====Start index====&lt;br /&gt;
Determine where to start in string to remove.&lt;br /&gt;
&lt;br /&gt;
====Length====&lt;br /&gt;
How many characters will be removed from the string.&lt;br /&gt;
&lt;br /&gt;
====Activity Filter====&lt;br /&gt;
The SQL like filter (regular expression). If an activity matches, it will be subject to the settings below in semester roll&lt;br /&gt;
&lt;br /&gt;
====Semester roll====&lt;br /&gt;
Use replace string with empty&lt;br /&gt;
&lt;br /&gt;
This will replace a section of the Notebook with an empty string.&lt;br /&gt;
&lt;br /&gt;
====Start index====&lt;br /&gt;
Determine where to start in string to remove.&lt;br /&gt;
&lt;br /&gt;
====Length====&lt;br /&gt;
How many characters will be removed from the string.  &lt;br /&gt;
&lt;br /&gt;
After you have created the Office 365 setting you put in on a template.&lt;br /&gt;
[[File:Office365template2.png|none|thumb|720x720px]]&lt;br /&gt;
&lt;br /&gt;
Setting: This will created the users with on this template in Office 365 with these settings&lt;br /&gt;
&lt;br /&gt;
===OneNote Class Notebook settings===&lt;br /&gt;
Notebooks created with setting. If this is not specified no activities/courses on this template will be created.&lt;br /&gt;
[[File:Office365settings.png|none|thumb|422x422px]]&lt;br /&gt;
&lt;br /&gt;
====Site collection URL====&lt;br /&gt;
Which Notebook collection is used when creating Notebooks&lt;br /&gt;
&lt;br /&gt;
====Language====&lt;br /&gt;
The default language of the created Notebook&lt;br /&gt;
&lt;br /&gt;
====Sections====&lt;br /&gt;
Define the section the Class Notebook will be created with. Students that are attached to this Class Notebook will have these sections.  &lt;br /&gt;
[[File:Office365onenoteclassnotebooksettingedit.png|none|thumb|447x447px]]&lt;br /&gt;
&lt;br /&gt;
====SQL Groups====&lt;br /&gt;
&lt;br /&gt;
Members of these groups will be attached to all Notebooks created with this setting as teachers[[File:Office365sqlgroups.png|none|thumb|447x447px]]&lt;br /&gt;
&lt;br /&gt;
====Group name====&lt;br /&gt;
This can only be a group that is found in UMS &lt;br /&gt;
&lt;br /&gt;
You get a list of these groups by running this SQL command:&lt;br /&gt;
&lt;br /&gt;
Select Distinct Aktivitet As Activity From Students Order By Activity&lt;br /&gt;
&lt;br /&gt;
===Organization Settings===&lt;br /&gt;
[[File:Office365organization.png|none|thumb|656x656px]]&lt;br /&gt;
&lt;br /&gt;
====&#039;&#039;Site settings&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
====Description====&lt;br /&gt;
Add a description to be able to identify the account.&lt;br /&gt;
&lt;br /&gt;
====SharePoint administration URL====&lt;br /&gt;
URL of the SharePoint administration site for the tenant.&lt;br /&gt;
&lt;br /&gt;
====&#039;&#039;Credentials settings&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
====Username====&lt;br /&gt;
Username used to connect to SharePoint.&lt;br /&gt;
&lt;br /&gt;
====Password====&lt;br /&gt;
Password used to connect to SharePoint.&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
 &amp;gt; LiveAtEdu.exe [&amp;lt;optional&amp;gt; Action]&lt;br /&gt;
Eg.&lt;br /&gt;
 &amp;gt; LiveAtEdu.exe&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; LiveAtEdu.exe UsersOnly&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Users&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|UsersOnly&lt;br /&gt;
|Runs all the parameters in this table&lt;br /&gt;
|-&lt;br /&gt;
|UpdateUsers&lt;br /&gt;
|Update users&lt;br /&gt;
|-&lt;br /&gt;
|DisableUsers&lt;br /&gt;
|Disable users&lt;br /&gt;
|-&lt;br /&gt;
|EnableUsers&lt;br /&gt;
|Enable users&lt;br /&gt;
|-&lt;br /&gt;
|DeleteUsers&lt;br /&gt;
|Delete users&lt;br /&gt;
|-&lt;br /&gt;
|CreateUsers&lt;br /&gt;
|Create users&lt;br /&gt;
|-&lt;br /&gt;
|UpdateImmutableID&lt;br /&gt;
|Update Immutable ID on users&lt;br /&gt;
|-&lt;br /&gt;
|UpdateOffice365SettingsIDForUsers&lt;br /&gt;
|Update Office 365 settings for users if they have changed template&lt;br /&gt;
|-&lt;br /&gt;
|UpdateUsersObjectID&lt;br /&gt;
|Get the object ID from office 365 and save it in UMS DB&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+User settings&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|RunUserSettings&lt;br /&gt;
|Runs all the parameters in this table&lt;br /&gt;
|-&lt;br /&gt;
|DisableStrongPassword&lt;br /&gt;
|Disable strong password for users&lt;br /&gt;
|-&lt;br /&gt;
|SetMailAddress&lt;br /&gt;
|Set mail address on users&lt;br /&gt;
|-&lt;br /&gt;
|Forward2OnPremiseMail&lt;br /&gt;
|Set forward to OnPremise mail on users&lt;br /&gt;
|-&lt;br /&gt;
|SetCalendarRights&lt;br /&gt;
|Set calendar rights on users&lt;br /&gt;
|-&lt;br /&gt;
|UpdateMailboxTimeZone&lt;br /&gt;
|Update timezone for mailbox users&lt;br /&gt;
|-&lt;br /&gt;
|UpdateMailboxLanguage&lt;br /&gt;
|Update language for mailbox users&lt;br /&gt;
|-&lt;br /&gt;
|EnablePasswordNeverExpires&lt;br /&gt;
|Enable password never expires for users&lt;br /&gt;
|-&lt;br /&gt;
|UpdatePictures&lt;br /&gt;
|Update pictures&lt;br /&gt;
|-&lt;br /&gt;
|Forward2PrivateMail&lt;br /&gt;
|Set forward to privatemail on users&lt;br /&gt;
|-&lt;br /&gt;
|UpdateReplyToAll&lt;br /&gt;
|Set Reply to all on users&lt;br /&gt;
|-&lt;br /&gt;
|ProvisionOneDrive&lt;br /&gt;
|Provision OneDrive to users&lt;br /&gt;
|-&lt;br /&gt;
|UpdateAddressBookPolicy&lt;br /&gt;
|Set address book policy on users&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Groups&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|GroupsOnly&lt;br /&gt;
|Runs all the parameters in this table&lt;br /&gt;
|-&lt;br /&gt;
|RemoveGroupMembers&lt;br /&gt;
|Remove group members from groups&lt;br /&gt;
|-&lt;br /&gt;
|AddGroupMembers&lt;br /&gt;
|Add members to groups&lt;br /&gt;
|-&lt;br /&gt;
|DeleteGroups&lt;br /&gt;
|Delete groups&lt;br /&gt;
|-&lt;br /&gt;
|CreateGroups&lt;br /&gt;
|Create groups&lt;br /&gt;
|-&lt;br /&gt;
|UpdateGroupsObjectID&lt;br /&gt;
|Get the object ID from office 365 and save it in UMS DB&lt;br /&gt;
|-&lt;br /&gt;
|GetUPNsForGroups&lt;br /&gt;
|Get the UPN of template groups from Office 365&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Template groups&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|TemplateGroupsOnly&lt;br /&gt;
|Runs all the parameters in this table&lt;br /&gt;
|-&lt;br /&gt;
|RemoveUsersFromTemplateGroups&lt;br /&gt;
|Remove users from template security groups&lt;br /&gt;
|-&lt;br /&gt;
|AddUsers2TemplateGroups&lt;br /&gt;
|Add users to template security groups&lt;br /&gt;
|-&lt;br /&gt;
|DeleteTemplateGroups&lt;br /&gt;
|Delete groups that are no longer template security groups&lt;br /&gt;
|-&lt;br /&gt;
|UpdateTemplateGroupsObjectID&lt;br /&gt;
|Get the object ID from office 365 and save it in UMS DB&lt;br /&gt;
|-&lt;br /&gt;
|GetUPNsForTemplateGroups&lt;br /&gt;
|Get the UPN of template security groups from Office 365&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Template extra groups&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|TemplateExtraGroupsOnly&lt;br /&gt;
|Runs all the parameters in this table&lt;br /&gt;
|-&lt;br /&gt;
|CreateTemplateExtraGroups&lt;br /&gt;
|Create groups from template extra group&lt;br /&gt;
|-&lt;br /&gt;
|DeleteTemplateExtraGroups&lt;br /&gt;
|Delete groups that are no longer in extra groups&lt;br /&gt;
|-&lt;br /&gt;
|AddTemplateExtraGroupMembers&lt;br /&gt;
|Add users to template extra groups&lt;br /&gt;
|-&lt;br /&gt;
|UpdateTemplateExtraGroupsObjectID&lt;br /&gt;
|Get the object ID from office 365 and save it in UMS DB&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Keep alive groups&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|KeepAliveGroupsOnly&lt;br /&gt;
|Runs all the parameters in this table&lt;br /&gt;
|-&lt;br /&gt;
|CreateKeepAliveGroups&lt;br /&gt;
|Create keep alive groups&lt;br /&gt;
|-&lt;br /&gt;
|DeleteKeepAliveGroups&lt;br /&gt;
|Delete keep alive groups if they are no longer in UMS&lt;br /&gt;
|-&lt;br /&gt;
|UpdateSetMailAddressOnKeepAliveGroups&lt;br /&gt;
|Update the mail address on keep alive groups&lt;br /&gt;
|-&lt;br /&gt;
|AddKeepAliveGroupMembers&lt;br /&gt;
|Add users to keep alive groups&lt;br /&gt;
|-&lt;br /&gt;
|RemoveKeepAliveGroupMembers&lt;br /&gt;
|Remove users from keep alive groups&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Disabled groups&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|DisabledGroupsOnly&lt;br /&gt;
|Runs all the parameters in this table&lt;br /&gt;
|-&lt;br /&gt;
|CreateDisabledGroups&lt;br /&gt;
|Create disabled groups&lt;br /&gt;
|-&lt;br /&gt;
|DeleteDisabledGroups&lt;br /&gt;
|Delete disabled groups if they are no longer in UMS&lt;br /&gt;
|-&lt;br /&gt;
|UpdateSetMailAddressOnDisabledGroups&lt;br /&gt;
|Update the mail address on disabled groups&lt;br /&gt;
|-&lt;br /&gt;
|AddDisabledGroupMembers&lt;br /&gt;
|Add users to disabled groups&lt;br /&gt;
|-&lt;br /&gt;
|RemoveDisabledGroupMembers&lt;br /&gt;
|Remove users from disabled groups&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Teams&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|TeamsOnly&lt;br /&gt;
|Runs all the parameters in this table&lt;br /&gt;
|-&lt;br /&gt;
|AddTeams2DB&lt;br /&gt;
|Add Teams to UMS DB&lt;br /&gt;
|-&lt;br /&gt;
|CreateTeams&lt;br /&gt;
|Create Teams&lt;br /&gt;
|-&lt;br /&gt;
|AddTeamToGroup&lt;br /&gt;
|Add teams to groups&lt;br /&gt;
|-&lt;br /&gt;
|ActivateTeams&lt;br /&gt;
|Activate teams&lt;br /&gt;
|-&lt;br /&gt;
|UpdateTeams&lt;br /&gt;
|Update Teams&lt;br /&gt;
|-&lt;br /&gt;
|DeleteTeams&lt;br /&gt;
|Delete Teams&lt;br /&gt;
|-&lt;br /&gt;
|AddTeachers2TeamsDBTable&lt;br /&gt;
|Add teachers to Office365Teams_Teachers table in UMS DB&lt;br /&gt;
|-&lt;br /&gt;
|AddTeachers2Teams&lt;br /&gt;
|Add teachers to Teams&lt;br /&gt;
|-&lt;br /&gt;
|AddLearners2TeamsDBTable&lt;br /&gt;
|Add learners to Office365Teams_Learners table in UMS DB&lt;br /&gt;
|-&lt;br /&gt;
|AddLearners2Teams&lt;br /&gt;
|Add learners to Teams&lt;br /&gt;
|-&lt;br /&gt;
|TeamsDeleteTeachers&lt;br /&gt;
|Delete teachers in Teams&lt;br /&gt;
|-&lt;br /&gt;
|TeamsDeleteLearners&lt;br /&gt;
|Delete learners in Teams&lt;br /&gt;
|-&lt;br /&gt;
|TeamsUpdateNeedToBeUpdated&lt;br /&gt;
|Set update on next run flag&lt;br /&gt;
|-&lt;br /&gt;
|UpdateLearnersExternalID&lt;br /&gt;
|Retrieve the learners object id from Office 365 and save it in UMS DB&lt;br /&gt;
|-&lt;br /&gt;
|UpdateTeachersExternalID&lt;br /&gt;
|Retrieve the teachers object id from Office 365 and save it in UMS DB&lt;br /&gt;
|-&lt;br /&gt;
|UpdateSchoolsExternalID&lt;br /&gt;
|Retrieve the schools object id from Office 365 and save it in UMS DB&lt;br /&gt;
|-&lt;br /&gt;
|UpdateTeamsExternalID&lt;br /&gt;
|Retrieve the teams object id from Office 365 and save it in UMS DB&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+SharePoint&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|SharepointOnly&lt;br /&gt;
|Runs all the parameters in this table&lt;br /&gt;
|-&lt;br /&gt;
|CreateSites&lt;br /&gt;
|Create sites&lt;br /&gt;
|-&lt;br /&gt;
|AddSites2DB&lt;br /&gt;
|Add sites in UMS DB&lt;br /&gt;
|-&lt;br /&gt;
|DeleteSites&lt;br /&gt;
|Delete sites&lt;br /&gt;
|-&lt;br /&gt;
|UpdateSites&lt;br /&gt;
|Update sites&lt;br /&gt;
|-&lt;br /&gt;
|AddLearners2SitesInDB&lt;br /&gt;
|Add learners to UMS DB&lt;br /&gt;
|-&lt;br /&gt;
|DeleteTeachers&lt;br /&gt;
|Delete teachers&lt;br /&gt;
|-&lt;br /&gt;
|AddTeachers2Sites&lt;br /&gt;
|Add teachers to sites&lt;br /&gt;
|-&lt;br /&gt;
|DeleteSiteGroups&lt;br /&gt;
|Delete site groups&lt;br /&gt;
|-&lt;br /&gt;
|AddTeachers2SitesInDB&lt;br /&gt;
|Add teachers to UMS DB&lt;br /&gt;
|-&lt;br /&gt;
|DeleteLearners&lt;br /&gt;
|Delete learners&lt;br /&gt;
|-&lt;br /&gt;
|AddLearners2Sites&lt;br /&gt;
|Add learners to sites&lt;br /&gt;
|-&lt;br /&gt;
|UpdateSiteURL&lt;br /&gt;
|Update sites with new URL&lt;br /&gt;
|-&lt;br /&gt;
|AddNoteBooks2Sites&lt;br /&gt;
|Add OneNote Class NoteBooks to sites&lt;br /&gt;
|-&lt;br /&gt;
|SharePointDeleteNoteBooks&lt;br /&gt;
|Delete OneNote Class NoteBooks from sites&lt;br /&gt;
|-&lt;br /&gt;
|UpdateNeedToBeUpdated&lt;br /&gt;
|Set the update on next run flag&lt;br /&gt;
|-&lt;br /&gt;
|UpdateSitesIsActive&lt;br /&gt;
|Update site active/inactive status&lt;br /&gt;
|-&lt;br /&gt;
|SharePoint_OneNoteClassNotebook_AddMissingTeachers&lt;br /&gt;
|Add missing Teachers to OneNote Class NoteBooks&lt;br /&gt;
|-&lt;br /&gt;
|SharePoint_OneNoteClassNotebook_AddMissingLearners&lt;br /&gt;
|Add missing Learners to OneNote Class NoteBooks&lt;br /&gt;
|-&lt;br /&gt;
|ReAddLearners2Sites&lt;br /&gt;
|Re-add learners to sites if ReAdd is true in DB&lt;br /&gt;
|-&lt;br /&gt;
|ReAddTeachers2Sites&lt;br /&gt;
|Re-add teachers to sites if ReAdd is true in DB&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+OneNoteClassNoteBook&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|OneNoteClassNotebookOnly&lt;br /&gt;
|Runs all the parameters in this table&lt;br /&gt;
|-&lt;br /&gt;
|AddNotebooks2DB&lt;br /&gt;
|Add OneNote Class NoteBooks to UMS DB&lt;br /&gt;
|-&lt;br /&gt;
|CreateNotebooks&lt;br /&gt;
|Create OneNote Class NoteBooks&lt;br /&gt;
|-&lt;br /&gt;
|UpdateOneNotes&lt;br /&gt;
|Update OneNote Class NoteBooks&lt;br /&gt;
|-&lt;br /&gt;
|DeleteOneNotes&lt;br /&gt;
|Delete OneNote Class NoteBooks&lt;br /&gt;
|-&lt;br /&gt;
|AddTeachers2OneNotesInDB&lt;br /&gt;
|Add teachers to OneNote Class NoteBooks in UMS DB&lt;br /&gt;
|-&lt;br /&gt;
|AddTeachers2OneNotes&lt;br /&gt;
|Add teachers to OneNote Class NoteBooks&lt;br /&gt;
|-&lt;br /&gt;
|AddLearners2OneNotesInDB&lt;br /&gt;
|Add learners to OneNote Class NoteBooks in UMS DB&lt;br /&gt;
|-&lt;br /&gt;
|AddLearners2OneNotes&lt;br /&gt;
|Add learners to OneNote Class NoteBooks&lt;br /&gt;
|-&lt;br /&gt;
|OneNoteDeleteTeachers&lt;br /&gt;
|Delete teachers in OneNote Class NoteBooks&lt;br /&gt;
|-&lt;br /&gt;
|OneNoteDeleteLearners&lt;br /&gt;
|Delete learners in OneNote Class NoteBooks&lt;br /&gt;
|-&lt;br /&gt;
|OneNoteUpdateNeedToBeUpdated&lt;br /&gt;
|Set update on next run flag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Technical settings==&lt;br /&gt;
&lt;br /&gt;
==Maintenance==&lt;br /&gt;
&lt;br /&gt;
===portal.office.com===&lt;br /&gt;
&lt;br /&gt;
====&#039;&#039;Teams&#039;&#039;====&lt;br /&gt;
&lt;br /&gt;
Go to [http://portal.office.com Office Portal] and login with your admin account( the same UMS uses).&lt;br /&gt;
&lt;br /&gt;
Select settings Services and add-ins and click Teams.&lt;br /&gt;
[[File:Office_365_Teams_activation.PNG|1350x1350px|thumb|Activate Teams for a license type, ie. Guest or Education-Student|none]]&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
===Office 365 Licens (Unable to assign this license) How to troubleshoot this error===&lt;br /&gt;
&lt;br /&gt;
====Error message from UMS Job log (LiveAtEdu)====&lt;br /&gt;
&lt;br /&gt;
=====&#039;&#039;Error = Unable to assign this license&#039;&#039;=====&lt;br /&gt;
&#039;&#039;Set-MsolUserLicense -UserPrincipalName &#039;khhi3275@ums.dk&#039; -AddLicenses &amp;quot;inLogic:STANDARDWOFFPACK_IW_STUDENT&amp;quot; -LicenseOptions $MyO365Sku&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Error = Unable to assign this license.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;29-01-2019 13:23:00 -    at Utilities.Office365.SetLicenseForUser(String UPN, List`1 Licenses, SqlConnection&amp;amp; LocalSQLDBConnection)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;                      at LiveAtEdu_Sync.LiveAtEdu_Sync.PerformFunctionUserSettings(String SQLStr, UserFunctions Office365Function, MethodInfo StackFrame)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;29-01-2019 13:23:00 - khhi3275- UPN = khhi3275@ums.dk&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;29-01-2019 13:23:01 - (UpdateLicenseInfoOnUsers) Error. Could not set license for user - khhi3275@ums.dk       &#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*Try adding the same licenses manually to a single user in office365. You could see if that is possible[[File:Licens.jpg|none|thumb|814x814px]]&lt;br /&gt;
&lt;br /&gt;
*The error shows that it is not possible to put the same licenses together[[File:Licens Error.png|none|thumb|812x812px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
*Change your licenses in UMS and run the LiveAtEdu job again&lt;br /&gt;
&lt;br /&gt;
===Groups===&lt;br /&gt;
How to get groups visible in OneDrive and Classroom&lt;br /&gt;
&lt;br /&gt;
Remove the checkbox from Only senders inside my organization&lt;br /&gt;
&lt;br /&gt;
Why do I not get the site created?&lt;br /&gt;
&lt;br /&gt;
#Activity&lt;br /&gt;
##Is there a user on the activity with a primary template that has an office 365 setting attached&lt;br /&gt;
##Is the flag Aktivitet_LMS = True&lt;br /&gt;
#Course&lt;br /&gt;
##Is there a user on the course with a primary template that has an office 365 setting attached&lt;br /&gt;
##Is the flag Skolefag_LMS = True&lt;br /&gt;
&lt;br /&gt;
===Disable or enabling user===&lt;br /&gt;
Error = Message: Insufficient privileges to complete the operation.&lt;br /&gt;
&lt;br /&gt;
This could be the result of the user trying to be disabled/enabled has roles that does not allow the action like Global Administrator.&lt;br /&gt;
&lt;br /&gt;
===The term &#039;Set-UnifiedGroup&#039; is not recognized as a name of a cmdlet, function, script file, or executable program.===&lt;br /&gt;
https://docs.microsoft.com/en-us/powershell/exchange/find-exchange-cmdlet-permissions?view=exchange-ps&lt;br /&gt;
&lt;br /&gt;
Run this command to check which roletypes are needed&lt;br /&gt;
 Get-ManagementRole -Cmdlet Set-UnifiedGroup&lt;br /&gt;
&lt;br /&gt;
===A parameter cannot be found that matches parameter name &#039;type&#039;.===&lt;br /&gt;
https://docs.microsoft.com/en-us/powershell/exchange/find-exchange-cmdlet-permissions?view=exchange-ps&lt;br /&gt;
[[File:Office365 ExchangeAdminRoleNeeded.jpg|none|thumb|1275x1275px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Run this command to check which roletypes are needed&lt;br /&gt;
 Get-ManagementRole -Cmdlet Get-DistributionGroup&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=SSO&amp;diff=4049</id>
		<title>SSO</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=SSO&amp;diff=4049"/>
		<updated>2021-08-23T13:35:11Z</updated>

		<summary type="html">&lt;p&gt;Khm: /* Change ADFS certificates in UMS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Single-Sign-On-SSO-DK.png|thumb]]&lt;br /&gt;
Our Single Sign-on (SSO) module is designed for schools that would like to make it easy for employees and students to use the school&#039;s various electronic systems. With the SSO module, users get one login and password that logs them into all the associated services at once.&lt;br /&gt;
&lt;br /&gt;
For example, students can Access the school&#039;s LMS system, library system, digital dictionaries and databases with scientific publications - all by signing in with SSO once and for all.&lt;br /&gt;
&lt;br /&gt;
This saves time and effort whenever users need to use one of the school&#039;s systems. At the same time, it gives users a simpler everyday life because they do not have to worry about having to keep in mind several logins.&lt;br /&gt;
&lt;br /&gt;
==Prerequisite and purpose==&lt;br /&gt;
&lt;br /&gt;
===Prerequisite===&lt;br /&gt;
This requires that:&lt;br /&gt;
&lt;br /&gt;
*An installed Active Directory federation services (AD FS) server.&lt;br /&gt;
*Access to configuration snap in. Either via Remote PowerShell or directly on the server.&lt;br /&gt;
*An UMS installation, licensed to SSO from inLogic.&lt;br /&gt;
*A star or new certificate for the address that the AD FS server needs.&lt;br /&gt;
&lt;br /&gt;
===purpose===&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
==Change ADFS certificates in UMS==&lt;br /&gt;
The UMS server also needs the certificates from the ADFS server. This is done by consuming the metadata. &#039;&#039;You can use &amp;lt;nowiki&amp;gt;https://samlmd2cert.azurewebsites.net/&amp;lt;/nowiki&amp;gt; to get the certificate files.&#039;&#039; &amp;lt;!-- You can use https://samlmd2cert.azurewebsites.net/ to get the certificate files. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When you have the new and updated certificates from ADFS it needs to be in rootfolder of the UMS Application.&lt;br /&gt;
&lt;br /&gt;
Physical path (C:\inetpub\wwwroot).&lt;br /&gt;
&lt;br /&gt;
And we need to update the records in the UMS database, if the name of the file has changed.&lt;br /&gt;
 Update SSOSetting set PartnerCertificateFile = &#039;TheNameOfCertificate_signing.cer&#039;&lt;br /&gt;
 Where ID = &amp;lt;The id of the active setting&amp;gt;&lt;br /&gt;
It is the signing certificate the UMS needs from the ADFS.&lt;br /&gt;
&lt;br /&gt;
Now delete the old certificate files from your UMS folder, do an iisreset to let the UMS resolve the newly entered information in the databse.&lt;br /&gt;
&lt;br /&gt;
==Changing the Self Signed Certificate in SSO.==&lt;br /&gt;
&lt;br /&gt;
#Get started by clicking on the house icon in the menu. Search for IIS and click on Internet Information Services (IIS) Manager.[[File:Sso iis manager.png|none|thumb]]&lt;br /&gt;
#In the Connections column on the left, click on the name of the server. Double-click on Server Certificates.[[File:IIS-Cert-1.png|none|thumb|497x497px]]&lt;br /&gt;
#In the Actions column on the right, click on Create Self-Signed Certificate.[[File:IIS-Cert-2.png|none|thumb|499x499px]]&lt;br /&gt;
#Enter any friendly name and then click OK.[[File:IIS-Cert-3.png|none|thumb|508x508px]]&lt;br /&gt;
#You will now have an IIS Self Signed Certificate valid for 1 year listed under Server Certificates.&lt;br /&gt;
#Right click on the new create certificate and then click &#039;&#039;&#039;Export.&#039;&#039;&#039;[[File:IIS-Cert-4.png|none|thumb|742x742px]]&lt;br /&gt;
#Remember to delete the old self signed certificate (C:\inetpub\wwwroot).[[File:IIS-Cert-5.png|none|thumb|573x573px]]&lt;br /&gt;
#Enter the path (C:\inetpub\wwwroot\UMS-SSO). The new password you type will be used later on when you set up your environment. Please remember this password. Click OK.[[File:IIS-Cert-8.png|none|thumb|771x771px]]&lt;br /&gt;
#Open SQl Management Studio and type “&#039;&#039;select * from SSOSetting&#039;&#039;”. You will see all settings for UMS SSO.&lt;br /&gt;
#Update the Certificate by typing “&#039;&#039;update SSOSetting set LocalCertificateFile =&#039;UMS-SSO.pfx&#039;&#039;”&lt;br /&gt;
#Update the Password by typing “&#039;&#039;update SSOSetting set LocalCertificatePassword =&#039;Velk0mmen2018&#039;&#039;”.[[File:IIS-Cert-9.png|none|thumb|781x781px]]&lt;br /&gt;
#Open the IIS Server and click Start. Click Run type IISReset and then click OK.[[File:IIS-Cert-10.png|none|thumb|377x377px]]&lt;br /&gt;
#Open the AD FS Server and search for AD FS. Click on AD FS Management.[[File:IIS-Cert-11.png|none|thumb|305x305px]]&lt;br /&gt;
#Click on the Trust Relationships folder and then click on Relying Party Trusts.&lt;br /&gt;
#In the details panel, click the relying party trust that you want to update from federation metadata.&lt;br /&gt;
#In the Action panel, click Update from Federation Metadata.&lt;br /&gt;
#In the properties dialog box for the trust, click Update to start the update.&lt;br /&gt;
#When the update is complete, click OK.[[File:IIS-Cert-12.png|none|thumb|745x745px]]&lt;br /&gt;
&lt;br /&gt;
==Certificates - Update Service Communication Certificate==&lt;br /&gt;
&lt;br /&gt;
===Things to have ready:===&lt;br /&gt;
A new updated certificate with private key - &amp;lt;file&amp;gt;.pfx&lt;br /&gt;
&lt;br /&gt;
A connection to AD FS server, with administrator rights.&lt;br /&gt;
&lt;br /&gt;
First install the certificate on the server, select my computer when asked.&lt;br /&gt;
&lt;br /&gt;
Now go to AD FS -&amp;gt; Service -&amp;gt; Certificates -&amp;gt; Set Service Communications Certificate...&lt;br /&gt;
&lt;br /&gt;
Now select &amp;quot;view more&amp;quot; -&amp;gt; And select the new certificate&lt;br /&gt;
&lt;br /&gt;
[[File:ADFSChangeCertificate.png|1389x1389px]]&lt;br /&gt;
&lt;br /&gt;
And now we need to set the certificate on the http.sys on adfs&lt;br /&gt;
 Set-AdfsSslCertificate -Thumpprint xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&lt;br /&gt;
Now go to Services and restart the AD FS Service&lt;br /&gt;
&lt;br /&gt;
==Certificates - Automatic rollover==&lt;br /&gt;
Out of the box, ADFS generates two self-signed certificates that are good for one year. One certificate for token signing, and one for token encryption.&lt;br /&gt;
&lt;br /&gt;
The token signing certificate is for signing the tokens used in the user sign on process, and it is considered the “bedrock of security” for ADFS. If someone gained access to this certificate (the public/private key pair), they could impersonate your ADFS environment.&lt;br /&gt;
&lt;br /&gt;
The token decryption certificate is used for encrypting the tokens used in the user sign on process. This certificate isn’t used very often.&lt;br /&gt;
&lt;br /&gt;
For more information about AD FS Certificates see https://blogs.technet.microsoft.com/askpfeplat/2015/01/26/adfs-deep-dive-certificate-planning/&lt;br /&gt;
&lt;br /&gt;
===Token Certificate Validity Periods===&lt;br /&gt;
By default, ADFS is configured to generate self-signed token certificates with a duration of one year. This duration can be changed, but keep in mind that the token-signing certificate is the foundation of the sign on process, and therefore, it really shouldn’t have a duration longer than 3 years.&lt;br /&gt;
&lt;br /&gt;
===ADFS Federation Metadata===&lt;br /&gt;
The public key portion of both certificates are included in the ADFS Federation Metadata, and are available from a public URL endpoint on all ADFS servers in the farm. Relying Party (RP) applications that can consume federation metadata will automatically pick up certificate changes whenever they pull the federation metadata file (FederationMetadata.xml) from your ADFS environment.&lt;br /&gt;
&lt;br /&gt;
Example URL&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://adfs.contoso.com/FederationMetadata/2007-06/FederationMetadata.xml&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Before performing a token certificate rollover, you will want to reach out to your RP partners (application owners) to see how often their application pulls the federation metadata so that they will experience little to no downtime before trusting the new certificates.&lt;br /&gt;
&lt;br /&gt;
However, most applications do not automatically retrieve the federation metadata on a schedule. Instead, an application owner will need to import the federation metadata from an XML file, or manually force the application to retrieve the federation metadata from the URL endpoint.&lt;br /&gt;
&lt;br /&gt;
And then there’s the applications that don’t consume federation metadata at all — they have to be manually updated. This means you will need to send the public key portion of the new certificates to the application owners.&lt;br /&gt;
&lt;br /&gt;
===Certificate and Rollover Settings===&lt;br /&gt;
Run the following PowerShell command on the primary ADFS server to view the properties related to certificates:&lt;br /&gt;
 Get-AdfsProperties | FL AutoCert*, Certificate*&lt;br /&gt;
&lt;br /&gt;
===ADFS Properties Related to Certificate Renewal===&lt;br /&gt;
&#039;&#039;&#039;Auto Certificate Rollover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the auto-rollover process is enabled (set to “True”), ADFS will automatically generate new “Secondary” certificates before the current ones expire, and then eventually promote them to be “Primary”.  For a manual renewal process, this should be set to “False” until you’re ready to generate new “Secondary” certificates.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Certificate Generation Threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
New certificates will be generated this number of days before the expiration of the current “Primary” certificates.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Certificate Promotion Threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Number of days the newly generated certificate will exist before being promoted from the “Secondary” certificate to the “Primary” certificate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Certificate Critical Threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Number of days prior to expiry of the certificates before a new certificate is generated and promoted to the “Primary” certificate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Certificate Duration&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Validity period of the auto-generated certificates. Default is 1 year.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Certificate Rollover Interval&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Number of minutes at which ADFS checks to see if a new certificate needs to be generated.&lt;br /&gt;
&lt;br /&gt;
===Token Certificate Rollover Process===&lt;br /&gt;
There are 3 approaches for rolling over the token certificates. Which one to use will depend on the number of relying party trusts you have, the level of control you wish to exert upon the process, and the timing of the certificate expirations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatic Staged Rollover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You would use this process when ADFS controls when the new self-signed token certificates are generated, and when they are promoted to become the “Primary” certificates.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manual Staged Rollover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You would use this process to manually control when the new self-signed token certificates are generated, and when they are promoted to become the “Primary” certificates.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Immediate Manual Rollover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Think of this as a certificate cut-over process.  You would do this if you wanted to roll over your certificates immediately without having a set of primary and secondary certificates.  You would also do this if your current certificates expired and you need to renew immediately.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that there will be outage when Token certificates are immediately generated &amp;amp; promoted.  The relying parties (application owners) must update their configuration with the new certificates, but until they do so, single sign-on will not work.&lt;br /&gt;
&lt;br /&gt;
===Automatic Staged Rollover===&lt;br /&gt;
This process should only be used if you have already communicated to all your relying party application owners with information about the schedule for which the new certificates will be generated, when they will be promoted to the “Primary” certificate, and when the old certificates will expire.&lt;br /&gt;
&lt;br /&gt;
Note that an ADFS administrator will need to export the public portion of the new certificates and send them to the application owners.&lt;br /&gt;
&lt;br /&gt;
Additionally, you can use this process if all of the relying party applications pull your ADFS federation metadata automatically on a schedule. However, this is very rare because most SaaS providers do not want to incur the expense of querying federation metadata changes for hundreds, thousands, or even millions of endpoints. More than likely, you will need to coordinate with the application owners to update their applications.&lt;br /&gt;
&lt;br /&gt;
Permissions: Domain Admin &amp;amp; Local Admin on the primary ADFS server in the farm.&lt;br /&gt;
&lt;br /&gt;
Step 1: Certificate Duration&lt;br /&gt;
&lt;br /&gt;
Set the number of days that will become the validity period of the new self-signed token certificates.&lt;br /&gt;
&lt;br /&gt;
*1 Year: 365&lt;br /&gt;
*3 Years: 1095&lt;br /&gt;
*5 Years: 1827&lt;br /&gt;
&lt;br /&gt;
 Set-ADFSProperties -CertificateDuration 1095&lt;br /&gt;
Step 2: Certificate Generation Threshold&lt;br /&gt;
&lt;br /&gt;
Set the number of days before the expiration date of the current certificates that ADFS should generate the new certificates. Thirty days is usually a good number, but you could make it more.&lt;br /&gt;
 Set-ADFSProperties -CertificateGenerationThreshold 30&lt;br /&gt;
Step 3: Certificate Promotion Threshold&lt;br /&gt;
&lt;br /&gt;
When ADFS generates the new self-signed certificates, they are initially set as “Secondary” certificates. ADFS will then use the value of this property to determine the number of days after the new certificates are generated to promote them to be the “Primary” certificates.&lt;br /&gt;
 Set-ADFSProperties -CertificatePromotionThreshold 25&lt;br /&gt;
Step 4: Certificate Critical Threshold&lt;br /&gt;
&lt;br /&gt;
If for some reason ADFS has not generated new self-signed certificates, or newly generated certificates have not been promoted to “Primary”, ADFS will perform these actions within the number of days set in this property prior to expiry of the current primary certificates. Leaving the default 2 days is usually best.&lt;br /&gt;
 Set-ADFSProperties -CertificateCriticalThreshold 2&lt;br /&gt;
Step 5: Auto Certificate Rollover&lt;br /&gt;
&lt;br /&gt;
This enables/disables the ADFS certificate rollover process, which uses the properties configured in the previous steps to rollover (renew &amp;amp; promote) the token certificates. This needs to be enabled.&lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $true&lt;br /&gt;
Step 6: Export the New Certificates&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, export the new certificates without their private keys. You can do this while the new certificates are set as “Secondary”.&lt;br /&gt;
&lt;br /&gt;
Open the ADFS Management Console: ADFS &amp;gt; Service &amp;gt; Certificates&lt;br /&gt;
&lt;br /&gt;
For each token certificate, perform the following:&lt;br /&gt;
&lt;br /&gt;
*Right-click the certificate &amp;gt; View Certificate…&lt;br /&gt;
*In the new window &amp;gt; Details (tab) &amp;gt; Copy to File (button) &amp;gt; Next&lt;br /&gt;
*Select: DER Encoded Binary X.509 (.CER) -or- Base-64 Encoded X.509 (.CER)&lt;br /&gt;
*Next &amp;gt; Browse to a location to save the file and give it a name&lt;br /&gt;
*Next &amp;gt; Finish&lt;br /&gt;
&lt;br /&gt;
Note: To export the certificate in .PEM format, choose Base-64 Encoded X.509 (.CER), and then rename the saved file with the .pem file extension.&lt;br /&gt;
&lt;br /&gt;
Step 7: Export the Federation Metadata XML&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, run the below PowerShell commands on the ADFS server to export the new ADFS Federation Metadata XML file. Make sure you modify the File Path before running the commands.&lt;br /&gt;
 # Set the file path&lt;br /&gt;
 $FilePath = &amp;quot;C:\Users\ADFSAdmin\Desktop\ADFS-MetaData.xml&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Export MetaData XML&lt;br /&gt;
 $mUrl = (Get-ADFSEndpoint | where Protocol -eq &amp;quot;Federation Metadata&amp;quot;).FullUrl.ToString()&lt;br /&gt;
 $httpHelper = new-object System.Net.WebClient&lt;br /&gt;
 $metadataAsString = $httpHelper.DownloadString($mUrl)&lt;br /&gt;
 $httpHelper.DownloadFile($mUrl , &amp;quot;$($FilePath)&amp;quot;)&lt;br /&gt;
Note:  If you export the metadata while there are both primary and secondary certificates, both of the certificates will be included in the XML file.  After the secondary certificates are promoted to primary, and the old certificates are deleted, you should generate a new XML file for future use.&lt;br /&gt;
&lt;br /&gt;
===Manual Staged Rollover===&lt;br /&gt;
You would use this process to manually control when the new self-signed token certificates are generated, and when they are promoted to become the “Primary” certificates. You will have full control over the rollover process. ADFS will not do anything automatically.&lt;br /&gt;
&lt;br /&gt;
Permissions: Domain Admin &amp;amp; Local Admin on the primary ADFS server in the farm.&lt;br /&gt;
&lt;br /&gt;
Step 1: Auto Certificate Rollover&lt;br /&gt;
&lt;br /&gt;
This enables/disables the ADFS certificate rollover process, which uses the properties configured in the below steps to rollover (renew &amp;amp; promote) the token certificates automatically. This should be set to False. If not, run the following command.&lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $false&lt;br /&gt;
Step 2: Certificate Duration&lt;br /&gt;
&lt;br /&gt;
Set the number of days that will become the validity period of the new self-signed token certificates.&lt;br /&gt;
&lt;br /&gt;
*1 Year: 365&lt;br /&gt;
*3 Years: 1095&lt;br /&gt;
*5 Years: 1827&lt;br /&gt;
&lt;br /&gt;
 Set-ADFSProperties -CertificateDuration 1095&lt;br /&gt;
Step 3: Certificate Generation Threshold&lt;br /&gt;
&lt;br /&gt;
Set the number of days before the expiration date of the current certificates that ADFS should generate the new certificates. Depending on when you plan to manually generate the new certificates, this number should be greater than the number of days between when you generate the new certificates, and when the old certificates expire.&lt;br /&gt;
&lt;br /&gt;
You need to set this because you have to enable the ADFS auto rollover process in order to generate the new certificates. After you generate the new certificates, you will immediately disable the auto rollover process.&lt;br /&gt;
&lt;br /&gt;
Assuming you will generate the new certificates 30 days before the old ones expire, you could set this to 40.&lt;br /&gt;
 Set-ADFSProperties -CertificateGenerationThreshold 40&lt;br /&gt;
Step 4: Certificate Promotion Threshold&lt;br /&gt;
&lt;br /&gt;
When ADFS generates the new self-signed certificates, they are initially set as “Secondary” certificates. ADFS will then use the value of this property to determine the number of days after the new certificates are generated to promote them to be the “Primary” certificates.&lt;br /&gt;
&lt;br /&gt;
Even though the ADFS auto rollover process will be disabled, this property should be set to a number lower than the above Certificate Generation Threshold property.&lt;br /&gt;
 Set-ADFSProperties -CertificatePromotionThreshold 35&lt;br /&gt;
Step 5: Certificate Critical Threshold&lt;br /&gt;
&lt;br /&gt;
If for some reason ADFS has not generated new self-signed certificates, or newly generated certificates have not been promoted to “Primary”, ADFS will perform these actions within the number of days set in this property prior to expiry of the current primary certificates. Leaving the default 2 days is usually best.&lt;br /&gt;
 Set-ADFSProperties -CertificateCriticalThreshold 2&lt;br /&gt;
Step 6: Generate the New Certificates&lt;br /&gt;
&lt;br /&gt;
When you are ready to generate the new token certificates as “Secondary” certificates, use the below PowerShell commands. Both the current “Primary” certificates and the new “Secondary” certificates will be available to the relying party applications.&lt;br /&gt;
&lt;br /&gt;
Note that you cannot manually generate the new token certificates when the ADFS auto rollover process is disabled. Therefore, the commands enable the process, generates the new certificates as “Secondary”, and then disables the process.&lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $true&lt;br /&gt;
 &lt;br /&gt;
 Update-AdfsCertificate -CertificateType Token-Decrypting&lt;br /&gt;
 Update-AdfsCertificate -CertificateType Token-Signing&lt;br /&gt;
 &lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $false&lt;br /&gt;
Step 7: Export the Certificates&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, export the certificates without their private keys.&lt;br /&gt;
&lt;br /&gt;
Open the ADFS Management Console: ADFS &amp;gt; Service &amp;gt; Certificates&lt;br /&gt;
&lt;br /&gt;
For each token certificate, perform the following:&lt;br /&gt;
&lt;br /&gt;
*Right-click the certificate &amp;gt; View Certificate…&lt;br /&gt;
*In the new window &amp;gt; Details (tab) &amp;gt; Copy to File (button) &amp;gt; Next&lt;br /&gt;
*Select: DER Encoded Binary X.509 (.CER) -or- Base-64 Encoded X.509 (.CER)&lt;br /&gt;
*Next &amp;gt; Browse to a location to save the file and give it a name&lt;br /&gt;
*Next &amp;gt; Finish&lt;br /&gt;
&lt;br /&gt;
Note: To export the certificate in .PEM format, choose Base-64 Encoded X.509 (.CER), and then rename the saved file with the .pem file extension.&lt;br /&gt;
&lt;br /&gt;
Step 8: Export the Federation Metadata XML&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, run the below PowerShell commands on the ADFS server to export the ADFS Federation Metadata XML file. Make sure you modify the File Path before running the commands.&lt;br /&gt;
 # Set the file path&lt;br /&gt;
 $FilePath = &amp;quot;C:\Users\ADFSAdmin\Desktop\ADFS-MetaData.xml&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Export MetaData XML&lt;br /&gt;
 $mUrl = (Get-ADFSEndpoint | where Protocol -eq &amp;quot;Federation Metadata&amp;quot;).FullUrl.ToString()&lt;br /&gt;
 $httpHelper = new-object System.Net.WebClient&lt;br /&gt;
 $metadataAsString = $httpHelper.DownloadString($mUrl)&lt;br /&gt;
 $httpHelper.DownloadFile($mUrl , &amp;quot;$($FilePath)&amp;quot;)&lt;br /&gt;
Note:  Both primary and secondary certificates will be included in the XML file.  After you promote the new certificates and delete the old certificates, you should generate a new XML file for future use.&lt;br /&gt;
&lt;br /&gt;
Step 9: Promote the New Certificates&lt;br /&gt;
&lt;br /&gt;
Before the old certificates expire, you need to promote the new certificates to “Primary”.&lt;br /&gt;
&lt;br /&gt;
ADFS Management Console: ADFS &amp;gt; Service &amp;gt; Certificates&lt;br /&gt;
&lt;br /&gt;
For each “Secondary” token certificate, perform the following:&lt;br /&gt;
&lt;br /&gt;
*Right-click the certificate &amp;gt; Set as Primary&lt;br /&gt;
&lt;br /&gt;
Step 10: Delete the Old Certificates&lt;br /&gt;
&lt;br /&gt;
After the old certificates have expired, you can delete them from the ADFS Management Console. Note that you only have the option to delete “Secondary” certificates. You cannot delete a “Primary” certificate.&lt;br /&gt;
&lt;br /&gt;
ADFS Management Console: ADFS &amp;gt; Service &amp;gt; Certificates&lt;br /&gt;
&lt;br /&gt;
For each “Secondary” token certificate, perform the following:&lt;br /&gt;
&lt;br /&gt;
*Right-click the certificate &amp;gt; Delete&lt;br /&gt;
&lt;br /&gt;
===Immediate Manual Rollover===&lt;br /&gt;
When doing an immediate rollover, you force ADFS to immediately generate new certificates, promote them to “Primary”, and delete the old certificates.&lt;br /&gt;
&lt;br /&gt;
You would use these steps if you have a few relying party trusts and the application owners are ready to pull the new federation metadata from the ADFS public endpoint after a rollover. You would also use these steps if the ADFS auto rollover process is disabled, and your token certificates have expired.&lt;br /&gt;
&lt;br /&gt;
After the rollover, you can export the new certificates &amp;amp; federation metadata, and send them to your relying party application owners.&lt;br /&gt;
&lt;br /&gt;
Permissions: Domain Admin &amp;amp; Local Admin on the primary ADFS server in the farm.&lt;br /&gt;
&lt;br /&gt;
Step 1: Certificate Duration&lt;br /&gt;
&lt;br /&gt;
Set the number of days that will become the validity period of the new self-signed token certificates.&lt;br /&gt;
&lt;br /&gt;
*1 Year: 365&lt;br /&gt;
*3 Years: 1095&lt;br /&gt;
*5 Years: 1827&lt;br /&gt;
&lt;br /&gt;
 Set-ADFSProperties -CertificateDuration 1095&lt;br /&gt;
Step 2: Generate the New Certificates&lt;br /&gt;
&lt;br /&gt;
Note that you cannot generate the new token certificates when the ADFS auto rollover process is disabled. Therefore, the below commands enable the process, generate the new certificates, and then disable the process. The -Urgent switch indicates that the certificate rollover process should happen immediately, and remove older certificates.&lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $true&lt;br /&gt;
 &lt;br /&gt;
 Update-AdfsCertificate -CertificateType Token-Decrypting -Urgent&lt;br /&gt;
 Update-AdfsCertificate -CertificateType Token-Signing -Urgent&lt;br /&gt;
 &lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $false&lt;br /&gt;
Step 3: Export the Certificates&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, export the certificates without their private keys.&lt;br /&gt;
&lt;br /&gt;
Open the ADFS Management Console: ADFS &amp;gt; Service &amp;gt; Certificates&lt;br /&gt;
&lt;br /&gt;
For each token certificate, perform the following:&lt;br /&gt;
&lt;br /&gt;
*Right-click the certificate &amp;gt; View Certificate…&lt;br /&gt;
*In the new window &amp;gt; Details (tab) &amp;gt; Copy to File (button) &amp;gt; Next&lt;br /&gt;
*Select: DER Encoded Binary X.509 (.CER) -or- Base-64 Encoded X.509 (.CER)&lt;br /&gt;
*Next &amp;gt; Browse to a location to save the file and give it a name&lt;br /&gt;
*Next &amp;gt; Finish&lt;br /&gt;
&lt;br /&gt;
Note: To export the certificate in .PEM format, choose Base-64 Encoded X.509 (.CER), and then rename the saved file with the .pem file extension.&lt;br /&gt;
&lt;br /&gt;
Step 4: Export the Federation Metadata XML&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, run the below PowerShell commands on the ADFS server to export the ADFS Federation Metadata XML file. Make sure you modify the File Path before running the commands.&lt;br /&gt;
 # Set the file path&lt;br /&gt;
 $FilePath = &amp;quot;C:\Users\ADFSAdmin\Desktop\ADFS-MetaData.xml&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Export MetaData XML&lt;br /&gt;
 $mUrl = (Get-ADFSEndpoint | where Protocol -eq &amp;quot;Federation Metadata&amp;quot;).FullUrl.ToString()&lt;br /&gt;
 $httpHelper = new-object System.Net.WebClient&lt;br /&gt;
 $metadataAsString = $httpHelper.DownloadString($mUrl)&lt;br /&gt;
 $httpHelper.DownloadFile($mUrl , &amp;quot;$($FilePath)&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How to set SPN&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;http://www.gatepoint.ch/cmdreferenz/html/9341c753-11ff-4acc-993c-b05d50f32330.htm#bkmk_examples&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Final==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=SSO&amp;diff=4048</id>
		<title>SSO</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=SSO&amp;diff=4048"/>
		<updated>2021-08-23T13:34:25Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Single-Sign-On-SSO-DK.png|thumb]]&lt;br /&gt;
Our Single Sign-on (SSO) module is designed for schools that would like to make it easy for employees and students to use the school&#039;s various electronic systems. With the SSO module, users get one login and password that logs them into all the associated services at once.&lt;br /&gt;
&lt;br /&gt;
For example, students can Access the school&#039;s LMS system, library system, digital dictionaries and databases with scientific publications - all by signing in with SSO once and for all.&lt;br /&gt;
&lt;br /&gt;
This saves time and effort whenever users need to use one of the school&#039;s systems. At the same time, it gives users a simpler everyday life because they do not have to worry about having to keep in mind several logins.&lt;br /&gt;
&lt;br /&gt;
==Prerequisite and purpose==&lt;br /&gt;
&lt;br /&gt;
===Prerequisite===&lt;br /&gt;
This requires that:&lt;br /&gt;
&lt;br /&gt;
*An installed Active Directory federation services (AD FS) server.&lt;br /&gt;
*Access to configuration snap in. Either via Remote PowerShell or directly on the server.&lt;br /&gt;
*An UMS installation, licensed to SSO from inLogic.&lt;br /&gt;
*A star or new certificate for the address that the AD FS server needs.&lt;br /&gt;
&lt;br /&gt;
===purpose===&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
== Change ADFS certificates in UMS ==&lt;br /&gt;
The UMS server also needs the certificates from the ADFS server. This is done by consuming the metadata. &amp;lt;!-- You can use https://samlmd2cert.azurewebsites.net/ to get the certificate files. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When you have the new and updated certificates from ADFS it needs to be in rootfolder of the UMS Application.&lt;br /&gt;
&lt;br /&gt;
Physical path (C:\inetpub\wwwroot).&lt;br /&gt;
&lt;br /&gt;
And we need to update the records in the UMS database, if the name of the file has changed.&lt;br /&gt;
 Update SSOSetting set PartnerCertificateFile = &#039;TheNameOfCertificate_signing.cer&#039;&lt;br /&gt;
 Where ID = &amp;lt;The id of the active setting&amp;gt;&lt;br /&gt;
It is the signing certificate the UMS needs from the ADFS.&lt;br /&gt;
&lt;br /&gt;
Now delete the old certificate files from your UMS folder, do an iisreset to let the UMS resolve the newly entered information in the databse.&lt;br /&gt;
&lt;br /&gt;
==Changing the Self Signed Certificate in SSO.==&lt;br /&gt;
&lt;br /&gt;
#Get started by clicking on the house icon in the menu. Search for IIS and click on Internet Information Services (IIS) Manager.[[File:Sso iis manager.png|none|thumb]]&lt;br /&gt;
#In the Connections column on the left, click on the name of the server. Double-click on Server Certificates.[[File:IIS-Cert-1.png|none|thumb|497x497px]]&lt;br /&gt;
#In the Actions column on the right, click on Create Self-Signed Certificate.[[File:IIS-Cert-2.png|none|thumb|499x499px]]&lt;br /&gt;
#Enter any friendly name and then click OK.[[File:IIS-Cert-3.png|none|thumb|508x508px]]&lt;br /&gt;
#You will now have an IIS Self Signed Certificate valid for 1 year listed under Server Certificates.&lt;br /&gt;
#Right click on the new create certificate and then click &#039;&#039;&#039;Export.&#039;&#039;&#039;[[File:IIS-Cert-4.png|none|thumb|742x742px]]&lt;br /&gt;
#Remember to delete the old self signed certificate (C:\inetpub\wwwroot).[[File:IIS-Cert-5.png|none|thumb|573x573px]]&lt;br /&gt;
#Enter the path (C:\inetpub\wwwroot\UMS-SSO). The new password you type will be used later on when you set up your environment. Please remember this password. Click OK.[[File:IIS-Cert-8.png|none|thumb|771x771px]]&lt;br /&gt;
#Open SQl Management Studio and type “&#039;&#039;select * from SSOSetting&#039;&#039;”. You will see all settings for UMS SSO.&lt;br /&gt;
#Update the Certificate by typing “&#039;&#039;update SSOSetting set LocalCertificateFile =&#039;UMS-SSO.pfx&#039;&#039;”&lt;br /&gt;
#Update the Password by typing “&#039;&#039;update SSOSetting set LocalCertificatePassword =&#039;Velk0mmen2018&#039;&#039;”.[[File:IIS-Cert-9.png|none|thumb|781x781px]]&lt;br /&gt;
#Open the IIS Server and click Start. Click Run type IISReset and then click OK.[[File:IIS-Cert-10.png|none|thumb|377x377px]]&lt;br /&gt;
#Open the AD FS Server and search for AD FS. Click on AD FS Management.[[File:IIS-Cert-11.png|none|thumb|305x305px]]&lt;br /&gt;
#Click on the Trust Relationships folder and then click on Relying Party Trusts.&lt;br /&gt;
#In the details panel, click the relying party trust that you want to update from federation metadata.&lt;br /&gt;
#In the Action panel, click Update from Federation Metadata.&lt;br /&gt;
#In the properties dialog box for the trust, click Update to start the update.&lt;br /&gt;
#When the update is complete, click OK.[[File:IIS-Cert-12.png|none|thumb|745x745px]]&lt;br /&gt;
&lt;br /&gt;
==Certificates - Update Service Communication Certificate==&lt;br /&gt;
&lt;br /&gt;
===Things to have ready:===&lt;br /&gt;
A new updated certificate with private key - &amp;lt;file&amp;gt;.pfx&lt;br /&gt;
&lt;br /&gt;
A connection to AD FS server, with administrator rights.&lt;br /&gt;
&lt;br /&gt;
First install the certificate on the server, select my computer when asked.&lt;br /&gt;
&lt;br /&gt;
Now go to AD FS -&amp;gt; Service -&amp;gt; Certificates -&amp;gt; Set Service Communications Certificate...&lt;br /&gt;
&lt;br /&gt;
Now select &amp;quot;view more&amp;quot; -&amp;gt; And select the new certificate&lt;br /&gt;
&lt;br /&gt;
[[File:ADFSChangeCertificate.png|1389x1389px]]&lt;br /&gt;
&lt;br /&gt;
And now we need to set the certificate on the http.sys on adfs&lt;br /&gt;
 Set-AdfsSslCertificate -Thumpprint xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&lt;br /&gt;
Now go to Services and restart the AD FS Service&lt;br /&gt;
&lt;br /&gt;
==Certificates - Automatic rollover==&lt;br /&gt;
Out of the box, ADFS generates two self-signed certificates that are good for one year. One certificate for token signing, and one for token encryption.&lt;br /&gt;
&lt;br /&gt;
The token signing certificate is for signing the tokens used in the user sign on process, and it is considered the “bedrock of security” for ADFS. If someone gained access to this certificate (the public/private key pair), they could impersonate your ADFS environment.&lt;br /&gt;
&lt;br /&gt;
The token decryption certificate is used for encrypting the tokens used in the user sign on process. This certificate isn’t used very often.&lt;br /&gt;
&lt;br /&gt;
For more information about AD FS Certificates see https://blogs.technet.microsoft.com/askpfeplat/2015/01/26/adfs-deep-dive-certificate-planning/&lt;br /&gt;
&lt;br /&gt;
===Token Certificate Validity Periods===&lt;br /&gt;
By default, ADFS is configured to generate self-signed token certificates with a duration of one year. This duration can be changed, but keep in mind that the token-signing certificate is the foundation of the sign on process, and therefore, it really shouldn’t have a duration longer than 3 years.&lt;br /&gt;
&lt;br /&gt;
===ADFS Federation Metadata===&lt;br /&gt;
The public key portion of both certificates are included in the ADFS Federation Metadata, and are available from a public URL endpoint on all ADFS servers in the farm. Relying Party (RP) applications that can consume federation metadata will automatically pick up certificate changes whenever they pull the federation metadata file (FederationMetadata.xml) from your ADFS environment.&lt;br /&gt;
&lt;br /&gt;
Example URL&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;https://adfs.contoso.com/FederationMetadata/2007-06/FederationMetadata.xml&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Before performing a token certificate rollover, you will want to reach out to your RP partners (application owners) to see how often their application pulls the federation metadata so that they will experience little to no downtime before trusting the new certificates.&lt;br /&gt;
&lt;br /&gt;
However, most applications do not automatically retrieve the federation metadata on a schedule. Instead, an application owner will need to import the federation metadata from an XML file, or manually force the application to retrieve the federation metadata from the URL endpoint.&lt;br /&gt;
&lt;br /&gt;
And then there’s the applications that don’t consume federation metadata at all — they have to be manually updated. This means you will need to send the public key portion of the new certificates to the application owners.&lt;br /&gt;
&lt;br /&gt;
===Certificate and Rollover Settings===&lt;br /&gt;
Run the following PowerShell command on the primary ADFS server to view the properties related to certificates:&lt;br /&gt;
 Get-AdfsProperties | FL AutoCert*, Certificate*&lt;br /&gt;
&lt;br /&gt;
===ADFS Properties Related to Certificate Renewal===&lt;br /&gt;
&#039;&#039;&#039;Auto Certificate Rollover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the auto-rollover process is enabled (set to “True”), ADFS will automatically generate new “Secondary” certificates before the current ones expire, and then eventually promote them to be “Primary”.  For a manual renewal process, this should be set to “False” until you’re ready to generate new “Secondary” certificates.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Certificate Generation Threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
New certificates will be generated this number of days before the expiration of the current “Primary” certificates.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Certificate Promotion Threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Number of days the newly generated certificate will exist before being promoted from the “Secondary” certificate to the “Primary” certificate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Certificate Critical Threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Number of days prior to expiry of the certificates before a new certificate is generated and promoted to the “Primary” certificate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Certificate Duration&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Validity period of the auto-generated certificates. Default is 1 year.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Certificate Rollover Interval&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Number of minutes at which ADFS checks to see if a new certificate needs to be generated.&lt;br /&gt;
&lt;br /&gt;
===Token Certificate Rollover Process===&lt;br /&gt;
There are 3 approaches for rolling over the token certificates. Which one to use will depend on the number of relying party trusts you have, the level of control you wish to exert upon the process, and the timing of the certificate expirations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatic Staged Rollover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You would use this process when ADFS controls when the new self-signed token certificates are generated, and when they are promoted to become the “Primary” certificates.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manual Staged Rollover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You would use this process to manually control when the new self-signed token certificates are generated, and when they are promoted to become the “Primary” certificates.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Immediate Manual Rollover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Think of this as a certificate cut-over process.  You would do this if you wanted to roll over your certificates immediately without having a set of primary and secondary certificates.  You would also do this if your current certificates expired and you need to renew immediately.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that there will be outage when Token certificates are immediately generated &amp;amp; promoted.  The relying parties (application owners) must update their configuration with the new certificates, but until they do so, single sign-on will not work.&lt;br /&gt;
&lt;br /&gt;
===Automatic Staged Rollover===&lt;br /&gt;
This process should only be used if you have already communicated to all your relying party application owners with information about the schedule for which the new certificates will be generated, when they will be promoted to the “Primary” certificate, and when the old certificates will expire.&lt;br /&gt;
&lt;br /&gt;
Note that an ADFS administrator will need to export the public portion of the new certificates and send them to the application owners.&lt;br /&gt;
&lt;br /&gt;
Additionally, you can use this process if all of the relying party applications pull your ADFS federation metadata automatically on a schedule. However, this is very rare because most SaaS providers do not want to incur the expense of querying federation metadata changes for hundreds, thousands, or even millions of endpoints. More than likely, you will need to coordinate with the application owners to update their applications.&lt;br /&gt;
&lt;br /&gt;
Permissions: Domain Admin &amp;amp; Local Admin on the primary ADFS server in the farm.&lt;br /&gt;
&lt;br /&gt;
Step 1: Certificate Duration&lt;br /&gt;
&lt;br /&gt;
Set the number of days that will become the validity period of the new self-signed token certificates.&lt;br /&gt;
&lt;br /&gt;
*1 Year: 365&lt;br /&gt;
*3 Years: 1095&lt;br /&gt;
*5 Years: 1827&lt;br /&gt;
&lt;br /&gt;
 Set-ADFSProperties -CertificateDuration 1095&lt;br /&gt;
Step 2: Certificate Generation Threshold&lt;br /&gt;
&lt;br /&gt;
Set the number of days before the expiration date of the current certificates that ADFS should generate the new certificates. Thirty days is usually a good number, but you could make it more.&lt;br /&gt;
 Set-ADFSProperties -CertificateGenerationThreshold 30&lt;br /&gt;
Step 3: Certificate Promotion Threshold&lt;br /&gt;
&lt;br /&gt;
When ADFS generates the new self-signed certificates, they are initially set as “Secondary” certificates. ADFS will then use the value of this property to determine the number of days after the new certificates are generated to promote them to be the “Primary” certificates.&lt;br /&gt;
 Set-ADFSProperties -CertificatePromotionThreshold 25&lt;br /&gt;
Step 4: Certificate Critical Threshold&lt;br /&gt;
&lt;br /&gt;
If for some reason ADFS has not generated new self-signed certificates, or newly generated certificates have not been promoted to “Primary”, ADFS will perform these actions within the number of days set in this property prior to expiry of the current primary certificates. Leaving the default 2 days is usually best.&lt;br /&gt;
 Set-ADFSProperties -CertificateCriticalThreshold 2&lt;br /&gt;
Step 5: Auto Certificate Rollover&lt;br /&gt;
&lt;br /&gt;
This enables/disables the ADFS certificate rollover process, which uses the properties configured in the previous steps to rollover (renew &amp;amp; promote) the token certificates. This needs to be enabled.&lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $true&lt;br /&gt;
Step 6: Export the New Certificates&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, export the new certificates without their private keys. You can do this while the new certificates are set as “Secondary”.&lt;br /&gt;
&lt;br /&gt;
Open the ADFS Management Console: ADFS &amp;gt; Service &amp;gt; Certificates&lt;br /&gt;
&lt;br /&gt;
For each token certificate, perform the following:&lt;br /&gt;
&lt;br /&gt;
*Right-click the certificate &amp;gt; View Certificate…&lt;br /&gt;
*In the new window &amp;gt; Details (tab) &amp;gt; Copy to File (button) &amp;gt; Next&lt;br /&gt;
*Select: DER Encoded Binary X.509 (.CER) -or- Base-64 Encoded X.509 (.CER)&lt;br /&gt;
*Next &amp;gt; Browse to a location to save the file and give it a name&lt;br /&gt;
*Next &amp;gt; Finish&lt;br /&gt;
&lt;br /&gt;
Note: To export the certificate in .PEM format, choose Base-64 Encoded X.509 (.CER), and then rename the saved file with the .pem file extension.&lt;br /&gt;
&lt;br /&gt;
Step 7: Export the Federation Metadata XML&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, run the below PowerShell commands on the ADFS server to export the new ADFS Federation Metadata XML file. Make sure you modify the File Path before running the commands.&lt;br /&gt;
 # Set the file path&lt;br /&gt;
 $FilePath = &amp;quot;C:\Users\ADFSAdmin\Desktop\ADFS-MetaData.xml&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Export MetaData XML&lt;br /&gt;
 $mUrl = (Get-ADFSEndpoint | where Protocol -eq &amp;quot;Federation Metadata&amp;quot;).FullUrl.ToString()&lt;br /&gt;
 $httpHelper = new-object System.Net.WebClient&lt;br /&gt;
 $metadataAsString = $httpHelper.DownloadString($mUrl)&lt;br /&gt;
 $httpHelper.DownloadFile($mUrl , &amp;quot;$($FilePath)&amp;quot;)&lt;br /&gt;
Note:  If you export the metadata while there are both primary and secondary certificates, both of the certificates will be included in the XML file.  After the secondary certificates are promoted to primary, and the old certificates are deleted, you should generate a new XML file for future use.&lt;br /&gt;
&lt;br /&gt;
===Manual Staged Rollover===&lt;br /&gt;
You would use this process to manually control when the new self-signed token certificates are generated, and when they are promoted to become the “Primary” certificates. You will have full control over the rollover process. ADFS will not do anything automatically.&lt;br /&gt;
&lt;br /&gt;
Permissions: Domain Admin &amp;amp; Local Admin on the primary ADFS server in the farm.&lt;br /&gt;
&lt;br /&gt;
Step 1: Auto Certificate Rollover&lt;br /&gt;
&lt;br /&gt;
This enables/disables the ADFS certificate rollover process, which uses the properties configured in the below steps to rollover (renew &amp;amp; promote) the token certificates automatically. This should be set to False. If not, run the following command.&lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $false&lt;br /&gt;
Step 2: Certificate Duration&lt;br /&gt;
&lt;br /&gt;
Set the number of days that will become the validity period of the new self-signed token certificates.&lt;br /&gt;
&lt;br /&gt;
*1 Year: 365&lt;br /&gt;
*3 Years: 1095&lt;br /&gt;
*5 Years: 1827&lt;br /&gt;
&lt;br /&gt;
 Set-ADFSProperties -CertificateDuration 1095&lt;br /&gt;
Step 3: Certificate Generation Threshold&lt;br /&gt;
&lt;br /&gt;
Set the number of days before the expiration date of the current certificates that ADFS should generate the new certificates. Depending on when you plan to manually generate the new certificates, this number should be greater than the number of days between when you generate the new certificates, and when the old certificates expire.&lt;br /&gt;
&lt;br /&gt;
You need to set this because you have to enable the ADFS auto rollover process in order to generate the new certificates. After you generate the new certificates, you will immediately disable the auto rollover process.&lt;br /&gt;
&lt;br /&gt;
Assuming you will generate the new certificates 30 days before the old ones expire, you could set this to 40.&lt;br /&gt;
 Set-ADFSProperties -CertificateGenerationThreshold 40&lt;br /&gt;
Step 4: Certificate Promotion Threshold&lt;br /&gt;
&lt;br /&gt;
When ADFS generates the new self-signed certificates, they are initially set as “Secondary” certificates. ADFS will then use the value of this property to determine the number of days after the new certificates are generated to promote them to be the “Primary” certificates.&lt;br /&gt;
&lt;br /&gt;
Even though the ADFS auto rollover process will be disabled, this property should be set to a number lower than the above Certificate Generation Threshold property.&lt;br /&gt;
 Set-ADFSProperties -CertificatePromotionThreshold 35&lt;br /&gt;
Step 5: Certificate Critical Threshold&lt;br /&gt;
&lt;br /&gt;
If for some reason ADFS has not generated new self-signed certificates, or newly generated certificates have not been promoted to “Primary”, ADFS will perform these actions within the number of days set in this property prior to expiry of the current primary certificates. Leaving the default 2 days is usually best.&lt;br /&gt;
 Set-ADFSProperties -CertificateCriticalThreshold 2&lt;br /&gt;
Step 6: Generate the New Certificates&lt;br /&gt;
&lt;br /&gt;
When you are ready to generate the new token certificates as “Secondary” certificates, use the below PowerShell commands. Both the current “Primary” certificates and the new “Secondary” certificates will be available to the relying party applications.&lt;br /&gt;
&lt;br /&gt;
Note that you cannot manually generate the new token certificates when the ADFS auto rollover process is disabled. Therefore, the commands enable the process, generates the new certificates as “Secondary”, and then disables the process.&lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $true&lt;br /&gt;
 &lt;br /&gt;
 Update-AdfsCertificate -CertificateType Token-Decrypting&lt;br /&gt;
 Update-AdfsCertificate -CertificateType Token-Signing&lt;br /&gt;
 &lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $false&lt;br /&gt;
Step 7: Export the Certificates&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, export the certificates without their private keys.&lt;br /&gt;
&lt;br /&gt;
Open the ADFS Management Console: ADFS &amp;gt; Service &amp;gt; Certificates&lt;br /&gt;
&lt;br /&gt;
For each token certificate, perform the following:&lt;br /&gt;
&lt;br /&gt;
*Right-click the certificate &amp;gt; View Certificate…&lt;br /&gt;
*In the new window &amp;gt; Details (tab) &amp;gt; Copy to File (button) &amp;gt; Next&lt;br /&gt;
*Select: DER Encoded Binary X.509 (.CER) -or- Base-64 Encoded X.509 (.CER)&lt;br /&gt;
*Next &amp;gt; Browse to a location to save the file and give it a name&lt;br /&gt;
*Next &amp;gt; Finish&lt;br /&gt;
&lt;br /&gt;
Note: To export the certificate in .PEM format, choose Base-64 Encoded X.509 (.CER), and then rename the saved file with the .pem file extension.&lt;br /&gt;
&lt;br /&gt;
Step 8: Export the Federation Metadata XML&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, run the below PowerShell commands on the ADFS server to export the ADFS Federation Metadata XML file. Make sure you modify the File Path before running the commands.&lt;br /&gt;
 # Set the file path&lt;br /&gt;
 $FilePath = &amp;quot;C:\Users\ADFSAdmin\Desktop\ADFS-MetaData.xml&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Export MetaData XML&lt;br /&gt;
 $mUrl = (Get-ADFSEndpoint | where Protocol -eq &amp;quot;Federation Metadata&amp;quot;).FullUrl.ToString()&lt;br /&gt;
 $httpHelper = new-object System.Net.WebClient&lt;br /&gt;
 $metadataAsString = $httpHelper.DownloadString($mUrl)&lt;br /&gt;
 $httpHelper.DownloadFile($mUrl , &amp;quot;$($FilePath)&amp;quot;)&lt;br /&gt;
Note:  Both primary and secondary certificates will be included in the XML file.  After you promote the new certificates and delete the old certificates, you should generate a new XML file for future use.&lt;br /&gt;
&lt;br /&gt;
Step 9: Promote the New Certificates&lt;br /&gt;
&lt;br /&gt;
Before the old certificates expire, you need to promote the new certificates to “Primary”.&lt;br /&gt;
&lt;br /&gt;
ADFS Management Console: ADFS &amp;gt; Service &amp;gt; Certificates&lt;br /&gt;
&lt;br /&gt;
For each “Secondary” token certificate, perform the following:&lt;br /&gt;
&lt;br /&gt;
*Right-click the certificate &amp;gt; Set as Primary&lt;br /&gt;
&lt;br /&gt;
Step 10: Delete the Old Certificates&lt;br /&gt;
&lt;br /&gt;
After the old certificates have expired, you can delete them from the ADFS Management Console. Note that you only have the option to delete “Secondary” certificates. You cannot delete a “Primary” certificate.&lt;br /&gt;
&lt;br /&gt;
ADFS Management Console: ADFS &amp;gt; Service &amp;gt; Certificates&lt;br /&gt;
&lt;br /&gt;
For each “Secondary” token certificate, perform the following:&lt;br /&gt;
&lt;br /&gt;
*Right-click the certificate &amp;gt; Delete&lt;br /&gt;
&lt;br /&gt;
===Immediate Manual Rollover===&lt;br /&gt;
When doing an immediate rollover, you force ADFS to immediately generate new certificates, promote them to “Primary”, and delete the old certificates.&lt;br /&gt;
&lt;br /&gt;
You would use these steps if you have a few relying party trusts and the application owners are ready to pull the new federation metadata from the ADFS public endpoint after a rollover. You would also use these steps if the ADFS auto rollover process is disabled, and your token certificates have expired.&lt;br /&gt;
&lt;br /&gt;
After the rollover, you can export the new certificates &amp;amp; federation metadata, and send them to your relying party application owners.&lt;br /&gt;
&lt;br /&gt;
Permissions: Domain Admin &amp;amp; Local Admin on the primary ADFS server in the farm.&lt;br /&gt;
&lt;br /&gt;
Step 1: Certificate Duration&lt;br /&gt;
&lt;br /&gt;
Set the number of days that will become the validity period of the new self-signed token certificates.&lt;br /&gt;
&lt;br /&gt;
*1 Year: 365&lt;br /&gt;
*3 Years: 1095&lt;br /&gt;
*5 Years: 1827&lt;br /&gt;
&lt;br /&gt;
 Set-ADFSProperties -CertificateDuration 1095&lt;br /&gt;
Step 2: Generate the New Certificates&lt;br /&gt;
&lt;br /&gt;
Note that you cannot generate the new token certificates when the ADFS auto rollover process is disabled. Therefore, the below commands enable the process, generate the new certificates, and then disable the process. The -Urgent switch indicates that the certificate rollover process should happen immediately, and remove older certificates.&lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $true&lt;br /&gt;
 &lt;br /&gt;
 Update-AdfsCertificate -CertificateType Token-Decrypting -Urgent&lt;br /&gt;
 Update-AdfsCertificate -CertificateType Token-Signing -Urgent&lt;br /&gt;
 &lt;br /&gt;
 Set-ADFSProperties -AutoCertificateRollover $false&lt;br /&gt;
Step 3: Export the Certificates&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, export the certificates without their private keys.&lt;br /&gt;
&lt;br /&gt;
Open the ADFS Management Console: ADFS &amp;gt; Service &amp;gt; Certificates&lt;br /&gt;
&lt;br /&gt;
For each token certificate, perform the following:&lt;br /&gt;
&lt;br /&gt;
*Right-click the certificate &amp;gt; View Certificate…&lt;br /&gt;
*In the new window &amp;gt; Details (tab) &amp;gt; Copy to File (button) &amp;gt; Next&lt;br /&gt;
*Select: DER Encoded Binary X.509 (.CER) -or- Base-64 Encoded X.509 (.CER)&lt;br /&gt;
*Next &amp;gt; Browse to a location to save the file and give it a name&lt;br /&gt;
*Next &amp;gt; Finish&lt;br /&gt;
&lt;br /&gt;
Note: To export the certificate in .PEM format, choose Base-64 Encoded X.509 (.CER), and then rename the saved file with the .pem file extension.&lt;br /&gt;
&lt;br /&gt;
Step 4: Export the Federation Metadata XML&lt;br /&gt;
&lt;br /&gt;
If needed by the application owners, run the below PowerShell commands on the ADFS server to export the ADFS Federation Metadata XML file. Make sure you modify the File Path before running the commands.&lt;br /&gt;
 # Set the file path&lt;br /&gt;
 $FilePath = &amp;quot;C:\Users\ADFSAdmin\Desktop\ADFS-MetaData.xml&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Export MetaData XML&lt;br /&gt;
 $mUrl = (Get-ADFSEndpoint | where Protocol -eq &amp;quot;Federation Metadata&amp;quot;).FullUrl.ToString()&lt;br /&gt;
 $httpHelper = new-object System.Net.WebClient&lt;br /&gt;
 $metadataAsString = $httpHelper.DownloadString($mUrl)&lt;br /&gt;
 $httpHelper.DownloadFile($mUrl , &amp;quot;$($FilePath)&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How to set SPN&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;http://www.gatepoint.ch/cmdreferenz/html/9341c753-11ff-4acc-993c-b05d50f32330.htm#bkmk_examples&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Final==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=Timetable&amp;diff=4047</id>
		<title>Timetable</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=Timetable&amp;diff=4047"/>
		<updated>2021-08-16T12:26:53Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Skemabrikker.exe is a small sync job that needs to run when timetables are created, updated, or deleted.&lt;br /&gt;
&lt;br /&gt;
Example of timetable in UMS and Outlook:&lt;br /&gt;
[[File:Timetable in UMS and Outlook.png|none|thumb|600x600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following systems are supported:&lt;br /&gt;
&lt;br /&gt;
*Office 365&lt;br /&gt;
*Exchange&lt;br /&gt;
*GSuite&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&lt;br /&gt;
===Usage===&lt;br /&gt;
 Skemabrikker.exe [&amp;lt;optional&amp;gt; System] [&amp;lt;optional&amp;gt; Action] [&amp;lt;optional&amp;gt; Mail] [&amp;lt;optional&amp;gt; StartDate] [&amp;lt;optional&amp;gt; EndDate] [&amp;lt;optional&amp;gt; Type [UMS | NonUMS | All]]&lt;br /&gt;
&lt;br /&gt;
====Applyrights====&lt;br /&gt;
Only works for Exchange and Office365. Restores rights for a room if they have accidentally been deleted or changed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Systems====&lt;br /&gt;
This parameter is used to define what system Skemabrikker.exe will populate the timetables to. We currently support timetable integration to these systems:&lt;br /&gt;
&lt;br /&gt;
Exchange&lt;br /&gt;
&lt;br /&gt;
Office 365&lt;br /&gt;
&lt;br /&gt;
GSuite&lt;br /&gt;
&lt;br /&gt;
[[Timetable/itslearning|Itslearning]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Action====&lt;br /&gt;
&lt;br /&gt;
=====find=====&lt;br /&gt;
Used to display the timetables associated with the given [mail] parameter.&lt;br /&gt;
&lt;br /&gt;
=====delete=====&lt;br /&gt;
Used to delete the timetables associated with the given [mail] parameter.&lt;br /&gt;
&lt;br /&gt;
=====update=====&lt;br /&gt;
Used to update the timetables that needs to be updated and are associated with the given [mail] parameter.&lt;br /&gt;
&lt;br /&gt;
=====cleanup=====&lt;br /&gt;
Used to find UMS appointments in users calendars and delete them if they are not found in UMS database.&lt;br /&gt;
&lt;br /&gt;
====Mail====&lt;br /&gt;
&lt;br /&gt;
=====mail/UPN=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to affect a specific user.&lt;br /&gt;
&lt;br /&gt;
=====Teachersonly=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to affect only teachers.&lt;br /&gt;
&lt;br /&gt;
=====Studentsonly=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to affect only students.&lt;br /&gt;
&lt;br /&gt;
=====Roomsonly=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to affect only a given physical Classroom (When this parameter is used you need to add the ID for the given room ie. [Action] [Mail] &#039;Room_ID&#039;).&lt;br /&gt;
&lt;br /&gt;
=====Activitiesonly=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to only affect a given activity (When this parameter is used you need to add the ID for the given activity ie. [Action] [Mail] &#039;Activity_ID&#039;).&lt;br /&gt;
&lt;br /&gt;
=====Coursesonly=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to only affect a given course (When this parameter is used you need to add the ID for the given course ie. [Action] [Mail] &#039;Activity_ID_Course_ID&#039;).&lt;br /&gt;
&lt;br /&gt;
=====AllTimeTableStudents=====&lt;br /&gt;
This will delete timetable blocks from all known students&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Works with&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Office 365&lt;br /&gt;
&lt;br /&gt;
Exchange&lt;br /&gt;
&lt;br /&gt;
=====AllTimeTableEmployees=====&lt;br /&gt;
This will delete timetable blocks from all known employees&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Works with&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Office 365&lt;br /&gt;
&lt;br /&gt;
Exchange&lt;br /&gt;
&lt;br /&gt;
=====AllTimeTableRooms=====&lt;br /&gt;
&lt;br /&gt;
This will delete timetable blocks from all known rooms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Works with&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Office 365&lt;br /&gt;
&lt;br /&gt;
====StartDate====&lt;br /&gt;
This parameter is used to define the start date in which the find, delete, or update parameter will affect the timetables. The format for this parameter is dd-mm-yyyy.&lt;br /&gt;
&lt;br /&gt;
==== EndDate ====&lt;br /&gt;
This parameter is used to define the end date in which the find, delete, or update parameter will affect the timetables The format for this parameter is dd-mm-yyyy.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Type====&lt;br /&gt;
UMS - This parameter is used to define that the timetables that have been generated by UMS, will be effected.&lt;br /&gt;
&lt;br /&gt;
NonUMS - This parameter is used to define that the timetables that have not been generated by UMS, will be effected.&lt;br /&gt;
&lt;br /&gt;
All - This parameter is used to define that timetables both from UMS and non UMS, will be effected.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External systems==&lt;br /&gt;
&lt;br /&gt;
===[[Timetable/itslearning|itslearning]]===&lt;br /&gt;
&lt;br /&gt;
===[[Timetable/Office365|Office 365]]===&lt;br /&gt;
&lt;br /&gt;
===[[Timetable/GoogleGSuite|Google GSuite]]===&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
====How do I find timetable blocks with skemabrikker.exe ?====&lt;br /&gt;
Example following the general parameters:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|skemabrikker.exe  office365 find tea@umsacademic.onmicrosoft.com 12-05-2019 13-05-2019 All&lt;br /&gt;
|}&lt;br /&gt;
Inspect the skemabrikker.log. The long string value in the log file refers to the ID in the table &#039;&#039;&#039;SkemaBrikkerSavedEntries_Students, SkemaBrikkerSavedEntries_Teachers, SkemaBrikkerSavedEntries_Rooms, SkemaBrikkerSavedEntries_Activities&#039;&#039;&#039;.&lt;br /&gt;
[[File:Skemabrikkerlog.png|none|thumb|864x864px]]&lt;br /&gt;
&lt;br /&gt;
====How do I find timetable blocks with SQL statements?====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Select  SkemaBrikkerNewEntries.*&lt;br /&gt;
&lt;br /&gt;
From  SkemaBrikkerNewEntries&lt;br /&gt;
&lt;br /&gt;
Join  SkemaBrikker_Students On SkemaBrikkerNewEntries.SkemaBegivenhed_ID  = SkemaBrikker_Students.SkemaBegivenhed_ID And  SkemaBrikkerNewEntries.SkemaBrikkerAdminServers_ID =  SkemaBrikker_Students.SkemaBrikkerAdminServers_ID&lt;br /&gt;
&lt;br /&gt;
And SkemaBrikkerNewEntries.Activity =  SkemaBrikker_Students.Activity&lt;br /&gt;
&lt;br /&gt;
Where &lt;br /&gt;
&lt;br /&gt;
SkemaBrikker_Students.cpr In (Select Cpr from Students where studienr= &#039;xxxxxx&#039;)&lt;br /&gt;
&lt;br /&gt;
and SkemaBrikkerNewEntries.Dato = &#039;28-11-2018&#039;&lt;br /&gt;
&lt;br /&gt;
Order By  RealStartDateTime&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====How do I change format and content of timetable blocks in Outlook?====&lt;br /&gt;
Open UMS Configurator, select Modules &amp;quot;TimeTable&amp;quot; and select your datasource, then edit Format And Content&lt;br /&gt;
&lt;br /&gt;
Variables can be replaced as pictured below.&lt;br /&gt;
[[File:Timetable format and content.png|none|thumb|1152x1152px]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Run only for one user===&lt;br /&gt;
&lt;br /&gt;
====Students====&lt;br /&gt;
Skemabrikker.exe studentsonly &amp;lt;username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Teachers====&lt;br /&gt;
Skemabrikker.exe teachersonly &amp;lt;username&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=GetUsers/Ludus&amp;diff=4046</id>
		<title>GetUsers/Ludus</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=GetUsers/Ludus&amp;diff=4046"/>
		<updated>2021-08-16T11:21:20Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Requirements for userinfo==&lt;br /&gt;
You will need to open this webservices in LUDUS (marked in red) if UMS is going to write userinfo back to LUDUS.&lt;br /&gt;
[[File:GetStudents Ludus Webservices Userinfo.jpg|none|thumb|758x758px]]&lt;br /&gt;
&lt;br /&gt;
==Connection to LUDUS==&lt;br /&gt;
[[File:GetUsers Ludus.jpg|none|thumb|656x656px]]&lt;br /&gt;
&lt;br /&gt;
===Require activity type===&lt;br /&gt;
Kræver at aktiviteten har en aktivitestype sat for at komme med ud i UMS.&lt;br /&gt;
&lt;br /&gt;
===Export exams===&lt;br /&gt;
Export exam information from LUDUS to keep students alive after the normal classes has ended.&lt;br /&gt;
&lt;br /&gt;
===[[GetUsers/Export Settings|Export settings]]===&lt;br /&gt;
&lt;br /&gt;
=Pictures from LUDUS=&lt;br /&gt;
Kursist kan findes her[[File:Getstudentsludusopen.png|none|thumb|476x476px]]&lt;br /&gt;
&lt;br /&gt;
For kursisterne er det de felter med rød cirkel som er vigtige og skal udfyldes fra start&lt;br /&gt;
[[File:Getstudentskursist.png|none|thumb|581x581px]]&lt;br /&gt;
&lt;br /&gt;
Der udover skal kursisten være aktiv på et hold. Dette kan påvirkes af Grace Period.&lt;br /&gt;
&lt;br /&gt;
Dette kan ses på næste side.&lt;br /&gt;
[[File:Getstudentsholdtilmelding.png|none|thumb|642x642px]]&lt;br /&gt;
[[File:Getstudentsholdtilmelding2.png|none|thumb|518x518px]]&lt;br /&gt;
&lt;br /&gt;
Hold:&lt;br /&gt;
&lt;br /&gt;
Her kan man finde hold i LUDUS&lt;br /&gt;
[[File:Getstudentshold3.png|none|thumb|527x527px]]&lt;br /&gt;
[[File:Getstudentssoeghold.png|none|thumb|479x479px]]&lt;br /&gt;
&lt;br /&gt;
Indstillinger for hold&lt;br /&gt;
[[File:Getstudentsindstillingforhold.png|none|thumb|502x502px]]&lt;br /&gt;
&lt;br /&gt;
HoldID er navnet på gruppen som kommer over i UMS&lt;br /&gt;
[[File:Getstudentsholdid.png|none|thumb|506x506px]]&lt;br /&gt;
&lt;br /&gt;
Opret holdrum: Bestemmer om kolonnen Aktivitet_LMS i students tabellen er True eller False (0 eller 1). Dette felt bruges som regel til at bestemme om det skal med over i et LMS system som f.eks. (Office 365 SharePoint, Moodle eller Fronter)&lt;br /&gt;
&lt;br /&gt;
Dette er selv holdet/aktiviteten&lt;br /&gt;
&lt;br /&gt;
Opret rum: Bestemmer om kolonnen Skolefag_LMS i students tabellen er True eller False (0 eller 1). Dette felt bruges som regel til at bestemme om det skal med over i et LMS system som f.eks. (Office 365 SharePoint, Moodle eller Fronter)&lt;br /&gt;
&lt;br /&gt;
Dette er modulerne som er tilknyttet holdet/aktiviteten&lt;br /&gt;
&lt;br /&gt;
=== Ludus klassebetegnelse ===&lt;br /&gt;
For at klassen kommer rigtigt frem i Unilogin brugerportal, er det vigtigt at der bliver oprettet en klasse. Og denne klasse bliver sat på eleven/kursisten.&lt;br /&gt;
[[File:Ludus picture klasse on student.png|none|thumb|600x600px]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
===Webhold eksportindstillinger===&lt;br /&gt;
[[File:Getstudentsfvuhold.png|none|thumb|611x611px]]&lt;br /&gt;
&lt;br /&gt;
Opret holdrum: Bestemmer om kolonnen Aktivitet_LMS i students tabellen er True eller False (0 eller 1). Dette felt bruges som regel til at bestemme om det skal med over i et LMS system som f.eks. (Office 365 SharePoint, Moodle eller Fronter)&lt;br /&gt;
&lt;br /&gt;
Dette er selv holdet/aktiviteten&lt;br /&gt;
&lt;br /&gt;
Opret rum: Bestemmer om kolonnen Skolefag_LMS i students tabellen er True eller False (0 eller 1). Dette felt bruges som regel til at bestemme om det skal med over i et LMS system som f.eks. (Office 365 SharePoint, Moodle eller Fronter)&lt;br /&gt;
&lt;br /&gt;
Dette er modulerne som er tilknyttet holdet/aktiviteten&lt;br /&gt;
&lt;br /&gt;
For lærerne er det de felter med rød cirkel som er vigtige og skal udfyldes fra start&lt;br /&gt;
[[File:Getstudentsteacher.png|none|thumb|587x587px]]&lt;br /&gt;
&lt;br /&gt;
Gruppe(r): Skal udfyldes med minimum en gruppe. Disse grupper bliver oprettet som grupper i UMS og Aktivitet_LMS er sat til True&lt;br /&gt;
&lt;br /&gt;
For lærerne er det de felter med rød cirkel som er vigtige og skal udfyldes fra start på nær fratædelsesdato&lt;br /&gt;
[[File:Getstudentteacher2.png|none|thumb|590x590px]]&lt;br /&gt;
&lt;br /&gt;
Ansættelsesdato: bestemmer hvornår den studerende bliver aktiv/oprettet i UMS. Dette kan påvirkes af Grace Period&lt;br /&gt;
&lt;br /&gt;
Fratædelsesdato: bestemmer hvornår den studerende stopper. Når denne dato er oprundet vil han blive inaktiv i UMS. Dette kan påvirkes af Grace Period&lt;br /&gt;
&lt;br /&gt;
For øvrigt personale er det de felter med rød cirkel som er vigtige og skal udfyldes fra start på nær fratædelsesdato&lt;br /&gt;
[[File:Getstudentspersonale.png|none|thumb|619x619px]]&lt;br /&gt;
&lt;br /&gt;
Ansættelsesdato: bestemmer hvornår den studerende bliver aktiv/oprettet i UMS. Dette kan påvirkes af Grace Period&lt;br /&gt;
&lt;br /&gt;
Fratædelsesdato: bestemmer hvornår den studerende stopper. Når denne dato er oprundet vil han blive inaktiv i UMS. Dette kan påvirkes af Grace Period&lt;br /&gt;
&lt;br /&gt;
Gruppe(r): Skal udfyldes med minimum en gruppe. Disse grupper bliver oprettet som grupper i UMS og Aktivitet_LMS er sat til True&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=File:Ludus_picture_klasse_on_student.png&amp;diff=4045</id>
		<title>File:Ludus picture klasse on student.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=File:Ludus_picture_klasse_on_student.png&amp;diff=4045"/>
		<updated>2021-08-16T11:19:57Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ludus picture klasse on student&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=Timetable&amp;diff=4043</id>
		<title>Timetable</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=Timetable&amp;diff=4043"/>
		<updated>2021-08-12T12:01:33Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Skemabrikker.exe is a small sync job that needs to run when timetables are created, updated, or deleted.&lt;br /&gt;
&lt;br /&gt;
Example of timetable in UMS and Outlook:&lt;br /&gt;
[[File:Timetable in UMS and Outlook.png|none|thumb|600x600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following systems are supported:&lt;br /&gt;
&lt;br /&gt;
*Office 365&lt;br /&gt;
*Exchange&lt;br /&gt;
*GSuite&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&lt;br /&gt;
===Usage===&lt;br /&gt;
 Skemabrikker.exe [&amp;lt;optional&amp;gt; System] [&amp;lt;optional&amp;gt; Action] [&amp;lt;optional&amp;gt; Mail] [&amp;lt;optional&amp;gt; StartDate] [&amp;lt;optional&amp;gt; EndDate] [&amp;lt;optional&amp;gt; Type [UMS | NonUMS | All]]&lt;br /&gt;
&lt;br /&gt;
====Applyrights====&lt;br /&gt;
Only works for Exchange and Office365. Restores rights for a room if they have accidentally been deleted or changed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Systems====&lt;br /&gt;
This parameter is used to define what system Skemabrikker.exe will populate the timetables to. We currently support timetable integration to these systems:&lt;br /&gt;
&lt;br /&gt;
Exchange&lt;br /&gt;
&lt;br /&gt;
Office 365&lt;br /&gt;
&lt;br /&gt;
GSuite&lt;br /&gt;
&lt;br /&gt;
[[Timetable/itslearning|Itslearning]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Action====&lt;br /&gt;
find - Used to display the timetables associated with the given [mail] parameter.&lt;br /&gt;
&lt;br /&gt;
delete - Used to delete the timetables associated with the given [mail] parameter.&lt;br /&gt;
&lt;br /&gt;
update - Used to update the timetables that needs to be updated and are associated with the given [mail] parameter.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mail====&lt;br /&gt;
&lt;br /&gt;
=====mail/UPN=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to affect a specific user.&lt;br /&gt;
&lt;br /&gt;
=====Teachersonly=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to affect only teachers.&lt;br /&gt;
&lt;br /&gt;
=====Studentsonly=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to affect only students.&lt;br /&gt;
&lt;br /&gt;
=====Roomsonly=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to affect only a given physical Classroom (When this parameter is used you need to add the ID for the given room ie. [Action] [Mail] &#039;Room_ID&#039;).&lt;br /&gt;
&lt;br /&gt;
=====Activitiesonly=====&lt;br /&gt;
This parameter is used if the [action] parameter needs to only affect a given activity (When this parameter is used you need to add the ID for the given activity ie. [Action] [Mail] &#039;Activity_ID&#039;).&lt;br /&gt;
&lt;br /&gt;
=====AllTimeTableStudents=====&lt;br /&gt;
This will delete timetable blocks from all known students&lt;br /&gt;
&lt;br /&gt;
=====AllTimeTableEmployees=====&lt;br /&gt;
This will delete timetable blocks from all known employees&lt;br /&gt;
&lt;br /&gt;
=====AllTimeTableRooms=====&lt;br /&gt;
&lt;br /&gt;
This will delete timetable blocks from all known rooms&lt;br /&gt;
&lt;br /&gt;
=====AllTimeTableActivities=====&lt;br /&gt;
This will delete timetable blocks from all known activities&lt;br /&gt;
&lt;br /&gt;
=====AllTimeTableCourses=====&lt;br /&gt;
This will delete timetable blocks from all known courses&lt;br /&gt;
&lt;br /&gt;
====StartDate====&lt;br /&gt;
This parameter is used to define the start date in which the find, delete, or update parameter will affect the timetables. The format for this parameter is dd-mm-yyyy.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====EndDate====&lt;br /&gt;
This parameter is used to define the end date in which the find, delete, or update parameter will affect the timetables The format for this parameter is dd-mm-yyyy.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Type====&lt;br /&gt;
UMS - This parameter is used to define that the timetables that have been generated by UMS, will be effected.&lt;br /&gt;
&lt;br /&gt;
NonUMS - This parameter is used to define that the timetables that have not been generated by UMS, will be effected.&lt;br /&gt;
&lt;br /&gt;
All - This parameter is used to define that timetables both from UMS and non UMS, will be effected.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External systems==&lt;br /&gt;
&lt;br /&gt;
===[[Timetable/itslearning|itslearning]]===&lt;br /&gt;
&lt;br /&gt;
===[[Timetable/Office365|Office 365]]===&lt;br /&gt;
&lt;br /&gt;
===[[Timetable/GoogleGSuite|Google GSuite]]===&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
====How do I find timetable blocks with skemabrikker.exe ?====&lt;br /&gt;
Example following the general parameters:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|skemabrikker.exe  office365 find tea@umsacademic.onmicrosoft.com 12-05-2019 13-05-2019 All&lt;br /&gt;
|}&lt;br /&gt;
Inspect the skemabrikker.log. The long string value in the log file refers to the ID in the table &#039;&#039;&#039;SkemaBrikkerSavedEntries_Students, SkemaBrikkerSavedEntries_Teachers, SkemaBrikkerSavedEntries_Rooms, SkemaBrikkerSavedEntries_Activities&#039;&#039;&#039;.&lt;br /&gt;
[[File:Skemabrikkerlog.png|none|thumb|864x864px]]&lt;br /&gt;
&lt;br /&gt;
====How do I find timetable blocks with SQL statements?====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Select  SkemaBrikkerNewEntries.*&lt;br /&gt;
&lt;br /&gt;
From  SkemaBrikkerNewEntries&lt;br /&gt;
&lt;br /&gt;
Join  SkemaBrikker_Students On SkemaBrikkerNewEntries.SkemaBegivenhed_ID  = SkemaBrikker_Students.SkemaBegivenhed_ID And  SkemaBrikkerNewEntries.SkemaBrikkerAdminServers_ID =  SkemaBrikker_Students.SkemaBrikkerAdminServers_ID&lt;br /&gt;
&lt;br /&gt;
And SkemaBrikkerNewEntries.Activity =  SkemaBrikker_Students.Activity&lt;br /&gt;
&lt;br /&gt;
Where &lt;br /&gt;
&lt;br /&gt;
SkemaBrikker_Students.cpr In (Select Cpr from Students where studienr= &#039;xxxxxx&#039;)&lt;br /&gt;
&lt;br /&gt;
and SkemaBrikkerNewEntries.Dato = &#039;28-11-2018&#039;&lt;br /&gt;
&lt;br /&gt;
Order By  RealStartDateTime&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====How do I change format and content of timetable blocks in Outlook?====&lt;br /&gt;
Open UMS Configurator, select Modules &amp;quot;TimeTable&amp;quot; and select your datasource, then edit Format And Content&lt;br /&gt;
&lt;br /&gt;
Variables can be replaced as pictured below.&lt;br /&gt;
[[File:Timetable format and content.png|none|thumb|1152x1152px]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Run only for one user ===&lt;br /&gt;
&lt;br /&gt;
==== Students ====&lt;br /&gt;
Skemabrikker.exe studentsonly &amp;lt;username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Teachers ====&lt;br /&gt;
Skemabrikker.exe teachersonly &amp;lt;username&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=Welcome_to_UMS_Wiki&amp;diff=4042</id>
		<title>Welcome to UMS Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=Welcome_to_UMS_Wiki&amp;diff=4042"/>
		<updated>2021-08-10T09:43:35Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:UMS-Web-og-app-400.png|thumb|340x340px]]&lt;br /&gt;
Welcome to UMS Wiki. This wiki contains technical information about UMS. UMS is developed to help the school’s IT-department avoid trivial and hour-long administration tasks. UMS is short for User Management System and it is a system&lt;br /&gt;
developed especially for the educational sector. UMS is a standard solution, which makes it easy to update and maintain, however, because UMS is built using optional modules, it can be tailored to your school’s individual needs. That way you get a simple and effective solution containing everything you need – nothing more, nothing less.&lt;br /&gt;
&lt;br /&gt;
Are you seeking general information please visit our [http://www.inlogic.dk/en/ inLogic website www.inlogic.dk]&lt;br /&gt;
&lt;br /&gt;
==What is UMS?==&lt;br /&gt;
Watch our [https://www.youtube.com/watch?v=MI2Wh8ic2hk video] and find out more. UMS is developed to help the school’s IT-department avoid trivial and hour-long administration tasks. However, the school’s teachers and students will benefit from it too, via web and app. Want to know how? Find out in the text below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;UMS reduces the IT-department’s workload&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With UMS, manual user creation is a thing of the past. UMS automatically creates and maintains users in Active Directory, Google Apps, Office 365 and learning management systems, based on data from the student administration system. UMS also gives the school’s students and staff access to a self-service portal, where they can reset their own password, thus saving time for the IT-department.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;UMS gives teachers more time to teach&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Many teachers find themselves with a multitude of administrative tasks they need do to, in addition to their other tasks. This could ultimately reduce the amount time they have to teach. To avoid that, UMS makes it possible to complete the administrative tasks quickly and easily via the UMS self-service portal, app and SMS modules, thus giving teachers more time to teach.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;UMS makes it easier to be a student&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With UMS, it is easy to be a student, because a long list of relevant school information is easily accessible. E.g., students can see their timetable, homework, grades and attendance records via web and SMS. They can even get notifications on their phone, if there are changes to their timetable or other important information. This makes it easy to stay up-to-date and it strengthens the students’ affiliation to the school.&lt;br /&gt;
&lt;br /&gt;
==Possibilities with UMS==&lt;br /&gt;
&#039;&#039;&#039;Identity management.&#039;&#039;&#039; UMS automatically creates, maintains and deletes users in Active Directory, Office 365, Google Apps and many other systems, based on data from the student administration system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cloud integration.&#039;&#039;&#039; UMS easily integrates with Office 365, SharePoint, Google Apps, Sites and Drives. Timetable data automatically synchronizes to Outlook / Google Calendar. We have also developed a learning portal to Office 365 SharePoint.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;LMS integration.&#039;&#039;&#039; UMS automatically creates class and group rooms in Canvas, Fronter, Moodle, SharePoint etc. Additionally, we integrate to a long list of other systems, e.g. library systems, print payment systems and cafeteria systems.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Self-service portal.&#039;&#039;&#039; UMS gives you a single login portal, where users can register attendance, reset passwords, block internet access, create guest users, send SMS, see attendance records and much more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SMS and communication.&#039;&#039;&#039; The best way to reach your students is through their phones. With UMS, the students can automatically receive an SMS when there are changes to their timetable, they can reset their own password, receive their timetable and grades and much more via SMS.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;App.&#039;&#039;&#039; With UMS, your school can get its own smartphone app, designed with the school’s colours and logo. The app gives students access to their timetable, homework, student ID, attendance records, news from the school etc.&lt;br /&gt;
&lt;br /&gt;
==Support==&lt;br /&gt;
If you need support, we are here to help you. Contact us on our support phone: &#039;&#039;&#039;+45 42408815&#039;&#039;&#039; Monday to Friday from 08.30 am to 03.30 pm. Outside of our opening hours you can send us an e-mail at [mailto:support@inlogic.dk support@inlogic.dk]&lt;br /&gt;
&lt;br /&gt;
Get remote support with [http://downloads.inlogic.dk/TeamViewerQS_da-idcbvgwhct.exe TeamViewer]. With TeamViewer you can get remote support to solve issues, while you are watching. All it requires is that you give us access to your computer.&lt;br /&gt;
&lt;br /&gt;
Download [http://downloads.inlogic.dk/Setup.zip UMS]&lt;br /&gt;
&lt;br /&gt;
Download [http://downloads.inlogic.dk/UMSFrontendSetup.zip UMS Academic Web]&lt;br /&gt;
&lt;br /&gt;
Read our [http://www.inlogic.dk/ums-changelog/ changelog] for the lastest changes.&lt;br /&gt;
&lt;br /&gt;
For other useful tools go to [http://www.inlogic.dk/en/support/download-ums/ inLogic&#039;s download site]&lt;br /&gt;
&lt;br /&gt;
==Manuals==&lt;br /&gt;
[[InLogic SMS Gateway|InLogic SMS Gateway]] &lt;br /&gt;
&lt;br /&gt;
[[Foxbox|Foxbox SMS Modem]]&lt;br /&gt;
&lt;br /&gt;
[[UMS License Install]]&lt;br /&gt;
&lt;br /&gt;
[[UMS update guide|UMS Update Guide]]&lt;br /&gt;
&lt;br /&gt;
===App===&lt;br /&gt;
[[App]]&lt;br /&gt;
&lt;br /&gt;
[[App Store Connect|Apple Developer Account]]&lt;br /&gt;
&lt;br /&gt;
[[Push Notifications]]&lt;br /&gt;
&lt;br /&gt;
[[Attendance Registration]]&lt;br /&gt;
&lt;br /&gt;
[[Custom Terms and Localization]]&lt;br /&gt;
&lt;br /&gt;
[[App Login]]&lt;br /&gt;
&lt;br /&gt;
[[Student / Employee ID]]&lt;br /&gt;
&lt;br /&gt;
[[My Information]]&lt;br /&gt;
&lt;br /&gt;
[[Parking]]&lt;br /&gt;
&lt;br /&gt;
[[SMS Alert App]]&lt;br /&gt;
&lt;br /&gt;
[[UMS Homework]]&lt;br /&gt;
&lt;br /&gt;
[[UMS Links]]&lt;br /&gt;
&lt;br /&gt;
[[Vouchers]]&lt;br /&gt;
&lt;br /&gt;
[[Attendance Registration - QR]]&lt;br /&gt;
&lt;br /&gt;
===Attendance===&lt;br /&gt;
[[Absence Registration for Employees]]&lt;br /&gt;
&lt;br /&gt;
[[Attendance Registration]]&lt;br /&gt;
&lt;br /&gt;
[[Attendance Registration Advanced]]&lt;br /&gt;
&lt;br /&gt;
[[Attendance Registration Card System]]&lt;br /&gt;
&lt;br /&gt;
===Backend===&lt;br /&gt;
[[AD Attributes]]&lt;br /&gt;
&lt;br /&gt;
[[Configurator]]&lt;br /&gt;
&lt;br /&gt;
[[CSV export]]&lt;br /&gt;
&lt;br /&gt;
[[Exchange Reviewer]]&lt;br /&gt;
&lt;br /&gt;
[[Exchange Timetable Blocks]]&lt;br /&gt;
&lt;br /&gt;
[[File Server Move]]&lt;br /&gt;
&lt;br /&gt;
[[GetStudents]]&lt;br /&gt;
&lt;br /&gt;
[[Password agent]]&lt;br /&gt;
&lt;br /&gt;
[[Password Expiration Alert]]&lt;br /&gt;
&lt;br /&gt;
[[Powersave]]&lt;br /&gt;
&lt;br /&gt;
[[SLI]]&lt;br /&gt;
&lt;br /&gt;
[[STIL UNI Login]]&lt;br /&gt;
&lt;br /&gt;
===Integrations===&lt;br /&gt;
[[Axpoint]]&lt;br /&gt;
&lt;br /&gt;
[[BOSS]]&lt;br /&gt;
&lt;br /&gt;
[[Custom SQL Commands]]&lt;br /&gt;
&lt;br /&gt;
[[Reindex]]&lt;br /&gt;
&lt;br /&gt;
[[Casepoint|Casepoint]]&lt;br /&gt;
&lt;br /&gt;
[[DAM]]&lt;br /&gt;
&lt;br /&gt;
[[edCom]]&lt;br /&gt;
&lt;br /&gt;
[[Elbek &amp;amp; Vejrup Fagsystem]]&lt;br /&gt;
&lt;br /&gt;
[[Integra]]&lt;br /&gt;
&lt;br /&gt;
[[Intranote]]&lt;br /&gt;
&lt;br /&gt;
[[Lectio Sync]]&lt;br /&gt;
&lt;br /&gt;
[[Google Apps]]&lt;br /&gt;
&lt;br /&gt;
[[Moodle]]&lt;br /&gt;
&lt;br /&gt;
[[Papercut]]&lt;br /&gt;
&lt;br /&gt;
[[Print Payment and Management]]&lt;br /&gt;
&lt;br /&gt;
[[Pure]]&lt;br /&gt;
&lt;br /&gt;
[[Safeticket]]&lt;br /&gt;
&lt;br /&gt;
[[Google app API]]&lt;br /&gt;
&lt;br /&gt;
[[SLS]]&lt;br /&gt;
&lt;br /&gt;
[[Study Quiz]]&lt;br /&gt;
&lt;br /&gt;
[[TimeEdit]]&lt;br /&gt;
&lt;br /&gt;
[[UCFMD]]&lt;br /&gt;
&lt;br /&gt;
[[UMS Webservice|UMS Web Service]]&lt;br /&gt;
&lt;br /&gt;
[[SSO/AD FS]]&lt;br /&gt;
&lt;br /&gt;
[[Tabulex]]&lt;br /&gt;
&lt;br /&gt;
===LMS===&lt;br /&gt;
[[Canvas]]&lt;br /&gt;
&lt;br /&gt;
[[ELEARNINGFORCE SharePoint LMS]] &lt;br /&gt;
&lt;br /&gt;
[[Fronter Integration]]&lt;br /&gt;
&lt;br /&gt;
[[Itslearning]]&lt;br /&gt;
&lt;br /&gt;
[[Moodle]]&lt;br /&gt;
&lt;br /&gt;
[[Wizdom integration]]&lt;br /&gt;
&lt;br /&gt;
===Office 365===&lt;br /&gt;
[[Office 365]]&lt;br /&gt;
&lt;br /&gt;
[[OneNote Class Notebook]]&lt;br /&gt;
&lt;br /&gt;
[[MSGraphPermissions|Microsoft Graph Permissions]]&lt;br /&gt;
&lt;br /&gt;
[[Sharepoint Portal]]&lt;br /&gt;
&lt;br /&gt;
[[Teams]]&lt;br /&gt;
&lt;br /&gt;
[[Microsoft_SDS]]&lt;br /&gt;
&lt;br /&gt;
===Self Service===&lt;br /&gt;
[[Exam Handling]]&lt;br /&gt;
&lt;br /&gt;
[[Grades]]&lt;br /&gt;
&lt;br /&gt;
[[IT Rules]]&lt;br /&gt;
&lt;br /&gt;
[[Merge Letters]]&lt;br /&gt;
&lt;br /&gt;
[[Multiple Users]]&lt;br /&gt;
&lt;br /&gt;
[[Password Self Service]]&lt;br /&gt;
&lt;br /&gt;
[[Password Change]]&lt;br /&gt;
&lt;br /&gt;
[[SSO]]&lt;br /&gt;
&lt;br /&gt;
[[UMS Homework]]&lt;br /&gt;
&lt;br /&gt;
[[UMS Links]]&lt;br /&gt;
&lt;br /&gt;
[[UMS Photo]]&lt;br /&gt;
&lt;br /&gt;
[[UMS Web]]&lt;br /&gt;
&lt;br /&gt;
[[Logo on UMS Web ]]&lt;br /&gt;
&lt;br /&gt;
[[UMS Welcome]]&lt;br /&gt;
&lt;br /&gt;
[[User Lock]]&lt;br /&gt;
&lt;br /&gt;
[[Web Timetable]]&lt;br /&gt;
&lt;br /&gt;
[[SLI Change Username]]&lt;br /&gt;
&lt;br /&gt;
===SMS===&lt;br /&gt;
[[SMS Alert]]&lt;br /&gt;
&lt;br /&gt;
[[SMS Subscriptions]]&lt;br /&gt;
&lt;br /&gt;
[[SMS Timetable]]&lt;br /&gt;
&lt;br /&gt;
[[SMS Welcome]]&lt;br /&gt;
&lt;br /&gt;
[[SMS Log]]&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=UMS_Webservice&amp;diff=4041</id>
		<title>UMS Webservice</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=UMS_Webservice&amp;diff=4041"/>
		<updated>2021-08-10T09:33:50Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The module UMS Webservice allows other providers to access the UMS database as a web service. Selected data can be retrieved securely through UMS Webservice.&lt;br /&gt;
&lt;br /&gt;
This is a soap service for more about [https://smartbear.com/blog/soap-vs-rest-whats-the-difference/ soap]&lt;br /&gt;
&lt;br /&gt;
For the wsdl go to &amp;lt;nowiki&amp;gt;https://your-ums-server.com/Webservices/DataExport.asmx?wsdl&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Setup===&lt;br /&gt;
UMS has web services. These can be found under this path on the webserver c:\inetpub\wwwroot\Webservices or where the UMS Frontend is installed.&lt;br /&gt;
&lt;br /&gt;
The web services need two kinds of authentication.&lt;br /&gt;
&lt;br /&gt;
#To access the ASMX file use windows authentication. This is a user that the webserver can find either local or domain.&lt;br /&gt;
#To call any of the web services you need a username and password that can be set in UMS configurator&lt;br /&gt;
##You can find it here Configurator -&amp;gt; Settings -&amp;gt; Web services&lt;br /&gt;
##[[File:Webservice setup.png|none|thumb|link=http://wiki.inlogic.dk/index.php/File:Webservice_setup.png]]&lt;br /&gt;
##The username must be between 8 - 100 characters&lt;br /&gt;
##The password must be between 16 - 100 characters&lt;br /&gt;
##Changing this requires a restart of the website.&lt;br /&gt;
&lt;br /&gt;
====Data export====&lt;br /&gt;
(Requires a license)&lt;br /&gt;
&lt;br /&gt;
These are used to extract data from the UMS database.&lt;br /&gt;
&lt;br /&gt;
They are found here http://&amp;lt;DNS&amp;gt;/WebServices/DataExport.asmx. Just remember to replace &amp;lt;DNS&amp;gt; with the URL with the UMS webserver address. &lt;br /&gt;
====Test web services====&lt;br /&gt;
This an example of the data export web service. Change the ASMX name to test other services.&lt;br /&gt;
&lt;br /&gt;
To test the web services you can use SOAP UI &amp;lt;nowiki&amp;gt;http://www.soapui.org/&amp;lt;/nowiki&amp;gt;. Download the free version.&lt;br /&gt;
&lt;br /&gt;
Connect to the web services URL http://&amp;amp;#x3C;DNS&amp;amp;#x3E;/WebServices/DataExport.asmx?wsdl[[File:Webservice url.png|none|thumb|link=http://wiki.inlogic.dk/index.php/File:Webservice_url.png]]Accessing this http://&amp;lt;DNS&amp;gt;/WebServices/DataExport.asmx?wsdl with a browser will show the WSDL as readable XML.&lt;br /&gt;
===ActivitiesInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;ActivitiesInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Activities&amp;gt;&lt;br /&gt;
         &amp;lt;AllActivities&amp;gt;boolean&amp;lt;/AllActivities&amp;gt;&lt;br /&gt;
         &amp;lt;AllDepartments&amp;gt;boolean&amp;lt;/AllDepartments&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveActivities&amp;gt;boolean&amp;lt;/OnlyActiveActivities&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;DepartmentNames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/DepartmentNames&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/Activities&amp;gt;&lt;br /&gt;
     &amp;lt;/ActivitiesInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;ActivitiesInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;ActivitiesInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/ActivitiesInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/ActivitiesInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CheckLogin===&lt;br /&gt;
&lt;br /&gt;
====SOAP 1.2====&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;CheckLogin xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;WebserviceUserName&amp;gt;string&amp;lt;/WebserviceUserName&amp;gt;&lt;br /&gt;
       &amp;lt;WebservicePassword&amp;gt;string&amp;lt;/WebservicePassword&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Domain&amp;gt;string&amp;lt;/Domain&amp;gt;&lt;br /&gt;
     &amp;lt;/CheckLogin&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;CheckLoginResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;CheckLoginResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
       &amp;lt;/CheckLoginResult&amp;gt;&lt;br /&gt;
     &amp;lt;/CheckLoginResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====HTTP GET====&lt;br /&gt;
The following is a sample HTTP GET request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 GET /Webservices/DataExport.asmx/CheckLogin?WebserviceUserName=string&amp;amp;WebservicePassword=string&amp;amp;UserName=string&amp;amp;Password=string&amp;amp;Domain=string HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: text/xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;RequestResult xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
   &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
 &amp;lt;/RequestResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====HTTP POST====&lt;br /&gt;
The following is a sample HTTP POST request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx/CheckLogin HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/x-www-form-urlencoded&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 WebserviceUserName=string&amp;amp;WebservicePassword=string&amp;amp;UserName=string&amp;amp;Password=string&amp;amp;Domain=string&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: text/xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;RequestResult xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
   &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
 &amp;lt;/RequestResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EmployeeEmploymentInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeeEmploymentInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Employees&amp;gt;&lt;br /&gt;
         &amp;lt;AllUsers&amp;gt;boolean&amp;lt;/AllUsers&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;ShowInitialPassword&amp;gt;boolean&amp;lt;/ShowInitialPassword&amp;gt;&lt;br /&gt;
         &amp;lt;ShowCurrentPassword&amp;gt;boolean&amp;lt;/ShowCurrentPassword&amp;gt;&lt;br /&gt;
         &amp;lt;Usernames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Usernames&amp;gt;&lt;br /&gt;
       &amp;lt;/Employees&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeeEmploymentInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeeEmploymentInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;EmployeeEmploymentInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;EmployeesEmployment&amp;gt;&lt;br /&gt;
           &amp;lt;EmployeeEmployment&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;Employments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Departments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Salaries xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/EmployeeEmployment&amp;gt;&lt;br /&gt;
           &amp;lt;EmployeeEmployment&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;Employments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Departments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Salaries xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/EmployeeEmployment&amp;gt;&lt;br /&gt;
         &amp;lt;/EmployeesEmployment&amp;gt;&lt;br /&gt;
       &amp;lt;/EmployeeEmploymentInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeeEmploymentInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EmployeePersonalInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeePersonalInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Employees&amp;gt;&lt;br /&gt;
         &amp;lt;AllUsers&amp;gt;boolean&amp;lt;/AllUsers&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;ShowInitialPassword&amp;gt;boolean&amp;lt;/ShowInitialPassword&amp;gt;&lt;br /&gt;
         &amp;lt;ShowCurrentPassword&amp;gt;boolean&amp;lt;/ShowCurrentPassword&amp;gt;&lt;br /&gt;
         &amp;lt;Usernames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Usernames&amp;gt;&lt;br /&gt;
       &amp;lt;/Employees&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeePersonalInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeePersonalInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;EmployeePersonalInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Employees&amp;gt;&lt;br /&gt;
           &amp;lt;Employee&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;Employee_Type&amp;gt;string&amp;lt;/Employee_Type&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;WorkMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Employee&amp;gt;&lt;br /&gt;
           &amp;lt;Employee&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;Employee_Type&amp;gt;string&amp;lt;/Employee_Type&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;WorkMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Employee&amp;gt;&lt;br /&gt;
         &amp;lt;/Employees&amp;gt;&lt;br /&gt;
       &amp;lt;/EmployeePersonalInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeePersonalInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===StudentPersonalInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;StudentPersonalInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Students&amp;gt;&lt;br /&gt;
         &amp;lt;AllUsers&amp;gt;boolean&amp;lt;/AllUsers&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;ShowInitialPassword&amp;gt;boolean&amp;lt;/ShowInitialPassword&amp;gt;&lt;br /&gt;
         &amp;lt;ShowCurrentPassword&amp;gt;boolean&amp;lt;/ShowCurrentPassword&amp;gt;&lt;br /&gt;
         &amp;lt;Usernames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Usernames&amp;gt;&lt;br /&gt;
       &amp;lt;/Students&amp;gt;&lt;br /&gt;
     &amp;lt;/StudentPersonalInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;StudentPersonalInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;StudentPersonalInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Students&amp;gt;&lt;br /&gt;
           &amp;lt;Student&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PrivateMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Educations xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Student&amp;gt;&lt;br /&gt;
           &amp;lt;Student&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PrivateMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Educations xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Student&amp;gt;&lt;br /&gt;
         &amp;lt;/Students&amp;gt;&lt;br /&gt;
       &amp;lt;/StudentPersonalInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/StudentPersonalInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UsersOnActivities===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;UsersOnActivities xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Activities&amp;gt;&lt;br /&gt;
         &amp;lt;AllActivities&amp;gt;boolean&amp;lt;/AllActivities&amp;gt;&lt;br /&gt;
         &amp;lt;AllDepartments&amp;gt;boolean&amp;lt;/AllDepartments&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveActivities&amp;gt;boolean&amp;lt;/OnlyActiveActivities&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;DepartmentNames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/DepartmentNames&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;RecordType&amp;gt;Students or Employees or All&amp;lt;/RecordType&amp;gt;&lt;br /&gt;
     &amp;lt;/UsersOnActivities&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;UsersOnActivitiesResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UsersOnActivitiesResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/UsersOnActivitiesResult&amp;gt;&lt;br /&gt;
     &amp;lt;/UsersOnActivitiesResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=UMS_Webservice&amp;diff=4040</id>
		<title>UMS Webservice</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=UMS_Webservice&amp;diff=4040"/>
		<updated>2021-08-10T09:33:24Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The module UMS Webservice allows other providers to access the UMS database as a web service. Selected data can be retrieved securely through UMS Webservice.&lt;br /&gt;
&lt;br /&gt;
This is a soap service for more about [https://smartbear.com/blog/soap-vs-rest-whats-the-difference/ soap]&lt;br /&gt;
&lt;br /&gt;
For the wsdl go to &amp;lt;nowiki&amp;gt;https://your-ums-server.com/Webservices/DataExport.asmx?wsdl&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Setup===&lt;br /&gt;
UMS has web services. These can be found under this path on the webserver c:\inetpub\wwwroot\Webservices or where the UMS Frontend is installed.&lt;br /&gt;
&lt;br /&gt;
The web services need two kinds of authentication.&lt;br /&gt;
&lt;br /&gt;
#To access the ASMX file use windows authentication. This is a user that the webserver can find either local or domain.&lt;br /&gt;
#To call any of the web services you need a username and password that can be set in UMS configurator&lt;br /&gt;
##You can find it here Configurator -&amp;gt; Settings -&amp;gt; Web services&lt;br /&gt;
##[[File:Webservice setup.png|none|thumb|link=http://wiki.inlogic.dk/index.php/File:Webservice_setup.png]]&lt;br /&gt;
##The username must be between 8 - 100 characters&lt;br /&gt;
##The password must be between 16 - 100 characters&lt;br /&gt;
##Changing this requires a restart of the website.&lt;br /&gt;
&lt;br /&gt;
====&#039;&#039;&#039;Data export&#039;&#039;&#039;====&lt;br /&gt;
(Requires a license)&lt;br /&gt;
&lt;br /&gt;
These are used to extract data from the UMS database.&lt;br /&gt;
&lt;br /&gt;
They are found here http://&amp;lt;DNS&amp;gt;/WebServices/DataExport.asmx. Just remember to replace &amp;lt;DNS&amp;gt; with the URL with the UMS webserver address. &lt;br /&gt;
====&#039;&#039;&#039;Test web services&#039;&#039;&#039;====&lt;br /&gt;
This an example of the data export web service. Change the ASMX name to test other services.&lt;br /&gt;
&lt;br /&gt;
To test the web services you can use SOAP UI &amp;lt;nowiki&amp;gt;http://www.soapui.org/&amp;lt;/nowiki&amp;gt;. Download the free version.&lt;br /&gt;
&lt;br /&gt;
Connect to the web services URL http://&amp;amp;#x3C;DNS&amp;amp;#x3E;/WebServices/DataExport.asmx?wsdl[[File:Webservice url.png|none|thumb|link=http://wiki.inlogic.dk/index.php/File:Webservice_url.png]]Accessing this http://&amp;lt;DNS&amp;gt;/WebServices/DataExport.asmx?wsdl with a browser will show the WSDL as readable XML.&lt;br /&gt;
===ActivitiesInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;ActivitiesInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Activities&amp;gt;&lt;br /&gt;
         &amp;lt;AllActivities&amp;gt;boolean&amp;lt;/AllActivities&amp;gt;&lt;br /&gt;
         &amp;lt;AllDepartments&amp;gt;boolean&amp;lt;/AllDepartments&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveActivities&amp;gt;boolean&amp;lt;/OnlyActiveActivities&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;DepartmentNames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/DepartmentNames&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/Activities&amp;gt;&lt;br /&gt;
     &amp;lt;/ActivitiesInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;ActivitiesInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;ActivitiesInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/ActivitiesInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/ActivitiesInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CheckLogin===&lt;br /&gt;
&lt;br /&gt;
====SOAP 1.2====&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;CheckLogin xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;WebserviceUserName&amp;gt;string&amp;lt;/WebserviceUserName&amp;gt;&lt;br /&gt;
       &amp;lt;WebservicePassword&amp;gt;string&amp;lt;/WebservicePassword&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Domain&amp;gt;string&amp;lt;/Domain&amp;gt;&lt;br /&gt;
     &amp;lt;/CheckLogin&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;CheckLoginResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;CheckLoginResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
       &amp;lt;/CheckLoginResult&amp;gt;&lt;br /&gt;
     &amp;lt;/CheckLoginResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====HTTP GET====&lt;br /&gt;
The following is a sample HTTP GET request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 GET /Webservices/DataExport.asmx/CheckLogin?WebserviceUserName=string&amp;amp;WebservicePassword=string&amp;amp;UserName=string&amp;amp;Password=string&amp;amp;Domain=string HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: text/xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;RequestResult xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
   &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
 &amp;lt;/RequestResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====HTTP POST====&lt;br /&gt;
The following is a sample HTTP POST request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx/CheckLogin HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/x-www-form-urlencoded&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 WebserviceUserName=string&amp;amp;WebservicePassword=string&amp;amp;UserName=string&amp;amp;Password=string&amp;amp;Domain=string&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: text/xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;RequestResult xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
   &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
 &amp;lt;/RequestResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EmployeeEmploymentInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeeEmploymentInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Employees&amp;gt;&lt;br /&gt;
         &amp;lt;AllUsers&amp;gt;boolean&amp;lt;/AllUsers&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;ShowInitialPassword&amp;gt;boolean&amp;lt;/ShowInitialPassword&amp;gt;&lt;br /&gt;
         &amp;lt;ShowCurrentPassword&amp;gt;boolean&amp;lt;/ShowCurrentPassword&amp;gt;&lt;br /&gt;
         &amp;lt;Usernames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Usernames&amp;gt;&lt;br /&gt;
       &amp;lt;/Employees&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeeEmploymentInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeeEmploymentInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;EmployeeEmploymentInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;EmployeesEmployment&amp;gt;&lt;br /&gt;
           &amp;lt;EmployeeEmployment&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;Employments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Departments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Salaries xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/EmployeeEmployment&amp;gt;&lt;br /&gt;
           &amp;lt;EmployeeEmployment&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;Employments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Departments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Salaries xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/EmployeeEmployment&amp;gt;&lt;br /&gt;
         &amp;lt;/EmployeesEmployment&amp;gt;&lt;br /&gt;
       &amp;lt;/EmployeeEmploymentInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeeEmploymentInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EmployeePersonalInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeePersonalInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Employees&amp;gt;&lt;br /&gt;
         &amp;lt;AllUsers&amp;gt;boolean&amp;lt;/AllUsers&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;ShowInitialPassword&amp;gt;boolean&amp;lt;/ShowInitialPassword&amp;gt;&lt;br /&gt;
         &amp;lt;ShowCurrentPassword&amp;gt;boolean&amp;lt;/ShowCurrentPassword&amp;gt;&lt;br /&gt;
         &amp;lt;Usernames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Usernames&amp;gt;&lt;br /&gt;
       &amp;lt;/Employees&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeePersonalInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeePersonalInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;EmployeePersonalInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Employees&amp;gt;&lt;br /&gt;
           &amp;lt;Employee&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;Employee_Type&amp;gt;string&amp;lt;/Employee_Type&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;WorkMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Employee&amp;gt;&lt;br /&gt;
           &amp;lt;Employee&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;Employee_Type&amp;gt;string&amp;lt;/Employee_Type&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;WorkMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Employee&amp;gt;&lt;br /&gt;
         &amp;lt;/Employees&amp;gt;&lt;br /&gt;
       &amp;lt;/EmployeePersonalInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeePersonalInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===StudentPersonalInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;StudentPersonalInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Students&amp;gt;&lt;br /&gt;
         &amp;lt;AllUsers&amp;gt;boolean&amp;lt;/AllUsers&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;ShowInitialPassword&amp;gt;boolean&amp;lt;/ShowInitialPassword&amp;gt;&lt;br /&gt;
         &amp;lt;ShowCurrentPassword&amp;gt;boolean&amp;lt;/ShowCurrentPassword&amp;gt;&lt;br /&gt;
         &amp;lt;Usernames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Usernames&amp;gt;&lt;br /&gt;
       &amp;lt;/Students&amp;gt;&lt;br /&gt;
     &amp;lt;/StudentPersonalInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;StudentPersonalInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;StudentPersonalInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Students&amp;gt;&lt;br /&gt;
           &amp;lt;Student&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PrivateMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Educations xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Student&amp;gt;&lt;br /&gt;
           &amp;lt;Student&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PrivateMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Educations xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Student&amp;gt;&lt;br /&gt;
         &amp;lt;/Students&amp;gt;&lt;br /&gt;
       &amp;lt;/StudentPersonalInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/StudentPersonalInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UsersOnActivities===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;UsersOnActivities xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Activities&amp;gt;&lt;br /&gt;
         &amp;lt;AllActivities&amp;gt;boolean&amp;lt;/AllActivities&amp;gt;&lt;br /&gt;
         &amp;lt;AllDepartments&amp;gt;boolean&amp;lt;/AllDepartments&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveActivities&amp;gt;boolean&amp;lt;/OnlyActiveActivities&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;DepartmentNames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/DepartmentNames&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;RecordType&amp;gt;Students or Employees or All&amp;lt;/RecordType&amp;gt;&lt;br /&gt;
     &amp;lt;/UsersOnActivities&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;UsersOnActivitiesResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UsersOnActivitiesResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/UsersOnActivitiesResult&amp;gt;&lt;br /&gt;
     &amp;lt;/UsersOnActivitiesResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=UMS_Webservice&amp;diff=4039</id>
		<title>UMS Webservice</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=UMS_Webservice&amp;diff=4039"/>
		<updated>2021-08-10T09:33:03Z</updated>

		<summary type="html">&lt;p&gt;Khm: /* Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The module UMS Webservice allows other providers to access the UMS database as a web service. Selected data can be retrieved securely through UMS Webservice.&lt;br /&gt;
&lt;br /&gt;
This is a soap service for more about [https://smartbear.com/blog/soap-vs-rest-whats-the-difference/ soap]&lt;br /&gt;
&lt;br /&gt;
For the wsdl go to &amp;lt;nowiki&amp;gt;https://your-ums-server.com/Webservices/DataExport.asmx?wsdl&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Setup===&lt;br /&gt;
UMS has web services. These can be found under this path on the webserver c:\inetpub\wwwroot\Webservices or where the UMS Frontend is installed.&lt;br /&gt;
&lt;br /&gt;
The web services need two kinds of authentication.&lt;br /&gt;
&lt;br /&gt;
#To access the ASMX file use windows authentication. This is a user that the webserver can find either local or domain.&lt;br /&gt;
#To call any of the web services you need a username and password that can be set in UMS configurator&lt;br /&gt;
##You can find it here Configurator -&amp;gt; Settings -&amp;gt; Web services&lt;br /&gt;
##[[File:Webservice setup.png|none|thumb|link=http://wiki.inlogic.dk/index.php/File:Webservice_setup.png]]&lt;br /&gt;
##The username must be between 8 - 100 characters&lt;br /&gt;
##The password must be between 16 - 100 characters&lt;br /&gt;
##Changing this requires a restart of the website. &lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Data export&#039;&#039;&#039;===&lt;br /&gt;
(Requires a license)&lt;br /&gt;
&lt;br /&gt;
These are used to extract data from the UMS database.&lt;br /&gt;
&lt;br /&gt;
They are found here http://&amp;lt;DNS&amp;gt;/WebServices/DataExport.asmx. Just remember to replace &amp;lt;DNS&amp;gt; with the URL with the UMS webserver address. &lt;br /&gt;
===&#039;&#039;&#039;Test web services&#039;&#039;&#039;===&lt;br /&gt;
This an example of the data export web service. Change the ASMX name to test other services.&lt;br /&gt;
&lt;br /&gt;
To test the web services you can use SOAP UI &amp;lt;nowiki&amp;gt;http://www.soapui.org/&amp;lt;/nowiki&amp;gt;. Download the free version.&lt;br /&gt;
&lt;br /&gt;
Connect to the web services URL http://&amp;amp;#x3C;DNS&amp;amp;#x3E;/WebServices/DataExport.asmx?wsdl[[File:Webservice url.png|none|thumb|link=http://wiki.inlogic.dk/index.php/File:Webservice_url.png]]Accessing this http://&amp;lt;DNS&amp;gt;/WebServices/DataExport.asmx?wsdl with a browser will show the WSDL as readable XML.&lt;br /&gt;
===ActivitiesInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;ActivitiesInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Activities&amp;gt;&lt;br /&gt;
         &amp;lt;AllActivities&amp;gt;boolean&amp;lt;/AllActivities&amp;gt;&lt;br /&gt;
         &amp;lt;AllDepartments&amp;gt;boolean&amp;lt;/AllDepartments&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveActivities&amp;gt;boolean&amp;lt;/OnlyActiveActivities&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;DepartmentNames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/DepartmentNames&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/Activities&amp;gt;&lt;br /&gt;
     &amp;lt;/ActivitiesInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;ActivitiesInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;ActivitiesInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/ActivitiesInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/ActivitiesInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CheckLogin===&lt;br /&gt;
&lt;br /&gt;
====SOAP 1.2====&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;CheckLogin xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;WebserviceUserName&amp;gt;string&amp;lt;/WebserviceUserName&amp;gt;&lt;br /&gt;
       &amp;lt;WebservicePassword&amp;gt;string&amp;lt;/WebservicePassword&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Domain&amp;gt;string&amp;lt;/Domain&amp;gt;&lt;br /&gt;
     &amp;lt;/CheckLogin&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;CheckLoginResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;CheckLoginResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
       &amp;lt;/CheckLoginResult&amp;gt;&lt;br /&gt;
     &amp;lt;/CheckLoginResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====HTTP GET====&lt;br /&gt;
The following is a sample HTTP GET request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 GET /Webservices/DataExport.asmx/CheckLogin?WebserviceUserName=string&amp;amp;WebservicePassword=string&amp;amp;UserName=string&amp;amp;Password=string&amp;amp;Domain=string HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: text/xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;RequestResult xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
   &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
 &amp;lt;/RequestResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====HTTP POST====&lt;br /&gt;
The following is a sample HTTP POST request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx/CheckLogin HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/x-www-form-urlencoded&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 WebserviceUserName=string&amp;amp;WebservicePassword=string&amp;amp;UserName=string&amp;amp;Password=string&amp;amp;Domain=string&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: text/xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;RequestResult xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
   &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
 &amp;lt;/RequestResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EmployeeEmploymentInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeeEmploymentInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Employees&amp;gt;&lt;br /&gt;
         &amp;lt;AllUsers&amp;gt;boolean&amp;lt;/AllUsers&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;ShowInitialPassword&amp;gt;boolean&amp;lt;/ShowInitialPassword&amp;gt;&lt;br /&gt;
         &amp;lt;ShowCurrentPassword&amp;gt;boolean&amp;lt;/ShowCurrentPassword&amp;gt;&lt;br /&gt;
         &amp;lt;Usernames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Usernames&amp;gt;&lt;br /&gt;
       &amp;lt;/Employees&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeeEmploymentInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeeEmploymentInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;EmployeeEmploymentInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;EmployeesEmployment&amp;gt;&lt;br /&gt;
           &amp;lt;EmployeeEmployment&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;Employments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Departments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Salaries xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/EmployeeEmployment&amp;gt;&lt;br /&gt;
           &amp;lt;EmployeeEmployment&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;Employments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Departments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Salaries xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/EmployeeEmployment&amp;gt;&lt;br /&gt;
         &amp;lt;/EmployeesEmployment&amp;gt;&lt;br /&gt;
       &amp;lt;/EmployeeEmploymentInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeeEmploymentInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EmployeePersonalInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeePersonalInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Employees&amp;gt;&lt;br /&gt;
         &amp;lt;AllUsers&amp;gt;boolean&amp;lt;/AllUsers&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;ShowInitialPassword&amp;gt;boolean&amp;lt;/ShowInitialPassword&amp;gt;&lt;br /&gt;
         &amp;lt;ShowCurrentPassword&amp;gt;boolean&amp;lt;/ShowCurrentPassword&amp;gt;&lt;br /&gt;
         &amp;lt;Usernames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Usernames&amp;gt;&lt;br /&gt;
       &amp;lt;/Employees&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeePersonalInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeePersonalInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;EmployeePersonalInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Employees&amp;gt;&lt;br /&gt;
           &amp;lt;Employee&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;Employee_Type&amp;gt;string&amp;lt;/Employee_Type&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;WorkMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Employee&amp;gt;&lt;br /&gt;
           &amp;lt;Employee&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;Employee_Type&amp;gt;string&amp;lt;/Employee_Type&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;WorkMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Employee&amp;gt;&lt;br /&gt;
         &amp;lt;/Employees&amp;gt;&lt;br /&gt;
       &amp;lt;/EmployeePersonalInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeePersonalInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===StudentPersonalInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;StudentPersonalInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Students&amp;gt;&lt;br /&gt;
         &amp;lt;AllUsers&amp;gt;boolean&amp;lt;/AllUsers&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;ShowInitialPassword&amp;gt;boolean&amp;lt;/ShowInitialPassword&amp;gt;&lt;br /&gt;
         &amp;lt;ShowCurrentPassword&amp;gt;boolean&amp;lt;/ShowCurrentPassword&amp;gt;&lt;br /&gt;
         &amp;lt;Usernames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Usernames&amp;gt;&lt;br /&gt;
       &amp;lt;/Students&amp;gt;&lt;br /&gt;
     &amp;lt;/StudentPersonalInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;StudentPersonalInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;StudentPersonalInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Students&amp;gt;&lt;br /&gt;
           &amp;lt;Student&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PrivateMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Educations xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Student&amp;gt;&lt;br /&gt;
           &amp;lt;Student&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PrivateMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Educations xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Student&amp;gt;&lt;br /&gt;
         &amp;lt;/Students&amp;gt;&lt;br /&gt;
       &amp;lt;/StudentPersonalInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/StudentPersonalInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UsersOnActivities===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;UsersOnActivities xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Activities&amp;gt;&lt;br /&gt;
         &amp;lt;AllActivities&amp;gt;boolean&amp;lt;/AllActivities&amp;gt;&lt;br /&gt;
         &amp;lt;AllDepartments&amp;gt;boolean&amp;lt;/AllDepartments&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveActivities&amp;gt;boolean&amp;lt;/OnlyActiveActivities&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;DepartmentNames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/DepartmentNames&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;RecordType&amp;gt;Students or Employees or All&amp;lt;/RecordType&amp;gt;&lt;br /&gt;
     &amp;lt;/UsersOnActivities&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;UsersOnActivitiesResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UsersOnActivitiesResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/UsersOnActivitiesResult&amp;gt;&lt;br /&gt;
     &amp;lt;/UsersOnActivitiesResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=UMS_Webservice&amp;diff=4038</id>
		<title>UMS Webservice</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=UMS_Webservice&amp;diff=4038"/>
		<updated>2021-08-10T09:30:53Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The module UMS Webservice allows other providers to access the UMS database as a web service. Selected data can be retrieved securely through UMS Webservice.&lt;br /&gt;
&lt;br /&gt;
This is a soap service for more about [https://smartbear.com/blog/soap-vs-rest-whats-the-difference/ soap]&lt;br /&gt;
&lt;br /&gt;
For the wsdl go to &amp;lt;nowiki&amp;gt;https://your-ums-server.com/Webservices/DataExport.asmx?wsdl&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setup ===&lt;br /&gt;
[[UMS Web Service]]&lt;br /&gt;
&lt;br /&gt;
===ActivitiesInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;ActivitiesInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Activities&amp;gt;&lt;br /&gt;
         &amp;lt;AllActivities&amp;gt;boolean&amp;lt;/AllActivities&amp;gt;&lt;br /&gt;
         &amp;lt;AllDepartments&amp;gt;boolean&amp;lt;/AllDepartments&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveActivities&amp;gt;boolean&amp;lt;/OnlyActiveActivities&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;DepartmentNames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/DepartmentNames&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/Activities&amp;gt;&lt;br /&gt;
     &amp;lt;/ActivitiesInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;ActivitiesInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;ActivitiesInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/ActivitiesInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/ActivitiesInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CheckLogin===&lt;br /&gt;
&lt;br /&gt;
====SOAP 1.2====&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;CheckLogin xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;WebserviceUserName&amp;gt;string&amp;lt;/WebserviceUserName&amp;gt;&lt;br /&gt;
       &amp;lt;WebservicePassword&amp;gt;string&amp;lt;/WebservicePassword&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Domain&amp;gt;string&amp;lt;/Domain&amp;gt;&lt;br /&gt;
     &amp;lt;/CheckLogin&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;CheckLoginResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;CheckLoginResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
       &amp;lt;/CheckLoginResult&amp;gt;&lt;br /&gt;
     &amp;lt;/CheckLoginResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====HTTP GET====&lt;br /&gt;
The following is a sample HTTP GET request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 GET /Webservices/DataExport.asmx/CheckLogin?WebserviceUserName=string&amp;amp;WebservicePassword=string&amp;amp;UserName=string&amp;amp;Password=string&amp;amp;Domain=string HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: text/xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;RequestResult xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
   &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
 &amp;lt;/RequestResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====HTTP POST====&lt;br /&gt;
The following is a sample HTTP POST request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx/CheckLogin HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/x-www-form-urlencoded&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 WebserviceUserName=string&amp;amp;WebservicePassword=string&amp;amp;UserName=string&amp;amp;Password=string&amp;amp;Domain=string&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: text/xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;RequestResult xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
   &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
 &amp;lt;/RequestResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EmployeeEmploymentInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeeEmploymentInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Employees&amp;gt;&lt;br /&gt;
         &amp;lt;AllUsers&amp;gt;boolean&amp;lt;/AllUsers&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;ShowInitialPassword&amp;gt;boolean&amp;lt;/ShowInitialPassword&amp;gt;&lt;br /&gt;
         &amp;lt;ShowCurrentPassword&amp;gt;boolean&amp;lt;/ShowCurrentPassword&amp;gt;&lt;br /&gt;
         &amp;lt;Usernames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Usernames&amp;gt;&lt;br /&gt;
       &amp;lt;/Employees&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeeEmploymentInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeeEmploymentInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;EmployeeEmploymentInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;EmployeesEmployment&amp;gt;&lt;br /&gt;
           &amp;lt;EmployeeEmployment&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;Employments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Departments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Salaries xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/EmployeeEmployment&amp;gt;&lt;br /&gt;
           &amp;lt;EmployeeEmployment&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;Employments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Departments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Salaries xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/EmployeeEmployment&amp;gt;&lt;br /&gt;
         &amp;lt;/EmployeesEmployment&amp;gt;&lt;br /&gt;
       &amp;lt;/EmployeeEmploymentInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeeEmploymentInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EmployeePersonalInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeePersonalInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Employees&amp;gt;&lt;br /&gt;
         &amp;lt;AllUsers&amp;gt;boolean&amp;lt;/AllUsers&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;ShowInitialPassword&amp;gt;boolean&amp;lt;/ShowInitialPassword&amp;gt;&lt;br /&gt;
         &amp;lt;ShowCurrentPassword&amp;gt;boolean&amp;lt;/ShowCurrentPassword&amp;gt;&lt;br /&gt;
         &amp;lt;Usernames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Usernames&amp;gt;&lt;br /&gt;
       &amp;lt;/Employees&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeePersonalInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeePersonalInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;EmployeePersonalInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Employees&amp;gt;&lt;br /&gt;
           &amp;lt;Employee&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;Employee_Type&amp;gt;string&amp;lt;/Employee_Type&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;WorkMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Employee&amp;gt;&lt;br /&gt;
           &amp;lt;Employee&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;Employee_Type&amp;gt;string&amp;lt;/Employee_Type&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;WorkMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Employee&amp;gt;&lt;br /&gt;
         &amp;lt;/Employees&amp;gt;&lt;br /&gt;
       &amp;lt;/EmployeePersonalInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeePersonalInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===StudentPersonalInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;StudentPersonalInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Students&amp;gt;&lt;br /&gt;
         &amp;lt;AllUsers&amp;gt;boolean&amp;lt;/AllUsers&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;ShowInitialPassword&amp;gt;boolean&amp;lt;/ShowInitialPassword&amp;gt;&lt;br /&gt;
         &amp;lt;ShowCurrentPassword&amp;gt;boolean&amp;lt;/ShowCurrentPassword&amp;gt;&lt;br /&gt;
         &amp;lt;Usernames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Usernames&amp;gt;&lt;br /&gt;
       &amp;lt;/Students&amp;gt;&lt;br /&gt;
     &amp;lt;/StudentPersonalInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;StudentPersonalInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;StudentPersonalInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Students&amp;gt;&lt;br /&gt;
           &amp;lt;Student&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PrivateMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Educations xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Student&amp;gt;&lt;br /&gt;
           &amp;lt;Student&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PrivateMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Educations xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Student&amp;gt;&lt;br /&gt;
         &amp;lt;/Students&amp;gt;&lt;br /&gt;
       &amp;lt;/StudentPersonalInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/StudentPersonalInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UsersOnActivities===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;UsersOnActivities xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Activities&amp;gt;&lt;br /&gt;
         &amp;lt;AllActivities&amp;gt;boolean&amp;lt;/AllActivities&amp;gt;&lt;br /&gt;
         &amp;lt;AllDepartments&amp;gt;boolean&amp;lt;/AllDepartments&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveActivities&amp;gt;boolean&amp;lt;/OnlyActiveActivities&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;DepartmentNames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/DepartmentNames&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;RecordType&amp;gt;Students or Employees or All&amp;lt;/RecordType&amp;gt;&lt;br /&gt;
     &amp;lt;/UsersOnActivities&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;UsersOnActivitiesResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UsersOnActivitiesResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/UsersOnActivitiesResult&amp;gt;&lt;br /&gt;
     &amp;lt;/UsersOnActivitiesResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=UMS_Webservice&amp;diff=4037</id>
		<title>UMS Webservice</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=UMS_Webservice&amp;diff=4037"/>
		<updated>2021-08-10T09:29:12Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The module UMS Webservice allows other providers to access the UMS database as a web service. Selected data can be retrieved securely through UMS Webservice.&lt;br /&gt;
&lt;br /&gt;
This is a soap service for more about [https://smartbear.com/blog/soap-vs-rest-whats-the-difference/ soap]&lt;br /&gt;
&lt;br /&gt;
For the wsdl go to &amp;lt;nowiki&amp;gt;https://your-ums-server.com/Webservices/DataExport.asmx?wsdl&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ActivitiesInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;ActivitiesInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Activities&amp;gt;&lt;br /&gt;
         &amp;lt;AllActivities&amp;gt;boolean&amp;lt;/AllActivities&amp;gt;&lt;br /&gt;
         &amp;lt;AllDepartments&amp;gt;boolean&amp;lt;/AllDepartments&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveActivities&amp;gt;boolean&amp;lt;/OnlyActiveActivities&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;DepartmentNames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/DepartmentNames&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/Activities&amp;gt;&lt;br /&gt;
     &amp;lt;/ActivitiesInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;ActivitiesInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;ActivitiesInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/ActivitiesInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/ActivitiesInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CheckLogin===&lt;br /&gt;
&lt;br /&gt;
====SOAP 1.2====&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;CheckLogin xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;WebserviceUserName&amp;gt;string&amp;lt;/WebserviceUserName&amp;gt;&lt;br /&gt;
       &amp;lt;WebservicePassword&amp;gt;string&amp;lt;/WebservicePassword&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Domain&amp;gt;string&amp;lt;/Domain&amp;gt;&lt;br /&gt;
     &amp;lt;/CheckLogin&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;CheckLoginResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;CheckLoginResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
       &amp;lt;/CheckLoginResult&amp;gt;&lt;br /&gt;
     &amp;lt;/CheckLoginResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====HTTP GET====&lt;br /&gt;
The following is a sample HTTP GET request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 GET /Webservices/DataExport.asmx/CheckLogin?WebserviceUserName=string&amp;amp;WebservicePassword=string&amp;amp;UserName=string&amp;amp;Password=string&amp;amp;Domain=string HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: text/xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;RequestResult xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
   &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
 &amp;lt;/RequestResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====HTTP POST====&lt;br /&gt;
The following is a sample HTTP POST request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx/CheckLogin HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/x-www-form-urlencoded&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 WebserviceUserName=string&amp;amp;WebservicePassword=string&amp;amp;UserName=string&amp;amp;Password=string&amp;amp;Domain=string&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: text/xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;RequestResult xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
   &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
 &amp;lt;/RequestResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EmployeeEmploymentInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeeEmploymentInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Employees&amp;gt;&lt;br /&gt;
         &amp;lt;AllUsers&amp;gt;boolean&amp;lt;/AllUsers&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;ShowInitialPassword&amp;gt;boolean&amp;lt;/ShowInitialPassword&amp;gt;&lt;br /&gt;
         &amp;lt;ShowCurrentPassword&amp;gt;boolean&amp;lt;/ShowCurrentPassword&amp;gt;&lt;br /&gt;
         &amp;lt;Usernames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Usernames&amp;gt;&lt;br /&gt;
       &amp;lt;/Employees&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeeEmploymentInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeeEmploymentInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;EmployeeEmploymentInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;EmployeesEmployment&amp;gt;&lt;br /&gt;
           &amp;lt;EmployeeEmployment&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;Employments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Departments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Salaries xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/EmployeeEmployment&amp;gt;&lt;br /&gt;
           &amp;lt;EmployeeEmployment&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;Employments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Departments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Salaries xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/EmployeeEmployment&amp;gt;&lt;br /&gt;
         &amp;lt;/EmployeesEmployment&amp;gt;&lt;br /&gt;
       &amp;lt;/EmployeeEmploymentInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeeEmploymentInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EmployeePersonalInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeePersonalInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Employees&amp;gt;&lt;br /&gt;
         &amp;lt;AllUsers&amp;gt;boolean&amp;lt;/AllUsers&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;ShowInitialPassword&amp;gt;boolean&amp;lt;/ShowInitialPassword&amp;gt;&lt;br /&gt;
         &amp;lt;ShowCurrentPassword&amp;gt;boolean&amp;lt;/ShowCurrentPassword&amp;gt;&lt;br /&gt;
         &amp;lt;Usernames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Usernames&amp;gt;&lt;br /&gt;
       &amp;lt;/Employees&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeePersonalInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeePersonalInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;EmployeePersonalInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Employees&amp;gt;&lt;br /&gt;
           &amp;lt;Employee&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;Employee_Type&amp;gt;string&amp;lt;/Employee_Type&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;WorkMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Employee&amp;gt;&lt;br /&gt;
           &amp;lt;Employee&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;Employee_Type&amp;gt;string&amp;lt;/Employee_Type&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;WorkMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Employee&amp;gt;&lt;br /&gt;
         &amp;lt;/Employees&amp;gt;&lt;br /&gt;
       &amp;lt;/EmployeePersonalInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeePersonalInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===StudentPersonalInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;StudentPersonalInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Students&amp;gt;&lt;br /&gt;
         &amp;lt;AllUsers&amp;gt;boolean&amp;lt;/AllUsers&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;ShowInitialPassword&amp;gt;boolean&amp;lt;/ShowInitialPassword&amp;gt;&lt;br /&gt;
         &amp;lt;ShowCurrentPassword&amp;gt;boolean&amp;lt;/ShowCurrentPassword&amp;gt;&lt;br /&gt;
         &amp;lt;Usernames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Usernames&amp;gt;&lt;br /&gt;
       &amp;lt;/Students&amp;gt;&lt;br /&gt;
     &amp;lt;/StudentPersonalInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;StudentPersonalInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;StudentPersonalInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Students&amp;gt;&lt;br /&gt;
           &amp;lt;Student&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PrivateMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Educations xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Student&amp;gt;&lt;br /&gt;
           &amp;lt;Student&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PrivateMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Educations xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Student&amp;gt;&lt;br /&gt;
         &amp;lt;/Students&amp;gt;&lt;br /&gt;
       &amp;lt;/StudentPersonalInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/StudentPersonalInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UsersOnActivities===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;UsersOnActivities xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Activities&amp;gt;&lt;br /&gt;
         &amp;lt;AllActivities&amp;gt;boolean&amp;lt;/AllActivities&amp;gt;&lt;br /&gt;
         &amp;lt;AllDepartments&amp;gt;boolean&amp;lt;/AllDepartments&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveActivities&amp;gt;boolean&amp;lt;/OnlyActiveActivities&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;DepartmentNames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/DepartmentNames&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;RecordType&amp;gt;Students or Employees or All&amp;lt;/RecordType&amp;gt;&lt;br /&gt;
     &amp;lt;/UsersOnActivities&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;UsersOnActivitiesResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UsersOnActivitiesResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/UsersOnActivitiesResult&amp;gt;&lt;br /&gt;
     &amp;lt;/UsersOnActivitiesResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=UMS_Webservice&amp;diff=4036</id>
		<title>UMS Webservice</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=UMS_Webservice&amp;diff=4036"/>
		<updated>2021-08-10T09:25:40Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The module UMS Webservice allows other providers to access the UMS database as a web service. Selected data can be retrieved securely through UMS Webservice.&lt;br /&gt;
&lt;br /&gt;
This is a soap service for more about [https://smartbear.com/blog/soap-vs-rest-whats-the-difference/ soap]&lt;br /&gt;
&lt;br /&gt;
===ActivitiesInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;ActivitiesInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Activities&amp;gt;&lt;br /&gt;
         &amp;lt;AllActivities&amp;gt;boolean&amp;lt;/AllActivities&amp;gt;&lt;br /&gt;
         &amp;lt;AllDepartments&amp;gt;boolean&amp;lt;/AllDepartments&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveActivities&amp;gt;boolean&amp;lt;/OnlyActiveActivities&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;DepartmentNames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/DepartmentNames&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/Activities&amp;gt;&lt;br /&gt;
     &amp;lt;/ActivitiesInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;ActivitiesInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;ActivitiesInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/ActivitiesInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/ActivitiesInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CheckLogin===&lt;br /&gt;
&lt;br /&gt;
==== SOAP 1.2 ====&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;CheckLogin xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;WebserviceUserName&amp;gt;string&amp;lt;/WebserviceUserName&amp;gt;&lt;br /&gt;
       &amp;lt;WebservicePassword&amp;gt;string&amp;lt;/WebservicePassword&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Domain&amp;gt;string&amp;lt;/Domain&amp;gt;&lt;br /&gt;
     &amp;lt;/CheckLogin&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;CheckLoginResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;CheckLoginResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
       &amp;lt;/CheckLoginResult&amp;gt;&lt;br /&gt;
     &amp;lt;/CheckLoginResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== HTTP GET ====&lt;br /&gt;
The following is a sample HTTP GET request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 GET /Webservices/DataExport.asmx/CheckLogin?WebserviceUserName=string&amp;amp;WebservicePassword=string&amp;amp;UserName=string&amp;amp;Password=string&amp;amp;Domain=string HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: text/xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;RequestResult xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
   &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
 &amp;lt;/RequestResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== HTTP POST ====&lt;br /&gt;
The following is a sample HTTP POST request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx/CheckLogin HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/x-www-form-urlencoded&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 WebserviceUserName=string&amp;amp;WebservicePassword=string&amp;amp;UserName=string&amp;amp;Password=string&amp;amp;Domain=string&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: text/xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;RequestResult xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
   &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
 &amp;lt;/RequestResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EmployeeEmploymentInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeeEmploymentInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Employees&amp;gt;&lt;br /&gt;
         &amp;lt;AllUsers&amp;gt;boolean&amp;lt;/AllUsers&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;ShowInitialPassword&amp;gt;boolean&amp;lt;/ShowInitialPassword&amp;gt;&lt;br /&gt;
         &amp;lt;ShowCurrentPassword&amp;gt;boolean&amp;lt;/ShowCurrentPassword&amp;gt;&lt;br /&gt;
         &amp;lt;Usernames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Usernames&amp;gt;&lt;br /&gt;
       &amp;lt;/Employees&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeeEmploymentInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeeEmploymentInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;EmployeeEmploymentInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;EmployeesEmployment&amp;gt;&lt;br /&gt;
           &amp;lt;EmployeeEmployment&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;Employments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Departments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Salaries xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/EmployeeEmployment&amp;gt;&lt;br /&gt;
           &amp;lt;EmployeeEmployment&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;Employments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Departments xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Salaries xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/EmployeeEmployment&amp;gt;&lt;br /&gt;
         &amp;lt;/EmployeesEmployment&amp;gt;&lt;br /&gt;
       &amp;lt;/EmployeeEmploymentInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeeEmploymentInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EmployeePersonalInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeePersonalInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Employees&amp;gt;&lt;br /&gt;
         &amp;lt;AllUsers&amp;gt;boolean&amp;lt;/AllUsers&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;ShowInitialPassword&amp;gt;boolean&amp;lt;/ShowInitialPassword&amp;gt;&lt;br /&gt;
         &amp;lt;ShowCurrentPassword&amp;gt;boolean&amp;lt;/ShowCurrentPassword&amp;gt;&lt;br /&gt;
         &amp;lt;Usernames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Usernames&amp;gt;&lt;br /&gt;
       &amp;lt;/Employees&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeePersonalInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;EmployeePersonalInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;EmployeePersonalInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Employees&amp;gt;&lt;br /&gt;
           &amp;lt;Employee&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;Employee_Type&amp;gt;string&amp;lt;/Employee_Type&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;WorkMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Employee&amp;gt;&lt;br /&gt;
           &amp;lt;Employee&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;Employee_Type&amp;gt;string&amp;lt;/Employee_Type&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;WorkMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Employee&amp;gt;&lt;br /&gt;
         &amp;lt;/Employees&amp;gt;&lt;br /&gt;
       &amp;lt;/EmployeePersonalInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/EmployeePersonalInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===StudentPersonalInfo===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;StudentPersonalInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Students&amp;gt;&lt;br /&gt;
         &amp;lt;AllUsers&amp;gt;boolean&amp;lt;/AllUsers&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;ShowInitialPassword&amp;gt;boolean&amp;lt;/ShowInitialPassword&amp;gt;&lt;br /&gt;
         &amp;lt;ShowCurrentPassword&amp;gt;boolean&amp;lt;/ShowCurrentPassword&amp;gt;&lt;br /&gt;
         &amp;lt;Usernames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Usernames&amp;gt;&lt;br /&gt;
       &amp;lt;/Students&amp;gt;&lt;br /&gt;
     &amp;lt;/StudentPersonalInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;StudentPersonalInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;StudentPersonalInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Students&amp;gt;&lt;br /&gt;
           &amp;lt;Student&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PrivateMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Educations xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Student&amp;gt;&lt;br /&gt;
           &amp;lt;Student&amp;gt;&lt;br /&gt;
             &amp;lt;AdministrativeSystem xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
             &amp;lt;SSN&amp;gt;string&amp;lt;/SSN&amp;gt;&lt;br /&gt;
             &amp;lt;GivenName&amp;gt;string&amp;lt;/GivenName&amp;gt;&lt;br /&gt;
             &amp;lt;SurName&amp;gt;string&amp;lt;/SurName&amp;gt;&lt;br /&gt;
             &amp;lt;CurrentPassword&amp;gt;string&amp;lt;/CurrentPassword&amp;gt;&lt;br /&gt;
             &amp;lt;InitialPassword&amp;gt;string&amp;lt;/InitialPassword&amp;gt;&lt;br /&gt;
             &amp;lt;Addresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PhoneNumbers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;MobilePhones xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;PrivateMailAddresses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Educations xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Student&amp;gt;&lt;br /&gt;
         &amp;lt;/Students&amp;gt;&lt;br /&gt;
       &amp;lt;/StudentPersonalInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/StudentPersonalInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UsersOnActivities===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;UsersOnActivities xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Activities&amp;gt;&lt;br /&gt;
         &amp;lt;AllActivities&amp;gt;boolean&amp;lt;/AllActivities&amp;gt;&lt;br /&gt;
         &amp;lt;AllDepartments&amp;gt;boolean&amp;lt;/AllDepartments&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveActivities&amp;gt;boolean&amp;lt;/OnlyActiveActivities&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;DepartmentNames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/DepartmentNames&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;RecordType&amp;gt;Students or Employees or All&amp;lt;/RecordType&amp;gt;&lt;br /&gt;
     &amp;lt;/UsersOnActivities&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;UsersOnActivitiesResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UsersOnActivitiesResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/UsersOnActivitiesResult&amp;gt;&lt;br /&gt;
     &amp;lt;/UsersOnActivitiesResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=UMS_Webservice&amp;diff=4035</id>
		<title>UMS Webservice</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=UMS_Webservice&amp;diff=4035"/>
		<updated>2021-08-10T09:22:48Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The module UMS Webservice allows other providers to access the UMS database as a web service. Selected data can be retrieved securely through UMS Webservice.&lt;br /&gt;
&lt;br /&gt;
This is a soap service for more about [https://smartbear.com/blog/soap-vs-rest-whats-the-difference/ soap]&lt;br /&gt;
&lt;br /&gt;
=== ActivitiesInfo ===&lt;br /&gt;
The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.&lt;br /&gt;
 POST /Webservices/DataExport.asmx HTTP/1.1&lt;br /&gt;
 Host: localhost&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;ActivitiesInfo xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;UserName&amp;gt;string&amp;lt;/UserName&amp;gt;&lt;br /&gt;
       &amp;lt;Password&amp;gt;string&amp;lt;/Password&amp;gt;&lt;br /&gt;
       &amp;lt;Activities&amp;gt;&lt;br /&gt;
         &amp;lt;AllActivities&amp;gt;boolean&amp;lt;/AllActivities&amp;gt;&lt;br /&gt;
         &amp;lt;AllDepartments&amp;gt;boolean&amp;lt;/AllDepartments&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveActivities&amp;gt;boolean&amp;lt;/OnlyActiveActivities&amp;gt;&lt;br /&gt;
         &amp;lt;OnlyActiveUsers&amp;gt;boolean&amp;lt;/OnlyActiveUsers&amp;gt;&lt;br /&gt;
         &amp;lt;DepartmentNames&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/DepartmentNames&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;string&amp;gt;string&amp;lt;/string&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/Activities&amp;gt;&lt;br /&gt;
     &amp;lt;/ActivitiesInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: application/soap+xml; charset=utf-8&lt;br /&gt;
 Content-Length: length&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema-instance&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:xsd=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2001/XMLSchema&amp;lt;/nowiki&amp;gt;&amp;quot; xmlns:soap12=&amp;quot;&amp;lt;nowiki&amp;gt;http://www.w3.org/2003/05/soap-envelope&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;soap12:Body&amp;gt;&lt;br /&gt;
     &amp;lt;ActivitiesInfoResponse xmlns=&amp;quot;&amp;lt;nowiki&amp;gt;http://DataExport.inlogic.dk/&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;ActivitiesInfoResult&amp;gt;&lt;br /&gt;
         &amp;lt;ErrorMessage&amp;gt;string&amp;lt;/ErrorMessage&amp;gt;&lt;br /&gt;
         &amp;lt;ErrCode&amp;gt;int&amp;lt;/ErrCode&amp;gt;&lt;br /&gt;
         &amp;lt;Activities&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
           &amp;lt;Activity&amp;gt;&lt;br /&gt;
             &amp;lt;RowType&amp;gt;string&amp;lt;/RowType&amp;gt;&lt;br /&gt;
             &amp;lt;Activity&amp;gt;string&amp;lt;/Activity&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDisplayName&amp;gt;string&amp;lt;/ActivityDisplayName&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_ShortDescription&amp;gt;string&amp;lt;/Activity_ShortDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDescription&amp;gt;string&amp;lt;/ActivityDescription&amp;gt;&lt;br /&gt;
             &amp;lt;ActivityDepartmentNumber&amp;gt;string&amp;lt;/ActivityDepartmentNumber&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_StartDate&amp;gt;dateTime&amp;lt;/Activity_StartDate&amp;gt;&lt;br /&gt;
             &amp;lt;Activity_EndDate&amp;gt;dateTime&amp;lt;/Activity_EndDate&amp;gt;&lt;br /&gt;
             &amp;lt;Participants xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Teachers xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;Courses xsi:nil=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/Activity&amp;gt;&lt;br /&gt;
         &amp;lt;/Activities&amp;gt;&lt;br /&gt;
       &amp;lt;/ActivitiesInfoResult&amp;gt;&lt;br /&gt;
     &amp;lt;/ActivitiesInfoResponse&amp;gt;&lt;br /&gt;
   &amp;lt;/soap12:Body&amp;gt;&lt;br /&gt;
 &amp;lt;/soap12:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CheckLogin ===&lt;br /&gt;
&lt;br /&gt;
=== EmployeeEmploymentInfo ===&lt;br /&gt;
&lt;br /&gt;
=== EmployeePersonalInfo ===&lt;br /&gt;
&lt;br /&gt;
=== StudentPersonalInfo ===&lt;br /&gt;
&lt;br /&gt;
=== UsersOnActivities ===&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=UMS_Webservice&amp;diff=4034</id>
		<title>UMS Webservice</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=UMS_Webservice&amp;diff=4034"/>
		<updated>2021-08-10T09:21:32Z</updated>

		<summary type="html">&lt;p&gt;Khm: Created page with &amp;quot;The module UMS Webservice allows other providers to access the UMS database as a web service. Selected data can be retrieved securely through UMS Webservice.  This is a soap s...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The module UMS Webservice allows other providers to access the UMS database as a web service. Selected data can be retrieved securely through UMS Webservice.&lt;br /&gt;
&lt;br /&gt;
This is a soap service for more about [https://smartbear.com/blog/soap-vs-rest-whats-the-difference/ soap]&lt;br /&gt;
&lt;br /&gt;
=== ActivitiesInfo ===&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CheckLogin ===&lt;br /&gt;
&lt;br /&gt;
=== EmployeeEmploymentInfo ===&lt;br /&gt;
&lt;br /&gt;
=== EmployeePersonalInfo ===&lt;br /&gt;
&lt;br /&gt;
=== StudentPersonalInfo ===&lt;br /&gt;
&lt;br /&gt;
=== UsersOnActivities ===&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=Attendance_Registration&amp;diff=3918</id>
		<title>Attendance Registration</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=Attendance_Registration&amp;diff=3918"/>
		<updated>2021-06-02T08:17:17Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Attendance Registration is a tool for the educational sector that makes it easy to register attendance. Through a simple and intuitive interface, the teacher can register who is present, who is late, and who is absent. Registering attendance can be done in a matter of seconds, simply by clicking the button with the student’s name and picture. The interface uses colour codes, which makes it easy to see what the individual students are registered as. You decide which attendance options you want to use - i.e. options for being late, for legal absence, and illegal absence - as well as which colours are used for the different options. When attendance is registered, UMS automatically writes back to the administrative system - if supported. The interface also supports the possibility to see if the student has sent a text message to the school or if the staff has written notes regarding the student’s attendance.&lt;br /&gt;
&lt;br /&gt;
There are references to other UMS modules, e.g. SMS, in this guide. In case the mentioned modules are not present in your environment, you can ignore these settings.&lt;br /&gt;
&lt;br /&gt;
In order to edit templates, it is also required to have a basic knowledge about the UMS configurator.&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
&lt;br /&gt;
===Supported administrative systems===&lt;br /&gt;
&lt;br /&gt;
*Easy-C&lt;br /&gt;
&lt;br /&gt;
*Ludus&lt;br /&gt;
&lt;br /&gt;
*SIS&lt;br /&gt;
&lt;br /&gt;
*Other systems where it is possible to retrieve a timetable for students and teachers&lt;br /&gt;
&lt;br /&gt;
===Module requirements===&lt;br /&gt;
&lt;br /&gt;
*[[UMS]]&lt;br /&gt;
&lt;br /&gt;
*[[UMS Academic Web]]&lt;br /&gt;
&lt;br /&gt;
===Testing after setup===&lt;br /&gt;
To start testing after setup, you must log in as a teacher. See if you have access to attendance registration on the front page of UMS portal.&lt;br /&gt;
&lt;br /&gt;
Click on attendance registration and check that you can search for timetables for students, teachers, and classes.&lt;br /&gt;
&lt;br /&gt;
Check that you can register individual students as absent.&lt;br /&gt;
&lt;br /&gt;
===What is necessary to get started===&lt;br /&gt;
To get started, it is necessary to have a running [[UMS]] installation.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
Install [[UMS]] and [[UMS Academic Web]]&lt;br /&gt;
&lt;br /&gt;
==Technical settings==&lt;br /&gt;
&lt;br /&gt;
===Settings for UMS Attendance Basic===&lt;br /&gt;
All settings for UMS Attendance Basic is set in the configurator. In the main menu under &#039;Settings/Services&#039;, it is necessary to set the &#039;Absence service&#039; to run on a server. The service is responsible for sending text messages to students that are registered as absent. Please make sure the service has started and is running. See example of the set up below.&lt;br /&gt;
[[File:AbsenceServiceSetup.png|none|thumb|636x636px]]&lt;br /&gt;
&lt;br /&gt;
===Global settings===&lt;br /&gt;
Global settings are settings that are valid for the entire school. For settings that can be altered per education, class, or similar, see &#039;Individual settings&#039;.&lt;br /&gt;
&lt;br /&gt;
The Global settings are:&lt;br /&gt;
&lt;br /&gt;
*Attendance colours&lt;br /&gt;
*Design text messages sent to the students&lt;br /&gt;
*Granting access to teachers/employees and edit access to registration forward-looking&lt;br /&gt;
*Edit attendance types (late, approved, not approved)&lt;br /&gt;
&lt;br /&gt;
====Attendance colours====&lt;br /&gt;
Settings are found under &#039;Modules\Absence\colors&#039; in the main menu. Simply select the colours you want to use for each type of attendance. See example below.&lt;br /&gt;
[[File:Absencecolor.png|none|thumb|573x573px]]&lt;br /&gt;
&lt;br /&gt;
====Designing text messages sent to the students====&lt;br /&gt;
It is possible to preset text messages that will be sent to students if they are registered as absent. The settings are found under &#039;Modules\Absence\SMS&#039; in the main menu. The text messages can be set for each type of attendance both in Danish and English. It is also possible to create multiple text messages for each type of attendance. If you create multiple messages, the system will randomise these messages. Meaning, the system will send different messages to a student each time attendance is registered. See example below.&lt;br /&gt;
[[File:Absencesms.png|none|thumb|598x598px]]&lt;br /&gt;
&lt;br /&gt;
When you edit a message, there are several variables that can be used to ensuaking the messages more personalised. See example below.&lt;br /&gt;
[[File:Absencesmsvariables.png|none|thumb|1009x1009px]]&lt;br /&gt;
&lt;br /&gt;
====Granting access to teachers/employees and edit access to registration forward-looking====&lt;br /&gt;
Granting access to functions in the registration interface is done under &#039;Setup web access/Absence&#039;. Attendance basic allows &#039;register access&#039; and &#039;Future registration access&#039;. Enter a group (nested groups are allowed) with the teacher/employees that are allowed to use the specific function. See example below.&lt;br /&gt;
&lt;br /&gt;
The checkboxes have the following meaning:&lt;br /&gt;
&lt;br /&gt;
*&#039;Count too late on statistics&#039; – Not used for Attendance basic&lt;br /&gt;
*&#039;Show empty days&#039; – Should the day ruler show or omit days with no planned timetable?&lt;br /&gt;
*&#039;Show weekends&#039; – Should the day ruler show or omit weekends?&lt;br /&gt;
*&#039;Show legal&#039; – Is legal attendance used on the school/is it shown in the protocol?&lt;br /&gt;
*&#039;Show illegal&#039; – Is illegal attendance used on the school/is it shown in the protocol?&lt;br /&gt;
*&#039;Show too late&#039; – Is too late attendance used on the school/is it shown in the protocol?&lt;br /&gt;
&lt;br /&gt;
[[File:Absencewebsetup.png|none|thumb|828x828px]]&lt;br /&gt;
&lt;br /&gt;
=====Edit attendance types=====&lt;br /&gt;
To edit letters and text used in the attendance module, choose the button &#039;Select&#039; (see the window above).&lt;br /&gt;
&lt;br /&gt;
Double-click on the row containing the settings you want to edit. See below.&lt;br /&gt;
[[File:Absenceselect.png|none|thumb|874x874px]]&lt;br /&gt;
&lt;br /&gt;
===Individual settings===&lt;br /&gt;
Individual settings can be altered per education, class, or similar. For settings valid for the entire school, see &#039;Global settings&#039;. If an individual setting for a specific group is needed, it is necessary to create the group with the students in question beforehand. These settings can be altered under Configurator\Templates\Edit\Absence\Manage\Add a new or edit an existing setting.    &lt;br /&gt;
[[File:Template Absence Setting.jpg|none|thumb|784x784px]]&lt;br /&gt;
===SMS Sick Keyword===&lt;br /&gt;
The keyword set in this box will define which keyword the student sends in a text message to notify absence.&lt;br /&gt;
&lt;br /&gt;
E.g. the keyword &#039;Sick&#039; means the student has to send a message containing &#039;sick&#039; or &#039;sick %reason or message to the teacher%&#039;. Both cases will be accepted by UMS. All text after the keyword will not be stored in UMS.&lt;br /&gt;
&lt;br /&gt;
====SMS absence Keyword====&lt;br /&gt;
The keyword set in this box will define which keyword the student sends in a text message to notify absence.&lt;br /&gt;
&lt;br /&gt;
E.g. the keyword &#039;Sick&#039; means the student has to send a message containing &#039;absence&#039; or &#039;absence %reason or message to the teacher%&#039;. Both cases will be accepted by UMS. All text after the keyword will be stored in UMS.&lt;br /&gt;
&lt;br /&gt;
===SMS and App settings for notify absence===&lt;br /&gt;
&lt;br /&gt;
*&#039;Default incoming SMS status&#039; - These are settings for which type of attendance the system should set as default when receiving a message from a student notifying absence. The teacher will see this status in the attendance registration interface. E.g. when the default type of attendance is &#039;Legal absence&#039;, students will be marked as &#039;Legal absence&#039; when notifying absent&lt;br /&gt;
*&#039;Ignore messages for today start/end&#039; - In the set time span, it is not possible for a student to send a text message to notify absence. This means that if the message is received before the given start time, e.g. 10 a.m., the system will check the students schedule for timetable blocks that day and mark the blocks with the default attendance status, e.g. &#039;Legal absence&#039;. The system will then send a reply confirming the student is marked absent. If the message is received between the start and end time, e.g. 10 a.m. and 3 p.m., the system will send the student a reply, saying it is not allowed to notify absence at this time. If the message is received after the given end time, e.g. 3.pm., the system will check the schedule for timetable blocks the following day and mark those with the default attendance status, e.g. &#039;Legal absence&#039; If this feature is set to 00:00 - 00:00 students cannot register as absent. If you want an &amp;quot;Always register for the current day&amp;quot;-functionality, set it to 23:59 - 00:00&lt;br /&gt;
*&#039;Require reason&#039; - The school can require the students to give a reason when notifying absence. Check this box if students have to write a reason in order to register as absent&lt;br /&gt;
&lt;br /&gt;
====Misc settings====&lt;br /&gt;
&lt;br /&gt;
*&#039;Use cards&#039; - This enables students to register via their student ID&#039;s via Bianco. Check this box if the student is allowed to register via card&lt;br /&gt;
*&#039;Show watermark at %&#039; - If the school has a limitation for how high attendance percentage is allowed for a student, this can be set as visible. Check this box if it should be visible if the students are above the accepted limit&lt;br /&gt;
*&#039;Days back&#039; - This setting decides how many days backwards a teacher is allowed to register and edit attendance. Set the number of days that are allowed in the drop-down menu &#039;Days back&#039;. Please note that this setting cannot exceed the number of days backwards in the global timetable block data job!&lt;br /&gt;
*&#039;Too late&#039; - This shows the number of minutes a late show should count. &#039;Too late&#039; sets the number of minutes late attendance should count. If a student is late for class it will be registered as e.g. 10 minutes absence. Set the number of minutes that should count in this box&lt;br /&gt;
*&#039;Show percent on studentstat&#039; - Check this box, if students are allowed to see their attendance percent under &#039;My attendance&#039;&lt;br /&gt;
*&#039;Send SMS&#039; - When a student is registered as absent, the system can reply with a text message. Check this box to enable the system to send a reply&lt;br /&gt;
*&#039;Default calculation view&#039; - Choose between &amp;quot;Display calculation in lessons&amp;quot; or &amp;quot;Display calculations in minutes&amp;quot;&lt;br /&gt;
*&#039;Lesson length&#039; - Number of minutes one lesson counts for&lt;br /&gt;
*&#039;Time interval for calculation&#039; - Select the time interval for the calculation of my absence&lt;br /&gt;
*&#039;Show Course&#039; - Check this box to show course view for students&#039; &#039;My absence&#039; in both web and app&lt;br /&gt;
*&#039;Show Activity&#039; - Check this box to show activity view for students&#039; &#039;My absence&#039; in both web and app&lt;br /&gt;
*&#039;Show Grades&#039; - Check this box to show grades in statistics&lt;br /&gt;
&lt;br /&gt;
====Student reason settings====&lt;br /&gt;
&lt;br /&gt;
*&#039;Allow students to register absence reason&#039; - This setting allows students to create an absence reason when they are registered as absent&lt;br /&gt;
*&#039;Use Cutoff Day&#039; - This setting changes the &#039;Register absence&#039; feature from being reliant on a specific amount of days back, to instead be fixed to a specific amount of days into a month.&lt;br /&gt;
*&#039;Cutoff day of month&#039; - At this day of the month the absence gets &amp;quot;locked&amp;quot; for the previous month.&lt;br /&gt;
*&#039;Days back&#039; - This sets how many days backwards students are allowed to add an absence reason on a course. E.g. the student can register an absence reason 7 days backwards&lt;br /&gt;
*&#039;Show Admin/teacher notes in app&#039; - Changes whether the student can see administration and teacher-written notes on absence entries. They are presented in the app with a lock icon and cursive text.&lt;br /&gt;
&lt;br /&gt;
[[File:Admin teacher app notes.jpg|border|frameless]]&lt;br /&gt;
&lt;br /&gt;
==[[Attendance_Registration/WarningReports|Warning reports]]==&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
====What to do when a teacher can&#039;t register absence X days back ?====&lt;br /&gt;
A specific day in the absence registration system has a green checkmark if the teacher is allowed to register according to &amp;quot;Days back&amp;quot; absence settings on the template in UMS Configurator.&lt;br /&gt;
&lt;br /&gt;
Only members of the AD group configured in Websetup are allowed to register more days back than teachers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====What to do when abscence can&#039;t be registrated due to double registration ?====&lt;br /&gt;
This error is due to double absence registration. Absence should be deleted in the administrativ program.&lt;br /&gt;
&lt;br /&gt;
(UpdateEasyW031) Update Error Username = benj4896 - TimeStamp = 26-09-2018 10:14:55 - ErrorCode = 6 - ErrorText = elev. 2510015153, dato 26.09.2018, lektion: 2 eksisterende fravær kan ikke overskrives&lt;br /&gt;
&lt;br /&gt;
====How can a teacher know that if a student has a pause?====&lt;br /&gt;
If a student has a pause, a small pause icon will be shown for that student.&lt;br /&gt;
Hovering with the mouse over the icon will show the pause interval.&amp;lt;br /&amp;gt;&lt;br /&gt;
The system will automatically handle how much absence a student should have, if they don&#039;t show up, but they have a pause.&lt;br /&gt;
&lt;br /&gt;
====What does the Absence Status code mean?====&lt;br /&gt;
When checking up on absence registration in the database each type of attendence will be substituted by a number as such: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Status&lt;br /&gt;
!Attendance Type&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|Attended&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Too Late&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Approved Absence&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Illegal Absence&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If there are made changes to which [[Attendance_Registration#Granting_access_to_teachers.2Femployees_and_edit_access_to_registration_forward-looking|attendance types that are shown]] and the definitions of [[Attendance_Registration#Edit_attendance_types|these attendance types]] in the web configurator, it will affect the Absence Status code ie. removing Approved absence will leave only Status code 0, 1 and 3 to be used.&lt;br /&gt;
&lt;br /&gt;
== Extra ==&lt;br /&gt;
If you want to change the color of the UI in the absence register module, you can achieve this with custom_styles.css&lt;br /&gt;
 .TimeLineAppointmentSelectedDiv {&lt;br /&gt;
   background-color: gray !important;&lt;br /&gt;
   border-color: #dcdcdc !important;&lt;br /&gt;
   background-image: none !important;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .TimeLineAppointmentDiv {&lt;br /&gt;
   background-color: #c8c8c8 !important;&lt;br /&gt;
   border-color: gray !important;&lt;br /&gt;
   background-image: none !important;&lt;br /&gt;
 } &lt;br /&gt;
 &lt;br /&gt;
 .TimeLineAppointmentSelectedDiv_Approved {&lt;br /&gt;
   background: gray !important;&lt;br /&gt;
   background-image: url(&amp;quot;../Absence_protocol/Images/symbol_check.gif&amp;quot;) !important;&lt;br /&gt;
   border-color: #dcdcdc !important;&lt;br /&gt;
   background-position: right !important;&lt;br /&gt;
   background-repeat: no-repeat, repeat-x !important;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .TimeLineAppointmentDiv_Approved {&lt;br /&gt;
   background-color: #c8c8c8 !important;&lt;br /&gt;
   background-image: url(&amp;quot;../Absence_protocol/Images/symbol_check.gif&amp;quot;) !important;&lt;br /&gt;
   border-color: gray !important;&lt;br /&gt;
   background-position: right !important;&lt;br /&gt;
   background-repeat: no-repeat, repeat-x !important;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .TimeLineAppointmentDiv_Approved .contentOnTimetable,&lt;br /&gt;
 .TimeLineAppointmentSelectedDiv_Approved .contentOnTimetable,&lt;br /&gt;
 .TimeLineAppointmentDiv .contentOnTimetable,&lt;br /&gt;
 .TimeLineAppointmentSelectedDiv .contentOnTimetable {&lt;br /&gt;
   color: black !important;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=EdCom&amp;diff=3744</id>
		<title>EdCom</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=EdCom&amp;diff=3744"/>
		<updated>2020-12-15T13:31:19Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The edCom integration allows edCom to retrieve data from the UMS web server. It contains the classes/courses with the students and teachers&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
&lt;br /&gt;
===Module requirements===&lt;br /&gt;
[[UMS]]&lt;br /&gt;
&lt;br /&gt;
===What to have ready===&lt;br /&gt;
An opened firewall directly into the UMS. Typically port 80 or 443&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
See [[Configurator/Webservice|Webservice]]&lt;br /&gt;
&lt;br /&gt;
===Template Setting===&lt;br /&gt;
Create a edCom setting than will be attached to a template. edCom can only retrieve data from the templates that have aUPN n option attached.&lt;br /&gt;
[[File:Edaptio settings.png|none|thumb|813x813px]]&lt;br /&gt;
&#039;&#039;&#039;UPN Suffix&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is appended to the username that is sent to edCom. So you have to login with edCom with UPN so that edCom knows where to send the login request.&lt;br /&gt;
&lt;br /&gt;
UMS will generate a department code when pressing Generate. department code must be used in edCom to retrieve data.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Export teachers from exams events&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This will allow the edCom service return teachers based on exams events. Otherwise these teachers will be excluded.&lt;br /&gt;
&lt;br /&gt;
==Technical settings==&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=File:Edaptio_settings.png&amp;diff=3743</id>
		<title>File:Edaptio settings.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=File:Edaptio_settings.png&amp;diff=3743"/>
		<updated>2020-12-15T13:29:49Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edcom settings&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=MSGraphPermissions&amp;diff=3650</id>
		<title>MSGraphPermissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=MSGraphPermissions&amp;diff=3650"/>
		<updated>2020-10-30T11:04:08Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Setting MSGraph Permissions a long with Azure active directory, OneNote and SharePoint permissions is necessary for UMS to obtain access to the functions needed to create OneNote Class Notebooks and upcoming Teams integration.&lt;br /&gt;
&lt;br /&gt;
==Creating App Registration==&lt;br /&gt;
Go to [http://portal.azure.com Azure Portal] and login with you admin account( the same UMS uses).&lt;br /&gt;
&lt;br /&gt;
When logged in goto Azure Active Directory:&lt;br /&gt;
[[File:MSGraph1.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Go to App registrations&lt;br /&gt;
[[File:MSGraph2.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click on New application registration&lt;br /&gt;
[[File:MSGraph3.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Give the new App a name ex. &amp;quot;UMSGraph&amp;quot;, Choose &amp;quot;Web app / API&amp;quot; in Application type, set &amp;quot;Sign-on URL&amp;quot; to &amp;quot;http://localhost&amp;quot;. After setting Application Permission values click &amp;quot;Create&amp;quot;&lt;br /&gt;
[[File:MSGraph4.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
You will return to previous screen, here click &amp;quot;your new app&amp;quot;&lt;br /&gt;
[[File:MSGraph5.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Required permissions&amp;quot;&lt;br /&gt;
[[File:MSGraph6.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Add&amp;quot;&lt;br /&gt;
[[File:MSGraph7.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Select an API&amp;quot;&lt;br /&gt;
[[File:MSGraph8.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Microsoft Graph&amp;quot;&lt;br /&gt;
[[File:MSGraph9.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Select&amp;quot;&lt;br /&gt;
[[File:MSGraph10.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click the left topmost checkbox next to &amp;quot;APPLICATION PERMISSIONS&amp;quot;, and scroll down to next section.&lt;br /&gt;
[[File:MSGraph11.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click the checkbox next to &amp;quot;DELEGATED PERMISSIONS&amp;quot;&lt;br /&gt;
[[File:MSGraph13.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Select&amp;quot;&lt;br /&gt;
[[File:MSGraph15.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Done&amp;quot;&lt;br /&gt;
[[File:MSGraph16.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Add&amp;quot; again&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Select an API&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Office 365 SharePoint Online&amp;quot;&lt;br /&gt;
[[File:MSGraph17.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Select&amp;quot;, as before - click the checkbox next to &amp;quot;APPLICATION PERMISSIONS&amp;quot; and &amp;quot;DELEGATED PERMISSIONS&amp;quot; and click Select.&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Done&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Add&amp;quot; again and &amp;quot;Select an API&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;OneNote&amp;quot;&lt;br /&gt;
[[File:MSGraph18.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Select&amp;quot;, as before - click the checkbox next to &amp;quot;APPLICATION PERMISSIONS&amp;quot; and &amp;quot;DELEGATED PERMISSIONS&amp;quot; and click Select.&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Done&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Windows Azure Active Directory&amp;quot; Permission.&lt;br /&gt;
&lt;br /&gt;
Click the checkbox next to &amp;quot;APPLICATION PERMISSIONS&amp;quot; and &amp;quot;DELEGATED PERMISSIONS&amp;quot; and click &amp;quot;Save&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Windows Azure Active Directory&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Click the checkbox next to &amp;quot;APPLICATION PERMISSIONS&amp;quot; and &amp;quot;DELEGATED PERMISSIONS&amp;quot; and click &amp;quot;Save&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:Azure Active Directory.png|thumb|899x899px|none]]&lt;br /&gt;
&lt;br /&gt;
Now click &amp;quot;Grant Permissions&amp;quot;&lt;br /&gt;
[[File:MSGraph19.png|none|thumb|900x900px]]&lt;br /&gt;
Click &amp;quot;Yes&amp;quot;&lt;br /&gt;
[[File:MSGraph20.png|none|thumb|900x900px]]&lt;br /&gt;
Permissions are now set.&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Properties&amp;quot;&lt;br /&gt;
[[File:MSGraph21.png|none|thumb|900x900px]]&lt;br /&gt;
Copy &amp;quot;Application ID&amp;quot; into Configurator ([[#SharePointOrganizationSettings|see last Picture]]) .&lt;br /&gt;
[[File:MSGraph22.png|none|thumb|900x900px]]&lt;br /&gt;
Click &amp;quot;Keys&amp;quot;&lt;br /&gt;
[[File:MSGraph23.png|none|thumb|900x900px]]&lt;br /&gt;
Set &amp;quot;DESCRIPTION&amp;quot; to ex. &amp;quot;UMS1&amp;quot; and choose &amp;quot;Never expires&amp;quot; in the &amp;quot;EXPIRES&amp;quot; Setup dropdown&lt;br /&gt;
[[File:MSGraph24.png|none|thumb|900x900px]]&lt;br /&gt;
Click &amp;quot;Save&amp;quot;&lt;br /&gt;
[[File:MSGraph25.png|none|thumb|900x900px]]&lt;br /&gt;
Copy the Key in the &amp;quot;VALUE&amp;quot; into Configurator ([[MSGraphPermissions#SharePointOrganizationSettings|see last Picture]]) !!! ATTENTION !!! the key value will never be visible again so ensure to copy it.&lt;br /&gt;
[[File:MSGraph26.png|none|thumb|900x900px]]&lt;br /&gt;
&lt;br /&gt;
==Setup UMS to use Application just Created==&lt;br /&gt;
In the UMS Configurator go to Modules-&amp;gt;Office 365 and click &amp;quot;SharePoint organization settings&amp;quot;&lt;br /&gt;
[[File:UMSConfiguratorSharepointOrganizationSettings.png|none|thumb|600x600px]]&lt;br /&gt;
Choose your SharePoint organization setting and click &amp;quot;Edit...&amp;quot;&lt;br /&gt;
[[File:UMSConfiguratorSharepointOrganizationSettingsEdit.png|none|thumb|600x600px]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;SharePointOrganizationSettings&amp;quot;&amp;gt;Input&amp;lt;/span&amp;gt; your &amp;quot;Tenant Name&amp;quot; ex. &amp;quot;cortenso&#039;&#039;&#039;.onmicrosoft.com&#039;&#039;&#039;&amp;quot;, paste the previously copied Application ID into &amp;quot;Client ID&amp;quot; field and paste previously copied KEY into &amp;quot;Client secret&amp;quot; and click &amp;quot;Ok&amp;quot;&lt;br /&gt;
[[File:UMSConfiguratorSharepointOrganizationSettingsEditWindow.png|none|thumb|600x600px]]&lt;br /&gt;
You are now all set to use the new MS Graph integration.&lt;br /&gt;
&lt;br /&gt;
==Permissions overview==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+Default permissions&lt;br /&gt;
!Permission name&lt;br /&gt;
!Permission type&lt;br /&gt;
!API&lt;br /&gt;
!Used for&lt;br /&gt;
!Used by&lt;br /&gt;
|-&lt;br /&gt;
|User.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Setting attributes on the user in Office 365&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|Group.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Setting group attributes on Office 365 groups&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|GroupMember.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Manage GroupMembers in Office 365&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|Directory.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Setting attributes on the user in Azure Active Directory&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|MailboxSettings.ReadWrite&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Used to set mailbox settings in Office 365&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|Calendars.ReadWrite&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Used to allow UMS to sync calendar events to Office 365&lt;br /&gt;
|Skemabrikker.exe&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+Teams sync permissions&lt;br /&gt;
!Permission name&lt;br /&gt;
!Permission type&lt;br /&gt;
!API&lt;br /&gt;
!Used for&lt;br /&gt;
!Used by&lt;br /&gt;
|-&lt;br /&gt;
|EduRoster.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Allows the UMS to handle students on roster&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|TeamsTab.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Used to create tabs in teams&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|TeamsAppInstallation.ReadForTeam.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Used to install app in teams&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|}&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=MSGraphPermissions&amp;diff=3649</id>
		<title>MSGraphPermissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=MSGraphPermissions&amp;diff=3649"/>
		<updated>2020-10-30T09:34:16Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Setting MSGraph Permissions a long with Azure active directory, OneNote and SharePoint permissions is necessary for UMS to obtain access to the functions needed to create OneNote Class Notebooks and upcoming Teams integration.&lt;br /&gt;
&lt;br /&gt;
==Creating App Registration==&lt;br /&gt;
Go to [http://portal.azure.com Azure Portal] and login with you admin account( the same UMS uses).&lt;br /&gt;
&lt;br /&gt;
When logged in goto Azure Active Directory:&lt;br /&gt;
[[File:MSGraph1.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Go to App registrations&lt;br /&gt;
[[File:MSGraph2.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click on New application registration&lt;br /&gt;
[[File:MSGraph3.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Give the new App a name ex. &amp;quot;UMSGraph&amp;quot;, Choose &amp;quot;Web app / API&amp;quot; in Application type, set &amp;quot;Sign-on URL&amp;quot; to &amp;quot;http://localhost&amp;quot;. After setting Application Permission values click &amp;quot;Create&amp;quot;&lt;br /&gt;
[[File:MSGraph4.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
You will return to previous screen, here click &amp;quot;your new app&amp;quot;&lt;br /&gt;
[[File:MSGraph5.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Required permissions&amp;quot;&lt;br /&gt;
[[File:MSGraph6.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Add&amp;quot;&lt;br /&gt;
[[File:MSGraph7.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Select an API&amp;quot;&lt;br /&gt;
[[File:MSGraph8.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Microsoft Graph&amp;quot;&lt;br /&gt;
[[File:MSGraph9.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Select&amp;quot;&lt;br /&gt;
[[File:MSGraph10.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click the left topmost checkbox next to &amp;quot;APPLICATION PERMISSIONS&amp;quot;, and scroll down to next section.&lt;br /&gt;
[[File:MSGraph11.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click the checkbox next to &amp;quot;DELEGATED PERMISSIONS&amp;quot;&lt;br /&gt;
[[File:MSGraph13.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Select&amp;quot;&lt;br /&gt;
[[File:MSGraph15.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Done&amp;quot;&lt;br /&gt;
[[File:MSGraph16.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Add&amp;quot; again&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Select an API&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Office 365 SharePoint Online&amp;quot;&lt;br /&gt;
[[File:MSGraph17.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Select&amp;quot;, as before - click the checkbox next to &amp;quot;APPLICATION PERMISSIONS&amp;quot; and &amp;quot;DELEGATED PERMISSIONS&amp;quot; and click Select.&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Done&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Add&amp;quot; again and &amp;quot;Select an API&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;OneNote&amp;quot;&lt;br /&gt;
[[File:MSGraph18.png|thumb|none|900x900px]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Select&amp;quot;, as before - click the checkbox next to &amp;quot;APPLICATION PERMISSIONS&amp;quot; and &amp;quot;DELEGATED PERMISSIONS&amp;quot; and click Select.&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Done&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Windows Azure Active Directory&amp;quot; Permission.&lt;br /&gt;
&lt;br /&gt;
Click the checkbox next to &amp;quot;APPLICATION PERMISSIONS&amp;quot; and &amp;quot;DELEGATED PERMISSIONS&amp;quot; and click &amp;quot;Save&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Windows Azure Active Directory&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Click the checkbox next to &amp;quot;APPLICATION PERMISSIONS&amp;quot; and &amp;quot;DELEGATED PERMISSIONS&amp;quot; and click &amp;quot;Save&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:Azure Active Directory.png|thumb|899x899px|none]]&lt;br /&gt;
&lt;br /&gt;
Now click &amp;quot;Grant Permissions&amp;quot;&lt;br /&gt;
[[File:MSGraph19.png|none|thumb|900x900px]]&lt;br /&gt;
Click &amp;quot;Yes&amp;quot;&lt;br /&gt;
[[File:MSGraph20.png|none|thumb|900x900px]]&lt;br /&gt;
Permissions are now set.&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Properties&amp;quot;&lt;br /&gt;
[[File:MSGraph21.png|none|thumb|900x900px]]&lt;br /&gt;
Copy &amp;quot;Application ID&amp;quot; into Configurator ([[#SharePointOrganizationSettings|see last Picture]]) .&lt;br /&gt;
[[File:MSGraph22.png|none|thumb|900x900px]]&lt;br /&gt;
Click &amp;quot;Keys&amp;quot;&lt;br /&gt;
[[File:MSGraph23.png|none|thumb|900x900px]]&lt;br /&gt;
Set &amp;quot;DESCRIPTION&amp;quot; to ex. &amp;quot;UMS1&amp;quot; and choose &amp;quot;Never expires&amp;quot; in the &amp;quot;EXPIRES&amp;quot; Setup dropdown&lt;br /&gt;
[[File:MSGraph24.png|none|thumb|900x900px]]&lt;br /&gt;
Click &amp;quot;Save&amp;quot;&lt;br /&gt;
[[File:MSGraph25.png|none|thumb|900x900px]]&lt;br /&gt;
Copy the Key in the &amp;quot;VALUE&amp;quot; into Configurator ([[MSGraphPermissions#SharePointOrganizationSettings|see last Picture]]) !!! ATTENTION !!! the key value will never be visible again so ensure to copy it.&lt;br /&gt;
[[File:MSGraph26.png|none|thumb|900x900px]]&lt;br /&gt;
&lt;br /&gt;
==Setup UMS to use Application just Created==&lt;br /&gt;
In the UMS Configurator go to Modules-&amp;gt;Office 365 and click &amp;quot;SharePoint organization settings&amp;quot;&lt;br /&gt;
[[File:UMSConfiguratorSharepointOrganizationSettings.png|none|thumb|600x600px]]&lt;br /&gt;
Choose your SharePoint organization setting and click &amp;quot;Edit...&amp;quot;&lt;br /&gt;
[[File:UMSConfiguratorSharepointOrganizationSettingsEdit.png|none|thumb|600x600px]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;SharePointOrganizationSettings&amp;quot;&amp;gt;Input&amp;lt;/span&amp;gt; your &amp;quot;Tenant Name&amp;quot; ex. &amp;quot;cortenso&#039;&#039;&#039;.onmicrosoft.com&#039;&#039;&#039;&amp;quot;, paste the previously copied Application ID into &amp;quot;Client ID&amp;quot; field and paste previously copied KEY into &amp;quot;Client secret&amp;quot; and click &amp;quot;Ok&amp;quot;&lt;br /&gt;
[[File:UMSConfiguratorSharepointOrganizationSettingsEditWindow.png|none|thumb|600x600px]]&lt;br /&gt;
You are now all set to use the new MS Graph integration.&lt;br /&gt;
&lt;br /&gt;
== Permissions overview ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+Default permissions&lt;br /&gt;
!Permission name&lt;br /&gt;
!Permission type&lt;br /&gt;
!API&lt;br /&gt;
!Used for&lt;br /&gt;
!Used by&lt;br /&gt;
|-&lt;br /&gt;
|User.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Setting attributes on the user in Office 365&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|Group.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Setting group attributes on Office 365 groups&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|GroupMember.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Manage GroupMembers in Office 365&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|Directory.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Setting attributes on the user in Azure Active Directory&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|MailboxSettings.ReadWrite&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Used to set mailbox settings in Office 365&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|Calendars.ReadWrite&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Used to allow UMS to sync calendar events to Office 365&lt;br /&gt;
|Skemabrikker.exe&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+Teams sync permissions&lt;br /&gt;
!Permission name&lt;br /&gt;
!Permission type&lt;br /&gt;
!API&lt;br /&gt;
!Used for&lt;br /&gt;
!Used by&lt;br /&gt;
|-&lt;br /&gt;
|EduRoster.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Allows the UMS to handle students on roster&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TeamsTab.ReadWrite.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Used to create tabs in teams&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|-&lt;br /&gt;
|TeamsAppInstallation.ReadForTeam.All&lt;br /&gt;
|Application&lt;br /&gt;
|Microsoft Graph&lt;br /&gt;
|Used to install app in teams&lt;br /&gt;
|Live_at_edu.exe&lt;br /&gt;
|}&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=Itslearning&amp;diff=3233</id>
		<title>Itslearning</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=Itslearning&amp;diff=3233"/>
		<updated>2019-11-05T12:04:32Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Our itslearning integration is developed for schools that want to avoid hour-long administrative tasks. The integration automatically creates, maintains, and deletes users based on data from your student administrative system. It also creates and maintains group rooms, which teachers and students can use for teaching purposes. The rooms automatically use the language you require and can be categorized according to your needs, making them easier to find. Rooms that are no longer in use are deleted automatically. &lt;br /&gt;
&lt;br /&gt;
===Configuration in UMS===&lt;br /&gt;
This allows users to log into itslearning with the same password they use to access the school’s IT-system. The itslearning integration gives you an easy overview and ensures that the users’ data is always managed correctly, without requiring any manual updates. This frees up time for the IT-department so they can focus on other tasks.&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
&lt;br /&gt;
===Module requirements===&lt;br /&gt;
[[UMS]]&lt;br /&gt;
&lt;br /&gt;
===What to have ready===&lt;br /&gt;
&lt;br /&gt;
*Request a test site from Its learning. It&#039;s learning will send username, password and URL for the test site.&lt;br /&gt;
*The user must be system Administrator on the test site.&lt;br /&gt;
*You must have itslearning give the rights to &amp;quot;&#039;&#039;&#039;manage Enterprise web services&#039;&#039;&#039;&amp;quot; for this administrative user&lt;br /&gt;
*As System Administrator will you have access to the following displayed on the image below&lt;br /&gt;
&lt;br /&gt;
[[File:It&#039;s learing 1.png|none|thumb|755x755px]]&lt;br /&gt;
&lt;br /&gt;
Make sure that &amp;quot;Manage API&amp;quot; is enabled, as shown in the image below&lt;br /&gt;
[[File:It&#039;s learing 2.png|none|thumb|753x753px]]&lt;br /&gt;
&lt;br /&gt;
Click on &amp;quot;Manage Enterprise web services&amp;quot; as shown in the image below&lt;br /&gt;
[[File:It&#039;s learing 3.png|none|thumb|752x752px]]&lt;br /&gt;
&lt;br /&gt;
Fill out in the following points, as shown in the image below. &lt;br /&gt;
&lt;br /&gt;
*Title&lt;br /&gt;
*Username (If set to auto-generate, new username will be generated. If set to import, will username be imported from ums)&lt;br /&gt;
*Password (If set to auto-generate, new password will be generated. If set to import, will password be imported from ums)&lt;br /&gt;
*User profile data (choose which permerts should sync to it&#039;s learning)&lt;br /&gt;
*System to use must be set to IMS-Enterprise&lt;br /&gt;
*URL to service (copy url for it to be used later)&lt;br /&gt;
*Username (copy url for it to be used later)&lt;br /&gt;
*Password (copy url for it to be used later)&lt;br /&gt;
&lt;br /&gt;
[[File:Capture.png|none|thumb|857x857px]]&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
Open UMS Configurator and go to Template &amp;gt; itslearning. Click the first manage button.&lt;br /&gt;
[[File:Itslearning Template.jpg|none|thumb|791x791px]]&lt;br /&gt;
&lt;br /&gt;
You will now see an overview of your itslearning settings.&lt;br /&gt;
[[File:Itslearning Settings.jpg|none|thumb|556x556px]]&lt;br /&gt;
&lt;br /&gt;
==itslearning settings==&lt;br /&gt;
[[File:Itslearning settings.png|none|thumb|751x751px]]&lt;br /&gt;
&lt;br /&gt;
====Description====&lt;br /&gt;
Give the Site settings a name.&lt;br /&gt;
&lt;br /&gt;
====Organization settings====&lt;br /&gt;
Choose the Organization setting you want to use for this site setting.&lt;br /&gt;
&lt;br /&gt;
====Users====&lt;br /&gt;
&lt;br /&gt;
=====Username=====&lt;br /&gt;
Choose a column from the students table. Its default is &amp;lt;Not used&amp;gt;. This means that the username will be the same as in Active Directory.&lt;br /&gt;
&lt;br /&gt;
This column will be used as the login.&lt;br /&gt;
&lt;br /&gt;
=====Delete users=====&lt;br /&gt;
Delete the users when they are no longer active&lt;br /&gt;
&lt;br /&gt;
=====Keep inactive before deleting=====&lt;br /&gt;
Wait this number of days before deleting inactive users&lt;br /&gt;
&lt;br /&gt;
====Template security groups====&lt;br /&gt;
Check the box to create, update, and delete template security groups that has an itslearning setting attached.&lt;br /&gt;
&lt;br /&gt;
====Upload student information====&lt;br /&gt;
Check these boxes to send and update information on students:&lt;br /&gt;
&lt;br /&gt;
*Address&lt;br /&gt;
*Phone&lt;br /&gt;
*Mobile Phone&lt;br /&gt;
*Private mail&lt;br /&gt;
&lt;br /&gt;
====Timetable====&lt;br /&gt;
Check maintain to make the timetable on users&lt;br /&gt;
&lt;br /&gt;
Check Delete old to cleanup appointments from users calendar&lt;br /&gt;
&lt;br /&gt;
====Timetable courses====&lt;br /&gt;
Check maintain to make the timetable on Activities or courses&lt;br /&gt;
&lt;br /&gt;
Check Delete old to cleanup appointments from activity or course calendar&lt;br /&gt;
&lt;br /&gt;
====Upload employee information====&lt;br /&gt;
Check these boxes to send and update information on employees:&lt;br /&gt;
&lt;br /&gt;
*Address&lt;br /&gt;
*Phone&lt;br /&gt;
*Mobile Phone&lt;br /&gt;
*Private mail&lt;br /&gt;
&lt;br /&gt;
===Site===&lt;br /&gt;
See [[LMS Settings]] for options that are not described below.&lt;br /&gt;
[[File:Itslearning Settings Edit Site Settings.jpg|none|thumb|895x895px]]&lt;br /&gt;
====Language====&lt;br /&gt;
The language used for a site when it is created&lt;br /&gt;
&lt;br /&gt;
====Course category====&lt;br /&gt;
The category is put on the site when it is created&lt;br /&gt;
&lt;br /&gt;
====Activity sites====&lt;br /&gt;
See [[Site selection settings]]&lt;br /&gt;
&lt;br /&gt;
====Course sites====&lt;br /&gt;
See [[Site selection settings]]&lt;br /&gt;
&lt;br /&gt;
==Organization settings==&lt;br /&gt;
[[File:Itslearning Organization Settings.jpg|link=http://wiki.inlogic.dk/index.php/File:Itslearning%20Organization%20Settings.jpg|none|thumb|556x556px]]&lt;br /&gt;
[[File:Itslearning Organization Settings Edit.jpg|link=http://wiki.inlogic.dk/index.php/File:Itslearning%20Organization%20Settings%20Edit.jpg|none|thumb|449x449px]]&lt;br /&gt;
====Description====&lt;br /&gt;
Give your Organization setting a name.&lt;br /&gt;
&lt;br /&gt;
====Service URL====&lt;br /&gt;
Type your &amp;quot;URL to service&amp;quot; for API connection (contact itslearning to acquire your username or login as an admin on yourschool.itslearning.com, Manage IMS Enterprise web services).&lt;br /&gt;
&lt;br /&gt;
====Username====&lt;br /&gt;
Type your username for API connection (contact itslearning to acquire your username or login as an admin on yourschool.itslearning.com, Manage IMS Enterprise web services).&lt;br /&gt;
&lt;br /&gt;
====Password====&lt;br /&gt;
Type your password for API connection (contact itslearning to acquire your username or login as an admin on yourschool.itslearning.com, Manage IMS Enterprise web services).&lt;br /&gt;
&lt;br /&gt;
====Source organization====&lt;br /&gt;
Type the source organization for API connection (contact itslearning to acquire the source organization).&lt;br /&gt;
&lt;br /&gt;
====SQL Criteria====&lt;br /&gt;
This is an overall SQL sentence that is used when creating groups. It is used in conjunction with the sub account settings. This has no impact on courses being created. If left blank there are no criteria.&lt;br /&gt;
&lt;br /&gt;
====Organization API Client ID====&lt;br /&gt;
Only relevant if you have a contract with itslearning that allows synchronization of timetableblocks&lt;br /&gt;
&lt;br /&gt;
====Organization API Client secret====&lt;br /&gt;
Only relevant if you have a contract with itslearning that allows synchronization of timetableblocks&lt;br /&gt;
&lt;br /&gt;
====Use test installation====&lt;br /&gt;
Enable this to use a test installation instead of production.&lt;br /&gt;
&lt;br /&gt;
====Installation ID====&lt;br /&gt;
This is an ID you set in UMS to specify the multiple organization settings belong to the same itslearning installation.&lt;br /&gt;
&lt;br /&gt;
itslearning installations that has the same URL should normally have the same ID in UMS.&lt;br /&gt;
===Sub accounts===&lt;br /&gt;
This section explains how to create a hierarchy in itslearning. [[File:Itslearning Sub accounts.jpg|none|thumb|620x620px]]&lt;br /&gt;
&lt;br /&gt;
====Description====&lt;br /&gt;
This is an overall SQL sentence that is used when creating groups. It is used in conjunction with the sub account settings. This has no impact on courses being created.&lt;br /&gt;
&lt;br /&gt;
====Database field====&lt;br /&gt;
Select a column from the students table use the contents of that column to build the hierarchy.&lt;br /&gt;
&lt;br /&gt;
====SQL Criteria====&lt;br /&gt;
Select only rows that match the SQL sentence. If left blank there are no criteria.&lt;br /&gt;
&lt;br /&gt;
====Example of how UMS will build a hierarchy====&lt;br /&gt;
&lt;br /&gt;
All groups will be sorted in the hierarchy. Groups that are not sorted in the hierarchy will be put in &#039;UMS Groups&#039;.&lt;br /&gt;
&lt;br /&gt;
All template security groups will be created in &#039;UMS Template Groups&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Itslearning hierarchy.jpg|none|thumb|1263x1263px]]&lt;br /&gt;
&lt;br /&gt;
===Sub accounts Courses===&lt;br /&gt;
This section explains how to create a hierarchy in itslearning. [[File:Itslearning Sub accounts.jpg|none|thumb|620x620px]]&lt;br /&gt;
&lt;br /&gt;
====Description====&lt;br /&gt;
This is an overall SQL sentence that is used when creating groups. It is used in conjunction with the sub account settings. This has no impact on courses being created.&lt;br /&gt;
&lt;br /&gt;
====Database field====&lt;br /&gt;
Select a column from the students table use the contents of that column to build the hierarchy.&lt;br /&gt;
&lt;br /&gt;
====Database field (Displayname)====&lt;br /&gt;
Select a column from the students table use the contents of that column as title in the hierarchy. This is dependent on the &amp;quot;&#039;&#039;&#039;Database field&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====SQL Criteria====&lt;br /&gt;
Select only rows that match the SQL sentence. If left blank there are no criteria.&lt;br /&gt;
&lt;br /&gt;
====Example of how UMS will build a hierarchy====&lt;br /&gt;
&lt;br /&gt;
All groups will be sorted in the hierarchy. Groups that are not sorted in the hierarchy will be put in &#039;UMS Courses&#039;.&lt;br /&gt;
&lt;br /&gt;
All courses that becomes inactive will be put in &#039;UMS Courses archive&#039;.&lt;br /&gt;
[[File:Itslearning hierarchy Courses.jpg|none|thumb|1263x1263px]]&lt;br /&gt;
&lt;br /&gt;
==Site Settings==&lt;br /&gt;
You need to attach a cohort setting to a template. This will tell UMS that cohorts will be created from this template.&lt;br /&gt;
[[File:Itslearning Site Template Settings.jpg|none|thumb|556x556px]]&lt;br /&gt;
[[File:Itslearning Site Template Settings Edit.jpg|none|thumb|422x422px]]&lt;br /&gt;
&lt;br /&gt;
====Description====&lt;br /&gt;
Enter a description for this setting.&lt;br /&gt;
&lt;br /&gt;
====Template====&lt;br /&gt;
Enter a template SyncKey that is used when creating courses.&lt;br /&gt;
&lt;br /&gt;
if you are using a course that was created by UMS then remember to prefix the template name with UMSCourse_.&lt;br /&gt;
&lt;br /&gt;
Validation rule: The course template SyncKey must exist, and must refer to a course template, not a regular course.&lt;br /&gt;
&lt;br /&gt;
[https://developer.itslearning.com/Working_with_course_templates_in_IMS_ES.html Working_with_course_templates_in_IMS_ES]&lt;br /&gt;
&lt;br /&gt;
For this purpose we need a UMSServiceUser. The synckey for user object has to be the same as the username, UMSServiceUser. &lt;br /&gt;
&lt;br /&gt;
====SQL Groups====&lt;br /&gt;
See [[LMS Settings]] for this option.&lt;br /&gt;
&lt;br /&gt;
==Group Settings==&lt;br /&gt;
You need to attach a cohort setting to a template. This will tell UMS that cohorts will be created from this template.&lt;br /&gt;
[[File:Itslearning Group Template Settings.jpg|none|thumb|556x556px]]&lt;br /&gt;
[[File:Itslearning Group Template Settings Edit.jpg|none|thumb|422x422px]]&lt;br /&gt;
====Description====&lt;br /&gt;
Enter a description for this setting.&lt;br /&gt;
&lt;br /&gt;
====Template====&lt;br /&gt;
Enter a template SyncKey that is used when creating groups.&lt;br /&gt;
&lt;br /&gt;
if you are using a group that was created by UMS then remember to prefix the template name with UMSGroups_.&lt;br /&gt;
&lt;br /&gt;
Validation rule: The group template SyncKey must exist, and must refer to a course template, not a regular group.&lt;br /&gt;
&lt;br /&gt;
[https://developer.itslearning.com/Working_with_course_templates_in_IMS_ES.html Working_with_course_templates_in_IMS_ES]&lt;br /&gt;
&lt;br /&gt;
For this purpose we need a UMSServiceUser. The synckey for user object has to be the same as the username, UMSServiceUser. &lt;br /&gt;
&lt;br /&gt;
====SQL Groups====&lt;br /&gt;
See [[LMS Settings]] for this option.&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
===Is password synchronization between UMS and Itslearning supported?===&lt;br /&gt;
Short answer: No&lt;br /&gt;
&lt;br /&gt;
Itslearning supports SSO and LDAP&lt;br /&gt;
&lt;br /&gt;
===How do I clean up UMS db?===&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Delete from itslearning_Learners&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Delete from itslearning_Teachers&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Delete from itslearning_Sites&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Delete from itslearning_SubAccount_Courses&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Delete from itslearning_Groups&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Delete from itslearning_SubAccount&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Delete from itslearningTemplateGroups&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Update itslearningOrganizationSettings Set UMSCoursesCreated = 0, UMSTemplateGroupsCreated= 0, UMSGroupsCreated = 0, UMSCoursesArchiveCreated = 0&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Then run this commands:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;itslearning.exe ChangeAllPersonIdentifiersToUserName&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;itslearning.exe usersonly (run this twice, on 2nd run UMS will detect users with missing sync keys)&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=File:Itslearning_Organization_Settings_Edit.jpg&amp;diff=3224</id>
		<title>File:Itslearning Organization Settings Edit.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=File:Itslearning_Organization_Settings_Edit.jpg&amp;diff=3224"/>
		<updated>2019-10-28T14:04:04Z</updated>

		<summary type="html">&lt;p&gt;Khm: Khm uploaded a new version of File:Itslearning Organization Settings Edit.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Itslearning Organization Settings Edit&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=File:Itslearning_Organization_Settings_Edit.jpg&amp;diff=3223</id>
		<title>File:Itslearning Organization Settings Edit.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=File:Itslearning_Organization_Settings_Edit.jpg&amp;diff=3223"/>
		<updated>2019-10-28T14:00:28Z</updated>

		<summary type="html">&lt;p&gt;Khm: Khm uploaded a new version of File:Itslearning Organization Settings Edit.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Itslearning Organization Settings Edit&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=Microsoft_SDS&amp;diff=3222</id>
		<title>Microsoft SDS</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=Microsoft_SDS&amp;diff=3222"/>
		<updated>2019-10-22T13:26:18Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Go to this page and login with the credentials of the tenant you want to setup SDS for.&lt;br /&gt;
&lt;br /&gt;
[https://sds.microsoft.com/ Microsoft SDS]&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
&lt;br /&gt;
===Module requirements===&lt;br /&gt;
&lt;br /&gt;
*[[UMS]]&lt;br /&gt;
*[[Teams|Teams configurations]] &lt;br /&gt;
**Modules, a Office 365 Tenant setting&lt;br /&gt;
**Modules, a Office 365 Teams setting&lt;br /&gt;
**Templates must have an Organization type&lt;br /&gt;
**Templates must have a Office 365 Teams template&lt;br /&gt;
*Updated data in SQL tables (update data with LiveAtEdu_Sync)&lt;br /&gt;
*OS version that supports TLS 1.2 - [https://docs.microsoft.com/en-us/dotnet/framework/network-programming/tls#support-for-tls-12 See more here]&lt;br /&gt;
&lt;br /&gt;
===What to have ready===&lt;br /&gt;
&lt;br /&gt;
*A valid licens file that includes Office 365 Teams&lt;br /&gt;
*A star-certficate or a certificate that includes the hostheader of the SDS webservice&lt;br /&gt;
*A firewall opening to port 443 since the SDS webservice uses HTTPS&lt;br /&gt;
&lt;br /&gt;
==Installation of SDS webservice==&lt;br /&gt;
Install a new webservice on your UMS frontend webserver that enables synchronization between the roster (DK: “skoleplan” eller “datagrundlag”) in your UMS and Microsoft School Data Sync.&lt;br /&gt;
&lt;br /&gt;
====Create a new IIS site and application pool====&lt;br /&gt;
Hostheader example ims.demo.inlogic.dk  &lt;br /&gt;
&lt;br /&gt;
[[File:SDS webservice on UMS frontend server.png|1019x1019px]]&lt;br /&gt;
&lt;br /&gt;
====Download and install the webservice “IMS sync”====&lt;br /&gt;
Go to inLogic download page https://www.inlogic.dk/support/download/  &lt;br /&gt;
&lt;br /&gt;
====Copy Usermanagement.ini to bin folder====&lt;br /&gt;
This file contains connectionstring to SQL Server  &lt;br /&gt;
&lt;br /&gt;
====Register the hostheader in external DNS====&lt;br /&gt;
Register an a-record that maps hostheader with external IP address of the UMS webserver&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configuration of SDS profile==&lt;br /&gt;
Login to https://sds.microsoft.com as a global administrator[[File:Microsoft SDS Dashboard New.jpg|none|thumb|640x640px]]&lt;br /&gt;
Click &#039;&#039;&#039;Add Profile&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Choose connection type===&lt;br /&gt;
[[File:Microsoft SDS Add Profile.jpg|none|thumb|897x897px]]&lt;br /&gt;
Choose settings as shown above.&lt;br /&gt;
&lt;br /&gt;
===Step 1: Sync options===&lt;br /&gt;
[[File:Microsoft SDS Step 1 Sync options.jpg|none|thumb|1326x1326px]]&lt;br /&gt;
&lt;br /&gt;
====Import Data====&lt;br /&gt;
&lt;br /&gt;
*Web access URL, example: https://ims.demo.inlogic.dk/ims/oneroster/v1p1&lt;br /&gt;
*Client ID is always &amp;quot;WebserviceUser&amp;quot;&lt;br /&gt;
*Client secret can be found in SQL using  &#039;&#039;select * from WebServicesSettings&#039;&#039;&lt;br /&gt;
*Token endpoint URL, example: https://ims.demo.inlogic.dk/token&lt;br /&gt;
&lt;br /&gt;
You have to click &#039;&#039;&#039;Test Connection&#039;&#039;&#039; and it needs to be successful otherwise the next button won&#039;t be available&lt;br /&gt;
&lt;br /&gt;
====When does your school year end====&lt;br /&gt;
This has no meaning in a UMS synchronization. Just set it to the max year.&lt;br /&gt;
&lt;br /&gt;
====Replace unsupported special characters====&lt;br /&gt;
Enable this.&lt;br /&gt;
&lt;br /&gt;
====When should we stop syncing this profile====&lt;br /&gt;
It is not possible to set a date that never expires. This means that this has to be updated every year to the highest possible date.&lt;br /&gt;
&lt;br /&gt;
===Step 2: Teacher options===&lt;br /&gt;
[[File:Microsoft SDS Step 2 Teacher options.jpg|none|thumb|900x900px]]&lt;br /&gt;
&lt;br /&gt;
====Teacher mapping====&lt;br /&gt;
You need to set primary key to email.&lt;br /&gt;
&lt;br /&gt;
====Teacher properties====&lt;br /&gt;
Expand and check it matches picture.&lt;br /&gt;
&lt;br /&gt;
====Domain====&lt;br /&gt;
when selecting primary key mail and userPrincipalName. The domain must be set to &amp;quot;No suffix needed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Step 3: Student options===&lt;br /&gt;
[[File:Microsoft SDS Step 3 Student options.jpg|none|thumb|796x796px]]&lt;br /&gt;
&lt;br /&gt;
====Student mapping====&lt;br /&gt;
You need to set primary key to email.&lt;br /&gt;
&lt;br /&gt;
====Student properties====&lt;br /&gt;
Expand and check it matches picture.&lt;br /&gt;
&lt;br /&gt;
===Step 4: Review===&lt;br /&gt;
[[File:Microsoft SDS Step 4 Review.jpg|none|thumb|983x983px]]This end result should look similar to this.&lt;br /&gt;
&lt;br /&gt;
The profile is now created will start sync after some minutes.&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
More info here https://docs.microsoft.com/en-us/schooldatasync/how-to-deploy-school-data-sync-by-using-powerschool-sync&lt;br /&gt;
&lt;br /&gt;
===What is IMS ?===&lt;br /&gt;
IMS is a standard for data exchange, see &amp;lt;nowiki&amp;gt;https://www.imsglobal.org&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Add a license to user that your trying to access SDS with===&lt;br /&gt;
[[File:Microsoft_SDS_License_missing_Part_2.jpg|link=http://wiki.inlogic.dk/index.php/File:Microsoft_SDS_License_missing_Part_2.jpg|none|thumb|702x702px]]You need to relog after this license change.&lt;br /&gt;
===Known problems and how you handle them===&lt;br /&gt;
====Sorry, we can&#039;t sign you in====&lt;br /&gt;
You have to be a global administrator[[File:Microsoft_SDS_License_missing.jpg|link=http://wiki.inlogic.dk/index.php/File:Microsoft_SDS_License_missing.jpg|none|thumb|640x640px]]&lt;br /&gt;
&lt;br /&gt;
====That did not work====&lt;br /&gt;
Endpoint not reachable due to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;incorrect endpoints, username or password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;dns problems or firewall&lt;br /&gt;
&amp;lt;br&amp;gt;test dns in command prompt: nslookup ims.yourschool.dk 8.8.8.8&lt;br /&gt;
&amp;lt;br&amp;gt;test firewall: https://www.yougetsignal.com/tools/open-ports &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;UMS backend is not configured properly&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;OS version that supports TLS 1.2 - [https://docs.microsoft.com/en-us/dotnet/framework/network-programming/tls#support-for-tls-12 See more here]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Endpoint_not_reachable.png|1053x1053px]]&lt;br /&gt;
&lt;br /&gt;
====Errors in synchronization====&lt;br /&gt;
[[File:Sync complete with errors.png|none|thumb|1044x1044px|The format of this user principal name is unexpected]]&lt;br /&gt;
In this case I have mapped wrong primary keys according to step 3 in the wiki.&lt;br /&gt;
&lt;br /&gt;
Sorry to say, but you need to delete the SDS profile. Set it up again and wait&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====InternalError,There was an application error trying to process this entry. Please contact Customer Support if error(s) persist====&lt;br /&gt;
Inspect the CSV file created on synchronization errors. &lt;br /&gt;
&lt;br /&gt;
Any application error must be handled by [[Microsoft Support|&#039;&#039;&#039;Microsoft Support&#039;&#039;&#039;]] and remember to attach the CSV file along with a document describing the problems you experience.&lt;br /&gt;
[[File:Sync error - CSV.png|none|thumb|1440x1440px]]&lt;br /&gt;
&lt;br /&gt;
====The teacher could not be added to the class====&lt;br /&gt;
[[File:Sync error - CSV - teacher could not be added to the class.png|none|thumb|1660x1660px]]&lt;br /&gt;
In order to find who the teacher is, search for sourcedid in this view: &lt;br /&gt;
select * from V_Office365TeamsTeachers where sourcedid = &#039;T65&#039;&lt;br /&gt;
&lt;br /&gt;
Go to https://portal.office.com/adminportal/home#/homepage and search for the user and see what UPN is used. &lt;br /&gt;
&lt;br /&gt;
If the teacher exists with multiple UPN&#039;s in the table Office365Teams_Teachers, remove the user not mapped with an external ID and update UPN on the mapped userobject.&lt;br /&gt;
&lt;br /&gt;
Hereafter the user will be correctly maintained by LiveAtEdu_Sync and SDS synchronization will not fail.&lt;br /&gt;
&lt;br /&gt;
====Missing students====&lt;br /&gt;
You can inspect the data UMS has provided for SDS using the views in UMS database. &lt;br /&gt;
Example: show the students that are enrolled in a class with title VUCTM_m202dsabaug.19&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!select * from V_Office365TeamsEnrollments where class_id in (&lt;br /&gt;
select sourcedId from V_Office365TeamsClasses where title = &#039;VUCTM_m202dsabaug.19&#039;)&lt;br /&gt;
|}&lt;br /&gt;
Compare the number of students in UMS database and what you see in SDS. In this example there should have been 31 students but only 4 are visible. &lt;br /&gt;
[[File:Missing students in SDS.png|none|thumb|300x300px]]&lt;br /&gt;
In order to fix the problem: remove references between student(s) and class(es) in UMS database and run a full LiveAtEdu_Sync. After a while SDS will update all learners on teams.&lt;br /&gt;
&lt;br /&gt;
Delete all references&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!delete from Office365TeamsXRef_Learners_Teams&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Delete references for a student&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!delete from Office365TeamsXRef_Learners_Teams where Office365Teams_Learners_ID in (&lt;br /&gt;
select id from Office365Teams_Learners where username = &#039;maze0074&#039;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Delete references for a class&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!delete from Office365TeamsXRef_Learners_Teams where Office365Teams_ID in (&lt;br /&gt;
select sourcedId from V_Office365TeamsClasses where title = &#039;VUCTM_t203dsaGAug.19&#039;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====It takes longer than normal to configure Teams====&lt;br /&gt;
During problems with the Teams service at Microsoft you might experience a long time for configuration of sections. There is nothing you or we can do about it, just be patient and wait.&lt;br /&gt;
[[File:It takes longer than normal to configure Teams.png|alt=It takes longer than normal to configure Teams|none|thumb|1088x1088px|DK text: &amp;quot;Det tager længere tid end normal at konfiguere tildelinger i Teams. Vi arbejder aktivt på det. Prøv igen senere&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
====Prevent Teams from sending spam to users====&lt;br /&gt;
If sender address contains “email.teams.microsoft.com” then redirect them to someone else.&lt;br /&gt;
[[File:Teams spam can be stopped with an Exchange flow.png|left|thumb|1409x1409px|Teams spam can be stopped with an Exchange flow]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
	<entry>
		<id>https://wiki.inlogic.dk/index.php?title=Microsoft_SDS&amp;diff=3221</id>
		<title>Microsoft SDS</title>
		<link rel="alternate" type="text/html" href="https://wiki.inlogic.dk/index.php?title=Microsoft_SDS&amp;diff=3221"/>
		<updated>2019-10-22T13:23:09Z</updated>

		<summary type="html">&lt;p&gt;Khm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Go to this page and login with the credentials of the tenant you want to setup SDS for.&lt;br /&gt;
&lt;br /&gt;
[https://sds.microsoft.com/ Microsoft SDS]&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
&lt;br /&gt;
===Module requirements===&lt;br /&gt;
&lt;br /&gt;
*[[UMS]]&lt;br /&gt;
*[[Teams|Teams configurations]] &lt;br /&gt;
**Modules, a Office 365 Tenant setting&lt;br /&gt;
**Modules, a Office 365 Teams setting&lt;br /&gt;
**Templates must have an Organization type&lt;br /&gt;
**Templates must have a Office 365 Teams template&lt;br /&gt;
*Updated data in SQL tables (update data with LiveAtEdu_Sync)&lt;br /&gt;
*OS version that supports TLS 1.2 - [https://docs.microsoft.com/en-us/dotnet/framework/network-programming/tls#support-for-tls-12 See more here]&lt;br /&gt;
&lt;br /&gt;
===What to have ready===&lt;br /&gt;
&lt;br /&gt;
*A valid licens file that includes Office 365 Teams&lt;br /&gt;
*A star-certficate or a certificate that includes the hostheader of the SDS webservice&lt;br /&gt;
*A firewall opening to port 443 since the SDS webservice uses HTTPS&lt;br /&gt;
&lt;br /&gt;
==Installation of SDS webservice==&lt;br /&gt;
Install a new webservice on your UMS frontend webserver that enables synchronization between the roster (DK: “skoleplan” eller “datagrundlag”) in your UMS and Microsoft School Data Sync.&lt;br /&gt;
&lt;br /&gt;
====Create a new IIS site and application pool====&lt;br /&gt;
Hostheader example ims.demo.inlogic.dk  &lt;br /&gt;
&lt;br /&gt;
[[File:SDS webservice on UMS frontend server.png|1019x1019px]]&lt;br /&gt;
&lt;br /&gt;
====Download and install the webservice “IMS sync”====&lt;br /&gt;
Go to inLogic download page https://www.inlogic.dk/support/download/  &lt;br /&gt;
&lt;br /&gt;
====Copy Usermanagement.ini to bin folder====&lt;br /&gt;
This file contains connectionstring to SQL Server  &lt;br /&gt;
&lt;br /&gt;
====Register the hostheader in external DNS====&lt;br /&gt;
Register an a-record that maps hostheader with external IP address of the UMS webserver&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configuration of SDS profile==&lt;br /&gt;
Login to https://sds.microsoft.com as a global administrator[[File:Microsoft SDS Dashboard New.jpg|none|thumb|640x640px]]&lt;br /&gt;
Click &#039;&#039;&#039;Add Profile&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Choose connection type===&lt;br /&gt;
[[File:Microsoft SDS Add Profile.jpg|none|thumb|897x897px]]&lt;br /&gt;
Choose settings as shown above.&lt;br /&gt;
&lt;br /&gt;
===Step 1: Sync options===&lt;br /&gt;
[[File:Microsoft SDS Step 1 Sync options.jpg|none|thumb|1326x1326px]]&lt;br /&gt;
&lt;br /&gt;
====Import Data====&lt;br /&gt;
&lt;br /&gt;
*Web access URL, example: https://ims.demo.inlogic.dk/ims/oneroster/v1p1&lt;br /&gt;
*Client ID is always &amp;quot;WebserviceUser&amp;quot;&lt;br /&gt;
*Client secret can be found in SQL using  &#039;&#039;select * from WebServicesSettings&#039;&#039;&lt;br /&gt;
*Token endpoint URL, example: https://ims.demo.inlogic.dk/token&lt;br /&gt;
&lt;br /&gt;
You have to click &#039;&#039;&#039;Test Connection&#039;&#039;&#039; and it needs to be successful otherwise the next button won&#039;t be available&lt;br /&gt;
&lt;br /&gt;
====When does your school year end====&lt;br /&gt;
This has no meaning in a UMS synchronization. Just set it to the max year.&lt;br /&gt;
&lt;br /&gt;
====Replace unsupported special characters====&lt;br /&gt;
Enable this.&lt;br /&gt;
&lt;br /&gt;
====When should we stop syncing this profile====&lt;br /&gt;
It is not possible to set a date that never expires. This means that this has to be updated every year to the highest possible date.&lt;br /&gt;
&lt;br /&gt;
===Step 2: Teacher options===&lt;br /&gt;
[[File:Microsoft SDS Step 2 Teacher options.jpg|none|thumb|900x900px]]&lt;br /&gt;
&lt;br /&gt;
====Teacher mapping====&lt;br /&gt;
You need to set primary key to email.&lt;br /&gt;
&lt;br /&gt;
====Teacher properties====&lt;br /&gt;
Expand and check it matches picture.&lt;br /&gt;
&lt;br /&gt;
====Domain====&lt;br /&gt;
when selecting primary key mail and userPrincipalName. The domain must be set to &amp;quot;No suffix needed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Step 3: Student options===&lt;br /&gt;
[[File:Microsoft SDS Step 3 Student options.jpg|none|thumb|796x796px]]&lt;br /&gt;
&lt;br /&gt;
====Student mapping====&lt;br /&gt;
You need to set primary key to email.&lt;br /&gt;
&lt;br /&gt;
====Student properties====&lt;br /&gt;
Expand and check it matches picture.&lt;br /&gt;
&lt;br /&gt;
===Step 4: Review===&lt;br /&gt;
[[File:Microsoft SDS Step 4 Review.jpg|none|thumb|983x983px]]This end result should look similar to this.&lt;br /&gt;
&lt;br /&gt;
The profile is now created will start sync after some minutes.&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
More info here https://docs.microsoft.com/en-us/schooldatasync/how-to-deploy-school-data-sync-by-using-powerschool-sync&lt;br /&gt;
&lt;br /&gt;
===What is IMS ?===&lt;br /&gt;
IMS is a standard for data exchange, see &amp;lt;nowiki&amp;gt;https://www.imsglobal.org&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Add a license to user that your trying to access SDS with===&lt;br /&gt;
[[File:Microsoft_SDS_License_missing_Part_2.jpg|link=http://wiki.inlogic.dk/index.php/File:Microsoft_SDS_License_missing_Part_2.jpg|none|thumb|702x702px]]You need to relog after this license change.&lt;br /&gt;
===Known problems and how you handle them===&lt;br /&gt;
====Sorry, we can&#039;t sign you in====&lt;br /&gt;
You have to be a global administrator[[File:Microsoft_SDS_License_missing.jpg|link=http://wiki.inlogic.dk/index.php/File:Microsoft_SDS_License_missing.jpg|none|thumb|640x640px]]&lt;br /&gt;
&lt;br /&gt;
====That did not work====&lt;br /&gt;
Endpoint not reachable due to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;incorrect endpoints, username or password&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;dns problems or firewall&lt;br /&gt;
&amp;lt;br&amp;gt;test dns in command prompt: nslookup ims.yourschool.dk 8.8.8.8&lt;br /&gt;
&amp;lt;br&amp;gt;test firewall: https://www.yougetsignal.com/tools/open-ports &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;UMS backend is not configured properly&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Endpoint_not_reachable.png|1053x1053px]]&lt;br /&gt;
&lt;br /&gt;
====Errors in synchronization====&lt;br /&gt;
[[File:Sync complete with errors.png|none|thumb|1044x1044px|The format of this user principal name is unexpected]]&lt;br /&gt;
In this case I have mapped wrong primary keys according to step 3 in the wiki.&lt;br /&gt;
&lt;br /&gt;
Sorry to say, but you need to delete the SDS profile. Set it up again and wait&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====InternalError,There was an application error trying to process this entry. Please contact Customer Support if error(s) persist====&lt;br /&gt;
Inspect the CSV file created on synchronization errors. &lt;br /&gt;
&lt;br /&gt;
Any application error must be handled by [[Microsoft Support|&#039;&#039;&#039;Microsoft Support&#039;&#039;&#039;]] and remember to attach the CSV file along with a document describing the problems you experience.&lt;br /&gt;
[[File:Sync error - CSV.png|none|thumb|1440x1440px]]&lt;br /&gt;
&lt;br /&gt;
====The teacher could not be added to the class====&lt;br /&gt;
[[File:Sync error - CSV - teacher could not be added to the class.png|none|thumb|1660x1660px]]&lt;br /&gt;
In order to find who the teacher is, search for sourcedid in this view: &lt;br /&gt;
select * from V_Office365TeamsTeachers where sourcedid = &#039;T65&#039;&lt;br /&gt;
&lt;br /&gt;
Go to https://portal.office.com/adminportal/home#/homepage and search for the user and see what UPN is used. &lt;br /&gt;
&lt;br /&gt;
If the teacher exists with multiple UPN&#039;s in the table Office365Teams_Teachers, remove the user not mapped with an external ID and update UPN on the mapped userobject.&lt;br /&gt;
&lt;br /&gt;
Hereafter the user will be correctly maintained by LiveAtEdu_Sync and SDS synchronization will not fail.&lt;br /&gt;
&lt;br /&gt;
====Missing students====&lt;br /&gt;
You can inspect the data UMS has provided for SDS using the views in UMS database. &lt;br /&gt;
Example: show the students that are enrolled in a class with title VUCTM_m202dsabaug.19&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!select * from V_Office365TeamsEnrollments where class_id in (&lt;br /&gt;
select sourcedId from V_Office365TeamsClasses where title = &#039;VUCTM_m202dsabaug.19&#039;)&lt;br /&gt;
|}&lt;br /&gt;
Compare the number of students in UMS database and what you see in SDS. In this example there should have been 31 students but only 4 are visible. &lt;br /&gt;
[[File:Missing students in SDS.png|none|thumb|300x300px]]&lt;br /&gt;
In order to fix the problem: remove references between student(s) and class(es) in UMS database and run a full LiveAtEdu_Sync. After a while SDS will update all learners on teams.&lt;br /&gt;
&lt;br /&gt;
Delete all references&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!delete from Office365TeamsXRef_Learners_Teams&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Delete references for a student&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!delete from Office365TeamsXRef_Learners_Teams where Office365Teams_Learners_ID in (&lt;br /&gt;
select id from Office365Teams_Learners where username = &#039;maze0074&#039;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Delete references for a class&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!delete from Office365TeamsXRef_Learners_Teams where Office365Teams_ID in (&lt;br /&gt;
select sourcedId from V_Office365TeamsClasses where title = &#039;VUCTM_t203dsaGAug.19&#039;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====It takes longer than normal to configure Teams====&lt;br /&gt;
During problems with the Teams service at Microsoft you might experience a long time for configuration of sections. There is nothing you or we can do about it, just be patient and wait.&lt;br /&gt;
[[File:It takes longer than normal to configure Teams.png|alt=It takes longer than normal to configure Teams|none|thumb|1088x1088px|DK text: &amp;quot;Det tager længere tid end normal at konfiguere tildelinger i Teams. Vi arbejder aktivt på det. Prøv igen senere&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
====Prevent Teams from sending spam to users====&lt;br /&gt;
If sender address contains “email.teams.microsoft.com” then redirect them to someone else.&lt;br /&gt;
[[File:Teams spam can be stopped with an Exchange flow.png|left|thumb|1409x1409px|Teams spam can be stopped with an Exchange flow]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Khm</name></author>
	</entry>
</feed>