maandag 20 februari 2012

Een InfoPath lijst of bibliotheek in SharePoint Online?

 
In de mom van ‘met SharePoint kan alles’, begin deze week een klant case uitgewerkt voor het vastleggen van informatie in InfoPath formulieren. Na alle eisen en wensen van de klant op papier te hebben gezet, kwam ik een aantal punten tegen waar ik een uitdaging en zeker voordelen van de werking in zie maar niet weet of het mogelijk is.
Must requirements:
1. Formulier moet eenvoudig te printen zijn.
2. Formulier moet een uniek ID hebben.
3. Formulier moet data automatisch aanvullen na een keuze in het selectie vak.
4. Formulier moet bij indienen geëxporteerd worden naar e-mail, met een selectie van onderdelen in het formulier en tevens een bestandsextensie hebben die te openen is voor externe gebruikers.
InfoPath kent het publiceren van een formulier als ‘Lijst’, waar het formulier vaak onder de knop ‘Nieuw item toevoegen’ bevindt in een webpart of als ‘Formulierbibliotheek’, waar de formulieren fysiek te zien zijn in een SharePoint bibliotheek, en als content type worden aangemaakt.

clip_image002

1. Formulier moet eenvoudig te printen zijn.

De eerste ‘must-requirement’ is voor publicatie van een formulierbibliotheek geen probleem, aangezien hier standaard de optie ‘Printen’ aanwezig is links boven het formulier. Echter voor de publicatie bij een ‘Lijstformulier’ is dit standaard niet aanwezig.
Na wat onderzoek kwam ik op deze blog terecht: https://www.nothingbutsharepoint.com/sites/eusp/Pages/jquery-for-everyone-print-any-web-part.aspx die het mogelijk maakt door middel van jQuery het formulier te printen.
clip_image003
Het nadeel hier van is, is dat er redelijk wat handelingen gedaan moet worden en in de Masterpage gewerkt moet worden, en dat met deze code alle webparts op de desbetreffende site het printicoon krijgen (dit is wel aan te passen in de jQuery code).
Ik kreeg met het printen boven en onderaan de pagina verwijzingen te staan van de locatie van het bestand. Dit is te wijzigen in het Windows register (Start – Uitvoeren – Regedit) te navigeren naar het volgende pad: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\PageSetup en de ‘Footer’ en ‘Header’ register leeg te laten.

2. Formulier moet een uniek ID hebben.

Vanwege het extern willen versturen van het formulier en gevoelige informatie wat het bevat is het een ‘Must’ om een unieke waarde van elk formulier af te dwingen en deze te tonen in het formulier.
Er is een eenvoudige ‘geen code schrijvende’ oplossing in InfoPath
Met het ontwerpen van een InfoPath formulier, is het mogelijk om een dataverbinding te maken om data te verkrijgen van, of te versturen naar een SharePointlijst of bibliotheek. Om deze dataverbinding te maken;
Acties: Gegevensverbinding beheren… (rechts onderin InfoPath2010)
Kies voor Toevoegen
en kies als gegevensverbinding Gegevens ontvangen
met als bron SharePoint-bibliotheek of –lijst.
en de URL locatie van de SharePoint-bibliotheek of –lijst in de SharePoint Online omgeving.
clip_image004
Selecteer hier de desbetreffende lijst of bibliotheek die je wilt gebruiken om data uit te halen (zie hieronder waar de lijst ‘UniqueID’ heet).
clip_image005
Selecteer ID
clip_image006
Nu de verbinding is gelegd, moet er een tekstveld worden toegevoegd in het formulier.
Klik met de rechtermuisknop op het tekstveld en kies voor eigenschappen van tekstvak. Klik op het “fx” symbool. Voer hier de volgende formule in voor het ophogen van de bestaande formulieren met een nummer.
Max( klik op ‘veld of groep invoegen…’,Geavanceerde weergave’ en browse naar de toegevoegde gegevensverbinding en kies voor ‘ID’ onder ‘Datafields – d:SharePointListItem_RW’.) +1.
Resultaat: Max(ID) +1
clip_image007
clip_image008
Het eindresultaat is dat bij het aanmaken van een formulier automatisch een uniek ID wordt gegeneerd en bij het volgende formulier het ID opgevolgd wordt met 1 cijfer hoger.
Om het ID niet alleen een nummer te geven maak ik zelf gebruik van een formule voor het toevoegen van het ID aan een stuk tekst bijv. For20.
Note: In de toekomst wil ik nog uitzoeken of het mogelijk is een datum hiervoor te zetten zonder de datum notatie zoals 16/02/2012 maar 02201220.

3. Formulier moet data automatisch aanvullen na een keuze in het selectie vak.

Voor deze ‘Must’ requirement maak ik gebruik van de bovenstaande handelingen voor het binnenhalen van data, alleen heb ik hier aparte bibliotheken voor aangemaakt met de gegevens velden die ik automatisch wil laten invullen zoals NAW gegevens.
Ik maak gebruik van een keuzelijst waarbij men een keuze kan maken en aan de hand van deze keuze worden de NAW gegevens automatisch ingevuld.
clip_image010
Kies bij de eigenschappen van het keuzelijst veld ‘Keuzen ophalen uit een externe gegevensbron’ en kies voor de desbetreffende gegevensverbinding. Om de NAW gegevens te koppelen aan de selectie in de keuzelijst zie onderstaande van de blog van Jasper Oosterveld.
Volledige blog: http://www.spcnl.nl/2011/12/wat-kan-infopath-2010-voor-mij-betekenen-deel-vijf/

Wij willen nu de velden, zoals ‘Adress’, koppelen aan de selectie in de keuzelijst. De velden dienen dan automatisch te worden geladen. Open de eigenschappen van ‘Adress’ en klik op de formule knop. Klik nu op ‘veld of groep invoegen…’. Selecteer de data connectie onder velden.
clip_image012
Selecteer nu ‘Address´ en klik op ‘Filter Data’ en op ‘Toevoegen’. Hier kun je de naam van bijvoorbeeld een klant uit de SharePoint lijst koppelen met het control uit het InfoPath formulier. InfoPath begrijpt dan de relatie tussen het adres en de klantnaam.
clip_image013
Het veld ‘Name komt uit de data connectie en ‘CustomerName’ komt uit het ‘InfoPath formulier’. Deze handeling dient nu ook voor de overige velden te worden uitgevoerd.

4. Formulier moet bij indienen geëxporteerd worden naar e-mail, met een selectie van onderdelen in het formulier en tevens een bestandsextensie hebben die te openen is voor externe gebruikers.

Met de laatste ‘Must-requirement’: ‘Export naar e-mail, selectie van onderdelen in het formulier en export naar een bestandsextensie die die iedereen kan openen komen de grootste knelpunten tevoorschijn aangezien er wat functies in InfoPath worden getoond die niet werkend zijn in SharePoint Online.
Voor meer informatie zie: http://office.microsoft.com/nl-nl/sharepoint-online-enterprise-help/functies-van-infopath-2010-die-niet-beschikbaar-zijn-in-browserformulieren-HA102140202.aspx

Omdat ik niet wil dat gebruikers eerst het formulier lokaal moeten opslaan om het daarna te openen in InfoPath Filler zodat ze het kunnen opslaan als bijv. PDF ben ik opzoek gegaan naar een betere optie.
Het resultaat zonder teveel handelingen is een PDF printer te installeren (gratis software) en i.p.v. normaal te printen, te kiezen voor de PDF printer. Simpel maar efficiënt.

Op deze manier geef je de gebruiker de kans om formulieren eenvoudig te printen, en de optie om het formulier op te slaan als PDF en te mailen zonder aparte programma’s te moeten openen.
Het enigste wat zonder waarschijnlijk veel programmeerwerk niet mogelijk is, is de export van onderdelen in het formulier naar een ander formulier bij indienen, dus deze laat ik op dit moment achterwege. Ik heb het op dit moment opgelost door gebruik te maken van meerdere pagina’s in het formulier en de desbetreffende informatie te scheiden op de pagina’s waardoor de gebruiker bijv. alleen de desbetreffende pagina’s opslaan of printen.

Alles met elkaar, flink wat ‘boerenverstand’ gebruikt en eenvoudig de ‘Must’ items kunnen realiseren. Hopelijk komen de print en opslagmogelijkheden in SharePoint Online en InfoPath binnenkort beschikbaar.

0 reacties:

Een reactie posten

Twitter Facebook Favorites More