Korzystam z usługi WWW GetListItems i zwraca tylko około 50% zapisanych wyników. Czy istnieje limit ilości danych, które można zwrócić? Czy mimo to jest wokół tego?Usługa sieci Web Sharepoint GetListItems nie zwracające wszystkich wierszy
Odpowiedz
Metoda pobiera tylko liczbę wierszy w domyślnym widoku listy. Aby rozwiązać ten problem, możesz po prostu zwiększyć liczbę wierszy w widoku domyślnym lub, jeszcze lepiej, użyć zapytań CAML. Oto artykuł na temat korzystania Caml z usług internetowych: http://dotnet.org.za/zlatan/archive/2007/08/01/collaborative-application-markup-language-caml-and-webservices-in-sharepoint-2007.aspx
Ten link jest uszkodzony. Bummer. –
Refer you this Artykuł o liczbie zwróconych wierszy bazuje na używanym widoku, Zmień rowlimit w widoku.
Spróbuj tego, SharePoint List Web Service GetListItems
Z mojego doświadczenia trzeba opcji: 1. Zmień widok użyć podczas wywoływania metody getlistitems do poprawny widok, który zwraca wszystkie wiersze 2. Sprawdź i zobacz, czy umieściłeś rowlimit w swojej metodzie getlistitems. Jeśli chcesz przywrócić wszystko w bieżącym widoku, możesz użyć "0", patrz przykład poniżej: XmlNode doc = doclist.GetListItems ("Moja lista", "Mój widok", zapytanie, viewFields, "0", queryOptions , zero);
Możesz także spróbować przejść do swojej witryny SharePoint, przejść do listy, z której pobierasz, a następnie wybrać ustawienia i zmodyfikować domyślny widok/stworzyć własny widok i rozwinąć grupę Sumy. W grupie Totals poszukaj unikalnego identyfikatora dla swojej listy (np. ID), a następnie w menu obok wybierz COUNT, a następnie zapisz swój widok. Po załadowaniu listy porównaj całkowitą liczbę, która będzie teraz wyświetlana w tym widoku z liczbą pozycji zwróconych przez zapytanie. Daj mi znać, jeśli nadal nie są takie same. :)
GetListItems() ogranicza wyniki w oparciu o ograniczenie wiersza widoku, którego używasz jako drugiego parametru w wywołaniu metody. Jeśli potrzebujesz wszystkie wiersze zostać zwrócone:
- Przejdź do witryny programu SharePoint za pośrednictwem swojego ulubionego (lub najmniej ulubioną) Przeglądarka WWW
- Przejdź do listy
- Wybierz widok, który odpowiada GUID jesteś używanie jako drugiego parametru wywołania metody GetListItems() (patrz przykład poniżej)
- Wybierz (z menu rozwijanego Widok) "Zmodyfikuj ten widok"
- Przewiń do końca i rozwiń opcję "Limit produktów" "
- Zestaw wysoki numer (użyłem 9000) jako "Liczba elementów do wyświetlenia" i wybierz "Ogranicz całkowitą liczbę produktów zwróconych do określonej kwoty."
Kliknij OK.
Service.GetListItems (ListGuid, ViewGuid, zapytań, viewFields, RowLimit, queryOptions, zero);
Jeśli RowLimit metoda parametr jest mniejszy niż widok Row Ograniczyć trzeba było ustawić w SharePoint, a następnie wyniki są ograniczone do wartości parametru.
Tylko w odniesieniu do innych osób, które przybywają tutaj z google.
Muszę wyodrębnić dane z dotychczasowego systemu i mieć ten sam dokładny problem. Różnica polega na tym, że nie miałem kontroli nad listą akcji, więc nie mogę zmienić domyślnego widoku.
var items = listSvc.GetListItems(listname, null, null, null, null, null);
var pager = items.ChildNodes[1].Attributes["ListItemCollectionPositionNext"] != null ? items.ChildNodes[1].Attributes["ListItemCollectionPositionNext"].Value : string.Empty;
var pagerXml = new XmlDocument();
pagerXml.InnerXml = "<QueryOptions><Paging ListItemCollectionPositionNext=\"\" /></QueryOptions>";
var pagerNode = pagerXml.GetElementsByTagName("QueryOptions")[0];
while (!string.IsNullOrEmpty(pager))
{
pagerNode.ChildNodes[0].Attributes[0].Value = pager;
var temp = listSvc.GetListItems(listname, null, null, null, null, pagerNode);
foreach (XmlNode c in temp.ChildNodes[1].ChildNodes)
{
var c2 = items.OwnerDocument.ImportNode(c, true);
items.ChildNodes[1].AppendChild(c2);
}
pager = temp.ChildNodes[1].Attributes["ListItemCollectionPositionNext"] != null ? temp.ChildNodes[1].Attributes["ListItemCollectionPositionNext"].Value : string.Empty;
}
Jest to jeden raz użyć kodu, więc zostawiam ją do czytnika, aby uporządkować ją: D
ale sens jest, jeśli nie można dostać go w jednej rozmowy, po prostu go w partiach, używając rozmiaru strony widoku jako wielkości partii. Ostatnim argumentem GetListItems()
akceptuje parametr XmlNode
i można przekazać coś takiego:
<QueryOptions><Paging ListItemCollectionPositionNext="{paging-option}" /></QueryOptions>
gdzie {paging-option}
jest wartość atrybutu (ta sama nazwa) rs:data
Set rowLimit na 0
var rowLimit = "0";
var result = client.GetListItems("ListName", null, query, viewFields, rowLimit, queryOptions, null);
Uwaga na limity czasu. Jeśli masz wiele pozycji na liście programu SharePoint, możesz osiągnąć limit czasu http. Limity czasu można zmienić w usługach IIS i web.config witryny SharePoint.
- 1. Usługa sieci Web RESTful generuje automatycznie WADL
- 2. Usługa sieci Web, aby uzyskać współrzędne GPS
- 3. . Wywoływanie .NET Usługa sieci Web programu SharePoint otrzymuje nieautoryzowany wyjątek HTTP 401
- 4. Zatwierdzanie zadania przepływu pracy programu SharePoint za pomocą usług sieci Web programu SharePoint/Model obiektu
- 5. Rest Web services zwracające 404
- 6. Jak hostować aplikację Silverlight w witrynie sieci Web SharePoint 2007
- 7. Usługa sieci Web RESTful przy użyciu węzła js
- 8. Usługa sieci Web: PHP lub Ruby on Rails lub Python?
- 9. Usługa sieci Web SAP firmy .NET za pośrednictwem WCF
- 10. Usługa sieci Web nie może zostać przekształcona do postaci szeregowej, ponieważ nie ma konstruktora bez parametrów
- 11. Pakiet sieci Web pobiera nieprawidłową nazwę witryny sieci Web IIS
- 12. Powikłania w sieci Web
- 13. Serwer sieci Web RabbitMQ Management
- 14. jQuery AJAX i usługa sieci web ASP.NET działa lokalnie, ale nie zdalnie.
- 15. Opracowanie części sieci SharePoint w ASP.NET
- 16. Właściwy format daty w usłudze sieci Web
- 17. Usuwanie duplikatów wierszy (nie usuwaj wszystkich duplikatów)
- 18. Microsoft MVC 4, APIController i właściwa usługa sieci Web logowania RESTful
- 19. Sharepoint część Custom Web nieruchomość nie pojawi się w przyborniku
- 20. Dokumentowanie usług sieci Web ServiceStack
- 21. Wersja aplikacji sieci web ASP.NET
- 22. Samodzielny klient sieci web java
- 23. Zadania timera programu SharePoint nie są wywoływane
- 24. Wdrażanie aplikacji sieci web ASP.NET
- 25. Jak skonfigurować projekt phbe sieci web, tak aby nie kopiować wszystkich plików do var/www
- 26. Czy istnieje sposób na to, aby pakiet sieci Web nie wyświetlał wszystkich porcji, które kompiluje?
- 27. RESTful usługa WCF, która może odpowiadać w obu JSON (P) i XML i nadal służyć jako usługa sieci Web SOAP?
- 28. Jak uzyskać listę wszystkich użytkowników w SharePoint
- 29. Dołącz EventReceiver do wszystkich list witryny SharePoint
- 30. Czy istnieje C# API lub usługa sieci Web, aby uzyskać notowania z NSE lub BSE?
Czy możesz udostępnić mechanizm (kod, jeśli to możliwe), którego używasz do pobierania danych. Ponadto, ile przedmiotów wracasz i ile jest ich wszystkich na liście? –