I am developing a Nintex workflow which iterates through all the list items in a List View and terminate all the running workflows. The List views on which this workflow is going to run already have filters on it.
To get collection of all the list items in the List View, I am planning to call GetListItems method in Lists.asmx
GetListItems take ListName and ViewName as parameters. But ViewName is actually 32 digit GUID. In my research I found GetViewCollection method returns all the views defined in a list.
My plan is to get collection of all the views in the list. (Both List Name and View Name (Display name of the view) is provided by the user).
Then I will compare Display Name of all the views in the collection with the name provided by user. When I find match I will take that GUID and plug it into Lists.GetListItems() to get collection of all the list items in that List view.
Eventually I will call TerminateWorkflowByNameFor
ListItem()
to terminate the workflow running on that itemID.
But I am stuck at the step where I am calling GetViewCollection method. It returns in XML which looks like this:
<Views xmlns="
http://schemas.microsoft.com/sharepoint/soap/">
<View Name="{705D9879-6A17-4FF3-
8D4A-AF1CC
5E86605}" Type="HTML" DisplayName="All Items" Url="/sandbox/Lists/custom
list test/AllItems.aspx" Level="1" BaseViewID="1" ContentTypeID="0x" ImageUrl="/_layouts/images
/generic.p
ng" />
<View Name="{0D9FC0C9-AE20-482D-
AB1E-2A189
AB8A0D1}" DefaultView="TRUE" MobileView="TRUE" MobileDefaultView="TRUE" Type="HTML" DisplayName="test_view" Url="/sandbox/Lists/custom
list test/test_view.aspx" Level="1" BaseViewID="1" ContentTypeID="0x" ImageUrl="/_layouts/images
/generic.p
ng" />
<View Name="{D860A584-4EC0-473D-
82FF-F7177
69C5D20}" Type="HTML" DisplayName="list id" Url="/sandbox/Lists/custom
list test/list id.aspx" Level="1" BaseViewID="1" ContentTypeID="0x" ImageUrl="/_layouts/images
/generic.p
ng" />
<View Name="{19A48EAF-E644-49CB-
B597-87B3A
8584E10}" Type="HTML" DisplayName="Test view" Url="/sandbox/Lists/custom
list test/Test view.aspx" Level="1" BaseViewID="1" ContentTypeID="0x" ImageUrl="/_layouts/images
/generic.p
ng" />
</Views>
Ideally I should be able to get collection of all ViewName (GUIDs) by using "Query XML" with Xpath expression like "//Views/View/Name" but it doesn't work.
I figured, the XML returned by GetViewCollection method is not a well formatted XML. "Query XML" likes the input to be something like:
<Views>
<View>
<Name> <\Name>
<\View>
<\Views>
What should I do ? What could be Xpath expression to extract Name and DisplayName data from the above XML. Please help !