14 September 2011

InfoPath: Erster Wert aus SharePoint-Liste als Default in Dropdown-Feld

Problem
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:




  1. Default-Wert des Dropdown bearbeiten


  2. Formula öffnen und "Edith xPath" Häckchen aktivieren


  3. 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

Problem
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.


  1. Öffentliche Ansicht erstellen, die alle Elemente anzeigt.

  2. Datenverbindung im InfoPath erstellen:

  3. Neue Datenverbindung

  4. Receive Data

  5. XML Document

  6. 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.

  7. Access the data from the specified location

  8. Finish

  9. Dem Dropdown die Daten aus der sekundären Datenverbindung zuweisen.

InfoPath: Personenfeld mit aktuellem Benutzer vergleichen

Manchmal ist es nützlich den aktuellen Benutzer mit einem Benutzer in einem Peoplefeld zu vergleichen. Zum Beispiel wenn nur ein bestimmter Benutzer ein Fomular gehemigen kann.

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

Es ist nicht einfach in der heutigen Medienlandschaft ein Format für seinen Medieninhalt zu definieren. Es gibt bei jedem Format Vor- und Nachteile. Daher ist es wichtig den Verwendungszweck genau zu kennen. Nachfolgende Fragen sollen hierbei unterstützend wirken:
  • 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.

image

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!

22 September 2010

SQL Server: User als sysadmin hinzufügen

Wer kennt das Problem schon nicht? Man sollte schnell etwas auf einem SQL Server ändern, hat aber keine Administratoren-Berechtigungen. Und der Administrator ist gerade in den Ferien. Und dessen Stellvertreter auch…

Glücklicherweise kann man den SQL Server mit einer «Dedicated Administrator Connection» (DAC) starten, so dass dann nur noch eine Verbindung zum SQL Server notwendig ist. Und wer auch immer diese Verbindung nutzt, hat Administratorenrechte.

Dazu muss man folgende Schritte ausführen:

SQL Server starten

In einer CMD wird folgendes ausgeführt:


cd "C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn"
sqlservr.exe -c -m "SQLCMD"

Damit wird der SQL Server gestartet. Es ist nur möglich, mit dem SQLCMD Programm darauf zuzugreifen. SQLCMD muss zwingend gross geschrieben sein!

User als Sysadm hinzufügen

In einer weiteren CMD:


cd "C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn"
sqlcmd –A
CREATE LOGIN [DOMAIN\UserName] FROM WINDOWS
GO
sp_addsrvrolemember 'DOMAIN\UserName', 'sysadmin'
GO
quit

Anschliessend kann der SQL Server mit CTRL-C beendet werden und mit net start MSSQLSERVER wieder normal gestartet werden.

30 August 2010

SharePoint 2010: PDF im Browser öffnen

SharePoint 2010 verfügt über eine neue Einstellung, ob PDFs (und andere Dokumente) im Acrobat Reader angezeigt oder ob sie lokal gespeichert werden. Die Einstellung findet sich in der Central Administration, unter den “General Settings” einer Web Application.

image

Und zwar geht es um die Einstellung “Browser File Handling”. Strict bedeutet, dass die Dokumente nicht angezeigt sondern heruntergeladen werden. Mit Permissive kann das aus SharePoint 2007 bekannte Verhalten erreicht werden, dass die Dokumente gleich in der dazugehörenden Anwendung angezeigt werden.

image

Konkret geht es um den HTTP Header “Content-Disposition: attachment; filename=[filename].pdf”, welcher bei der Einstellung “Strict” angefügt wird und dazu führt, dass der Browser den Speichern-Dialog zeigt.

25 August 2010

Fehler 0x80131904 in SharePoint 2010

Beim Entwickeln einer SharePoint Solution unter Windows 7 habe ich bei allen möglichen Aktionen folgende Fehlermeldung erhalten.

<nativehr>0x80131904</nativehr><nativestack></nativestack>

Während ich zuerst den Fehler bei falschen Site Definitions oder Features suchte, brachten mich die Event Log Einträge auf die richtige Spur. Auf meiner Development Maschine läuft nur ein SQL Express Server und die Content Datenbank hat das Limit von 4 GB erreicht.

Durch Ändern der SQL Edition (z.B. SQL Server Developer Edition) oder durch eine Aufteilung der Site Collections auf mehrere Content Datenbanken kann man das Problem umgehen.

03 August 2010

Customize rich text editor in SharePoint 2010

If you want to customize the OOTB Rich Text Editor in SharePoint 2010, without changing the core4.css, and without the SharePoint default Styles, you can do it as following.

This is an example to customize the following Dropdowns:

  • Styles
  • Markup Styles
  • Font Size
  • Font Face
  • Highlight Color
  • Font Color

1
Set the PrefixStyleSheet-Property of the RichHtmlField. The classname has to be lowercase!

<PublishingWebControls:RichHtmlField id="Content" FieldName="PublishingPageContent" runat="server" PrefixStyleSheet="my-style-must-be-lowercase"/>

2
Create a new Stylesheet, for example with the name “MyRichHtmlStyles.css” and define all the Styles you need for the Dropdowns. For example like the following pattern. The -ms-name Propertie define the visible name in the Dropdown.

For the Markup-Dropdown

H1.my-style-must-be-lowercaseElement-H1
{
-ms-name:"My Heading";
font-size:4em;
font-weight:normal;
font-family: Impact;
}

For the Style-Dropdown

.my-style-must-be-lowercaseStyle-Normal-1
{
-ms-name:"My Normal";
font-family: Impact, Arial, sans-serif;
font-size: 8pt;
color: #676767;
background-color: #fff;
}

For the Font-Size-Dropdown

.my-style-must-be-lowercaseFontSize-1
{
font-size: 36pt;
}

For the Font-Face-Dropdown

.my-style-must-be-lowercaseFontFace-1
{
-ms-name:"My Impact";
font-family: Impact;
}

For the Font-Color-Dropdown

.my-style-must-be-lowercaseForeColor-1
{
-ms-name: "";
-ms-color:"Dark Red";
color: darkred;
}

.my-style-must-be-lowercaseThemeForeColor-1-0
{
/* [ReplaceColor(themeColor: "Light1-Lightest")] */ color: #F2F2F2;
-ms-name:"Light 1 Lightest";
/* [ColorName] */ -ms-color:"White";
}

For the Highlight-Color-Dropdown

.my-style-must-be-lowercaseBackColor-1
{
background-color: darkred;
-ms-name: "";
-ms-color:"Dark Red";
}

.my-style-must-be-lowercaseThemeBackColor-1-0
{
/* [ReplaceColor(themeColor: "Light1")] */ background-color: #FFFFFF;
-ms-name:"Light 1";
/* [ColorName] */ -ms-color:"White";
}

3
Include your new Stylesheet in the Masterpage or in the Pagelayout, for example as follow.

<SharePointWebControls:CssRegistration ID="CssRegistration3" name="<% $SPUrl:~sitecollection/Style Library/~language/MyRichHtmlStyles.css %>" runat="server"/>

After you delete the browser cache, you should see the new entries in the Dropdowns.

With this solution you can add each rich text editor his own styles – if necessary.