SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Regelanwendung in InfoPath 2010 Formular

Geprüfte Antwort Dieser Beitrag hat 11 Antworten

Ohne Rang
112 Beiträge
Mark erstellt 2 Nov. 2012 15:02
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen,

ich habe ein "kleines" Problem mit InfoPath 2010.

Ich habe ein Formular erstellt über welches die Mitarbeiter eine Dienstreise beantragen können. Soweit so gut. Allerdings gibt es im Formular ein Personenfeld "Antragsteller" das nur von einem auserwählten Personenkreis gesehen und bearbeitet werden darf.
Der Personenkreis umfasst ca. 30-40 Personen.

Wenn ich nun das Personenfeld per Regel ausblenden möchte, klappt das eigentlich soweit auch. Allerdings nur für die erste Regel. Pro Regel kann ich ja nur 5 Optionen definieren.
Erstelle ich nun eine weitere Regel mit weiteren 5 Personen die dieses Feld sehen dürfen, wird diese aus irgendeinem Grund nicht mehr beachtet. Das heißt ich kann dieses Feld maximal 5 Personen zur Verfügung stellen (nach meinem jetzigen Wissensstand.)

Kann mir hier jemand weiterhelfen ob es möglich ist, diese Ausnahme auf mehrere Personen auszuweiten?

Vielen Dank.

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 2 Nov. 2012 15:21
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich würde das nicht auf einen fest eingebauten Personenkreis einschränken, sondern dafür eine Gruppe in SharePoint definieren. Man kann so leicht die Mitgliedschfat dieser Gruppe ändern und die Änderungen wirken sich automatisch auch auf InfoPath aus.

So kannst Du in InfoPath die Gruppenmitgleidschaft prüfen: http://www.projectpoint.at/?p=97

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
112 Beiträge
Mark Als Antwort am 2 Nov. 2012 15:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das hört sich natürlich viel besser an. Werd es mal testen ob ich es hin bekomme.

Danke dir schonmal.

Ohne Rang
112 Beiträge
Mark Als Antwort am 5 Nov. 2012 09:01
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

vielen Dank für den Link. Die Umsetzung der Anleitung verlief ohne Fehlermeldungen.

Allerdings habe ich nun noch eine Wissenslücke. Wie muss ich nun die Regel designen damit diese auch funktioniert.
Komme beim besten Willen nicht drauf.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 5 Nov. 2012 09:24
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Steht docj in der Anleitung ;-)

Am sinnvollsten prüfst Du das beim Formularladen. Frage die neue Datenquelle ab und prüfe dann das Feld IsGroupMember.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
112 Beiträge
Mark Als Antwort am 5 Nov. 2012 09:28
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich hab jetzt in der Regel folgendes Festgelegt:

Wenn "IsGroupMember" = 0 dann blende das Feld aus.

Dies funktioniert allerdings nicht. Ich habe die deutsche InfoPath Version. Habe ich als Funktion "Count" richtig gewählt wenn ich "Zahl" genommen habe?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 5 Nov. 2012 09:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Mark"]Habe ich als Funktion "Count" richtig gewählt wenn ich "Zahl" genommen habe?[/quote]

???

Du brauchst keine Funktion. Prüfe einfach, ob das Feld null oder eins enthält (je nach gewünschter Logik).

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
112 Beiträge
Mark Als Antwort am 5 Nov. 2012 09:41
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Genau das habe ich gemacht aber das funkioniert nicht.

In der Anleitung muss ich ja das Feld "IsGroupMember" bearbeiten und dafür die Funktion "Count" verwenden.
In meiner deutschen InfoPath Version habe ich dafür "Zahl" genommen. ich vermute dass dies falsch ist.

Englische Sprache kann ich leider nicht einstellen, daher rate ich gerade rum, welche Funktion (in deutscher Sprache) nun die passende ist...

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 5 Nov. 2012 10:20
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ach so, jetzt habe ich's verstanden. Die Funktion sollte Anzahl heißen. Du kannst aber unten einfach auf "Erweitert" o.s.ä. klicken und den XPath-Ausdruck direkt bearbeiten. Dort ist das sprachneutral und Du kannst count() verwenden.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
112 Beiträge
Mark Als Antwort am 5 Nov. 2012 10:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ok ich habe folgendes herausgefunden weswegen es nicht funktionieren kann.

Egal ob ich in der Gruppe enthalten bin oder nicht, der Wert im Feld "IsGroupMember" ist immer 0.

 

Ohne Rang
112 Beiträge
Mark Als Antwort am 5 Nov. 2012 14:35
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich habe nun noch getestet was passiert wenn ich einfach aus der Datenverbindung "GetUserCollectionFromGroup" den LoginName in ein Mehrzeiliges Textfeld einlesen lasse. Hier wird immer nur der erste User in der Sharepoint Gruppe ausgegeben.

Kann das damit zu tun haben dass es nicht funktioniert?

Ohne Rang
112 Beiträge
Mark Als Antwort am 5 Nov. 2012 20:14
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

So nach weiteren Tests und Augen offen halten hab ich den Fehler gefunden.

Bei GetUserProfileByName wird mir der Username so übergeben:
- domäne\user

Bei GetUserCollectionFromGroup so:
- DOMÄNE\user

Daher konnte das nicht funktionieren. Ich habe mir jetzt beim Filter eine Verkettungsfunktion eingebaut und von InfoPath die Funktion "user()" zum Filtern verwendet. Damit funktioniert es nun ohne Probleme.