14 September 2011
InfoPath: Benutzen von SharePoint Standard-Workflows für InfoPath Forms
Nach dem Speichern und schliessen eines Formulares soll der Approval Prozess gestartet werden, der an den Vorgesetzten des Erstellers geht. Der Vorgesetzte wird im Formular angegeben.
Problem:
Der Vorgesetzte kann nicht im Listenworkflow vorkonfiguriert werden, da dieser in jedem Workflow unterschiedlich ist. Nach dem Speichern des Formulars erscheint auch nicht automatisch das Workflow-Formular, in dem der Benutzer die Workflow-Empfänger konfigurieren kann.
Lösung:
Der Vorgesetzte wird bereits im InfoPath Formular als Peoplepicker-Feld angegeben. Das Feld "AccountID" des Vorgesetzten wird auf den Sharepoint gemappt. Anschliessend wird ein SharePoint-Designer Workflow erstellt der wie folgt aufgebaut ist:
Step 1
Vorgang 'Genehmigung' für 'Current Item' mit 'Current Item:Vorgesetzter' starten.
dann Workflow beenden.
Über den SharePoint-Designer Workflow lässt sich der Standard Approval Workflow starten und mit bereits vorhandenen Daten aus dem Formular konfigurieren.
Der Workflow muss so eingestellt werden, dass er bei einem neuen Element automatisch startet.
Automatische Nummerierung von Formularen
Bei vielen Formularprojekte tritt die Anforderung auf, dass Formulare automatisch durchnummeriert werden sollen. Diese Anforderung kann wie folgt abgedeckt werden:
1. Datenverbindung Einrichten zum Empfangen von Inhalten.
Die Datenverbindung zeigt auf die SharePoint-Bibliothek in welche die Formulare gespeichert werden. Die Daten müssen nicht automatisch beim Öffnen des Formulars abgerufen werden.
Wichtig ist hier, dass die Spalte ID ausgewählt ist.
2. Regeln beim Submitten definieren
Unmittelbar bevor das ausgefüllte Formular gespeichert wird, muss die Datenabfrage gemacht werden. Am besten wird dazu auf dem Speicher-Button eine Regel zum abfragen der Daten hinzugefügt.
Anschliessend wird die Laufnummer in ein dafür vorgesehenes Feld geschrieben.
Die Laufnummer wird wie folgt generiert: max(ID) + 1
Die Spalte ID stammt aus der externen Datenquelle, die in Schritt 1 erstellt wurde. Dadurch wird die höchste ID ausgelesen und eins dazugezählt. Jedes ausgefüllte Formular erhält dadurch eine Laufnummer.
Wichtig
- Das Generieren der Laufnummer muss unmittelbar vor dem Speichern geschehen. Wenn diese zu Beginn generiert wird, können mehrere Formulare dieselbe Laufnummer erhalten wenn mehrere Benutzer gleichzeitig am Formulare ausfüllen sind.
- Die Laufnummer darf nur generiert werden, wenn noch keine Laufnummer generiert wurde. Also nur beim erstmaligen Speichern des Formulars. Dies muss in der Regel berücksichtigt werden. Zum Beispiel mit der Condition:
Laufnummer is blank.
InfoPath: Form Library oder Liste mit Customized Form?
- Wenn schnell, einfach und mit kleinem Aufwand gearbeitet werden soll
- Wenn das Formular offline mit SharePoint Workspace zur Verfügung stehen soll
- Wenn die SharePoint-Liste basierend auf Personen oder Gruppen gefiltert werden sollen. (nur ihre eigenen Elemente sehen)
- Wenn die Built-in Display und Edit-Ansichten verwendet werden sollen
In folgenden Fällen muss eine Formularbibliothek verwendet werden:
- bei wiederholenden Daten (Repeating Table, oder Section)
- komplexe Schemen
- Das Formular muss digital signiert sein
- wenn Code verwendet wird im Formular
- Wenn das Formular nicht auf SharePoint verwendet wird
- Wenn das Formular schön ausgedruckt werden soll
InfoPath: Personenfelder Mappen
Personenfelder aus dem InfoPath können tatsächlich nicht direkt auf Personenfelder im SharePoint gemappt werden. Hoffentlich kommt das in einer späteren Version. Im Moment kann es nur durch einen Workflow (oder Eventhandler) gelöst werden. Es muss wie folgt vorgegangen werden:
- Account-ID des Personenfeldes auf ein Textfeld im SharePoint mappen (DisplayName ist nicht eindeutig).
- Workflow im Designer erstellen, der beim Erstellen eines Formulars startet.
- Workflow überprüft ob das Textfeld leer ist.
- Wenn das Feld nicht leer ist schreibt er die AccountID aus dem Textfeld in ein PeopleFeld aus dem SharePoint. Da die Account-ID eindeutig ist, kann sie in jedem Fall aufgelöst werden und es gibt keinen Fehler. (Wird der Displayname verwendet gibt es hier einen Fehler, sofern es mehrere gleiche Displaynamen gibt).
- In der Ansicht oder Auswertungen kann das Personenfeld von SharePoint verwendet werden, das Textfeld wird für den Endbenutzer nicht benötigt und muss nicht angezeigt werden.
Hinweis: Das Personenfeld ist natürlich erst ausgefüllt wenn der Workflow gestartet ist. Gleich nach dem Abspeichern ist das Feld also noch ein paar Sekunden leer.
InfoPath: Erster Wert aus SharePoint-Liste als Default in Dropdown-Feld
Ein Dropdown wird mit Werten aus einer SharePoint-Liste gefüllt. Der erste Wert soll dabei defaultmässig ausgewählt sein.
Lösung
Um den ersten Wert aus einer SharePoint-Liste als Default in einem Dropdownfeld zu setzen muss wie folgt vorgegangen werden:
- Default-Wert des Dropdown bearbeiten
- Formula öffnen und "Edith xPath" Häckchen aktivieren
- folgender Default-Wert eintragen: xdXDocument:GetDOM("Kunden")/dfs:myFields/dfs:dataFields/d:SharePointListItem_RW[1]/d:Title (Kunden durch den Namen der Datenverbindung ersetzen).
InfoPath: Dropdown zeigt nicht alle Werte aus SharePoint-Liste an
Ein Dropdownfeld soll mit Werten aus einer SharePoint-Liste abgefüllt werden. Die Liste beinhaltet aber so viele Einträge, dass nicht alle im InfoPath im Dropdown angezeigt werden.
Ursache
InfoPath verwendet für diese Abfrage das "Item Limit" der Default-Ansicht und liefert nur so viele Einträge zurück, wie dort eingestellt ist.
Lösung 1:
Das Item Limit in der Default-Ansicht höher einstellen, so dass alle Elemente in der Default-Ansicht ersichtlich sind.
Lösung 2:
Wenn das Item Limit nicht angepasst werden kann/soll, weil die Liste auch für anderes verwendet wird, gibt es eine Möglichkeit, die Daten via WebService ins Infopath zu holen.
- Öffentliche Ansicht erstellen, die alle Elemente anzeigt.
- Datenverbindung im InfoPath erstellen:
- Neue Datenverbindung
- Receive Data
- XML Document
- folgende URL verwenden:
http://SERVERURL/_vti_bin/owssvr.dll?Cmd=Display&List={5BDB2F37-7239-4B23-B5C3-107E93C41FB0}&XMLDATA=TRUE&noredirect=true&View={D58966DE-F019-4F44-ADE5-F8CF4D4A957A}&SortField=LinkTitle&SortDir=Asc
Dazu muss natürlich die Basis URL, die List-ID, und die ID der Ansicht angepasst werden. Optional kann am Ende die Sortierung der Daten angegeben werden. - Access the data from the specified location
- Finish
- Dem Dropdown die Daten aus der sekundären Datenverbindung zuweisen.
InfoPath: Personenfeld mit aktuellem Benutzer vergleichen
Die einfachste Variante ist ein Peoplefeld zu erstellen, in dem beim Öffnen des Formulars der aktuelle Benutzer reingeschrieben wird. (Das Feld kann angezeigt werden oder auch nicht).
Somit kann man einfach die beiden AccountID-Felder miteinander vergleichen und für benutzerdefinierte Regeln benutzen.
Problem Gross-Kleinschreibung
Es kann vorkommen, dass Benutzernamen im ersten Feld Grossgeschrieben und im zweiten Feld kleingeschrieben sind und daher beim Vergleich nicht übereinstimmen, obschon es sich um denselben Benutzer handelt.
Dieses Problem kann wie folgt gelöst werden:
Anstatt bei der Kondition in der Regel die beiden Felder direkt zu vergleichen, soll die Regel mit einer Expression erstellt werden. Dort kann die Funktion "translate()" benutzt werden. Damit können alle Grossbuchstaben in Kleinbuchstaben umgewandelt werden.
Die ursprüngliche Expression sieht beispielsweise so aus:
my:Vorgesetzter/pc:Person/pc:AccountId != my:CurrentUser/pc:Person/pc:AccountId
Die Expression, welche Gross- und Kleinschreibung ignoriert sieht dann so aus:
translate(my:Vorgesetzter/pc:Person/pc:AccountId, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz") != translate(my:CurrentUser/pc:Person/pc:AccountId, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz")
24 Februar 2011
Medienintegration in SharePoint 2010
- Um was für Medieninhalt handelt es sich (Video, Audio…)?
- Liegen die Daten bereits in bestimmten Formaten vor, sprich ist eine Konvertierung zu Aufwändig oder sogar schlicht unmöglich?
- Kann man sich auf die Publikation eines Formats beschränken und erleichtert so dem Benutzer den Zugang?
- Möchte man für gewisse Formate Alternativen bereitstellen um eine grössere Abdeckung zu erhalten?
- Kann die Plugin-Version, der Browser und das System vorgegeben werden, z.B. in Intranets oder handelt es sich um eine Website?
- Wie weit möchte/kann man Mobile Devices unterstützen?
Integration von WMA, WMV, MP3
Die Integration kann direkt im Rich Text Editor über den Knopf „Video und Audio“ erfolgen. Ein Vorschaubild kann ebenso integriert werden. Die Dateien können in einer SharePoint Bibliothek für Rich Media Content abgelegt werden.Die Publikation von WMA, WMV und MP3 ist eher für Intranets zu empfehlen.
- WMA (Windows Media Audio)
- WMV (Windows Media Video)
- MP3 (ISO/MPEG Layer-3 (Audio))
Integration von Microsoft Silverlight
Silverlight Anwendungen können über das OOTB Silverlight-Webpart integriert werden. Die XAP-Dateien können in einer SharePoint Bibliothek für Rich Media Content abgelegt werden.Silverlight hat noch nicht die Verbreitung von Flash da es sich um eine relativ neue Technologie handelt. Speziell bei Verwaltungen und Schulen ist Silverlight noch nicht sehr verbreitet. Silverlight funktioniert auch auf Intel basierten Apple Computern.
Hinweis: Für Websites (Internet) sollte eine Prüfung integriert werden um die unterschiedlichen Browser- und Systemvorgaben sowie Plugin-Versionen korrekt zu berücksichtigen.
Integration von Adobe Flash
Flash Anwendungen können z.B. über Drittanbieter Flash-Webparts integriert werden. Eine weitere Variante besteht in der direkten Integration des Objekts im HTML-Code (HTML Kenntnisse nötig). Die SWF-Dateien können in einer SharePoint Bibliothek für Rich Media Content abgelegt werden.Flash ist im Web weit verbreitet und kann auch auf Mobile Devices mit Android angezeigt werden. Apple iPhone und iPads haben keine Flashunterstützung.
Hinweis: Für Websites (Internet) sollte eine Prüfung integriert werden um die unterschiedlichen Browser- und Systemvorgaben sowie Plugin-Versionen korrekt zu berücksichtigen.
HTML 5
HTML 5 ermöglicht bzw. wird in Zukunft die Integration von Video, Audio und inline SVG (Vektorgrafik) ermöglichen. Es sind bereits erste Browser im Umlauf welche HTML 5 teilweise unterstützen. Die Implementierung muss jedoch zurzeit noch browserspezifisch erfolgen, da kein einheitlicher Standard existiert. Momentan ist diese Technologie somit noch keine Option um Medieninhalt zu implementieren.02 Dezember 2010
Mehrsprachige Intranets mit SharePoint 2010
An den Collaboration Days durfte ich gestern über “mehrsprachige Intranets mit SharePoint 2010” sprechen. Dabei habe ich einige Erweiterungen der SharePoint Multilingual User Interface (MUI) gezeigt.
Die Herausforderung bei mehrsprachigen Intranets ist, dass nicht der gesamte Content mehrsprachig vorhanden ist und dass strukturierte Inhalte in SharePoint Listen und Document Libraries abgelegt sind. Variations sind meistens das falsche Konstrukt. Darum haben wir einige simple Erweiterung realisiert, welche erlauben mit SharePoint MUI (und ohne Variations) ein mehrsprachiges Intranet aufzubauen.
Alle Sprachen verwenden dabei die selbe Site Struktur, die Informationen werden in den einzelnen Pages aber mehrsprachig abgelegt. Ein Page Control entscheidet dann auf Grund der Benutzersprache, welche Content angezeigt wird.
Strukturierte Inhalte und Dokumente liegen in SharePoint Listen. In einer weiteren Spalte wird die Sprache erfasst. Mit einem out-of-the-Box List View Web Part und ein Custom List Filter Web Part, welches die Inhalte auf die Sprache des Benutzers filtert, können für die Anzeige verwendet werden.
Downloads:
01 November 2010
SharePoint Collaboration Days in Luzern
Am 1. und 2. Dezember finden in Luzern die erste SharePoint Konferenz auf Schweizer Boden statt. Das Motto der Konferenz lautet “creating hands-on value”. In gute 35 Sessions wird Wissen rund um SharePoint vermittelt.
Auch ich werde am 1. Dezember eine Session halten. In “Mehrsprachige Intranets mit SharePoint 2010” erzähle ich, was SharePoint alles Out-of-the-Box kann, wo die Grenzen liegen und wie man smarte Erweiterungen realisiert, um ein mehrsprachiges Intranet umzusetzen. Die Session findet um 16:40 Uhr statt.
Also los, gleich noch heute Anmelden!
