Query List from Another SharePoint Farm Using Nintex Workflow

There are a lot of ways on querying lists from other SharePoint Farms. Most of the time, you’ll need a software provider like the Nintex Workflow. We use Nintex Workflow because it has a specific feature that’s not available on other software providers.

Nintex Workflow allows you to provide login credentials to access data from another farm. This article is solely for the purpose of guiding you on how to solve permission issues when querying list from another SharePoint Farm.

Terms:

1. SharepointFarm_A – the SharePoint Farm which contains the source list that we want to query.
2. SharepointFarm_B – the SharePoint Farm where the Nintex Workflow will be deployed.

Precondition:

1. Must have an account that has access to the source site collection SharepointFarm_A.
2. This solution is currently working/tested using SharePoint On-Premise environment.

Steps:

1. On your SharepointFarm_B, add a Nintex Workflow on a List.
2. Add a Call web service action on the workflow then provide the following details.

 

a. URL: the url of SharepointFarm_A plus the SharePoint webservice endpoint of List.asmx (e.g. http://SharepointFarm_A.MyDomain.com/SourceSite /_vti_bin/Lists.asmx
b. Username and Password: Use the Account mentioned in the Precondition #1
c. Web Method: GetListItems
d. Soap Xml Parameters:
i. m:listName – the GUID of the source list.
ii. m:viewName – the GUID of the view you want to use.
Note: As much as possible use a list view that displays all list items w/o filters. It is to ensure that we have all the data that we need. Using a list view with filter may not return crucial data we need.
iii. m:query – CAML query to filter data you want.

Note: if the list view that you have selected for the m:viewName parameters have an existing filters, m:query will further filter the result return the by the filtered list view.

iv. m:viewFields – Name of columns that you want to get the value of.
v. m:rowLimit – Maximum number of items the query result.
e. Store Result in: requires a Multiple line of text variable to store the result of the web service call. For now, let’s call this variable as xmlResult.

3. Add a Query XML action on the workflow then provide the following details.

a. XML Source: Select XML since we have stored the xml in a workflow variable.
b. XML: Use the value of the workflow variable xmlResult.
c. Output > Process Using: select XPath.
d. Output > Use this XPath pattern to retrieve the value per column.

//rs:data/z:row/@ows_ (e.g. //rs:data/z:row/@ows_Title)

e. Output > Set result as: on the radio button select Inner XML.
f. Output > Store Result in: use a Collection type of variable to contain the result. For now, let’s call the workflow variable as ItemTitleCollection.

Note: Feel free to add more if you want to retrieve the value of more than 1 column.

4. Add a Foreach loop action to iterate through the Search result (ItemTitleCollection).

5. Inside the action in step 4, add Create Item action to copy the items from SharePointFarm_A to a local list in SharePointFarm_B.

There you go. We hope we helped you on how to query list from one SharePoint Farm to another. Let us know in the comment section below if you think we missed some important points. Don’t forget to share this article on your social media handles.

Add a Comment

Your email address will not be published. Required fields are marked *