Search Service application, SharePoint 2013, SharePoint 2016, Sharepoint2010

SharePoint 2013 Search Administration Web Service Application stopped- Stuck


Recently I got stuck with the SharePoint Search Service application. It was deleted earlier from the Farm. But Search Administration Web  Service Application is stuck with stopped status.

Search Service Web application status Stopped

Search Service Web application status Stopped

Solution:
Below Power shell Command will successfully remove Search remaining stuff form the Farm. with all the web services.
# Add SharePoint cmdlets reference
Add-PSSnapin microsoft.sharepoint.powershell -ErrorAction SilentlyContinue
$SSA = Get-SPEnterpriseSearchServiceApplication
$SSA.Delete()

Standard
5000 Threshold, CSOM, Javascript Object Model SharePoint, SharePoint 2013, SharePoint List Lookup, Sharepoint2010, Uncategorized

Get 50000 items from SharePoint List using JS-SharePoint Item 5000 Threshold Issue [Solved] –


My blog will help to load data from SharePoint list regardless of list-view threshold limit . I have been through many forums and even I experienced bit difficulty to load data from list having record greater than limit defined by the SharePoint administrator (threshold limit). I have created a simple JS file with some functions to load data in chunks. i.e. My JS function will automatically take the total count of list and break them in the chunks and iterate them. In the result it will provide the array of items requested by the user.

Global Varaiable

Screen shot is to provide the global variable for our JS File

Initial Method to Call from my js

Initial Method to Call from my js

Internal method of JS File, This methods will take the cound of the List and divide them as 5000 each cycle

Internal method of JS File, This methods will take the cound of the List and divide them as 5000 each cycle

 

 

 

Final Methods will runs once all the data finish loading

Final Methods will runs once all the data finish loading

Just add the attached JS file to your SharePoint Solution and call the below mentioned function. In return once the data get loaded , it will write the desired array to flatArray and update var TransactionComplete = 1; further you can use flatArray with data in your app.
JS File – Click here to Download – Rename PDF to JS

Funciton to call GetListItem(siteurl,listname,columns)

siteurl = http://sitename

listname=testlist

columns=ID,Created,Title,Column1,Column2,Column4,Column5

Result = flatArray as Array

Resultant Screen shot.

ResultArray

ResultArray

 

I hope my little efforts may save time for those who are struggling with SharePoint threshold 5000 issue.

Standard
Angular, CSOM, Material Design, Polyer, polymer, SharePoint 2013, Sharepoint2010, Visual Studio 2013, WorkFlow

Develop Polymer material with Share Point 2013 Binding Polymer Template with Share Point 2013 using CSOM,


In this blog I am going to merge Polymer Template through Angular JS Framework with SharePoint List. I am new to polymer and as well as on angular js but it is pretty much cool ready made stuff :).

You just need to have some knowledge of SharePoint to complete this simple example. I have shared the source code below just upload to SharePoint Library (Add one List Area) and run the page.
For More Knowledge (Polymer)
For More Knowledge (Angular)
For More Knowledge (SharePoint CSOM)

In this demo I will use the below Polymer template. Polymer elements are based on the set of htmls files libraries which are need to be import on the page. On the back end polyer html pages used the JS and CSS. There is a folder of libraries which we need to put in our root folder. When I tried to copy the Libraries folder in my sharepoint desiger page it block due to jason files. Actually JSON files are objects of array for tutorial of polymer, In our databinding we dont need any hard coded JSON files.

7

8

We Just create a Single Folder in my site .
2
Create a Single aspx Page, in which we will add our Angulr JS, SharPoint JS Api’s and design it using Polymer core elements. I name it as TestPolymer.aspx
3
I removed all the json files because SPD dont allow to copy the JSON files, These jason files are used in as a data source in the polymer template. So now we copy and paste that libraries inside our SampleTest Folder which we created above. We will create another JS file for angular and we named it as app.js.(we will put our module, controller inside).

WE will also copy the angular.js file to work with the angular framework. So far our folder will be look like .

4
Below our blank page.

5

  • Import Polymer libraries on our page. Libraries folder I mentioned above and shared in the OneDrive to just copy and paste in the aspx page folder.
  • Import all the Polyer Script, jquery file, angular.js file and I add CSS for our views.

<!–importing the anguar Script and the Libraries of the Polyer –>

<!–Start –>

http://./Libraries/webcomponentsjs/webcomponents.js/
http://./Libraries/webcomponentsjs/jquery-1.9.1.js
/_layouts/15/init.js
http://./Libraries/webcomponentsjs/MicrosoftAjax.js
<link href=”./Libraries/core-toolbar/core-toolbar.html” rel=”import” />
<link rel=”import” href=”./Libraries/core-header-panel/core-header-panel.html” />
<link href=”./Libraries/core-icon/core-icon.html” rel=”import” />
<link rel=”import” href=”./Libraries/paper-icon-button/paper-icon-button.html” />
<link href=”./Libraries/core-icon-button/core-icon-button.html” rel=”import” />
<link rel=”import” href=”./Libraries/paper-tabs/paper-tab.html” />
<link rel=”stylesheet” href=”./Libraries/core-animated-pages/core-animated-pages.css” />
<link rel=”import” href=”./Libraries/core-animated-pages/core-animated-pages.html” />
<link href=”./Libraries/polymer/polymer.html” rel=”import” />
<!–Polyer Import End –>
<!– SharePoint Libraries –>
/_layouts/15/sp.core.js
/_layouts/15/sp.runtime.js
/_layouts/15/sp.js
/_layouts/15/core.js
<!– angular js  –>
http://./angular.js
<!– our js file for declaring controller and directive –>
http://app.js

Add the html part of the body.
<body fullbleed vertical layout unresolved> <!– use fullbleed attribute to specify the body should fill the viewport –>
<template is=”auto-binding” ng-controller=”SampleTestController”> <!– This is our Template which will repeate its child , I also attached this with my Controller Defined in app.js file–>
<core-toolbar class=”medium-tall”> <!–This is our toolbar for header–>
<core-icon-button icon=”{{$.pages.selected != 0 ? ‘arrow-back’ : ‘menu’}}” on-tap=”{{back}}”></core-icon-button> <!–This icon button will call funciton on tap or on click–>
<span id=”axix” style=”color:white”> You Name</span><!– Simply for header–>

Test Result Result

<core-icon-button on-tap=”{{backs}}”><img src=”http://dev:35897/myiner/logo.png&#8221; /></core-icon-button><!–you can put any logo here for your company as i did–>
</core-toolbar> <!–toobar ends–>
<!– core element of Polyer which will show the boxes on the page–>
<!– I will fetch data from SharPEoint and put in Array name items and pass this array to the template inside–>
<core-animated-pages id=”pages” flex selected=”0″ on-core-animated-pages-transition-end=”{{transitionend}}” transitions=”cross-fade-all hero-transition”>
<section vertical layout>

{{item.name}}

</template>
</div>
</div>
</section>
<template repeat=”{{item in items}}”>
<section vertical layout>

{{item.name}}

Interviewer Detail

</section>
</template>
</core-animated-pages>
</template>
</body>
Now the Javascript Part.
‘use strict’;
var currentUser;
var serverUrl = “http://siteurl/&#8221;;
var taskListItem = ”;
var collListItem = ”;
var items = [];
var itemsx = [];
//I m using the Jquery on ready function to load the SharEOoint List and add them in the array.
//Two function to load user and to get data from list.
//we can also create a controller or module dependency in the anguar and load them first

$(document).ready(function () {
ExecuteOrDelayUntilScriptLoaded(getuser, “sp.js”);
ExecuteOrDelayUntilScriptLoaded(loadlist, “sp.js”);
});
//This is my Load List and Add them in Array itemx.
function loadlist() {
console.log(“load me first”);
var context = new SP.ClientContext(“http://dev:35897&#8221;);
var web = context.get_web();
var myList = web.get_lists().getByTitle(“Area”);
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml(‘<View><Query><Where><Gt><FieldRef Name=”ID”/><Value Type=”Counter”>1</Value></Gt></Where></Query><ViewFields><FieldRef Name=”Title” /></ViewFields></View>”‘);
collListItem = myList.getItems(camlQuery);
context.load(collListItem);
context.executeQueryAsync(getInterviewSuccessfully, “failer”);
}
function getInterviewSuccessfully(sender, args) {
var listItemInfo = ”;
var listItemEnumerator = collListItem.getEnumerator();
var str = ”;
var strg = ”;
var count = 0;
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
count++;
items.push({
name: oListItem.get_item(‘Title’),
snippet: oListItem.get_item(‘Title’),
age: oListItem.get_item(‘ID’),

});

}
//console.log(items);
}
//This is my function to loa user.
function getuser() {
var context = new SP.ClientContext(serverUrl);
var web = context.get_web();
currentUser = web.get_currentUser();
context.load(currentUser);
context.executeQueryAsync(  //submit query to the server
function () {
$(“#axix”).text(currentUser.get_loginName().split(“\\”)[1]);
},
function (sender, args) {
alert(‘Request failed. \nError: ‘ + args.get_message() + ‘\nStackTrace: ‘ + args.get_stackTrace());
}
);

}

//Angular Part.
//Defining the module
var SampleTestApp = angular.module(‘SampleTestAppModule’, []);
SampleTestApp.controller(‘SampleTestController’, function ($scope, $http) {
$scope.itemsx = [];
$scope.FillAreas = function () {
var context = new SP.ClientContext(“http://dev:35897&#8221;);
var web = context.get_web();
var myList = web.get_lists().getByTitle(“Area”);
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml(‘<View><Query><Where><Gt><FieldRef Name=”ID”/><Value Type=”Counter”>1</Value></Gt></Where></Query><ViewFields><FieldRef Name=”Title” /></ViewFields></View>”‘);
collListItem = myList.getItems(camlQuery);
context.load(collListItem);
context.executeQueryAsync($scope.getInterviewSuccessfully, “failer”);
}

$scope.getInterviewSuccessfully = function (sender, args) {
var listItemInfo = ”;

var listItemEnumerator = collListItem.getEnumerator();

var str = ”;
var strg = ”;
var count = 0;
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
count++;
$scope.itemsx.push({
name: oListItem.get_item(‘Title’),
snippet: oListItem.get_item(‘Title’),
age: count,
});

}

console.log($scope.itemsx)
}
function errorHandlerArea(sender, args) {
alert(‘Request failed111. ‘ + args.get_message());
}
$scope.FillAreas2 = function () {
addEventListener(‘template-bound’, function (e) {
var scope = e.target;
scope.items = items;//axix();
scope.selectView = function (e) {
var i = e.target.templateInstance.model.item.age;
this.$.pages.selected = i + 1;
}
scope.back = function () {
this.lastSelected = this.$.pages.selected;
console.log(this.lastSelected);
this.$.pages.selected = 0;
}
scope.transitionend = function () {
if (this.lastSelected) {
this.lastSelected = null;
}
}
});

}
$scope.FillAreas2();

});

//Simple function which defined the jason object to deubg.

function axix() {

var x = [
{
‘name’: ‘Nexus S’,
‘snippet’: ‘Fast just got faster with Nexus S.’,
‘age’: 1
},
{
‘name’: ‘Motorola XOOMâ„¢ with Wi-Fi’,
‘snippet’: ‘The Next, Next Generation tablet.’,
‘age’: 2
},
{
‘name’: ‘Motorola XOOMâ„¢ with Wi-Fi’,
‘snippet’: ‘The Next, Next Generation tablet.’,
‘age’: 4
},
];

//console.log(x);
return x;
}

&nsp;
Below is the source code all, You actually it is an stp file. How to use it.

  • Upload it on the list template library.
  • Create an instance of this.
  • Go to the SharePoint designer open the content and browse or directly browse it form url of your library.

Souce Code
https://www.dropbox.com/sh/bjm59umlh2kmjqk/AADIvDxGi5GvUBXmP8FkOqJ7a?dl=0
4

Standard
Info Path 2013, Sequential WorkFlow Visual Studio 2010, SharePoint 2013, SharePoint List Lookup, Sharepoint2010, Visual Studio 2013

InfoPath and SharePoint 2013, Deploy Browser Enable form in SharePoint 2013, Info Path 2013 and SharePoint 2013


I got a chance to migrate our solution to SharePoint 2013. After our analysis and the research my first target is to deploy the Info Path Browser enable form to SharePoint 2013. Here I am sharing my experience to deploy info path 2013 forms to SharePoint 2013 Portal.

In SharePoint 2013 we have 15 hive or root folder earlier we had 14 hives in SharePoint 2010. For Learning the SharePoint 2013 road map uses the link below.

http://technet.microsoft.com/en-us/library/jj937861.aspx .

When Deploying my Info Path Forms which I built on Info Path 2010 , I didn’t find to much difficulties but some new thing I have encounter. Likewise  Previous Info Path 2010 Visual studio tool based on the .net framework 2.0, now it is based on the 4.0 and also the SharePoint 2013 is also based on .net framework 4.0 (Resource : http://weblogs.asp.net/soever/archive/2012/07/20/sharepoint-2013-is-running-on-net-4-framework.aspx and the Screen shot of our farm).

App Pool shows the Framework of SharePoint 2013

App Pool shows the Framework of SharePoint 2013

(1) To deploy our 2010 info path form we just need to open the Visual studio code editor, and change the frame work to 4.0.

Target Framework should be 4.0.

Target Framework should be 4.0.

2) We need to change the Reference to SharePoint Dll, if there is any server side object model is used, in the SharePoint 2013, its location is in 15 hive ISAPI Folder.

15 hive folder for reference Microsoft.SharePoint, for any crud in the List

15 hive folder for reference Microsoft.SharePoint, for any crud in the List

We also need to remove the already reference System.Addin.Contract cuz form the below diagram, It is already referenced.

System.Addin Contract

System.Addin Contract

Just deploy as Administrator Approved form like we usually do in SharePoint 2010 and rocks.

Standard
Sharepoint2010

Integrating BizTalk with SharePoint without SharePoint Adapter as (Bridge Adapter),


My little efforts 🙂
In this article I will mention the easiest way for integrating BizTalk Server 2010 with SharePoint 2010. Most of my friends need to updated, delete, select, add item in the SharePoint Via BizTalk server 2010, but they have found so many issues if they are little weak in BIZTALK or little weak in the SharePoint.
Microsoft is providing the SharePoint Adapter in the BizTalk for any CRUD or even if we go more in detail we can even work on workflows through SharePoint Adapter for BizTalk 2010. But some people found some issues in the installing the SharePoint Adapter, or don’t want to event add any adapter in their environment or not found it easy to cope with SharePoint adapter.

Well I have researched on the SharePoint adapter and go in little dept. how’s it work for the BizTalk to communicated with the SharePoint. Check the link. http://msdn.microsoft.com/en-us/library/aa578311.aspx this walk through has explained the detailed information for BizTalk SP Adapter.

As far as I remember about the SP Adapter in the BizTalk,need to installed on the SharePoint Farm, and will create a one WCF (Windows Communication Foundation ) service and the communication will work through that web service.

In my bridge adapter I have done little trick but that trick will save a lot of time to set up the integration. In my case we don’t have to installed any adapter on the SharePoint farm, rather we need to create one custom WCF service on the farm which can do our work.
IN the WCF Service will use the SharePoint Object model and do the entire manipulation of data on the SharePoint Farm, through our Bridge Adapter we can use all SharePoint the Service to complete our task . Below is the Adapter Picture in detail

BridgeAdapter

Sample BridgeAdapter

.

Idea

Create one Custom SharePoint Web service (WCF) for our request, and create another WCF service which work as bridge.All types of Binding for WCF serivice are applicable. This is more secure CUZ we are not adding any group, for accessing our farm site or WCF Service rather our bridge WCF Service will do that why i called it as bridge adapter.
All Soruce Code is attached in this blog.

Implementation

(1) First we need to Create a Custom SharePoint WCF Service which is main and will complate our our task up on a request and do the Manipulation, I have created a SharePoint Custom WCF service because I have found so many issues in the Client Object model. This Service Will reside in our Sharepoint Farm and in this we will use the Sharepoint Server Object model. We named it as ServiceA.

I haved used the (CKSDEV) codeplex Tool for creating a Custom Sharepoint WCF Service which help me alot
Colde Plex (CSKDEV) and offcourse this blog too . SharePoint Cutome WCF Service Tutorial

Well In my custome WCF Service (ServiceA) I have create some generic code which take some argument and complete the appropriate task, initially I have create Insert,Update,Delete and select in my service on any particular list, we can also add more function once we make our bridge with the SharePoint i.e. CRUD on Document Library, Start WorkFlows, Connect With BCS server etc. Source Code.

Mark the DLL of this Project as Safe Control in farm.

Custom SharePoint WCF Service Method

Custom SharePoint WCF Service Method

Custom SharePoint WCF Service Method

Custom SharePoint WCF Service Method

Our customer WCF Service will be like below.

(2) We need another WCF Service (ServiceB) which work as Bridge Between our BizTalk Client and the SharePoint. In Service B we allow anonymous access and then this will speak to our main Service (ServiceA) for task performance.

I have used the BasicHttp Binding in communication with the WCF Service. Though we should use the WShttp binding cuz transmission go encrypted way. In this WCF Service I have used the code which take data from biztalk or any other third party and give it to our SeriviceA (SharePoint Service) and get the response. Source Code

Service_B

So far our Bridge has completed, now We just need to consume our Service (B) from any client. I have consume this WCF Service via BizTalk and the Console From outside the Network of SharePoint Farm, and it is working fine. Source Code and another way to Consume WCF Service in BizTalk Consume WCF Service in through BizTalk .

Once We deployed our Bridge Service (WCF), then we just need to overload the function and Call them from BizTalk. For any more detailed you can comments.

I hope my little efforts will work for BIzy and SP People.

Standard
Sequential WorkFlow Visual Studio 2010, Sharepoint2010, WorkFlow

Parallel Activities in Approval WorkFlow in SharePoint 2010, Correlation Token in Multiple Task


In this blog I gathered some similar feature of sharepoitn 2010 which are coming frequently in developing the composite approval workflows in the SharePoint 2010. My WorkFlow start Whenver the user requests for vacation by adding an new item or change item in the list, then workflow creates two Task One for Team Leadr to approve, and another is Department head to Approve, for each approver workflow creates a new task to complete , once the task complete by both the Approvers, WorkFlow Complete it state otherwise keep in pending state.
The Content of the workflow are mentioned below.
I have used a very simpel custom list name Vacation Request.

Vacation Custom List

Vacation Custom List

Create a Empty SharePoint Project, Add Sequential Workflow ,

SequentialWorkFlowIteminEmptySpProject

SequentialWorkFlowIteminEmptySpProject



Deploye as a Farm based soluton , Associate Workflow with mentioned Vacation List (Custom List).
Associate with Custom List Enable Task and WorkFlow history List

Associate with Custom List Enable Task and WorkFlow history List

(1) Creating two Task & assign them to the Users,
(2) Using Same Task Id (i.e. Same Correlation Token for Both the Parallel Task)
(3) Put while loop to check the task status
(4) Complete the Task whenever the While loop ends.

WorkFlow is something like that.

Sequantai lWorkFlow Starting

Sequantai lWorkFlow Starting


WorkFlowend Paralle and while activity in the workflow

WorkFlowend Paralle and while activity in the workflow



Here is the code behind of assigning Tasks to users.
AssigningTask to user mentioned nithe list

AssigningTask to user mentioned nithe list



I declared two Boolean Flags which provides the current status of each task. In the While loop I Added
a OnTaskChange Event , Whenver the Task Change or Edit this event Occurs and Check the Stauts of the Task, If It is complete then Flag become false and ends the While Loop.
Checking the condition in the while loop

Checking the condition in the while loop

.

In the end there is TaskComplete activity which indicate task has complete and go to the further step in the workflow.

Download Lab here : Download Visual Stduio Project
Note : based Classis autentication for user authorization and authenticaiton.
Interesting Feature : We can debugh Workflow by multple ways, with vs2010, by log in the history list of each individual step and every single propery

Standard
Sharepoint2010, Uncategorized

Visual Web Parts for SharePoint in the Sandbox | Visual Webpart | Abdul Aziz Farooqi …


One of the great feature in SharePoint I found recently when I need to create a solution protected with minimal rights on SharePoint farm, I found that with the new release addition in the SharePoint we can developed visual web part as sandbox with little tricky solution, and off course with single vs 2010 power tool, being a SharePoint developer it makes my life easy.

In this lab I am creating a single solution which can add one visual web part and then deployed as the sandbox solution to my specific site collection.

First we need to add the Visual Studio 2010 SharePoint Power Tool, which help us to make it possible, Visual web part as sanbox.

powertool

powertool

Now at this point, we add the power tool in the visual studio, Tricks begin after this.
(1) Create a simple Empty SharePoint Project, On the name textbox wirte the name and on the location write the below text
C:\%Office365TrainingKit%\2.1\Source\Before

C:\%Office365TrainingKit%\2.1\Source\Before

(2) Add the Viusal web part, you can observe easily due to power you can have option of Visual Web part as (Sandbox)

visual web part sandbox...

visual web part sandbox...

Once you add the visual web part (sandbox) to solution, the next window you will have the visual studio wizard which can ask you the sitecollection address or make it as farm base solution as we had on other simple webpart

visual web part sandbox sp2010

visual web part sandbox sp2010

If we look in the solution explorer, no addition file is added to make it solution as sandbox ,

visual webpart 2010 sandbox

visual webpart 2010 sandbox

now start lab with this visual web part…
add the following mark up to the webpart pgae.

Select List:

 

.cs file add the following code.

using System.Linq;
using System.Collections.Generic;

protected void Page_Load(object sender, EventArgs e)
{
// if (!Page.IsPostBack)
// {
SPWeb web = SPContext.Current.Web;

var ListNames = from SPList list in web.Lists
where list.BaseTemplate !=
SPListTemplateType.DocumentLibrary
select list.Title;

ddlLists.DataSource = ListNames;
ddlLists.DataBind();
}
//}

protected void Button1_Click(object sender, EventArgs e)
{
try
{
SPList SourceList =
SPContext.Current.Web.Lists.TryGetList(ddlLists.SelectedValue);

SPQuery qry = new SPQuery();
qry.ViewFieldsOnly = true;
qry.ViewFields = “<FieldRef Name=’Title’ /><FieldRef Name=’Author’ />”;
qry.RowLimit = 20;

gridListItems.DataSource = SourceList.GetItems(qry).GetDataTable();
gridListItems.EmptyDataText =
string.Format(
“The {0} list does not contain any items!”,
SourceList.Title);

gridListItems.DataBind();
}
catch (Exception ex) { }
}

Now Deploy the solution. To test the this webpart,

visual web part 2010 sandbox

visual web part 2010 sandbox

visual webpart 2010 sandbox

visual webpart 2010 sandbox

Open Viusal studio and press CTRL + ALT + P and then attached the process with (SPUCWORKERPROCESS, AND SPUCWORKERPROCSSPROXY) .

attachproces

attachproces

visual studio 2010 viusal web part

visual studio 2010 viusal web part

This is great work done by the Mike Morton, greate mile stone has been covered in sp2010. If we look in to the webpart with detail every object in this web part has become a global at certain level which might have some reason :P.

visal web part as sandbox

visal web part as sandboxvisal web part as sandbox

….

Standard