Tuesday, March 25, 2014

SharePoint: Adding hyperlinks to document libraries

Sometimes you have external content that you would like to make available from your document library without uploading a file. Examples include documents in other SharePoint sites or libraries, and even links to other web pages including SharePoint pages and external web sites.

Turns out SharePoint already has this built-in, just well hidden. There is a built-in Content Type called "Link to a Document". Just add this to your library and then just click the "New" dropdown and select "Link to a Document"! It will simply ask you for a document name and url. You can supply a URL to anything that starts with "http://", including both SharePoint documents and external web pages. It does not support a link to a network share such as "\\myfileserver\folder1\somedoc.doc".
  1. Display your library (Example: Shared Documents)
  2. Click Settings and Library Settings
  3. Click Advanced Settings
  4. Check "Allow management of content types" and then OK
  5. In the Settings page scroll down to Content Types and click "Add from existing site content types"
  6. Select "Link to a Document", click Add and then Click OK
  7. Go back to your library and click the New dropdown and select "Link to a Document"
  8. Enter a display name (Document Name) and the URL (must start with http://) and click OK
So how does it work? The Content Type has a template that is an ASPX page that contains a server side control named SharePoint:UrlRedirector. When this page is rendered it simply redirects to the address listed in the items URL property. Also experiment with adding these built-in content types to your library:
  • Basic Page
  • Web Part Page
  • Dublin Core Columns (Do a web or wikipedia.com search for "Dublin Core")
  • Picture
You can also add customized folders to the New dropdown. See here. Need to add custom columns / meta data to any of the above? Just create a new Content Type based on one of the above and add it to your library. See here.

Note:
First Enabled "SharePoint Server Publishing Infrastructure" features under in Site Action --> Site Settings --> Site Collection Administration

Wednesday, March 19, 2014

Intermittent InfoPath Forms Services Error

No errors were logged in Event Logs. We have identified the root cause of the problem to be connectivity with SharePoint User Profile web service as we are using it to populate the properties of logged-in user at form-load.
On the other hand, this seems to be an issue only in a specific environment. So, we wanted to check the settings on the environment.
Resolution Steps:
1) Made sure all the data connection files have the environment specific List GUIDs, URLs and so on
2) Made sure all the settings related to InfoPath Forms Services under Central Admin are proper: Enable web service proxy, Enable cross-data connections, Disable Anonymous access
3) Made sure all the relevant user profiles are properly imported under SSP
4) Made sure that the authentication Loopbackcheck registry entry is disabled on the WFE server
Disable the authentication loopback check
Re-enable the behavior that exists in Windows Server 2003 by setting the DisableLoopbackCheck registry entry in the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa registry subkey to 1. To set the DisableLoopbackCheck registry entry to 1, follow these steps on the client computer:
  1. Click Start, click Run, type regedit, and then click OK.
  2. Locate and then click the following registry subkey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  3. Right-click Lsa, point to New, and then click DWORD Value.
  4. Type DisableLoopbackCheck, and then press ENTER.
  5. Right-click DisableLoopbackCheck, and then click Modify.
  6. In the Value data box, type 1, and then click OK.
  7. Exit Registry Editor.
  8. Restart the computer.
5) Made sure the alternate access mappings or managed paths are not breaking the web service calls in the interim
None worked. Finally, we have added a host file entry on the WFE server (we have only one WFE in our case) to point to its own IP, did a IIS reset  and it worked.
I have actually found this resolution on one of the blogs:
If the WFE servers are load-balanced, we need to add a host file entry on WFE pointing to its own IP on each of WFE. This is to deal with a known issue with InfoPath browser forms; all browser form calls to SharePoint web services will be made to the current machine that invoked the form.

-----------------------------------------------------
I recently came across this baby quite frequently when developing a form that used the user profile web service to automatically populate a ‘contact information’ section. For step by step instructions on how to achieve this, check out Itay Shakury’s terrific blog here: http://blogs.microsoft.co.il/blogs/itaysk/archive/2007/04/05/InfoPath-_2D00_-Get-the-current-user-without-writing-code.aspx
Anyway, despite this solution working for me on a single server environment, when I migrated it to a multi-server farm (NTLM) it intermittently stopped working. Although it didn’t seem necessary as the web service was a local resource rather than an external one; I looked into UDC files and Administrator approved form publishing. The authentication token was obviously being lost between serving the form and making the request to the web service because I was seeing these kinds of errors in the logs:
04/15/2008 17:01:05.39 w3wp.exe Forms Server Forms Services Runtime – Data C 82fy Warning The following query failed: GetUserProfileByName (User: ***, Form Name: ***, IP: , Request: *** Form ID: urn:schemas-microsoft-com:office:infopath:***, Type: DataAdapterException, Exception Message: The remote server returned an error: (401) Unauthorized. The remote server returned an error: (401) Unauthorized.)
After some digging through the server logs it became clear that the web service request was being sent via the load balancing server which was assigning it to 1 of the 3 MOSS servers in the farm. If the server that was serving the form got the request, the form worked perfectly and displayed the user details but if another server received the request then the error above was displayed because the server had no idea where the original request was from.
So after playing around with the web service data connection for a while- trying to use localhost or the server name instead of the host header (which Forms Services doesn’t like), I finally added a simple entry to all 3 server hosts files and mapped the host header name to 127.0.0.1. This ensured that once a server was assigned a request by the LB, any secondary requests to a farm resource would then be served by the same server (localhost) instead of being directed back to the LB.

Monday, February 24, 2014

SharePoint 2010 - List inline editing

SharePoint 2010 - List inline editing

How to enable inline editing on list.
1. Go to the list and click on the List in the Ribbon.
2. Click on the "Modify this View"
clip_image002
3. Go to the button and expand "Inline Editing", click the "Allow inline editing" checkbox on. And click on the OK button.
clip_image004
4. Go back to the list (the modified view) and now there is a little 'create new list item' icon at the button of view.
clip_image006
5. Click on the create new list item icon and a inline form is show. Fill out the required fields and click on the save icon.
clip_image008
6. And vola, you just create a list item through inline editing :)
Change this settings through API
Find the view (SPView) you wish to change and update the InlineEdit property with the text string TRUE
Remember to .Update() the SPView after updating the property.

Thursday, February 13, 2014

Generate Auto increment number of repeating section infopath

1. Open your infopath form.
2. Add an column named is Sr. No in your repeating table/section.
3. Add a textbox control in the column.
4. Right click on textbox say Textbox Properties.
5. Simply add the following formula to the Default Value field,

count(../preceding-sibling::*[local-name() = "YourRepeatingGroupName"])

OR

count(../preceding-sibling::*) + 1



Thursday, February 6, 2014

Move Sharepoint server from Domain to another domain

Move SharePoint server from Domain to another domain

Move/migrate Sharepoint server  from one domain to another domain
Example: Move sharepont fron mumbai domain to chennai domain.
1.       We have to take the backup of all sharepoint databases and all webconfig and if we have any customization.
2.       Need to take the list of web application pool identity Accounts details.
3.       Now Remove the mumbai domain and join to new domain chennai.com
4.       Create the sharepoint account and add that sharepoint Account to the below groups in the sharepoint machine.
Local administrators,WSS_WPG,WSS_admin and IIS_WPG

5.       Now we need to do 3rd step in SQL machine and add the sharepoint Account in local administrator group and  Open the sql management studio and do the following steps
5a. create a new login for sharepoint account and assign the following roles DB creater and security Admin.
               5b.  Give the DB owner permission for the sharepoint account  for all sharepoint DB using user Mapping option in the user Account property.
6.       Now login to the sharepoint server using sharepoint Account and run the following stsadm commands
6a. stsadm.exe –o updatefarmcredentials –userlogin chennai\testspuser –password test@123
6b. stsadm.exe –o updateaccountpassword –userlogin chennai\testspuser –password test@123 -noadmin
6c. stsadm.exe –o spsearch –farmserviceaccount chennai\testspuser –farmservicepassword test@123
6d. stsadm.exe – o osearch –farmserviceaccount chennai\testspuser –farmservicepassword test@123
6e. the below command for SSP
      Stsadm.exe –o editssp –title SSPname –ssplogin chennai\testspuser –ssppassword test@123
Finally restart IIS with noforce

7.       Check that central admin pool and Sharepoint service account are changed using IIS and Service manager.

8.       Now open the central admin and change the all web application pool account and change the site collection administrator credentails

9.       Then migrate the old  domain users to new domain account using the below stsadm command
9a.stsadm.exe –o migrateusers –oldlogin mumbai\testuser –newlogin chennai\testuser -ignoresidhistory

Sunday, February 2, 2014

InfoPath form to upload an image to SharePoint (no code)

InfoPath SharePoint integration can be implemented in several ways. You can integrate InfoPath 2010 with SharePoint 2010 through SharePoint web services, SharePoint workflows, SharePoint event handlers, or by writing code in InfoPath forms that makes use of the SharePoint client object model or the SharePoint server object model.
Where the two latter means of integration are concerned, you will always have to give your form Full Trust to be able to call those two object models.
If you do not want to write code to integrate InfoPath with SharePoint, your best bet is to explore what theSharePoint web services have got to offer.
Where the uploading of images are concerned, you can either write code to upload images to SharePoint document or picture libraries, or you can use one of two web services: 
1. SharePoint Copy web service, or 
2. SharePoint Imaging web service without having to write code.
Both SharePoint web services offer similar functionality, however, the Imaging web service can be used to upload an image to a SharePoint picture library, while the Copy web service can be used to upload an image to any SharePoint document library.
In addition, if you want to create an InfoPath form that can upload one image to a library, you do not have to write code to get such functionality, and you can use either the Copy web service or the Imaging web service to do so.
Because the Copy web service is a bit more involved than the Imaging web service, this article shows you how to use the Imaging web service to upload an image from an InfoPath form to SharePoint. However, the same techniques you use for hooking up the Imaging web service to an InfoPath form using an InfoPath data connection and rules, would apply to the Copy web service.


In the following 4-minute InfoPath 2010 tutorial video, I show you how easy it is to use rules to connect an InfoPath form to SharePoint's Imaging web service to be able to upload an image to a SharePoint picture library using an InfoPath browser form or Filler form.

Tuesday, January 28, 2014

Difference between SharePoint 2010 and MOSS 2007


SharePoint 2010
MOSS 2007
Look and feel
In SP 2010 look and feel perspective there will be a ribbon where we can have a look and feel like Office 2010
In MOSS 2007 there is no ribbon
Deployment of Web parts
In SharePoint 2010 deploying custom web part is pretty simple i.e. just right click on the solution and click Deploy
In MOSS 2007 you need to drag the dll either to bin or GAC
Silverlight Application
In SP 2010 we can create a Silverlight application directly from Visual Studio 2010
In MOSS 2007 we have to create a web part to host Silverlight application
Shared Database & Service Application
In SP 2010 there is no SSP but there is a concept of Service Application like BCS as one service application, Excel Services as another service application, User Profile as separate service application
General idea is that you have an application for each service, rather than one application with lots of service crammed into it
Own database rather than shared database in SP 2010
In MOSS 2007 we have SSP where we can work around with BI,Search Settings, User Profile Import, Excel Services, Info path
In Database also we use to have separate area for SSP stuff
Easy exports/imports between the forms
In SP 2010 we can update existing information
In MOSS 2007 through we can just read the information and we can't update the existing services
Improvement in Deployment
In SP 2010 we can Deploy through Farm based and solution based solution in SP 2010
In MOSS 2007 there is no such option
Alerts





In SP 2010 alerts were sent only through emails and send alerts to mobile device as SMS message. A New property delivery channel is introduced to indicate, whether the alerts is delivered as Email or an SMS message.
In MOSS 2007 alerts were sent only through emails.
Improvements of events
New events for list creation and web creation
No List and web events in MOSS 207
Getting Items from the list
In SP 2010 through object model we can fetch multiple list data by LINQ query and object model
In MOSS 2007 we can fetch only through object model
Rating
In SP 2010 we can have rating column by default
In MOSS 2007 we should install the feature that is available in codeplex to have rating
Key Word Suggestions
In SP 2010 we can have keyword suggestions
In MOSS 2007 we don’t have any keyword suggestions
Taxonomy
In SP 2010 we can create Taxonomy by using Managed Metadata service
In MOSS 2007 we don’t have taxonomy
Other Features
In SP 2010 we have Power Shell Scripting, JavaScript object model, Chart Web Parts
In MOSS 2007 we don’t have Power Shell Scripting, JavaScript object model, Chart Web Parts
Running stsadm command
In SP 2010 we have to go 14 hive path to run stsadm command
In MOSS 2007 we have to go 12 hive path to run stsadm command