Showing posts with label Sharepoint. Show all posts
Showing posts with label Sharepoint. Show all posts

Wednesday, September 10, 2014

Check SharePoint service status using SharePoint object model

By using SharePoint object model we can retrieve the User Profile Service information like User Profiles and user group details from UserProfileManager class. Some times we can see “UserProfileApplicationNotAvailable” error. We can check service availability details using following code block.

public bool IsCurrentServiceisInStart(string serviceName)
{
    bool currentServiceisInStart = false;

    SPService currentService = SPFarm.Local.Services.FirstOrDefault(s => s.TypeName.Equals(serviceName));

    if (currentService!= null )
    {
        SPServiceInstance serviceInstance  = service.Instances.FirstOrDefault(i => i.Status == SPObjectStatus.Online);
        If(serviceInstance !=null)
                currentServiceisInStart=true;
    }

    return currentServiceisInStart;

}

We can check the current service from SharePoint local services by mentioning the service application details as “SPFarm.Local.Services.FirstOrDefault” command in Linq.

We can use this code block while calling SharePoint service application. Hope this will help.

Sunday, September 7, 2014

SharePoint – Back to basics – Impersonate user programmatically

In SharePoint custom development activities, we have to impersonate the user to view SharePoint contents. To impersonate user in SharePoint we need to have the account that having privileges (generally in Run with elevated privileges “System Account” will be used) or user tokens.
To handle with System Account, we can use following code block,

SPSite parentSite = new SPSite(siteURL);

SPUserToken systemToken = parentSite.SystemAccount.UserToken;

using (SPSite site = new SPSite(siteURL, systemToken))
{
    using (SPWeb web = site.OpenWeb())
    {
        // Code to be run
    }
}

We can impersonate the by using following code by getting the user token of the user to switch as shown the code below,

SPUserToken userToken = web.AllUsers[user].UserToken;

// Create an SPSite object in the context of the user
SPSite site = new SPSite(siteURL, userToken)
SPWeb web = site.OpenWeb();

//Add code here.

To run this code, we need to run the code System account


SharePoint custom workflow send email task error: The e-mail message cannot be sent. Make sure the email has a valid recipient

While working with SharePoint custom workflow with Send email task, i am seeing “The e-mail message cannot be sent. Make sure the email has a valid recipient” error in workflow history list every time workflow fired. I was in a confusion that why I am seeing that every time.

Very first time designing workflow I have left all properties for “Send Mail” task empty as I am sending emails through code without interacting any property in Send mail task. I have updated all the properties by creating new Field Properties in the code. But still seeing the same error in workflow history list.

By checking few posts, the error may cause because of two reasons,
  • ·         There is no e-mail in Active directory for system Account.
  • ·         Getting null values for existing properties as not assigning the values.

Here in my case iam getting null values from field properties. So I have updated a dummy email in To field as I am not using the the property anywhere in the code.

Hope this will helps.

Thursday, September 4, 2014

InfoPath error – “Your user name or group membership cannot be verified because the form's security settings do not permit it.”

Working with existing InfoPath forms, while opening the form it is showing error as “Your user name or group membership cannot be verified because the form's security settings do not permit it.” As shown the below.



 We can get this error due to form security error. To fix that we need to add the site to local sites by using the steps below.

Navigate to IE and open Internet Option from IE settings.


In the Security Tab, Select “Local Intranet” option and click on Sites button.


You can see “local Intranet” popup, click on “Advanced” button.


Add the Site to local intranet sites by clicking on Add button. Click on Close button.


Click on Ok button to Save “local Intranet” popup and Ok button to close internet options.

By opening the form we can see the form without any errors. Hope this helps.

Wednesday, September 3, 2014

Customize SharePoint survey through UI

In SharePoint survey we don’t have option to edit the survey views and details. In my project, we need to add a column with to response to survey which works as a normal list item. This column need to save the response of the survey. I have tried to do this through UI and I am unable to do that as regular list options. I have checked it in google, few answers says that it is nearly impossible to do that through UI and we have to go for custom coding.

By checking few more links I got a clue to do that. It says that a designer workflow will collect the feedback from the user who responds the survey and workflow fills the response details to survey. That’s great. I got the fix for that.

To create new view in survey list,
  • ·         Open the new view page in SharePoint site, copy the URL to a notepad. URL shows like “/_layouts/15/ViewNew.aspx?List=%7B0C3E3AB1%2D555D%2D4FE0%2DB9B3%2DB58BE4D36D22%7D”
  • ·         Open Survey settings page, Replace the Survey list id with previous URL.


To create a new column in SharePoint survey list, Open Site with concating following URL “/_layouts/fldNew.aspx?ListID=” Add survey list ID.


These are quick hacks for SharePoint survey list. Hope this helps.

Saturday, August 30, 2014

SharePoint – Back to basics - Are sure you are SharePoint Farm Administrator?

How can I’ll be SharePoint farm Administrator? By Adding Farm Admin group from SharePoint Central Admin site as shown the below I’ll become Farm Administrator?



But as we have expected by completing all the steps, these will not grant Farm Admin privileges on the server. These steps will add user to farm admin group in SharePoint and WSS_ADMIN_WPG group in SharePoint farm. By updating user to this farm admin, users get access to web site and access to SharePoint resources as logs and web services.

If user not added in SharePoint local Admin group, user is not fully-fledged SharePoint farm administrator. When user runs SharePoint management he will see "The local farm is not accessible. Cmdlets with feature dependency ID is not registered."

To execute PowerShell commands, users need SharePoint_Shell_Access in SQL server SharePoint configuration database and other databases where we need to manage the data.

Therefore, to make a user as SharePoint farm admin, he need to have following permissions,

·      Local Administrator security group for each server in the farm
·      Farm Administration SharePoint Group
·      SQL Server SharePoint_Shell_Access database role for the SharePoint configuration database and all content databases.