SharePoint lookup fields lijken op het eerste gezicht superhandig. Je kan vrij eenvoudig database-je spelen en relationele lijsten maken.
Laten we uitgaan van het volgende voorbeeld.
We hebben een deelnemerslijst met de volgende velden:
Naam | Land van herkomst (lookup field) |
Jan | Nederland |
Piet | Belgie |
Klara | Duitsland |
Henk | Nederland |
Jean | Belgie |
Connie | Duitsland |
Mies | Nederland |
Hiernaast hebben we een tabel waar de landen instaan:
Land van Herkomst |
Nederland |
Belgie |
Duitsland |
Door deze opzet kun je eenvoudig het land van herkomst beheren. Weet echter dat er een paar hele grote nadelen kleven aan het werken met look-up fields.
Omgaan met de item threshold
Als een lijst in SharePoint (Online) over de 5000 items heengaat dan treedt de item level threshold op. Dit houdt in dat er dat de items niet meer weergegeven kunnen worden in de lijst. Een manier om hier omheen te werken is door indexed columns aan te maken. Zolang je geen multi value lookup column gebruikt kun je een lookup column indexed maken. Echter dit doet niks voor het verlagen van de item threshold.
Voor het bovenstaande voorbeeld houdt dat in dat als er meer dan 5000 namen in de deelnemerslijst staan er geen gegevens getoond kunnen worden. Als het ‘land van herkomst’ een tekstveld was geweest, dan hadden we deze indexed kunnen maken en hadden we hier op kunnen filteren, zodat deze onder de 5000 komt. Dit kan echter niet met een lookup field.
Archiveren
Ook is het lastig om content in lookup columns te migreren zonder dat deze hun relatie met elkaar verliezen. De koppeling tussen de lookup column wordt gedaan op basis van GUIDs. Echter zodra je deze gaat migreren, dan worden er nieuwe GUIDs aangemaakt en is de koppeling tussen de lijsten weg. De enige manier om dit voor elkaar te krijgen zonder tooling is door een kopie van de volledige contentdatabase te maken.
Oplossing
Als je relationele lijsten wil gebruiken die meer dan 5000 items gaan bevatten en die je op een moment ook nog zou willen migreren dan kun je beter een koppeling op basis van ID maken. Als we dit vertalen naar ons boorbeeld dan krijgen we het volgende:
Deelnemerslijst:
Naam | Land van herkomst ID |
Jan | 1 |
Piet | 2 |
Klara | 3 |
Henk | 1 |
Jean | 2 |
Connie | 3 |
Mies | 1 |
Landenlijst:
ID | Land van Herkomst |
1 | Nederland |
2 | Belgie |
3 | Duitsland |
Het land van herkomst kan in dit voorbeeld netjes geïndexeerd worden. Ook archiveren van deze lijst is geen probleem, omdat het hier gaat om simpele ‘platte’ lijsten.
Het nadeel is echter wel dat er geen directe koppeling bestaat in het invoerformulier. Hiervoor zal er een maatwerk formulier gemaakt moeten worden. Dit kan gerealiseerd worden in SharePoint Designer of een formulier gebaseerd op javascript welke leeft in de Style Library.
Meer informatie over item level threshold en lookupfields:
https://support.office.com/en-us/article/Manage-large-lists-and-libraries-in-Office-365-b4038448-ec0e-49b7-b853-679d3d8fb784
The post Lookup fields – valkuilen bij het gebruik in SharePoint Online appeared first on Mavention.