Dienstag, 7. Oktober 2014

InfoPath/Formulare - AD User Anlage (inkl. Nintex Workflow)

Neue Mitarbeiter in einem Unternehmen sind nichts Ungewöhnliches. Mit dem Eintritt eines neuen Mitarbeiters werden verschiedene Prozesse angestoßen, z.B. benötigt der Mitarbeiter einen Arbeitsplatz und einen AD Account um sich anzumelden. Dieser Prozess lässt sich mit Hilfe von Microsoft InfoPath und Nintex Workflow sehr gut elektronisch unterstützen und zum Teil automatisieren.

Die benötigten Daten zur Anlage eines AD Accounts für den neuen Mitarbeiter werden mit Hilfe eines InfoPath Formulars erfasst. Der Vorgesetzte legt ein neues Formular an und füllt die Felder bezüglich der Stammdaten entsprechend aus. Das Feld "Vorgesetzter" wird automatisch beim Öffnen des Formulars belegt.


Der IT Abteilung wird letztendlich eine Aufgabe zum Überprüfen der Daten auf Vollständigkeit zugewiesen. Sind die Daten vollständig, soll der AD User angelegt werden. Nintex Workflow stellt in der Enterprise Version eine Aktion zur Verfügung mit der direkt im AD ein User Account angelegt werden kann. Diese Aktion muss entsprechend konfiguriert werden. Im Konfigurationsmenü dieser Aktion lassen sich alle notwendigen Felder mit Informationen aus dem Formular füllen. Nach erfolgreicher Anlage werden alle Beteiligten per E-Mail benachrichtigt.
 

Tools - SharePoint Logfiles analysieren

Jeder SharePoint Administrator steht früher oder später vor dem Problem aufgrund eines Fehlers die SharePoint Logfiles analysieren zu müssen. Glücklicherweise lässt sich in SharePoint in der Zentraladministration sehr genau konfigurieren welche Events / Informationen in den Logfiles protokolliert werden, ebenso wie den Ort der Logfiles und die maximale Größe bzw. Anzahl an aufbewahrten Logfiles.

Durch die Einführung der Correlation ID mit SharPoint 2010 ist es auch erheblich einfacher geworden in den Logfiles Informationen zu einem bestimmten Fehler aufzufinden. Trotzdem beinhaltet ein Standard Logfile sehr viele Informationen die es teilweise recht aufwendig oder schwierig machen die gesuchten und relevanten Informationen für eine Fehleranalyse zu finden.

Um diese Analyse einfacher zu machen gibt es verschiedene Hilfsmittel. Als Standardwerkzeug kommt meistens der normale Editor (Notepad) von Windows zum Einsatz, allerdings auch nur deshalb weil dieser auf jedem Windows Server System bereits installiert ist. Dieser hat allerdings zwei erhebliche Nachteile: Zum einen ist die Übersichtlichkeit für den Einsatzzweck alles andere als optimal, zum anderen hat er mit großen Dateien teils erhebliche Performanceprobleme. Und groß sind die SharePoint Logfiles leider meistens.

Glücklicherweise gibt es noch etliche Alternativen, von denen wir Ihnen zwei vorstellen möchten, die wir häufig einsetzen.

Notepad++

Ein optimaler und schneller Ersatz für den Standard Editor ist Notepad++. Dieses kleine Tool kennt alle wichtigen Programmiersprachen und deren Syntaxen, ist sehr schnell und sparsam im Ressourcenverbrauch. Durch etliche Plugins kann es auch noch stark erweitert werden. Im Zusammenhang mit SharePoint Logfiles besticht es vor allem durch zwei Dinge: Die Geschwindigkeit mit der große Dateien geöffnet und bearbeitet werden können sowie die umfangreichen Suchfunktionen. Außerdem ist es gleichzeitig eine große Hilfe wenn man andere Dateien auf dem SharePoint Server analysieren muss, wie z.B. XML oder ASPX Dateien. Ein Nachteil sei hier aber auch erwähnt. Aufgrund der mächtigen und umfangreichen Funktionen ist die Menü- und Funktionsstruktur teils sehr unübersichtlich. Notepad++ ist ein OpenSource Tool und somit kostenlos erhältlich. Damit eignet es sich perfekt als Zusatztool auf den SharePoint Servern.

SharePoint Log Viewer

Der SharePoint Log Viewer ist ebenfalls ein OpenSource Projekt, in diesem Fall in der CodePlex Plattform. Es ist im Gegensatz zu Notepad++ ausschließlich für die Analyse von SharePoint Logfiles, genauer gesagt ULS Logfiles geeignet, bietet hier aber dafür umfangreiche und nützliche Filterfunktionen. Er ermöglicht das Analysieren mehrerer Logfiles gleichzeitig, die Suche und Filterung in jeder einzelnen Spalte, Exportfunktionen bis hin zum Live Monitoring inkl. automatischen eMail Benachrichtigungen bei bestimmten Fehlern. Der SharePoint Log Viewer unterstützt alle SharePoint Versionen ab 2007.

Der SharePoint Logviewer steht hier zum Download zur Verfügung:

https://sharepointlogviewer.codeplex.com/

Powershell Scripts - Alternative Sprachen (Sprachpakete) in allen Websites aktivieren

Wer SharePoint mit mehreren Sprachen betreiben möchte, weiß dass es dazu grundsätzlich zwei Möglichkeiten gibt: Die sprachenabhängige Anpassung der Oberfläche über Sprachpakete sowie die Trennung der Inhalte in verschiedene Sprachen (sogenannte Variations). Das letztere ist ein eigenständiges Thema. Wir möchten in diesem Beitrag  kurz auf ein spezielles Thema / Problem beim Einsatz von Sprachpaketen eingehen.

Sobald man zusätzliche Sprachpakete auf dem SharePoint installiert hat (übrigens, hier immer darauf achten dass man unter Umständen auch die Service Packs für die Sprachpakete installieren muss), stehen die zusätzlichen Sprachen grundsätzlich zur Verfügung.

Ein Sprachpaket ermöglicht die Umschaltung auf eine der anderen Sprachen. Dieses Umschalten stellt alle SharePoint Standard Oberflächen Funktionen auf die jeweilige Sprache um, außerdem ist es damit möglich in der jeweils aktiven Sprache die Namen von Listen, Spalten sowie Navigationselementen anzupassen.

Der Nachteil ist allerdings dass die zusätzlichen Sprachen pro Website aktiviert werden müssen, um auch genutzt werden zu können. Da hier keine Vererbung möglich ist, ist der einfachste Weg (vor allem bei bereits bestehenden Websites) die zusätzliche Sprache über ein kleines Powershell Script zu aktivieren.

Ein einfaches Powershell Script dass für alle Websites einer anzugebenden URL einfach alle installieren Sprachpakete aktiviert wäre das folgende:

# Enables SELECTED installed languages for each subsite in a site collection
 $spSite = Get-SPSite -Identity
http://DemoURL
 foreach ($spWeb in $spSite.AllWebs)
 {
   $spWeb.IsMultilingual = $true
   $WebRegionSettings = New-Object Microsoft.SharePoint.SPRegionalSettings($spWeb)
   foreach ($language in $WebRegionSettings.InstalledLanguages)
   {
        write-host -BackgroundColor Green -ForegroundColor Black "Update -" $spWeb "site with LCID:" $language.DisplayName
        $culture = New-Object System.Globalization.CultureInfo($language.LCID)
        $spWeb.AddSupportedUICulture($Culture)
   }
   $spWeb.Update()
 }


 

Dieses Script bzw. die Logik davon kann man natürlich z.B. auch mittels einem Event Receiver und dem sogenannten Feature Stappling als SharePoint Solution bereitstellen, die automatisch bei jeder neu angelegten Website die Sprachen aktiviert.

Montag, 15. September 2014

Wir beziehen unser neues Firmengebäude

Nach knapp 1-jähriger Bauzeit ist es endlich geschafft. Unser neues Firmengebäude steht und wird von uns am 27.09.2014 bezogen.

Damit schaffen wir Platz für weiteres Wachstum und können auch unseren Gästen einen angenehmen Rahmen für Besprechungen und Präsentationen bieten.

Wir begrüßen Sie gerne ab dem 29.09.2014 an unserer neuen Adresse:

Siller Portal Integrators GmbH
Pfaffenstraße 66
74078 Heilbronn
Tel.: 07131/7240-500
Fax: 07131/7240-599
contact@s-pi.de
www.s-pi.de

Die bisherigen Kontaktdaten, wie email-Adressen, Telefon- und Faxnummern bleiben bestehen.

Dienstag, 9. September 2014

Tipps/Tools - Problematik Berechtigungen in InfoPath Views in Kombination mit Pflichtfeldern

Wenn man wie z.B. bei einem Investitionsantrag/Bedarfsmeldung Formular mit InfoPath die Anforderung hat, dass bestimmte Personen/Gruppen nur Teile des Formulars sehen können, dann lässt sich das glücklicherweise bequem und einfach über die Views/Ansichten in InfoPath regeln. Diese lassen sich ja auch Benutzer/Benutzergruppenspezifisch manuell oder automatisch wechseln bzw. aufrufen.

Oftmals ist es so, dass bestimmte Felder Pflichtfelder sind, allerdings nur für bestimmte Gruppen. Wenn z.B. derjenige der eine Bedarfsmeldung genehmigt in seiner Ansicht noch zusätzliche Felder ausfüllen muss, die der Antragssteller gar nicht sehen darf. Die einfachste Lösung wäre hierbei ja das Feld einfach als Pflichtfeld zu definieren.
Leider kann das in diesem Fall allerdings nicht genutzt werden. Denn ein Feld das als Pflichtfeld definiert ist muss immer ausgefüllt werden, auch wenn es in einer Ansicht (wie z.B. beim Antragssteller) gar nicht sichtbar ist.
Für dieses Problem gibt es nur einen sinnvollen Lösungsansatz:
Eigene Validierungs-/Pflichtfeld Regel
Diese leider unter Umständen etwas aufwendige Variante basiert auf der Erstellung von eigenen Regeln für die Erkennung von Pflichtfeldern und Darstellung von entsprechenden Meldungen. Diese kann dann am einfachsten direkt auf den Speichern/Absenden Button angewendet werden. Leider ist dies natürlich unter Umständen recht aufwendig, je nachdem um wie viele Pflichtfelder und damit Validierungen es geht.

Für das gewünschte Pflichtfeld muss eine Custom Validation  mit einer Regel erstellt werden: Bedingung 1: Feld ist leer
Optional könnten für diese Regel  mit einer weiteren Bedingung z.B. Ausnahmen für bestimmte Benutzer geschaffen werden. 
Außerdem darf man das Attribut „Darf nicht leer sein" nicht setzen. Diese Custom Validation Regel muss für jedes gewünschte Pflichtfeld gesetzt werden.
 

Nintex Workflows - Display Namen aus einem Personen- oder Gruppenfeld in einer E-Mail anzeigen

Das Versenden von E-Mail Benachrichtigungen gehört zu einer der am häufigsten genutzten Aktionen in Nintex Workflows. Wer schon einmal versucht hat ein Person- oder Gruppenfeld in der Benachrichtigung zu referenzieren, den wird aufgefallen sein, dass in der E-Mail nicht der Anzeigename angezeigt wird. Stattdessen werden Personen in der Form „i:0#.w|domain\username" dargestellt. Das sieht natürlich unschön aus und ist nicht wirklich praktikabel.

Um auch in der E-Mail den Anzeigenamen anzuzeigen, gibt es mehrere Möglichkeiten. Eine Möglichkeit wäre, den Anzeigename aus dem Active Directory bzw. dem SharePoint Benutzerprofil abzufragen. In Nintex stehen hierfür folgende Aktionen zur Verfügung: Query LDAP, Query User Profile (Enterprise Version) oder Call a Webservice. Es geht aber noch einfacher:
Alles was dazu benötigt wird, ist eine „Set variable" Aktion und eine neue Variable in der die Anzeigenamen gespeichert werden. Die Variable kann vom Typ „Single line of text" sein. Satt der Variable direkt das Feld zuzuweisen (Equals Value), wird ein List Lookup verwendet.

 
 
 
Das List Lookup hat den entscheidenden Vorteil, dass neben dem ausgewählten Feld ein Button angezeigt wird, der es ermöglicht den Rückgabetyp auszuwählen. Hier wählen Sie „Display Names, Semicolon Delimited".
 
 
Jetzt kann die Workflowvariable, die die Anzeigenamen aus den Personenfeld hält, einfach in der E-Mail Benachrichtigung referenziert werden.  
 

Bildbibliotheken: Lightbox ähnliche Ansicht integrieren

Leider ist es in SharePoint nach wie vor nicht möglich eine typische Lightbox View für Bildbibliotheken darzustellen. Hierbei öffnet man ein Bild und kann dieses dann in einer Art PopUp Fenster, das den Hintergrund ausblendet, betrachten und mit Navigationselementen wie z.B. Pfeilen zum nächsten oder vorherigen Bild navigieren.

Um solch ein Verhalten in SharePoint 2010 zu erhalten, gibt es verschiedene Möglichkeiten. Entweder man setzt dazu auf den Seiten der jeweiligen Bildbibliotheken kleine jQuery Code Schnipsel ein, oder setzt auf fertige Webparts.
Einige Beispiele für die Einbindung solcher Code Schnipsel sind hier zu finden: (diese können auch in Masterpages hinterlegt werden):
http://blog.mikehacker.net/2009/06/10/sharepoint-photo-gallery-using-jquery/


Beispiele für durchaus gute und funktionsfähige günstige oder kostenlose Webparts sind hier zu finden:
http://www.codeproject.com/Articles/781797/Picture-Thumbnails-Web-Part-SharePoint

Im Falle von SharePoint 2013 gibt es noch eine andere Möglichkeit. Hier kann bereits im Standard eine Art Vorschau mit Klick auf die drei Punkte "..." geöffnet werden. Mittels einer kleinen jQuery Implementierung kann dann in exakt diesem Vorschaufenster zum nächsten oder vorherigen Bild navigiert werden. Diese Lösung wurde von uns im Rahmen eines Kundenprojektes entwickelt, kann aber bei allen Standard Bildbibliotheken eingesetzt werden.
Sollten Sie Fragen zu den Lösungen haben können wir Sie gerne unterstützen.