Pytanie : Sharepoint obyczajowy obieg status pozwolenie

my createad obyczajowy workfow kojarzyć z forma biblioteka, my mieć "Dane Od Użytkownik" akcja che tworzyć nowy zadanie w obyczajowy zadanie lista "HRTasks", the problem my mieć the tworzyć zadanie móc redagować dane przyczyniać się użytkownik, móc my podnosić dostęp zaprzeczać wiadomość gdy użytkownik który wyznaczać gdy stuknięcie the zadanie rzecz który przedni the strona "Spisywać/HRTasks/DispForm.aspx "

Thanks

Odpowiedź : Sharepoint obyczajowy obieg status pozwolenie

Cześć,

I próbować the kod i pracować świetnie z wyznaczać i non-wyznaczać użytkownik.
Zadawalać attach the debugger (attach w3wp.exe) w Wizualny Studio debug the zagadnienie.

Używać the kod, my używać -

jawny override pustka ItemUpdating (SPItemEventProperties własność)
        {
            base.ItemUpdating (własność);

            jeżeli (properties.ListTitle.Equals (DocumentLibararyType.Tasks, StringComparison.InvariantCultureIgnoreCase) == prawdziwy)
            {
                SPWeb miejsce = null;
                próba
                {
                    SPListItem spItem = properties.ListItem;
                    miejsce = properties.OpenWeb ();
                    SPGroup spOwnerGroup = site.AssociatedOwnerGroup;
                    SPUser spCurrentUser = site.CurrentUser;

                    smyczkowy strStatus = spItem [ItemFiledType.Status] .ToString ();
                    int intIndex = spItem [ItemFiledType.AssignedTo] .ToString () .IndexOf ("#");
                    smyczkowy spAssignedTo = spItem [ItemFiledType.AssignedTo] .ToString (). Usuwać ((0), intIndex + 1);
                    zawiązywać spCurrentUserLoginName = site.CurrentUser.LoginName;
                    zawiązywać spCurrentUserName = site.CurrentUser.Name;  // dodawać jeżeli "Wyznaczać" być użytkownik imię aktualny użytkownik.
                    bool blnAllowUpdate = fałszywy;

                    jeżeli (spCurrentUserLoginName.Equals ("sharepoint \ \ system", StringComparison.InvariantCultureIgnoreCase) == fałszywy)
                    {
                        foreach (SPGroup spg w spCurrentUser.Groups)
                        {
                            jeżeli (site.AssociatedOwnerGroup ! = null)
                            {
                                jeżeli (spg. Name.CompareTo (site.AssociatedOwnerGroup.Name) == (0))
                                {
                                    jeżeli (strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) == prawdziwy)
                                    {
                                        // Użytkownik być the wiadomość który my polubić the użytkownik
                                        // jeżeli on/ona próbować aktywny zadanie
                                        properties.ErrorMessage = "Zadanie już uzupełniać i móc aktualizować teraz. ";
                                        //// Ten linia właściwie odwoływać the deleatur
                                        własność. Odwoływać = true;
                                    }
                                    inny
                                    {
                                        blnAllowUpdate = true;
                                    }
                                }
                            }
                        }

                        // Jeżeli the zadanie status być Zupełny ono być aktywny zadanie wcale zadanie
                        // Inaczej my odwoływać the skasowanie
                        // jeżeli (strStatus! = "Uzupełniać" && strStatus! = "Produkcja" && strStatus! = "Zatwierdzenie Zaprzeczać")
                        jeżeli (blnAllowUpdate == fałszywy)
                        {
                            // "spAssignedTo.CompareTo (spCurrentUserName)! = (0)" ten warunek dodawać jeżeli "Wyznaczać" być (0) imię aktualny użytkownik.
                            jeżeli ((spAssignedTo.CompareTo (spCurrentUserLoginName)! = (0) && spAssignedTo.CompareTo (spCurrentUserName)! = (0)) &&
                                (strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) == fałszywy))
                            {
                                // Użytkownik być the wiadomość który my polubić the użytkownik
                                // jeżeli on/ona próbować aktywny zadanie
                                properties.ErrorMessage = "Ten rzecz być wciąż w toku i móc tylko aktualizować the twórca the rzecz. ";
                                //// Ten linia właściwie odwoływać the deleatur
                                własność. Odwoływać = true;
                            }
                            inny jeżeli (strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) == prawdziwy)
                            {
                                // Użytkownik być the wiadomość który my polubić the użytkownik
                                // jeżeli on/ona próbować aktywny zadanie
                                properties.ErrorMessage = "Zadanie już uzupełniać i móc aktualizować teraz. ";
                                //// Ten linia właściwie odwoływać the deleatur
                                własność. Odwoływać = true;
                            }
                        }
                    }
                }
                łapać (Wyjątek wyjątek)
                {
                    properties.ErrorMessage = "Wewnętrzny błąd zdarzać się podczas gdy robić akcja" + Environment.NewLine +
                        message.ToString. Message.ToString ();
                    własność. Odwoływać = true;
                }
            }

        }

I mieć nadzieję, ono pomagać.

Otucha…
Rajendra
Inne rozwiązania  
 
programming4us programming4us