>Externe inschrijvingen op sharepoint

>

Binnen onze organisatie worden op geregelde tijdstippen evenementen georganiseerd waarvoor men zich moet inschrijven. Voor elke van die evenementen wordt er telkens een mini-website aangemaakt (ASP.NET). Vroeger werden de gegevens van de persoon die zich inschreef via mail verzonden naar één contactpersoon, in een latere fase werden de gegevens weggeschreven in een database. Hiervoor moest er dan wel telkens een interventie zijn van de ICT dienst om de gegevens eruit te halen en aan de juiste persoon te bezorgen. In dit artikel leg ik uit hoe we dit oplossen via het sharepoint platform van onze organisatie.

Concept

Figuur 1 geeft een schematische voorstelling van het concept. De deelnemers aan het evenement kunnen zich via de website inschrijven. De inschrijving wordt daarna weggeschreven naar een lijst op het intranet (sharepoint). De bevoegde personen (organisatoren, contactpersonen, secretariaat, …) krijgen dan rechten om de lijst te bekijken en/of te manipuleren. We maken hier gebruik van alle mogelijkheden van het sharepoint platform om de inschrijvingen (lijst) te beheren of te bewerken of om notificaties in te stellen.

101409_1218_Contactform1

Figuur 1 Schematische voorstelling

Technische uitwerking

De technische uitwerking van een contact- of inschrijvingsformulier bestaat uit een aantal vaste stappen. Deze worden hieronder kort uit de doeken gedaan:

  1. Bepaal welke velden je wil vragen van de gebruiker.
    Dit wordt meestal gedaan door de organisatoren of de dienst communicatie. Zorg ervoor dat dit vastligt eenmaal je start met de aanmaak van het formulier. Alhoewel het niet zo complex is om achteraf een veld bij te voegen is het toch makkelijker en sneller indien dit reeds op voorhand is bepaald.
  2. Bepaal op welke intranet werkruimte je de data wil verzamelen.
  3. Maak op de werkruimte een lijst aan met de nodige velden.
    Gebruik hier enkel tekst, numeriek en boolean veldtypes. De eventuele waardes van de dropdown velden op het inschrijvingsformulier worden als tekst weggeschreven. Via de standaard functionaliteiten van sharepoint kan men dan hierop filteren in de lijst.
  4. Geef een gebruiker (vb. "website user" (uit active directory))bijdrage rechten op deze nieuwe lijst.
    Via deze gebruiker gaan de nieuwe inschrijvingen worden weggeschreven.
  5. Maak in Microsoft Visual Studio 2008 je nieuw webproject met de inschrijvingsapplicatie.
  6. Vanuit je webproject leg je een reference naar Sharepoint.ListManager.dll (zie eerder artikel
  7. Haal de GUID van de sharepoint lijst op.
    In sharepoint heeft elke lijst een unieke Guid. Om deze te vinden vraag je van de lijst de eigenschappen op. De Guid kan je dan aflezen in de url:
    101409_1218_Contactform2
    Je selecteert alles achter ?list=. Om dit leesbaar te maken moet je het omzetten (URLDecode). Je kan dit via deze website. Knip de gecodeerde Guid en plak het in de "Encoded" textbox. Klik op URLDecode om de juist Guid te zien.
    101409_1218_Contactform3
  8. Plaats de onderstaande entries in de <appSettings> setting van je web.config bestand:

    <add key="username" value="username"/>
    <add key="password" value="*******"/>
    <add key="domain" value="DOMAIN"/>
    <add key="siteUrl" value="url naar de werkruimte waar de lijst staat"/>
    <add key="listGuid" value="{GUID-VAN-DE-LIJST}"/>

  9. Maak de asp.net pagina(s) voor de inschrijving.
  10. Verzenden van de gegevens.
    Voor het verzenden van de gegevens maak je gebruik van het Sharepoint Framework. Onderstaande code kan je hiervoor gebruiken:
    101409_1218_Contactform4
    Je maakt een facade object van de ListManager waarmee je de bewerkingen kan uitvoeren. Het items object is een verzameling van ListItem objecten. Elk ListItemObject komt overeen met 1 veld in je lijst op sharepoint. Je moet de exacte naam van de velden gebruiken. Je kan deze ophalen door de instellingen van de lijst te bekijken en te klikken op de naam van de kolom.
    101409_1218_Contactform5 
    101409_1218_Contactform6
    Kolommen met een spatie in de naam moet je terug via deze website gaan decoderen.

Via bovenstaande stappen ben je in staat om een formulier te maken en de gegevens te verzenden naar een sharepoint lijst!

Bij onduidelijkheden of problemen laat je hier best een commentaar achter, dan neem ik zo snel mogelijk contact op!