How to debug SharePoint 2013 workflows by Visual Studio

Normally you can debug SharePoint 2013 workflows that developed by Visual Studio  via using F5 and putting breakpoints . In this scenario actually the debugging happens with a Service Host emulator not actual Workflow Manager host instance. In some cases the actual activities or components are not same as registered by SharePoint to Workflow Manager according to Service Host emulator. As a consequence of this , the breakpoints can not hit when execution .
http://msdn.microsoft.com/en-us/library/ee358745(v=vs.110).aspx .To fix that issue you have to be sure that your dev tools and components are same the host environment.

Workflow debugging also supports using Visual Studio’s infrastructure to attach to a process. This enables the workflow author to debug a workflow running in a different host environment such as Internet Information Services or actual Workflow Service’s Host. If your workflow manager is already setup in same box with your Visual Studio , here you can find how can you do it.

1) Open your workflow Project in Visual Studio .

2) Set the breakpoint for related activity .

AddBreakPoint

 

3) Click Visual Studio -> Tools -> Attach to Process

AttachTheProcess

4) Find and select “Microsoft.Workflow.ServiceHost.exe” in process list .

5) Click the “Select…” button for code type

SelectCodeType

6) Select “Debug these code types” as Workflow and click OK .

7) Click “Attach” Button and Attach one more time for the confirmation window.

8) After that you have to lunch/run related workflow from SharePoint Site.

9) If everything is correct , the breakpoint will get hit.

BreakPointHits

As you can see the callstack and local parameters are shown and can be debugable.

 

 

 

Advertisements

The form cannot be rendered. This may be due to a misconfiguration of the Microsoft SharePoint Server State Service

First check that the state service Application has started and State Service Application Proxy has been assigned to your web Application ;

Open your Central Administration
Go to Application Management
Under Service Applications click Configure service application associations
Click on the Application Service Proxy Group of the WebApplication you’re trying your workflow on
Find State Service Application and make it checked .

If you dont have State Service Application you can create a new one by below;

1. Click and lunch  Start->All Programs -> Microsoft SharePoint 2010 Products->  SharePoint 2010 Management Shell .
2. In Windows PowerShell, type $stateapp= New-SPStateServiceApplication -Name “State Service Application”
3. Create a State Service database and associate it with a service application, by typing New-SPStateServiceDatabase -Name “StateServiceDatabase” -ServiceApplication $stateapp
4. Create a State Service Application Proxy and associate it with the service application by typing New-SPStateServiceApplicationProxy -Name “State Service Application Proxy” -ServiceApplication $stateapp -DefaultProxyGroup

http://technet.microsoft.com/en-us/library/ee704548(v=office.14).aspx

 

 

Problem about Reporting Service (SSRS) for SharePoint 2010 Integration

Recently i faced fallowing error and decided that write about an article about SSRS with Sharepoint Integration because of MSDN articles is very detailed but sometimes the people can miss the basic points.Lets see what we faced:

The configuration parameter SharePointIntegrated is set to True but Share Point Object Model cannot be loaded.

System.IO.FileNotFoundException: Could not load file or assembly ‘Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c’ or one of its dependencies. The system cannot find the file specified. File name: ‘Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c’ at Microsoft.ReportingServices.SharePoint.Objects.RSSPImpSecurity.set_StaticCatchAccessDeniedException(Boolean value) at Microsoft.ReportingServices.SharePoint.Server.SharePointServiceHelper..ctor() at Microsoft.ReportingServices.SharePoint.Server.SharePointServiceHelperFactory.get_ServiceHelper() WRN: Assembly binding logging is turned OFF. To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. Note: There is some performance penalty associated with assembly bind failure logging. To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog]. . (rsSharePointObjectModelNotInstalled) Get Online Help

The cause of the problem is the server which SSRS installed has not  sharepoint installation.SSRS server and the sharepoint technology instance are on separated machines.If you deep in MSDN articles you can find fallowing informations :

You plan to immediately install the Reporting Services Add-in and configure report server integration settings on the SharePoint site. If the report server provides report processing capability to a SharePoint farm, you must also install a SharePoint Web front end on the report server computer so that you can join it to the farm
http://technet.microsoft.com/en-us/library/cc281311.aspx
“For deployments that include a SharePoint server farm, install a SharePoint Web front-end on the report server computer. The Web front-end joins the report server computer to a SharePoint farm. Installing the Web front-end on the report server computer is only necessary if you deploy the report server and the SharePoint technology instance on separate computers.”
Configuring Reporting Services for SharePoint 2010 Integration http://technet.microsoft.com/en-us/library/bb326356.aspx

Conculution:
So the SSRS server must be a member of the sharepoint farm. In order to join the farm, the farm must aware of the SSRS server. So we need to install the sharepoint web front-end on the SSRS server to make it able to communicate with other machines.

Please check for more info:
Requirements for Running Reporting Services in SharePoint Integrated Mode
http://technet.microsoft.com/en-us/library/bb283190.aspx

 

Misunderstanding when upgrade Sharepoint Server 2010 SP1 with Language Service Packs KB2460059 vs KB2460056

As you know we have installation setup for language pack 2010 Service Pack 1

1) Service Pack 1 for Microsoft SharePoint Foundation (MSF) 2010 Language Pack (KB2460059)
http://www.microsoft.com/download/en/details.aspx?id=26629

2) Service Pack 1 for Microsoft SharePoint  Server (SPS) Language Pack 2010 (KB2460056)
http://www.microsoft.com/download/en/details.aspx?id=26621

Some of the articles in internet tell us install MSF Language service pack1 first KB2460059 and than install KB2460056 after.
THAT IS NOT CORRECT !!!
If you fallow this order  ,you can easily detect that you can not able install KB2460056  after KB2460059 .

First of all the KB2460056 contains all packs for KB2460059.

That’s why if you have Sharepoint Server 2010 you should install only  Service Pack 1 for Service Pack 1 for Server Language Pack 2010 (KB2460056) or
if you have Sharepoint Foundation 2010 you should install only  Service Pack 1 for Microsoft SharePoint Foundation 2010 Language Pack (KB2460059)

For prove this i have download Turkish SPS and MSF Language Service Pack1 and extract the packages and compre them.

Service Pack 1 for Microsoft SharePoint Foundation (MSF) 2010 Language Pack (KB2460059)
spflanguagepack2010sp1-kb2460059-x64-fullfile-tr-tr.exe

Service Pack 1 for Microsoft SharePoint  Server (SPS) Language Pack 2010 (KB2460056)
serverlanguagepack2010sp1-kb2460056-x64-fullfile-tr-tr.exe

 

 

 

 

Could we create a second User Profile Service Application ?

Yes you can but ,
If you have only one server in your farm you can use just one User Profile Service Application (UPA) in this server because the windows Service of User Profile Syncronization Service just configurable only one UPA. So if you have more than one sharepoint server in your farm for example 3 server;  you can create more than 3 UPA but you can only syncronize 3 of them.

For Another scenario, i assume that you have only one server and already provisioned one UPA and configured the syncronization connection. After adding second UPA as you know you can not able to add any Sycronization connection for Second UPA . But if you stop CA-> Services On Server -> User Profile Syncronization Service and restart it will prompt you to select UPA options mean you can change the relation for specific UPA . Still only one UPA can able to sync for one server.

Sharepoint 2010 Delete all imported profile users by PowerShell

#PowerShell Script - Delete All User Profiles - SharePoint 2010
#The scripts is distributet "as-is." Use it on your own risk. The author give no warranties, guarantees or conditions.
 
 #Add SharePoint PowerShell SnapIn if not already added
 if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) {
    Add-PSSnapin "Microsoft.SharePoint.PowerShell"
}


$site = new-object Microsoft.SharePoint.SPSite("http://blog.bugrapostaci.com:8090");  
$ServiceContext = [Microsoft.SharePoint.SPServiceContext]::GetContext($site);  

#Get UserProfileManager from the My Site Host Site context
$ProfileManager = new-object Microsoft.Office.Server.UserProfiles.UserProfileManager($ServiceContext)  
$AllProfiles = $ProfileManager.GetEnumerator()  

foreach($profile in $AllProfiles)  
{  
    $DisplayName = $profile.DisplayName  
    $AccountName = $profile[[Microsoft.Office.Server.UserProfiles.PropertyConstants]::AccountName].Value  
   
    #Do not delete setup (admin) account from user profiles. In this case account is 
    if($AccountName -ne "BLOG\Mossadmin")
    {
        $ProfileManager.RemoveUserProfile($AccountName); 
        write-host "Profile for account ", $AccountName, " has been removed"
    }

}  
write-host "Finished." 
$site.Dispose() 

note:this code is not belong to me thanks for that . I changed it a little .)

Sharepoint 2010 List all imported profile users by PowerShell

#PowerShell Script - List All User Profiles - SharePoint 2010
#The scripts is distributet "as-is." Use it on your own risk. The author give no warranties, guarantees or conditions.

 #Add SharePoint PowerShell SnapIn if not already added
 if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) {
    Add-PSSnapin "Microsoft.SharePoint.PowerShell"
}
#Get ServiceContext from associated site
$site = new-object Microsoft.SharePoint.SPSite("http://blog.bugrapostaci.com:8090");  
$ServiceContext = [Microsoft.SharePoint.SPServiceContext]::GetContext($site);  

#Get UserProfileManager from the My Site Host Site context
$ProfileManager = new-object Microsoft.Office.Server.UserProfiles.UserProfileManager($ServiceContext)  
$AllProfiles = $ProfileManager.GetEnumerator()  

foreach($profile in $AllProfiles)  
{  
    $DisplayName = $profile.DisplayName  
    $AccountName = $profile[[Microsoft.Office.Server.UserProfiles.PropertyConstants]::AccountName].Value  

    #Do not delete setup (admin) account from user profiles.
    if($AccountName -ne "BLOG\Mossadmin")
    {
        write-host "Profile: ", $AccountName
    }

}  
write-host "Finished." 
$site.Dispose()

note:this code is not belong to me thanks for that . I changed it a little .)