Versies van een document uit Microsoft SharePoint tonen

Door in Relatics een webservice en selection te configureren is het mogelijk dat eindgebruikers direct een eis koppelen aan een document uit SharePoint. Naast de behoefte van eindgebruikers om de metadata van het document uit SharePoint te zien, is er vaak ook behoefte om andere versies van hetzelfde document in Relatics te bekijken. Bijvoorbeeld, omdat een nieuwe documentversie invloed kan hebben op het resultaat van een verificatie. Aan de hand van dit artikel ontdek je hoe je de koppeling kan uitbreiden, zodat je in Relatics versies van een document live uit SharePoint Online kan tonen.

Benodigde voorkennis

In dit artikel ga ik ervan uit dat je in Relatics al een webservice hebt geconfigureerd om documenten op te vragen uit SharePoint Online zoals hier beschreven. Het hebben van deze configuratie is voorwaardelijk voor de werking van de webservice in dit artikel.

Een webservice configureren om metadata van een document uit SharePoint Online te ontvangen

Een extra RESTful webservice (voorbeeld: ‘Relatics – SharePoint – GetDocumentVersions’) is nodig om de versies van een enkel document te tonen, dat eerder in Relatics is vastgelegd m.b.v. de webservice ‘Relatics – SharePoint – GetDocuments’:

01_relatics-sharepoint-details-attributes-and-replacers

Voorbeeld RequestURI: Versies van een document uit SharePoint opvragen

[SubsiteUrl]/_api/Web/getfilebyid(‘[ID]’)/Versions

Met behulp van onderstaande RequestURI kun je de versies van een specifiek document opvragen:

Voor deze webservice zijn twee RequestURI Replacers gebruikt. De eerste, ‘SubsiteUrl’, vervangt het gedeelte van de URL voor de SharePoint subsite (bijv. ‘https://my-organization.sharepoint.com/sites/TheConnection’). Deze dien je te vervangen door je eigen, specifieke URL. De tweede RequestURI Replacer (‘ID’) betreft het ID van het SharePoint document.

Het resultaat van de webservice dat live uit SharePoint wordt opgevraagd, is een lijst van versies van een specifiek document. Het is belangrijk om te beseffen dat alleen historische versies worden teruggegeven, maar niet de actuele versie.

Met behulp van onderstaande RequestURI kun je de versies van een specifiek document opvragen:

Het resultaat uit SharePoint Online verwerken in de Relatics webservice

Hieronder zie je een voorbeeld van hoe je de webservice in Relatics kan configureren om het resultaat in de visualisatie te tonen:

02_relatics-sharepoint-details-adapterfields

In de tabel ‘XML Adapter Definition’ kun je een Xpath Expression invullen om het webservice resultaat van de SharePoint webservice te interpreteren:

Voorbeeld XPath Expression: XML Adapter Definition

//item/d/results/item

In de tabel ‘XML Adapter Fields’ kun je alle velden uit het webservice resultaat aanmaken die je aan eindgebruikers wil tonen. De tip om deze velden te achterhalen is om rechtsboven op het icoon ‘Preview’ te klikken, waarmee je een XML geeft met de huidige live dataset krijgt. In het bovenstaande voorbeeld heb ik een subset van de beschikbare metadata aangemaakt dat mij interessant lijkt voor het project. Uiteraard ben je zelf vrij om te kiezen welke metadata je wil gebruiken. Let op dat per configuratie van SharePoint de beschikbare metadata voor documenten kan verschillen. SharePoint kan namelijk worden verrijkt met specifieke metadata dat relevant is voor het project.

Het is aan te raden om een XML Adapter Field te selecteren in de tabel ‘Identifying Field’. In dit geval heb ik gekozen voor ‘ID’, omdat dit elke documentversie uniek maakt. Ondanks dat deze webservice geen data in Relatics opslaat, zorgt deze instelling ervoor dat de informatie in de userinterface goed gegroepeerd wordt.

De authenticatie voor SharePoint Online configureren in de Relatics webservice

Net als voor de andere webservices, moet je op de tab ‘Authentication’ voor SharePoint Online de optie ‘By credentials’ op ‘Enabled’ zetten. De instellingen zijn hetzelfde als voor de webservices ‘Relatics – SharePoint – GetDocuments’ en ‘Relatics – SharePoint – GetDocumentDetails’:

03_relatics-sharepoint-details-authentication

Het element uit het informatiemodel relateren in de Relatics webservice

Op de tab ‘Connections’ kun je in de tabel ‘additionally retrieves one instance of’ het element uit het informatiemodel kiezen dat gebruikt wordt voor de koppeling met SharePoint Online:

04_relatics-sharepoint-details-connections

Deze instelling zorgt ervoor dat als je in de query editor de node ‘Document’ uitklapt, je ook meteen de webservice node ‘Relatics – SharePoint – GetDocumentVersions’ in je query kan slepen.

De query configureren voor het tonen van de versies van het document

Op de detailpagina van een document kun je een aparte tabel aanmaken. Bijvoorbeeld: ‘Document historic versions (live from SharePoint)’ met de volgende query:

05_relatics-sharepoint-details-query

In de query is net als in dit artikel gebruik gemaakt van een node ‘Project’ inclusief eigenschappen waarin de URL van SharePoint voor het betreffende project opgeslagen is. De waarden van deze eigenschappen worden in de node ‘Relatics – SharePoint – GetDocumentVersions’ gebruikt, zodat de achterliggende webservice de juiste URL benadert.

Het volgende derived field is gebruikt waarmee een eindgebruiker direct het document uit SharePoint kan downloaden:

Example of Derived Field: Hyperlink om SharePoint documentversie te downloaden

concatenate(“<a href='”,[SharePoint Base URL],[SharePoint Site URL],”/”,[Url],”‘>Download</a>”)

Het eindresultaat

In SharePoint Online kun je zien welke versies van een document beschikbaar zijn:

06_relatics-sharepoint-details-sharepoint-versions

Wanneer je in Relatics in de tabel ‘Document historic versions (live from SharePoint)’ kijkt, dan zie je alle historische versies. Ook zie je de kracht van het tonen van een hyperlink om de versie van het document direct te downloaden:

07_relatics-sharepoint-details-end-result

Over Kris de Waal

Relatics Portret-120

Na het afronden van de studie Bedrijfskunde met een specialisatie in Business Information Management, werkt Kris bij Relatics als Business Information Consultant. Hij leert graag over nieuwe concepten, technologieën, IT-systemen en past deze kennis toe in zijn dagelijkse werk. Daarnaast werkt Kris graag aan nieuwe ideeën en innovaties om meer uit Relatics te halen.