Infopath Stolperfalle

Eine Infopath Stolperfalle, über die ich kürzlich schon beinahe zum zweiten Mal stolpern wollte - betriebsblind und irritiert aufgrund der vermeintlich fehlenden Systematik, hängt mit sekundären Datenquellen, im Speziellen mit Sharepoint Listen zusammen: Infopath scheint nur die Anzahl an Datensätzen einzulesen, die in der Standardansicht einer Sharepoint Liste vorgegeben ist (und übrigens auch einiges andere an Settings der Sharepoint Standardansicht zu übernehmen). Und das kann zu einiger Verwirrung führen.

Aufgeschrieben, um nicht wieder drüberzustolpern…

Das Prinzip hinter sekundären Datenquellen ist prinzipiell klar: Sharepoint Listen, XML Dokumente oder auch Datenbanken (Acccess oder SQL Server) können als Datenquellen eines Infopath Formulars genutzt werden. Durch die Definition einer externen Datenverbindung führt ein Dialog, der es einfach macht und gleichzeitig, verlässt man sich auf die Schnelle ausschließlich darauf, zu einem netten Stolperstein führt. Eine praktische Sache beispielsweise für Adresslisten - und das sicherlich auch eine klassische Anwendung.

Nun ist es leider so, dass die Standardansicht einer Sharepoint Liste die Anzahl der anzuzeigenden Einträge pro Seite auf 150 einschränkt (die nächsten 150 werden dann über eine Pagenavigation angefordert). Meist benötigt man hier keinerlei Anpassungen, denn 150 ist eine gelungene Anzahl an Einträgen pro Seite, zusätzlich bietet Sharepoint ja zudem Sortierung, Filter und Gruppierung. Nur, wenn diese Sharepoint Liste als Datenquelle genutzt werden soll, ist Vorsicht geboten:

Infopath liest nämlich grundsätzlich nur die Anzahl von Datensätzen der ersten Seite ein. Mir ist es nun beinahe schon zum zweiten Mal passiert, dass ich längere Zeit am Debuggen war, weil meine Tests ohne größeres Nachdenken auf Datensätze der zweiten oder dritten Seite zeigten und damit nicht angezeigt wurden, weil ein leerer Datensätz zurückgegeben wurde. Dies fällt schnell auf, wenn eine alphabetische Sortierung vorliegt, aber in anderen Fällen führt es zu zunächst nicht so einfach reproduzierbaren Tests.

Die Lösung ist natürlich denkbar einfach: Man setzt -wenig elegant, weil eventuell nicht gewünscht- die Eintragsgrenze hoch. So richtig utopisch hoch, um genau diesen Effekt dauerhaft zu vermeiden. Oder aber - und das ist die elegantere Variante: man gibt bei der Definition der Datenverbindung gleich den passenden View mit an. Dieser View kann vorab in Sharepoint geeignet definiert werden, dient lediglich der Infopath Verknüpfung und wird auch den Sharepoint Portal Usern nicht angezeigt.

Nur kennen muss man das Problem…

Update: Es war wohl mein schnellgeschossener Wunschtraum, dass genau das ginge. Tut es aber nicht. Der SharepointListAdapter, über den die Datenverbindung definiert wird, kann keinen View, die Definition geschieht allein über die Sharepoint URL sowie die Listen GUID.

Gibt man die URL eines Listen Views mit an, so sind lediglich nur die in diesem View definierten Felder aktiviert, aber alle anderen kann man natürlich auswählen. Und die GUID sorgt dann offenbar dafür, dass für alles andere wohl dann doch die Einstellungen des Standardviews gelten.

 

5 Antworten zum Beitrag “Infopath Stolperfalle”

  1. am 09 Jul 09 um 12:07 meint

    CS

    Auch wenn die Lösung sehr einfach scheint. Wie kann ich einen View bei der Datenverbindung mit angeben ? Ich benötige in meinem Fall unterschiedliche Sortierungen. Würde mir sehr helfen Danke !!!

  2. am 18 Sep 09 um 16:46 meint

    Marcel

    Hallo CS,

    genau die gleiche Frage stelle ich mich auch.
    Wie kann man bei der Datenverbindung eine View mit angeben?

    Wäre für Feedback dankbar.

    Marcel

  3. am 26 Okt 09 um 15:18 meint

    Mark

    Hallo,

    vielen Dank für die Info!

    Zu der Frage meiner “Vorredner”:

    Wenn ich die Frage richtig verstanden habe, lassen sich die Ansichten wie folgt ansprechen:

    Die Standardansicht hat die UR …/AllItems.aspx alle anderen Ansichten lassen isch über … …/.aspx ansprechen.

    Viele Grüße, Mark

  4. am 07 Dez 09 um 08:44 meint

    cs

    Danke für die Reaktion

    Das mit dem Ansprechen auf Webseite ist soweit klar. Wie binde ich aber diese Information in Infopath ein. Alle Versuche die URL zu übernehmen sind fehlgeschlagen. Infopath greift immer auf die Standardliste und deren Sortierung zurück

  5. am 07 Dez 09 um 09:11 meint

    cs

    Habe eben den Zusatz gelesen. Ich finde, mann sollte Dinge vorab testen bevor man diese kundtut. Da spart einem unnötige Zeit und Frust.

    Auf der anderen Seite zeigt es das man Informationen aus dem Internet skeptisch gegenüberstehen sollte. Es stimmt halt nicht alles was geschrieben steht.

Auch was dazu sagen?