|
|
I had set up a small Sharepoint 2010 farm, DB server, App server and WFE. The User Profile Service Application was running, and profile synchronization worked fine. However, I also wanted to export some properties back to AD, in this case the users Picture.
I mapped the Picture field to the AD attribute thumbnailPhoto, set the direction to export and started a Full Synchronization. (This blog post provides excellent information)
Nothing happended. (Well, the sync went just fine, but the Picture field was not populated. The problem was I couldn’t see any errors either, the export was not just happening. First I assumed this was a permissions issue, but then I should’ve seen errors in the logs, and granting permissions de luxe for the sync account didn’t help either. I opened miisclient.exe (no errors here neither), and when viewing a user profile that had set the Picture field, FIM still reported “Initial value” as empty. So I took a look in the Sync DB and viewed the “dbo.mms_metaverse”-table. Here I had a column “SPS_MV_OctetString_PictureURL”, but this was also empty for all users. Hmmm. Strange, the picture was in Sharepoint, I could see it with my own eyes, but it just wasn’t syncing.
Solution:
In the C:\Program Files\Microsoft Office Servers\14.0\Synchronization Service\Bin\miiserver.exe.config file, add the following lines:
<system.net>
<defaultProxy>
<proxy usesystemdefault = “false” proxyaddress=”http://proxy.dummy.com:8080″ bypassonlocal=”true” />
</defaultProxy>
</system.net>
Then I restarted the server (the FIM services would probably have been enough), ran a full sync and the pictures was being exported. Somehow a rule on this network caused FIM not to get the changes from the User Profile Service Application (strange though, that import including custom fields and mapping worked fine). Anyways, inserting this dummy proxy made it work.
Update: The cause of this issue was that the “User Profile Service” under “Services on Server” was running on both application server and web front end. I re-did everything, and before creating the User Profile Service Application I stopped the “User Profile Service” on the Front End. I also created a new application pool just for the User Profile Service (running under the Farm Account) when creating the User Profile Service Application. Now I had no problems removing the Farm Account from local administrators prior to running a succcessful sync.
So, if you want the User Profile Service Application to run only on your app server, make sure the User Profile Service is only running on the app server. Also, by creating the application pool and using it only for this purpose, I made sure that this application pool was only created on the app server.
The User Profile Service in Sharepoint 2010 provides some excellent functionality, but to sum up how it is to install and configure: slow and shitty (pardon my French).
I set up a small farm (Windows Server 2008 R2, 1 SQL, 1 Application Server, 1 Front End) and set up the User Profile Service Application according to “best practise” which includes removing the Farm Account from Local Administrators after setting it up. Everything works like a charm – until I reboot the machine. Then I get this error in the Event Log after each reboot (or restarting the ForeFront Identity Manager Service). When starting a User Profile Synchronization from Central Admin (Full or Incremental), nothing happens – Profile Synchronization Status is just idle. The services both in Central Admin and services on server are running just fine. All I can see are this, this, this, this, this and this error in the Event Log on the App server, and this error on the Front End.
I had of course read this and this post till my eyes were sore.
Solution: Finally, I added the Farm Account back as Local Admin both on App Server and Front End, rebooted and everything works. Far from ideal, but when I seem to be having a functional User Profile Service Application, from now on I won’t touch it…:)
Continue reading →
Language pack for Sharepoint Server 2010 in Norwegian (and some other new languages) is now available.
Download here: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=046f16a9-4bce-4149-8679-223755560d54
For a couple of weeks Sharepoint Foundation, the successor of WSS 3.0 and the “free” version of Sharepoint, has been available for download.
You can download the final version here and try it out for yourself: http://www.microsoft.com/downloads/details.aspx?FamilyID=49c79a8a-4612-4e7d-a0b4-3bb429b46595&displaylang=en
Did you know that you easily can filter your Sharepoint list or library with values in your URL? This means that you can create a “view” without really creating a view. To spice up your GUI you can for instance insert some graphical boxes above your document library view that filters with URL values. Last, but not least, you can use this method to filter the content of all web parts on a page, you are not limited to filter a view in a document library (after all, a view is just a web part on a .aspx page). You can filter on a built-in column, or a column you have created yourself.
Example:
Continue reading →
When naming your files, folders (but you usually don’t want folders anyway) and sites, avoid these characters:
& ~ # % * ? / + | ” . _ { } \ : < >
Underscore is to be avoided as the first character in the name, and multiple consecutive periods should be avoided. In columns and document library names I also prefer to avoid Norwegian letters like æ,ø and å, and spaces. I rather rename the column or document library afterwards, getting a nice looking name combined with a coder-friendly URL (I get no sleep when I see URL’s like bad%20url.)
Sharepoint 2010 has a very useful function called the Developer Dashboard. When you enable this, you see what kind of resources the different requests on the page uses, the different queries etc.
The dashboard can be always on, off or on demand. The latest option is the most useful for most scenarios, and gives you a button on the page that you can click on each page individually to view the dashboard. This way, you can even use it in a production environment (of course not for testing new functions, you have a development, testing and staging platforms for that, right?). To enable the dashboard all you have to do is run this simple stsadm command. You can also use Powershell if you prefer that.
stsadm -o setproperty -pn developer-dashboard -pv ondemand
Update: Marc D. Anderson has now updated the Jquery files, so if you use the latest version this won’t be an issue anymore and you can disregard this post.
I have previously written a walk-through about how to implement a relationship between two columns:
http://www.uccorner.com/54/sharepoint/cascading-drop-down/
My friend and excellent SharePoint-er Jasmine Garry found ut that under certain circumstances, this approach did not work. To be more precise, if your site is in another language than English, and your column in the list where the relationship is (i.e. “Vacation Plans”) allows for multiple select, you get this error:
Message: Column not found on page
The reason for this is that the Jquery file uses hard-coded English terms to create a string that works with multiple select.
Solution:
First, in the code for your custom NewForm (the page where you are getting the actual error), look for a select tag and find the one where title=”City possible values”. Possible values will be in your own language. Now open the jquery.SPServices-0.4.8.min.js-file (or the version you are using), replace all occurrences (there are several) of possible values with the equivalent from your own language that you just found in the source code for the page.
Now, do the same procedure for “selected values” and you are good to go.
This is a workaround, and is expected to be fixed in a later release of the Jquery file by Marc D. Anderson.
Thanks to Jasmine Garry and Marc D. Anderson for figuring this out: http://spservices.codeplex.com/Thread/View.aspx?ThreadId=85478
Recently there was a request to rename a server running Sharepoint 2010 Beta (Could just as well have been MOSS 2007 / WSS 3.0 though). This server was running SQL on the same box, but the solution here can do the trick for many renaming issues.
So what happens when you rename your server and gives it a new hostname? Well, Sharepoint doesn’t like it. This is the message I got:
Cannot connect to the configuration database.
Oops. That’s a message you do NOT want to see.
So you try to enter Central Admininistration and get “Internet Explorer cannot display the webpage”. Well, as soon as you take a look in the address field in the browser, you see why: the shortcut pointing to Central Administration points to the wrong URL (e.g. oldservername:10000, not newservername:10000, assuming Central Admin runs on port 10000). So you type newserver:10000 and cross your fingers. Sorry, you get the same “Cannot connect to configuration database”.
But fear not, you can fix this! First of all, rename your server back to the old server name and restart, and everything will work again (you can take a deep breath now). But you still want to rename the server, right?
Solution
You have to reconfigure Sharepoint and tell it where it can find the databases. If you already have renamed the server, you can probably do the same thing as described below, but the best is to do this in advance. Besides, nothing works anyway right, so reverting the name temporary with the required restart won’t do any harm and give you time to the aforementioned deep breath. (If you try to fix this with adding an entry with the old server name in your host file, you’ll just get “An unexpected error has occured” or the same “Cannot connect to the configuration database”).
This is what you do:
- Run this stsadm command: stsadm -o renameserver -oldservername oldservername -newservername newservername.
- Rename and reboot server.
- Enter Central Admin and look over all your Alternate Access Mappings (you’ll have to change to the new server name everywhere the old server name still shows).
- I didn’t have this problem with 2010, but you might have to check and possibly reset your site collection admins. I wouldn’t be surprised if you’ll have to go over your host names in IIS in case you are using host headers also.
The request for Cascading Drop Down, filtered drop down, dependent drop down or what you call them is one of the most common requirements from customers. This rather basic functionality is surprisingly not implemented in either WSS 3.0 or MOSS 2007.
Update: This also works in Sharepoint Foundation (2010). I have created a new post for 2010 here.
What is Cascading Drop Down?
You have two columns in your Sharepoint list, Country and City. Both are lookup/drop down columns. When you choose a country in the Country Drop Down, you only want to see the cities in this country available in the City Drop Down column. This of course makes life easier for the end user, and improves data quality.
Solutions en masse
There are however lots of solutions for this. Datacogs’ Cascading Drop Down is well-known, and various improved versions like SharePoint Cascading Drop Down List (With Filter) Field Type and Query Based Lookup Field Control (Custom field controls), both on Codeplex. These are all free, you can also find solutions out there you have to pay for. I have tried several of these, however good work these guys are doing making this for free, there are some issues that keeps me from using them, like annoying page refresh, creating lots of versions of the list element and the general problems you can get with restore/moving/upgrading data that is not standard Sharepoint.
The solution
Instead, I have used this solution with success. The list is still standard Sharepoint, which gives great flexibility and stability. This way, the filtering is done in the forms for creating and editing elements. Because of this, you don’t even have access to the server to implement this. I have used this solution both in document libraries and in regular Sharepoint lists. Continue reading →
|
|