Frage : Sharepoint kundenspezifische Arbeitsfluss-Statuserlaubnis

wir createad, das ein kundenspezifisches workfow mit Formbibliothek verband, wir lassen „Daten vom Benutzer sammeln“ Tätigkeit, die eine neue Aufgabe in der kundenspezifischen Aufgabenliste „HRTasks“ verursachen, das Problem allen wir die verursachte Aufgabe können redigiert werden von beitragen Benutzer haben, können wir anhoben Zugang verweigerte Mitteilung wenn Benutzer, dem nicht zugewiesen zu, wenn Klicken das Aufgabeneinzelteil dieses Vorwärts zum Seite „verzeichnet/HRTasks/DispForm.aspx "

Thanks

Antwort : Sharepoint kundenspezifische Arbeitsfluss-Statuserlaubnis

Hallo,

Ich versuchte, den Code und die Arbeiten mit zugewiesenem und nicht-zugewiesenem Benutzer fein laufen zu lassen.
Den Debugger (Befestigung zu w3wp.exe) im Sichtstudio bitte anbringen, um die Ausgabe auszuprüfen.

Hiermit der Code, verwendet wir -

allgemeine Übersteuerungslücke ItemUpdating (SPItemEventProperties Eigenschaften)
        {
            base.ItemUpdating (Eigenschaften);

            wenn (properties.ListTitle.Equals (DocumentLibararyType.Tasks, StringComparison.InvariantCultureIgnoreCase) == zutreffend)
            {
                SPWeb Aufstellungsort = Null;
                Versuch
                {
                    SPListItem spItem = properties.ListItem;
                    Aufstellungsort = properties.OpenWeb ();
                    SPGroup spOwnerGroup = site.AssociatedOwnerGroup;
                    SPUser spCurrentUser = site.CurrentUser;

                    strStatus = spItem [ItemFiledType.Status] .ToString aufreihen ();
                    int intIndex = spItem [ItemFiledType.AssignedTo] .ToString () .IndexOf („#");
                    spAssignedTo = spItem [ItemFiledType.AssignedTo] .ToString aufreihen (). Entfernen (0, intIndex + 1);
                    spCurrentUserLoginName = site.CurrentUser.LoginName aufreihen;
                    spCurrentUserName = site.CurrentUser.Name aufreihen;  // hinzufügte zers, um zu sehen, wenn „“ selbe wie Name des gegenwärtigen Benutzers zugewiesen ist.
                    bool blnAllowUpdate = falsch;

                    wenn (spCurrentUserLoginName.Equals („sharepoint \ \ System“, StringComparison.InvariantCultureIgnoreCase) == falsch)
                    {
                        foreach (SPGroup SPG in spCurrentUser.Groups)
                        {
                            wenn (site.AssociatedOwnerGroup ! = Null)
                            {
                                wenn (SPG. Name.CompareTo (site.AssociatedOwnerGroup.Name) == 0)
                                {
                                    wenn (strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) == zutreffend)
                                    {
                                        // dieses ist die Mitteilung, die wir zeigen möchten dem Benutzer
                                        //, wenn he/she versucht, eine aktive Aufgabe zu aktualisieren
                                        properties.ErrorMessage = „Aufgabe bereits abgeschlossen n und kann nicht jetzt aktualisiert werden. “;
                                        //// diese Linie annulliert wirklich die Löschung
                                        Eigenschaften. Löschen = ausrichtet et;
                                    }
                                    sonst
                                    {
                                        blnAllowUpdate = ausrichten en;
                                    }
                                }
                            }
                        }

                        //, wenn der Aufgabenstatus es komplett ist, ist nicht aktive Aufgabe mehr
                        // anders annullieren wir die Auslassung
                        // wenn (strStatus! = „abgeschlossenes“ && strStatus! = „Produktion“ && strStatus! = „Zustimmung verweigert“)
                        wenn (blnAllowUpdate == falsch)
                        {
                            // „spAssignedTo.CompareTo (spCurrentUserName)! = 0,“, das diese Bedingung hinzufügte, um zu sehen, wenn „“ selbe wie Name des gegenwärtigen Benutzers zugewiesen ist.
                            wenn ((spAssignedTo.CompareTo (spCurrentUserLoginName)! = 0 && spAssignedTo.CompareTo (spCurrentUserName)! = 0) &&
                                (strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) == falsch))
                            {
                                // dieses ist die Mitteilung, die wir zeigen möchten dem Benutzer
                                //, wenn he/she versucht, eine aktive Aufgabe zu aktualisieren
                                properties.ErrorMessage = „dieses Einzelteil ist noch im Gang und kann vom Schöpfer des Einzelteils nur aktualisiert werden. “;
                                //// diese Linie annulliert wirklich die Löschung
                                Eigenschaften. Löschen = ausrichtet et;
                            }
                            sonst, wenn (strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) == zutreffend)
                            {
                                // dieses ist die Mitteilung, die wir zeigen möchten dem Benutzer
                                //, wenn he/she versucht, eine aktive Aufgabe zu löschen
                                properties.ErrorMessage = „Aufgabe bereits abgeschlossen n und kann nicht jetzt aktualisiert werden. “;
                                //// diese Linie annulliert wirklich die Löschung
                                Eigenschaften. Löschen = ausrichtet et;
                            }
                        }
                    }
                }
                Fang (Ausnahme ex)
                {
                    properties.ErrorMessage = „eine interne Störung auftrat beim Handeln von Tätigkeit“ + Environment.NewLine +
                        ex. Message.ToString ();
                    Eigenschaften. Löschen = ausrichtet et;
                }
            }

        }

Ich hoffe, es helfe.

Beifall…
Rajendra
Weitere Lösungen  
 
programming4us programming4us