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’:

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

Voorbeeld RequestURI: Versies van een document uit SharePoint opvragen

[SubsiteUrl]/_api/Web/getfilebyid('[ID]')/Versions

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.

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:

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’:

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:

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:

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:

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:

Downloads

Upload onderstaand rcs-bestand in je Relatics environment om de voorbeelden van dit artikel zelf te bekijken:

Opmerking: Uit veiligheid zijn de username en password van de webservices verwijderd. Hierdoor zal de webservice niet werken in de eindapplicatie. De workspace is nuttig om de instellingen van de configuratie te bekijken.

Over Kris de Waal

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.

Relatics Portret-120

Contact

Heeft u hulp nodig bij het toepassen van de genoemde technieken in uw eigen casus? Of heeft u vragen, opmerkingen of suggesties over dit artikel? Laat het ons dan weten via onderstaand formulier.