InfoPath 2007: Fehlende Elemente bei Abfrage aus einer SharePoint-Liste
avatar

Eine regelmäßig auftretende Stolperfalle bei InfoPath 2007 tritt beim Abfragen einer SharePoint-List oder -Bibliothek auf. Die Abfrage liefert nur die Elemente, die auch die Standardansicht der SharePoint Liste anzeigt und auch nur innerhalb der festgelegten Eintragsgrenze (Item Limit). Auch unter InfoPath 2010 lässt sich das Verhalten nachstellen, indem man beim Erstellen oder in den Formularoptionen (Kompatibilität) eine InfoPath 2007-Formularvorlage auswählt.

Zu Demonstrationszwecken habe ich eine SharePoint-Liste “Sportarten” mit 6 Elementen angelegt.

Sportarten - Alle Elemente - Windows Internet Explorer_2012-12-13_19-04-59

Nun ändere ich in der Standardansicht die Eintragsgrenze auf 3 Elemente.

Ansicht bearbeiten - Windows Internet Explorer_2012-12-13_19-09-21

Und frage danach die SharePoint-Liste mit einem InfoPath 2007 Formular ab.

Datenverbindungs-Assistent_2012-12-13_19-18-32

(Vorschau) Formular1 - Microsoft InfoPath_2012-12-13_19-15-53

Wie man sieht, werden nur die ersten drei Elemente zurückgegeben.

Der erste Lösungsansatz ist sehr nahe liegend. Man passt die Standardansicht der SharePoint-Liste so an, dass alle benötigten Elemente angezeigt werden. Dieser Ansatz ist in der Praxis aber häufig nicht anwendbar, da Kunden eine bestimmte Standardansicht für die jeweiligen Listen konfiguriert haben und nicht alle Elemente ungefiltert sehen wollen.

Der zweite Lösungsansatz besteht darin, eine neue Listenansicht zu erstellen und diese dann direkt über owssvr.dll abzufragen. Hierbei handelt es sich um eine RPC-Funktion, die seit  Version 1 mit SharePoint ausgeliefert wird.

Der Einsatz ist deprecated seitens Microsoft und der Einsatz erfolgt auf eigene Gefahr!

Man benötigt die Guid der Liste und der neu angelegten Ansicht. Diese Informationen lassen sich leicht aus der Adresszeile des Browsers kopieren, wenn man sich auf der Seite Ansicht bearbeiten befindet.

In meinem Beispiel erhalte ich:

List=%7BBD3F8712%2D79AE%2D4990%2D8074%2D692C359D90B1%7D

View=%7B16B53ACD%2D44B1%2D48B3%2D8F07%2DF3B46AF27F58%7D

Hieraus baut man sich folgende Url:
http://WebSiteUrl/_vti_bin/owssvr.dll?Cmd=Display&List={GUID}&View={ViewGUID}&XMLDATA=TRUE&noredirect=true

In meinem Beispiel:

http://hansevis14/sites/spielwiese/_vti_bin/owssvr.dll?Cmd=Display&List=%7BBD3F8712%2D79AE%2D4990%2D8074%2D692C359D90B1%7D&View=%7B16B53ACD%2D44B1%2D48B3%2D8F07%2DF3B46AF27F58%7D&XMLDATA=TRUE&noredirect=true

Nun fügt man in InfoPath eine neue Datenverbindung hinzu und wählt als Quelle XML-Dokument

Datenverbindungs-Assistent_2012-12-13_20-11-44

Und gibt als Speicherort die oben erzeugte Url ein

Datenverbindungs-Assistent_2012-12-13_20-14-00

Auf der nächsten Seite wählt man Vom angegebenen Speicherort auf die Daten zugreifen aus

Datenverbindungs-Assistent_2012-12-13_20-15-32

 

Man kann in der neu erstellten Datenverbindung dann die Spalten als Felder auswählen, die man in der Ansicht zum Anzeigen ausgewählt hat.

Ansicht bearbeiten - Windows Internet Explorer_2012-12-13_20-25-52

(Entwurf) Formular1 - Microsoft InfoPath_2012-12-13_20-27-18

Ein Gedanke zu “InfoPath 2007: Fehlende Elemente bei Abfrage aus einer SharePoint-Liste
avatar

  1. Pingback: InfoPath 2007: Fehlende Elemente bei Abfrage aus einer SharePoint-Liste - SharePoint Blogs in German - Bamboo Nation

Schreibe einen Kommentar