środa, 23 listopada 2011

Smutne i ważne! Nie dla wszystkich szablonów stron można zastosować wielojęzykowy interfejs.

Pisze o tym Toni Frankola na swoim blogu: Not every SharePoint site template supports Multilingual UI (MUI)!

Lista szablonów stron, dla których jest to niemożliwe:


  • Basic Meeting Workspace
  • Blank Meeting Workspace
  • Decision Meeting Workspace
  • Social Meeting Workspace
  • Multipage Meeting Workspace
  • Blog

środa, 7 września 2011

Setting audience for Navigation Link can be tricky


Setting audience for Navigation Link seems to be pretty simple task. Yet one day I created dedicated SharePoint group for audience to global navigation item leading to other site collection and … it did not work.
SharePoint audience group had one member only: it was AD security group. It occurred that SharePoint audience group needed “Restricted Read” permission for the site containing navigation item. This was strange for me, because all the members of the AD security group had permissions even of higher level for this site. Well… another tricky SharePoint thing.
You can ask why not to grant permission directly to the AD group? Yes, I did it and it worked. But then I discovered that AD group was sort of unrecognizable for SharePoint:


And it still worked but to change the Navigation Link I had to specify the AD group again! 
It was annoying enough to select solution with SharePoint group rather. 

środa, 6 lipca 2011

CustomErrors mode

During SharePoint development you can get this kind of screen:


There are two places you should look for web.config file and correct the setting to
<customErrors mode="Off" />
to get meaningful details of your error displayed.

First one is obvious: your site's web config. Open the IIS Manager and explore your site in order to edit web.config file:

Second one had made me think for a second and then I decided to create this post. As I was working on application page which was deployed down in _layouts folder, I found there another web config file to be corrected:

Update for SharePoint 2013:

Expand _layouts folder and find the 15 subfolder: there you have to correct anothet web.config file!

wtorek, 21 czerwca 2011

Problem z dostępem do UserProfileService z formularza InfoPath

Sytuacja wyglądała następująco:
  • Dla listy na SharePoincie 2010 zmodyfikowałem istniejący formularz w programie InfoPath
  • Utworzyłem DataConnection do UserProfileService, ponieważ potrzebowałem w formularzu informacje o zalogowanym użytkowniku.
  • Wszystko pięknie działało.

W czasie wdrożenia podjęto decyzję aby udostępnić SharePoint WebApplication pod nowym adresem, utworzyłem więc Alternate Access Mapping, administrator sieci przypisał ten nowy adres do IP serwera i aplikacja zaczęła hulać... za wyjątkiem formularza korzystającego z UserProfileService.

Komunikat błędu głosił że jest problem z WebService'm. UlsViewer precyzował, że chodzi o brak autoryzacji na serwerze. Kod błędu 401.

Przerobiłem więc DataConnection w formularzu InfoPath na ConnectionFile, umieszczone w bibliotece DataConnections w tym samym Site co lista:



Teraz już wiem że nie miało to żadnego znaczenia.

W Central Administration > Manage Service Application zająłem się User Profile Service Aplication. W Manage Users Permissions nadałem pełne prawa grupie do której należeli wszyscy użytkownicy aplikacji SharePoint.

Nie pomogło.

Na trop rozwiązania naprowadził mnie fakt, że będąc na serwerze SharePointa nie mogłem otworzyć aplikacji pod nowym adresem zdefiniowanym w Alternate Access Maping, mogłem wejść tylko na stary adres, składający się z nazwy komputera  i numeru portu.

Rozwiązanie jest opisane tutaj:  http://support.microsoft.com/kb/926642 i wydaje się mieć niewiele wspólnego z przedstawionym problemem Zwłaszcza że mój serwer to Windows 2008 R2. Sądzę że przyczyną problemu jest to, że Alternate Access Maping spowodował „double hop", z którym SharePoint z powodu błędu istniejącego w systemie operacyjnym nie umiał sobie poradzić. Zresztą pal licho przyczynę, gdy mamy rozwiązanie:



1.       Kliknij Start, Uruchom, wpisz regedit, i kliknij OK.
2.       Przejdź do następującego klucza w rejestrze:
       HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
3.       Kliknij prawym przyciskiem na Lsa, wybierz New, a następnie DWORD Value.
4.       Wpisz DisableLoopbackCheck i naciśnij Enter.
5.       Kliknij prawym przyciskiem na DisableLoopbackCheck i wybierz Modify.
6.       W polu Value wpisz 1 i kliknij OK.
7.       Jak dla mnie tyle wystarczyło, ale możesz jeszcze zrestartować komputer.

poniedziałek, 30 maja 2011

Problem z otwarciem dokumentu Excela

Problem wygląda następująco:


Inne typy dokumentów (Word, PowerPoint) otwierają się prawidłowo, tzn w aplikacji Office'a. Przed ich otwarciem SharePoint grzecznie pyta, czy dokument ma być tylko do odczytu czy do edycji:


Po pierwsze, upewnij się, że dla biblioteki zawierającej dokumenty Excela sprawiające problemy,       prawidłowo skonfigurowane jest zachowanie podczas otwierania dokumentów w przeglądarce. 

Jeśli chcesz aby dokumenty rzeczywiście otwierały się w przeglądarce, poszukaj informacji na temat Office Web Apps np tutaj: Deploy Office Web Apps lub tutaj Office Web Apps.
Tutaj opisuję co zrobić, by dokumenty otwierały się w aplikacji klienckiej, czyli w tym przypadku w Excelu.

Wejdź zatem do ustawień biblioteki, następnie wybierz Ustawienia zaawansowane i tam znajdziesz sekcję:

W tym przypadku dwa ustawienia są prawidłowe: Otwórz w aplikacji klienckiej oraz Użyj domyślnego ustawienia serwera.

Jeśli to nie wystarczy, musisz zajrzeć do ustawień Site Collection i otworzyć Funkcje (Site collection features). Tam należy aktywować "Domyślne otwieranie dokumentów w aplikacjach klienckich":


Teraz koniecznie zrestartuj IIS i dokumenty Excela powinny otwierać się prawidłowo :)



Visual Studio 2010: Sharepoint Connection Error

Uruchomiłem Visual Studio 2010, wybrałem utworzenie nowego projektu SharePoint2010 -> Visual Web Part i przy próbie połączenia się ze stroną SharePointa ...

... otrzymałem komunikat "Sharepoint Connection Error"
Zacząłem sprawdzać posiadane uprawnienia: na maszynie miałem prawa administratora, był tam zainstalowany SharePoint Server gdzie byłem członkiem grupy "Farm Administrators". Byłem również członkiem grupy "Site Collection Administrators" strony z którą chciałem się połączyć. Gdzie tkwi więc problem?

Bazy danych!

Rozwiązaniem okazało się utworzenie dla mojego konta loginu na serwerze bazy danych SharePointa i utworzenie user mapping z rolą db_owner dla baz:

  • konfiguracyjnej
  • AdminContent
  • bazy z zawartością dla mojej strony.

piątek, 18 marca 2011

Sprawdzanie poprawności kolumny / Column validation

Sprawdzanie poprawności kolumny odbywa się za pomocą formuł. Musisz wejść do ustawień listy a następnie w sekcji "Kolumny" kliknąć na kolumnie dla której chcesz dodać sprawdzanie poprawności. Pojawi się formatka na której ostatnia sekcja to właśnie "Sprawdzanie poprawności kolumny" (Column validation):
Należy teraz wprowadzić formułę oraz komunikat dla użytkownika, który pojawi się gdy formuła nie będzie spełniona (zwróci wartość FALSE).

Formułę należy rozpocząć od znaku "=". W formule można odwołać się do wartości danego pola za pomocą nazwy kolumny, np:

=Title = "Założenie użytkownika"

Nie można natomiast odwoływać się do wartości innych pól. Jeżeli chcesz zbudować formułę walidującą, która będzie operowała na więcej niż jednej polu listy, musisz zrobić to w innym miejscu: w ustawieniach listy  w sekcji "Ustawienia ogólne" wybrać punkt "Ustawienia sprawdzania poprawności" (Validation settings).

Warto jeszcze zwrócić uwagę na składnię operatorów logicznych:

=OR(Title="Założenie użytkownika"; Title="Usunięcie użytkownika")

=AND([Cena towaru]>100; [Cena towaru]<1000)