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.




InfoPath Formular: Username über Webservice auslesen -> Fehler 5566

Geprüfte Antwort Dieser Beitrag hat 21 Antworten

Ohne Rang
292 Beiträge
Florian Willmes erstellt 3 Aug. 2009 16:45
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen,

ich habe mit Hilfe folgender Anleitung den Usernamen über die Webservice-Methode UserProfileService.GetUserProfileByName ausgelesen:

http://blogs.msdn.com/infopath/archive/2007/03/07/get-the-user-profile-through-moss-web-services.aspx

In InfoPath funktioniert das alles ohne Probleme. Nachdem ich das Formular in SharePoint in einer Formularbibliothek als Inhaltstyp hinzugefügt habe, funktioniert der webbasierte Aufruf des Formulars nicht mehr: EventID / Fehler 5566

Habe dazu verschiedene Posts im Internet gefunden,

z.B.: https://blogs.msdn.com/hakaneren/archive/2009/02/19/resolving-infopath-5566-error.aspx

http://blogs.technet.com/jasbro/archive/2008/02/05/eventid-5566-troubleshooting-in-infopath-form-services.aspx

http://www.sharepointhillbilly.com/archive/2009/05/04/kb-896861-saves-the-day-again----infopath-5566.aspx

 

leider habe ich trotz der folgenden Versuche das Problem nicht lösen können:

  • ausführnder User hat zugriff auf die SharePoint-Site
  • web.config: Proxy AutoDetect = false
  • Zentraladministration: Anonymer Zugriff deaktiviert
  • DisableLoopbackCheck

Hat jmd. von euch schon dieses problm gehabt und könnte mir weiterhelfen?

Danke im Voraus,

Gruß, Flo

Alle Antworten

Ohne Rang
186 Beiträge
Benjamin Aicheler Als Antwort am 4 Aug. 2009 14:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Flo,

ich habe das ebenfalls nach der genannten Seite gemacht, und kann da vor allem Kommentar 3 empfehlen. Damit kann man den Webservice als Datenquelle anlegen und ohne Programmierung mit wenigen Klicks nutzen.

Falls nichts dagegen spricht, und du das nicht schon so machst, kannst du diese Methode ja mal testen.

 

Ohne Rang
292 Beiträge
Florian Willmes Als Antwort am 6 Aug. 2009 07:23
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

danke für die Antwort.

Nachdem ich die beschriebenen Punkte bereits durchgeführt hatte und sich an dem problem nichts geändert hat, habe ich den von der angesprochenen loopback check fix nochmals getestet. Diesmal bin ich auf Nummer sicher gegangen und habe nach der Registry-Änderung den Server durchgestartet. Dadurch konnte ich den fehler beheben.

Danke,

Flo

Gruß
Florian

Ohne Rang
292 Beiträge
Florian Willmes Als Antwort am 6 Aug. 2009 07:27
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Benjamin,

leider habe ich keine Möglichkeit gefunden dir eine persönliche Nachricht zu schicken, daher poste ich das hier noch mal über das Forum.

Was für Anforderungen hast du bisher mit InfoPath in SharePoint umgesetzt? Gäbe es da irgendwas, was ich grundsätzlich beachten sollte oder gibt es sonst irgendwelche Tipps die du mir geben könntest?

Gruß

Flo

Gruß
Florian

Ohne Rang
186 Beiträge
Benjamin Aicheler Als Antwort am 7 Aug. 2009 09:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Flo,

ich habe eigentlich nicht die loopback geschichte gemeint, sondern den dritten Kommentar unter dem von dir genannten Link

http://blogs.msdn.com/infopath/archive/2007/03/07/get-the-user-profile-through-moss-web-services.aspx

Ich habe das ganze nicht nach der auf dieser Seite beschriebenen Methode mit eigener Programmierung gemacht, sondern entsprechend dem genannten Kommentar von plainer (dritte von oben).

Great article!  

Let's take it one step further and make it a no-code solution!  How?  Throw out steps 3 and 4.  Instead:

3)  Create a new data connection to retrieve information from the specified web service (http://<yourServerName>/_vti_bin/UserProfileService.asmx?WSDL), and select the "GetUserProfileByName" web method.

4)  Use an XPath query on your secondary data source to populate the fields you want.  For instance, use a formula to set the default value for an "email address" field.  You'll be selecting the "dataFields/.../Value" field.  The trick is to ensure you select the correct PropertyData node, as it is a repeating field - you'll have to edit the XPath to do so.  Assuming your secondary data source is called "GetUserProfileByName", the XPath query required to get the current user's email address looks as follows:

xdXDocument:GetDOM("GetUserProfileByName")/dfs:myFields/dfs:dataFields/s0:GetUserProfileByNameResponse/s0:GetUserProfileByNameResult/s0:PropertyData[s0:Name = "WorkEmail"]/s0:Values/s0:ValueData/s0:Value

Works beautifully, and without needing to bust out any code!

Auf diese Art habe ich ohne Probleme und vor allem ohne eigenen Programmcode den UserProfile Webservice, Methode GetUserProfileByName verwendet.  Neben der WorkEmail kann man so alle Informationen die im Sharepoint Profil stehen abfragen.

Das wäre meine Empfehlung, falls bei dir eine Codefreie Lösung möglich ist. Ich hatte damit keinerlei Probleme und kenne auch den von dir beschriebenen Fehler nicht. Versuchst du den Webservice in eigenem Programmcode aufzurufen, oder machst du das bereits wie hier beschrieben?

Wir sind hier mit Infopath noch ziemlich am Anfang denke ich.

Haben bisher ein paar Formulare (verschiedene Anträge usw.) gemacht, die beim öffnen per UserProfile(Daten des angemeldeten Benutzers) und UserGroup(Mitglieder einer Sharepoint Gruppe) Webservice verschiedene Daten vorbelegen. Diese werden dann (wenn ausgefüllt) beim Klick auf Absenden per E-Mail versendet und in der Formularbibliothek gespeichert.

Anhand der Mitglieder eine Sharepoint Gruppe (UserGroup WS) werden zum Teil verschiedene Elemente im Formular ausgeblendet.

Demnächst steht ein Formular an, was je nach bereits gemachten Eingaben unterschiedliche weitere Eingaben ermöglichen soll.

Also alles recht einfache Dinge bisher, Browserkompatibel und ohne eigenen Programmcode.

Ohne Rang
292 Beiträge
Florian Willmes Als Antwort am 10 Aug. 2009 08:04
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Benjamin,

trotzdem danke für die Hilfe! Die No-Code Lösung werde ich bei Gelegenheit auch mal testen, allerdings funktioniert der programmierte Teil mittlerweile einwandfrei!

Wir sind mit dem Thema InfoPath und digitalen Formularen auch noch ziemlich am Anfang.

Mir fehlt in dem Zusammenhang teilweise der richtige Ansatz beim  grundsätzlichen Konzept von InfoPath und SharePoint, wie zum Beispiel: Wenn eine Formularvorlage als Inhaltstyp einer Bibliothek eingerichtet wird, können Formulare ja direkt über die "Neu -> Neues Formular" erstellt werden. Speichert ein User dieses Formular dann in der Bibliothek ab, so können alle User mit R/W-Rechten in dieser Bibliothek, lesend und schreibend auf dieses Formular zugreifen. Das kann bei manchen Formularen kritisch sein. Wie ist hier der "richtige" Ansatz? Wie hast du dieses Problem gelöst?

Gruß

Flo

Gruß
Florian

Ohne Rang
186 Beiträge
Benjamin Aicheler Als Antwort am 10 Aug. 2009 11:13
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Flo,

dieses Thema hat uns auch einiges Kopfzerbrechen bereitet. Grundsätzlich haben wir bisher glaube ich zwei "sichere" Methoden verwendet:

1. User dürfen neu erstellen und alle bereits vorhandenen anzeigen, aber nicht ändern (auch die eigenen nicht)
--> Neue Berechtigungsstufe auf Basis von Lesen, erweitert um erstellen

2. Beliebige andere Berechtigungen
--> Eigener Berechtigungsworkflow im SPD auswählbar nach Anleitung http://www.codeproject.com/KB/sharepoint/CustomActivity.aspx und Vorbild der entsprechenden Aktivität von http://spdactivities.codeplex.com/ der z.B. Teilnehmen Berechtigung an den Ersteller (oder beliebige andere Gruppen/User) vergibt. Alternativ wäre das auch per EventReceiver möglich, allerding mit mehr Aufwand verbunden.

Wir haben so beispielsweise einmal eine Besucher/Mitglieder/Besitzer Struktur für einzelne Dokumente einer Dokumentenbibliothek nachgebaut, wie man sie für Sites kennt. Beim Anlegen des Dokuments bekommen dann die drei zum Inhaltstyp des Dokuments zugeordneten Gruppen die entsprechenden Berechtigungen. Damit nicht jeder jeden Inhaltstyp anlegen kann, haben wir hier noch einen kleinen EventReceiver geschrieben. (Ordner gehen irgendwie nicht richtig wenn man Webpartverbindungen verwendet, kann das sein? Ansonsten hätten sich hier Ordner angeboten.)

Ich habe allerdings nicht getestet was passiert, wenn sich jemand eine Benachrichtigung einrichtet (die Berechtigung wird ja erst nach dem Anlegen vergeben, zuvor vererbt). Wir haben vorsichtshalber das Erstellen von Benachrichtigungen für diese Bibliotheken verboten, nicht dass diese evtl. vor der Berechtigungsvergabe versandt wird. Wobei es wohl weniger wahrscheinlich ist, dass die Benachrichtigung genau in der Sekunde zwischen Anlegen und Berechtigungsworkflow versendet wird.

 

Dann wäre da noch die "Workaround Methode" die wir aber nicht verwenden... entsprechende Ansichten mit Filter z.B. Erstellt von = [Ich], verbieten von Persönlichen ansichten usw., die aber eben nie "sicher" sind. Damit ist dieser Ansatz nach meiner Meinung nur geeignet um dem User die für ihn relevanten Daten auf den ersten Blick anzuzeigen, aber nicht um ihn daran zu hindern auch die anderen Daten zu sehen oder zu bearbeiten.

 

Hast du vielleicht eine Idee wie man innerhalb des Formulars Berechtigungen vergeben kann? Einfachstes Beispiel: der Urlaubsantragsteller soll den genehmigen Button nicht sehen/klicken können. Wie oben erwähnt blenden wir den dann einfach aus (Bedingte Formatierung, UserGroup Webservice) wenn der User nicht in der entsprechenden Sharepoint Gruppe ist. Solange das nur ein Button ist, geht das... Mit Ansichten müsste das ja auch irgendwie möglich sein!? Bereiche!? Wie macht ihr das?

Ohne Rang
292 Beiträge
Florian Willmes Als Antwort am 10 Aug. 2009 14:37
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Benjamin,

ich habe mir die Konfigurationsmöglichkeiten der Berechtigungsstufen mal genauer angesehen. Man kann das Ganze so einstellen, dass Benutzer Elemente hinzufügen, aber nicht bearbeiten können. Leider kann es nicht einstellen, dass Benutzer Formulare erstellen und nur die eigenen sehen können.

Habt ihr genau dieses Szenario mit den zusätzlichen SPDesigner-Workflows umsetzen können?

Neben dem klassischen speichern eines Formulars in einer Bibliothek, gibt es ja auch die Möglichkeit, ein Formular an eine bestimmte Bibliothek zu senden (Absenden-Optionen im Formularentwurf in InfoPath). Das wäre eine Möglichkeit, die Formulare in einer Bibliothek zu speichern, auf welche die Benutzer keinen Zugriff haben, oder habe ich da etwas übersehen?

 

Nun aber zu deiner Frage.

Wieso verwendest du einen "Genehmigen"-Button direkt im Formular? Ich würde hier einen Workflow an die Bibliothek anbinden, welcher bei neuen Elementen automatisch gestartet wird. In diesem Workflow können die entsprechend berechtigten User dann die Anträge genehmigen. Wäre das eine Möglichkeit?

 

Und nach was, hast du eine Möglichkeit gefunden hier in der Community auch persönliche Nachrichten an die Mitglieder zu schreiben? Ich habe sowas bisher nicht gefunden.

 

Gruß

Flo

Gruß
Florian

Ohne Rang
186 Beiträge
Benjamin Aicheler Als Antwort am 10 Aug. 2009 16:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Flo,

Antworten mit --> im Zitat

Hallo Benjamin,

ich habe mir die Konfigurationsmöglichkeiten der Berechtigungsstufen mal genauer angesehen. Man kann das Ganze so einstellen, dass Benutzer Elemente hinzufügen, aber nicht bearbeiten können. Leider kann es nicht einstellen, dass Benutzer Formulare erstellen und nur die eigenen sehen können.

--> Das ist richtig, einfach die Lesen Berechtigungsstufe kopieren und "Element erstellen" hinzufügen. Nur die eigenen sehen geht damit aber (bei einer Formular-/Dokumentenbibliothek) nicht. Du kennst aber doch sicher die Einstellungen für Anzeigen/Bearbeiten bei normalen Listen (Alle, Eigene, Keine). Es gibt ein Tool was diese Optionen bei Dokumentenbibliotheken einstellt. Aber das ist nicht ganz sicher, da die Dokumente nur nicht mehr in der Auflistung erscheinen. Berechtigungen werden dabei keine gesetzt. Sie sind also weiterhin bspw. über Aktionen --> Mit Windows Explorer öffnen oder durch Eingabe der Url für jeden anzeig- und änderbar.

Habt ihr genau dieses Szenario mit den zusätzlichen SPDesigner-Workflows umsetzen können?

--> Jeder der Anlegen darf bekommt einfach eine entsprechende Berechtigung,die Element erstellen beinhaltet, für die ganze Bibliothek. Z.B. Teilnehmen. Wenn ein Element angelegt wird startet der Workflow. Der Workflow entfernt alle vererbten Berechtigungen und gibt dann den gewünschten Benutzern (oder Gruppen) die gewünschten Berechtigungen auf das neue Element. In diesem Fall also dem Ersteller Lesen oder Teilnehmen Berechtigung. Somit kann es nur noch der Ersteller dann Lesen oder Bearbeiten.

An Stellen wo sich Zuständigkeiten ändern können, kann es sinnvoll sein Sharepoint Gruppen (die ggf. nur einen Benutzer enthalten) zu verwenden. So können dann einfach andere/weitere Personen Berechtigungen für bereits vorhandene Elemente bekommen, für die der Workflow schon gelaufen ist.

Neben dem klassischen speichern eines Formulars in einer Bibliothek, gibt es ja auch die Möglichkeit, ein Formular an eine bestimmte Bibliothek zu senden (Absenden-Optionen im Formularentwurf in InfoPath). Das wäre eine Möglichkeit, die Formulare in einer Bibliothek zu speichern, auf welche die Benutzer keinen Zugriff haben, oder habe ich da etwas übersehen?

--> Wir verwenden eigendlich nur die Absenden Option, da wir normalerweise das Formular erst per E-Mail versenden und dann an die Formularbibliothek zum Speichern. Außerdem können wir so den Dateinamen (muss ja eindeutig sein) aus Formulareingaben zusammensetzen. Ich meine wir hatten das auch versucht, aber der der das Formular absendet muss Berechtigungen zum erstellen in der Bibliothek haben, damit es funktioniert. Erstellen setzt leider anzeigen voraus (aber nicht öffnen!?). Allerdings muss er ja die Url der Bibliothek nicht wissen :)

Nun aber zu deiner Frage.

Wieso verwendest du einen "Genehmigen"-Button direkt im Formular? Ich würde hier einen Workflow an die Bibliothek anbinden, welcher bei neuen Elementen automatisch gestartet wird. In diesem Workflow können die entsprechend berechtigten User dann die Anträge genehmigen. Wäre das eine Möglichkeit?

 --> Das wäre im Fall des Urlaubsantrags eventuell möglich ja (kann man den genehmiger aus dem Formular auslesen?). Daran hatte ich garnicht gedacht :). Aber es muss ja nicht immer der Genehmigen Button sein. Ein weiteres Beispiel: es ist so, dass bei einer Raumreservierung der Antragsteller nicht den Raum aussuchen darf. Er gibt nur die Personenzahl an und bekommt ,ggf. nach Absprache, einen Raum zugeteilt. Die Raumverwaltung soll aber im Formular den Raum festhalten, und interne Notizen hinterlegen können. Die Raumauswahl soll hier also für den Antragsteller deaktiviert sein (damit er den zugeteilten Raum später sehen, aber nicht selbst auswählen kann). Die internen Notizen sollen nicht sichtbar sein und sind nur für die Raumverwaltung relevant.

Und nach was, hast du eine Möglichkeit gefunden hier in der Community auch persönliche Nachrichten an die Mitglieder zu schreiben? Ich habe sowas bisher nicht gefunden.

 --> Keine Ahnung habe im Profil mal öffentliche E-Mail Adresse eingetragen, schau mal obs geht

Gruß

Flo

Viele Grüße

Benjamin

Ohne Rang
292 Beiträge
Florian Willmes Als Antwort am 12 Aug. 2009 16:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Benjamin,

hab leider deine Email-Adresse nicht gefunden, also schreibe ich dir wieder übers Forum!

 

Ich habe mittlerweile die zusätzlichen SPDesigner-Workflows testen können und bin wirklich begeistert, an der Stelle noch mal vielen Dank für den Tipp!

 

Zu deiner Frage: --> Das wäre im Fall des Urlaubsantrags eventuell möglich ja (kann man den genehmiger aus dem Formular auslesen?). Daran hatte ich garnicht gedacht :).

Der zuständige Genehmiger eines MA ist ja entweder der Vorgesetzte oder eine statische festgelegte Gruppe. Somit würde ich also entweder über das Profil-Attribut "Manager" gehen, oder man verwendet eben eine fest definierte SharePoint- oder AD-Gruppe.

 

Konkret arbeite ich derzeit an einer Lösung für Reiseanforderungen. Ich habe mir dabei das folgende Szenario überlegt:

Es wird 2 verschiedene Formularbibliotheken geben.

1. Bibliothek: Reiseantrag

  • Hier wird der Reiseantrag als Inhaltstyp hinterlegt.
  • Benutzer können das Formular ausfüllen und dann speichern oder senden.
  • Auf alle Items in dieser Bibliothek wird ein Workflow zum Verändern der Berechtigungen gestartet.
  • Ergebnis: In dieser Bibliothek sieht jeder Mitarbeiter seine eigenen Formulare, welche so zusagen als persönliche Reiseantrags-Vorlagen dienen

2. Bibliothek: Reiseantragsverwaltung

  • Wird ein Formular in der 1. Bibliothek nicht gespeichert, sondern versendet, wird der Antrag an diese Bibliothek geschickt.
  • Bei neuen Elementen, also Anträgen, startet ein Workflow, um die zuständigen Bearbeiter der Reiseanforderungen über neue Anträge zu informieren.
  • Hier gibt es zusätzliche Spalten, in welcher der Bearbeitungsstatus des Antrags festgehalten werden kann
  • Auf alle Items in dieser Bibliothek wird ebenfalls ein Workflow zum Verändern der Berechtigungen gestartet.
  • Ergebnis: In dieser Bibliothek wird der der Bearbeitunmgsstatus der Anträge verwaltet und verschiedene Ablauf-Prozesse über Workflows (bisher nur einer) unterstützt
  • Zusatz: Hier sollte es zudem möglich sein, dass ein Mitarbeiter einen zuvor versendeten Antrag wieder stornieren kann! Diese Storno-Funktion könnte über einen weiteren manuell vom Mitarbeiter zu startenden Workflow realisiert werden.
    Hier ergibt sich jedoch ein Problem: Selbst wenn der User nur die Berechtigungen zum lesen seiner Formulare hat, ist der Senden-Button in der Web-Symbolleiste vorhanden und das Formular könnte versehentlich erneut abgesendet werden. Daher die Frage:
    • Wie kann die Websymbolleiste dynamisch angepasst bzw. ausgeblendet werden?
    • Alternativ könnte man diese Symbolleiste auch vollständig ausblenden und die beiden notwendigen Funktionen Senden und Speichern über Buttons realisieren (denn Buttons zu manipulieren ist ja möglich). Leider habe ich kein Speichern-Event finden können, weisst du da vielleicht mehr?

So...nun hab ich aber genug geschrieben...ich hoffe ich konnte dir einigermaßen gut klar machen, womit ich mich zu zeit beschäftige und wo dort die Probleme liegen. Vielleicht hast du ja eine Idee wie die probleme lösen kann, oder du hast einen grundsätzlichen Tipp zum Konzeptuellen Aufbau.

 

Danke

Flo

Gruß
Florian

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 12 Aug. 2009 16:30
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Flo,

ich mische mich mal in die Diskussion ein (deshalb solltet Ihr die auch weiterhin ruhig hier führen. Andere können evtl. auch etwas dazu beitragen oder zumindest daraus lernen).

Nur ein paar grundsätzliche Dinge: am Besten man blendet die Symbolleiste in InfoPath komplett aus und wickelt alles über eigene Buttons ab. Damit kann man genau steuern, was wann passiert. Gebe dem Formular ein zusätzliches Datenfeld "Status" (nichts sichtbar im Formular, oder nur readonly). Wenn das Formular (über Deinen Button) jetzt abgeschickt wird, dann setze das Statusfeld auf "Abgeschickt" und speichere es erst dann. Wenn der Status bereits auf "Abgeschickt" steht, dann verhindere ein erneutes Abschicken. Das Feld kannst Du dann auch für weitere Stati verwenden, z.B. "Genehmigt" oder "Abgelehnt". Außerdem kannst Du in Abhängigkeit davon Felder/Buttons (un)sichtbar machen.

Das sollten nur ein paar Denkanstöße sein. Hoffe sie helfen Dir.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
186 Beiträge
Benjamin Aicheler Als Antwort am 13 Aug. 2009 08:45
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

danke für den Tip. Das hört sich sehr gut an. Mit der Infopath Symbolleiste haben wir schon die Erfahrung gemacht, dass (zugegeben vorher nicht eingewiesene) Anwender gerne Speichern/Speichern unter statt Absenden klicken. Dann geht der Spass los mit doppelten Dateinamen und nicht versandten E-Mails.

Kann man die Speichern funktion wie sie auf der Symbolleiste vorkommt auch per eigenem Button realisieren? Wir haben das versucht, indem wir das Formular einfach nochmals an die Formularbibliothek senden und das "überschreiben" Häkchen setzen. Interessanterweise vergibt er dabei aber einen anderen Dateinamen. Wir haben ein Datum im Dateinamen enthalten --> verketten(Datum_von; " "; Name). Beim ersten Sichern heisst die Datei bspw. 2009-08-14T14_00_00 Nachname_ Vorname.xml. Beim erneuten Sichern, wo sie eigendlich überschrieben werden sollte heisst sie dann 2009-08-14T14_00_00Z Nachname_ Vorname.xml und wird demnach nicht überschrieben sondern neu angelegt.

 

Hallo Flo,

Der zuständige Genehmiger eines MA ist ja entweder der Vorgesetzte oder eine statische festgelegte Gruppe. Somit würde ich also entweder über das Profil-Attribut "Manager" gehen, oder man verwendet eben eine fest definierte SharePoint- oder AD-Gruppe.

--> Der Antragsteller muss den Genehmiger aus einem Dropdown auswählen was per UserGroup Webservice mit Optionen gefüllt wird. Der Manager ist glaube ich im allgemeinen nicht gepflegt.

 

1. Bibliothek: Reiseantrag

  • [...]

--> Das sollte so möglich sein. Ich würde in diesem Fall dem Vorschlag von Andi folgen und eigene Buttons im Sinne von "Als persönliche Vorlage sichern" und "Reiseantrag absenden" oder ähnlich verwenden.

2. Bibliothek: Reiseantragsverwaltung

  • [...]

--> zum 2 Punkt: Ich verwende sehr gerne das Absenden einer E-Mail als Benachrichtigung direkt aus Infopath heraus, weil dann das Formular mit Inhalt als HTML Mail verschickt wird. Das ist aber eine reine Benachrichtigung.  Man kann hier das Formular zwar auch xml Dateianhang mitversenden, dann braucht der Empfänger aber Infopath. Möchte man gleichzeitig eine Genehmigung starten ist ein Sharepoint Workflow möglicherweise besser geeignet.

zum 3. Punkt: Siehe Antwort von Andi (Status Feld).

zum 6. Punkt: Wenn ein identischer Dateiname sichergestellt ist und das Häkchen zum Überschreiben (beim Absenden) nicht gesetzt ist oder der User nur Lesen Berechtigung hat (Absenden/Speichern) sollte eine entsprechende Fehlermeldung kommen. Wie seid Ihr bei den Dateinamen vorgegangen? Die müssen ja innerhalb einer Bibliothek einmaling sein. Die Sache mit dem Speichern per Button... ja... wie oben geschrieben haben wir das mit erneutem Absenden und "überschreiben" Häkchen versucht, klappt aber noch nicht so.

 

Grüße

Benjamin

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 13 Aug. 2009 09:00
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das Speichern kann man sehr gut mit einem eigenen Button machen und normalerweise wird dabei auch der angegebene Dateiname unverändert übernommen. I.d.R. nimmt man für den Dateinamen (wie angegeben) Datum+Uhrzeit und evtl. auch noch den Benutzernamen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
292 Beiträge
Florian Willmes Als Antwort am 13 Aug. 2009 09:55
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

Der Tipp mit dem ausgeblendetem Feld für den Formularstatus hört sich gut an! Man kann dieses Feld ja auch als (nicht gesperrte) Spalte in der Bibliothek verfügbar machen, sodass der Workflow den Status auch ändern kann. Trotzdem wäre der Status direkt im Formular enthalten. Sehr gute Idee, vielen Dank!

Nun stellt sich mir (und wohl auch Benjamin) die Frage, wie man ein Formular per Code in einer Bibliothek speichern kann. Kann man die Standard Speicherfunktionalität von InfoPath (so wie in der Symbolleiste verwendet) per Code aufrufen, oder muss man das direkt über das SP Objekt-Modell machen? Wie würde ein beispielhafter Code aussehen?

 

Danke im Voraus,

Flo

Gruß
Florian

Ohne Rang
292 Beiträge
Florian Willmes Als Antwort am 14 Aug. 2009 14:03
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Andi Fandrich"]

Das Speichern kann man sehr gut mit einem eigenen Button machen und normalerweise wird dabei auch der angegebene Dateiname unverändert übernommen. I.d.R. nimmt man für den Dateinamen (wie angegeben) Datum+Uhrzeit und evtl. auch noch den Benutzernamen.

[/quote]

Hallo Andi,

bevor ich für diese Frage ein neues Thema starte, versuche ich dich noch mal hiermit zu erreichen!

 

.... Nun stellt sich mir (und wohl auch Benjamin) die Frage, wie man ein Formular per Code in einer Bibliothek speichern kann. Kann man die Standard Speicherfunktionalität von InfoPath (so wie in der Symbolleiste verwendet) per Code aufrufen, oder muss man das direkt über das SP Objekt-Modell machen?

Wie würde ein beispielhafter Code aussehen?

 

Gruß

Flo

Gruß
Florian

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 14 Aug. 2009 14:58
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das geht mit einer Regel auf dem Button und der Aktion "An eine Datenverbindung senden".

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
186 Beiträge
Benjamin Aicheler Als Antwort am 17 Aug. 2009 08:14
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Flo und Andi,

wir haben das jetzt so gemacht:

Button für den Antragsteller:

  • Beim ersten Absenden wird vor dem sichern in der Sharepoint Bibliothek der Dateiname generiert und in einem im Formular nicht eingefügten Feld gesichert.
  • Dann wird das Formular per "An eine Datenverbindung senden" unter verwendung des Dateinames aus diesem Feld in der Bibliothek gesichert. Das Häkchen um vorhandene Dateien zu überschreiben ist hierbei nicht gesetzt. Der Antragsteller kann also einen Abgesendeten Antrag nicht einfach ändern.

Button für weitere Bearbeitungsschritte:

  • Auch hier wird das Formular per "An eine Datenverbindung senden" wieder in der Bibliothek gesichert. Dazu wird erneut der beim ersten Absenden in einem extra Feld gespeicherte Dateiname verwendet (wird nicht erneut generiert). Das Häkchen zum überschreiben ist gesetzt. Das Formular wird garantiert überschrieben, da der Dateiname garantiert identisch ist.

 

Grüße

Benjamin

Ohne Rang
292 Beiträge
Florian Willmes Als Antwort am 17 Aug. 2009 16:07
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

vielen Dank für deinen Tipp, so kann man natürlich eine Speichern-Funktionalität realisieren.

 

Gruß

Flo

Gruß
Florian

Ohne Rang
292 Beiträge
Florian Willmes Als Antwort am 13 Aug. 2009 10:03
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Benjamin,

Also bei der Stornierungsfunktion habe ich mir lediglich vorgestellt, dass der Benutzer basierend auf einem ausgewählten Formular in der 2. Bibliothek (wo ja die zu bearbeitenden Formulare landen) manuell einen Workflow "Stornieren" auslösen kann.

Dieser Verschickt dann eine Email mit den nötigen Informationen und dem verknüpften Antrag an den zuständigen Verantwortlichen. Sobald der Verantwortliche den Reiseantrag dann storniert hat, setzt er den Status des Antrags auf "storniert".

Dieser neue Status könnte daraufhion wieder einen (diesmal automatischen) Workflow anstossen, welcher den ehemaligen Antragsteller über die erfolgreiche Stornierung informiert.

Somit benötigt der Benutzer, welcher seinen Antrag stornieren will, lediglich lesenden Zugriff auf seine Anträge. Ich denke das sollte so machbar sein, oder?

 

Den Dateinamen werde ich übrigens automatisch generieren lassen, so wie Andi es bereits erwähnt hatte, mit "Datum+Uhrzeit+User". So kann es nur zu einem Speicherkonflikt kommen, wenn es ein Mitarbeiter schafft, in einer Sekunde 2 Anträge abzusenden....das halte ich für unwahrscheinlich ;-)

 

Gruß

Florian

Gruß
Florian

Ohne Rang
186 Beiträge
Benjamin Aicheler Als Antwort am 13 Aug. 2009 10:13
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das sollte funktionieren denke ich.

Bezüglich in der Sharepointbibliothek editierbare Spalten möchte ich auf diese Frage von mir hinweisen :)

http://sharepointcommunity.de/forums/t/3194.aspx

Hoffe ist halbwegs verständlich formuliert. Die Geschichte klappt noch nicht so ganz bei mir...

Ohne Rang
18 Beiträge
Mr Carisma Als Antwort am 15 Feb. 2011 09:21
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

kann mir jemand erklären wie folgendes genau funktioniert?

???Anhand der Mitglieder eine Sharepoint Gruppe (UserGroup WS) werden zum Teil verschiedene Elemente im Formular ausgeblendet.???

Vielen Dank.

MrCarisma

Ohne Rang
186 Beiträge
Benjamin Aicheler Als Antwort am 15 Feb. 2011 15:21
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Datenquelle anlegen (Anleitung + Workaround für 2007, ob das bei 2010 noch notwendig ist weiss ich nicht)

--> http://blog.ianchivers.com/2011/01/using-sharepoint-usergroup-web-service.html

Dann kann man ein Steuerelement, ich glaube es war in den Eigenschaften unter Anzeige, abhängig von einer Bedingung ausblenden. Das klappt in dem Fall mit der recht interessanten Formulierung "Alle vorkommen von Loginname enthält nicht Username".

Loginname sind dabei die Benutzer aus der Datenquelle, die also in der Sharepoint Gruppe sind, und Username ist der Benutzer der das Formular ausfüllt.

Bitte beachten, das "enthält nicht" war glaube ich notwendig, weil einer der 2 Werte mit Domäne ist, einer ohne. --> Domäne\Müller enthält Müller = Ok. Bedeutet aber auch, Domäne\P.Müller enthält Müller (von Domäne\Müller) = nicht Ok. Wenn das bei euch vorkommt, müsstest du ggf. irgendwie am "\" splitten und mit "ungleich" statt "enthält nicht" arbeiten.

Gruß

Benjamin