If you like my videos, please subscribe to my YouTube channel, there will be more videos soon!
Thanks for watching 🙂
It will be displayed with that Title in the web part drop down under Display Templates in the web part:
I want to change the Paging icons, because they don’t look very nice:
The css classes needs to be changed inside the Control template, and modify the classes as you wish and refer to it from the new Control template. Might not be the most sexy buttons, but at least they look a bit more like my color theme on the site:
Then scroll down to the remarked js code and add a new variable after “Line 2” and name it to “Line3”. That is in the following places in the code::
Restored a copy of the 2010 database for MySites to my test server
Removed the content db in CA
Detached the db in SQL
Attached the restored copy in SQL
Added the content db in CA
Do an iisreset
Now ready for some test runs…
Test-SPContentDatabase -name MySites -webapplication https://server:3334 | out-file e:upgradeupgrade.txt -width 500
Got some errors about missing webparts or customizations which is fine, I don’t want to use them anymore anyway. Most errors are regarding the office web apps though but none of them is blocking upgrade so I will go ahead:
Category : MissingFeature
Error : True
UpgradeBlocking : False
Message : Database [MySites] has reference(s) to a missing feature: Id = [893627d9-b5ef-482d-a3bf-2a605175ac36], Name = [PowerPoint Mobile Viewer], Description = [Enables viewing of PowerPoint presentations in the mobile web browser], Install Location = [MobilePowerPointViewer].
Remedy : The feature with Id 893627d9-b5ef-482d-a3bf-2a605175ac36 is referenced in the database [MySites], but is not installed on the current farm. The missing feature may cause upgrade to fail. Please install any solution which contains the feature and restart upgrade if necessary.
When this was done, I just detached the db from SQL, copied it to my new SP2013 server and then it is ready to be migrated.
Did the same on the SP2013, that is remove the content db from the MySites web app. Attach it on the SQL and then in CA again:
But then you cannot add the content db directly from CA, you need to mount it:
Mount-SPContentDatabase “MyDatabase” -DatabaseServer “MyServer” -WebApplication http://server:5230
After mounting I got this message
Yeah I have a look later, I think I know what the error messages is. I had a customized template for the MySites on my 2010 server and that is not included in this upgrade. Will just skip it and proceed.
Made an iisreset
Got access denied when trying to access MySite (the old classic Access Denied message from 2010) as my self:
Signed in as the administrator and that MySite which I could access (so only Admin could access MySites right now)
Got the message about upgrading the site collection so I did that by clicking “Start now” up in ribbon:
Upgrade-SPSite http://server:5230/personal/lr00554 -VersionUpgrade
Tried to access my personal MySite again, but still access denied “Site has not been shared with you”
I looked at the Authentication Provider for my MySite web app and that said “Claims based authentication” but maybe all site collections are not included? My last test was to upgrade the authentication for entire web application including all migrated mysite site collections.
Convert-SpWebApplication -Identity “http://server:5230” -To Claims -RetainPermissions [-Force]
And TADA, the new MySite is up and accessible!
I have provided Metalogix with detailed descriptions of the errors both in replication of permissions, workflows and InfoPath replication. Their product manager have interviewed me to hear my opinion on the UI and I had a lot of improvement suggestions after having using it for half a year. But despite that, our problems are still there and I have been very patient but I can feel it running out now and it is getting really annoying instead. It is taking TOO much of my daily work and the users are annoyed that they STILL need to surf into our local office server to be able to fill in their Reimbursement forms etc (not to mention the confusion as they have to surf into ANOTHER url to do some stuff). I had hoped all this could be available on board when the replication was installed, which is almost a year ago now. I do understand that our third party web parts cannot be replicated, that is fine but COME ON! – forms using Data Connections which is by design in InfoPath? Lists with customized forms are not replicated in full (the ifs files are missing)? Permissions with only SP groups and AD groups in them? Workflow that sends repeated mails from the same form to users so they are SPAMMED and mail me in desperation to stop the replication, because it loops the packages and constantly “updates” the list items (when they are in fact NOT updated, just sent back and forth between the servers) but makes the workflow engine think they are updated items? List/document items with versioning enabled generates so many packages that I need to disable the replicator and it takes forever to clear the queues?
And not only the time at work… all my sleepless nights when I worry about this shit, afraid that users can see what they shouldn’t and the weekends I have had to spend solving things in panic or with a restore, instead of relaxing. All the hours where I have had to add back lost functionality, over and over!
And the people working at Metalogix are great and tries to help in all way, and I feel that they really take our problems seriously. But that does not help my frustration unfortunately, and they don’t seem to test real life scenarios since they obviously not had tested an InfoPath form that has Data Connections, and that is often the reason why you use IP in the first place, otherwise you could just use the simple lists.
But, if you want to fully use the UPS and maybe import extra attributes from the AD like user profile pictures, employee information etc then you must setup the User Profile Synchronization import. And I want to do that, especially import the photos, since I have a profile picture of the user up in the right corner of our intranet. This means a bit more work, but it is still quite easy to configure and setup:
Start with creating the User Profile Service Application in “Manage service applications” and map it to a new application pool (which I add the farm account to). You need to have that user in the local admin group on your server also. And yes, you will have a message about this in the Health Analyzer but just ignore that.
When that is done, go to the Services on Server and launch the two services “User Profile Service” and “User Profile Synchronization Service”. Enter the farm admin password on the page where you launch the second service. Now the last one will take some time to start, just leave it for 5-10 minutes and it will be started. One important thing I learned at the SPEVO13 conference, at a session by Spencer Harbar, was that the field where you enter the farm account password is actually not validated so if you enter an incorrect password there you might run into the famous “hang” when starting this service. So be sure you enter the correct password! I tried it and it does hang AND it did lockout my account until it finally stopped trying (new account policy for some admin accounts at my company) but it really does not tell you that the password is incorrect when you press OK on this page. Bad!!
Anyway, when you have the services started like this you can make an IISRESET:
I always do that, because I know this can give you errors or trouble otherwise when you want to create the AD connection and I am always better safe than sorry.
Now, go back to your User Profile service application and make sure the “Configure synchronization settings” are set to “Use SharePoint Profile Synchronization” and (optional) deselect the “Include existing BCS Connections for synchronization” for now since we don’t use that yet.
To setup the connection to your AD, go to “Configure synchronization connections”. When that is done, we need to setup the connection filters, in the most complicated and non logical way you can think of… to filter out the disabled accounts. Do this:
On your new AD connection, hover it and select “Connection filters”:
Make sure you have the “All apply (AND)” checked
Select “userAccountControl” in the list and wait for it to update the page!
Select operator “Bit on equals” and set the Filter to “2”
Click on “Add”:
If this is enough filters, just click OK to apply.
Now go back to your User Profile Service Application using the breadcrumb…. Hahaha NOT. Spencer made that joke at the SPEVO conference, not sure how many got that… I was laughing anyway!
So go all the way back to your UPS and start the synchronization, and yes it has to be a Full the first time.
Optional: before you start the import you can import some extra attributes from the AD. I want to add the user profile pictures:
Go to the “Manage User properties” and find the one called Picture. Change the settings to “Do not allow users to edit” if you don’t want your users to upload their own pictures (can result in everything from pics of cats, beers, strange positions etc if you allow this!) and then select the “thumbnailPhoto” from the attributes list. “Direction” should be “import” and click on Add:
Now start the full import and the time it takes to import of course depends on how many users you import and how many extra attributes. For me it took about 7 minutes to import 1700 users.
One last thing I do, is to select the User Profiles service app (go to “Manage service applications” view), select the UPS and click on “Administrators”. I add the Search account and set it to “Retrieve People Data for Search Crawlers” so I know that the People search will work also.
One day the replication on one of our servers stopped working. Inbound packages were just stuck in the queue, and when I tested the replication connection I got this message:
“An error occurred while verifying virtual directories on target”:
So I looked in the log files for the replication tool and found this error:
This started a journey of troubleshooting. First I did the standard things:
– ping all possible connections that I could think of that the server would take
– restarted the replication services
– disabled and enabled the replication on the web application
– restarted services again
– rebooted the server to make sure that no stupid updates or anything had made some changes
– checked the proxy settings (there had been a proxy change on all servers) and they were fine
– ran the replication configuration wizard (several times)
– ran the SharePoint configuration wizard (in case some update had made changes, farsighted but you are getting desperate…)
Everything looked just fine but still nothing was working.
When none of these steps work, that is always an indicator that something serious is going on.
I ended up re installing the replication software. But no luck.
The vendor had a look at this, my infrastructure collegues checked that all connections between the servers were working and nothing was blocking anything.
Turns out that there was a setting in registry that pointed to the old proxy IP and it was the farm account that had that setting in the browser. So when that was removed, it all started working again!
So a manual proxy configuration, pointing to an old IP address was the root cause to all this. As soon as that was removed, replication was running fine again.
“Drives used for SQL databases are running out of free space”
And the disk space on that SQL server was of course full, so we had to first expand the disk with an extra 100 GB so that everything started working again. But that is only temporary panic solution 🙂 We also got these messages from the backup:
“Database XXX is configured to maintain transaction logs. Transaction log backups are not being performed. This will result in the log growing to fill all available disk space. Regular log backups should be scheduled or the database should be changed to the simple recovery mode.”
So I changed the Recovery model on the SQL db’s that were listed in that mail, from Full to Simple.
We run daily SQL backups so I believe that Simple recovery model is enough. If I need to restore a site (which is the most common restore scenario, since the Recycle bin was introduced in MOSS I have never had to make a restore for a single document). But I have at least a restore from one day back in history and that has never been a problem for us in restore scenarios. The difference between Full and Simple: to be able to go back to a specific time of failure, which can be done in Full mode.
Recommendation on Technet after switching to Simple recovery model:
Discontinue any scheduled jobs for backing up the transaction log.
Ensure periodic database backups are scheduled. Backing up your database is essential both to protect your data and to truncate the inactive portion of the transaction log.
I found a good explanation of Simple Recovery Model on MSSQL site:
The “Simple” recovery model is the most basic recovery model for SQL Server. Every transaction is still written to the transaction log, but once the transaction is complete and the data has been written to the data file the space that was used in the transaction log file is now re-usable by new transactions. Since this space is reused there is not the ability to do a point in time recovery, therefore the most recent restore point will either be the complete backup or the latest differential backup that was completed. Also, since the space in the transaction log can be reused, the transaction log will not grow forever as was mentioned in the “Full” recovery model.
NOTE: The recommended model would of course be to have a Full recovery model, since you can go back to the single point of failure time, but for us the Simple mode has been enough.
I look forward to hear what others think of this recovery model and if you have other recommended settings that helps running out of disk space 🙂
The challenge is to make the mail look like it does in the list item and with some extra branding added. To make this happen you need to add the HTML code in a very specific way, otherwise it will look like crap and the HTML code will be visible in the mail.
Add the “Send an email” action in the workflow
Click on “Advanced properties” in the ribbon, or hover the action and click on “Properties”:
In there, click on the .. button on the Body row:
Now comes the important part: if you want to add your own css classes in a style tag, you need to remove ALL space in that style tag, otherwise they will be displayed in the mail and css is not incorporated. Like this:
You can have a space before the next .class, that works, but all other spaces needs to be removed.
Then just copy and paste the rest of the HTML code into the body and it should work fine.