Vraag : Van het de douanewerkschema van Sharepoint de statustoestemmingen

wij createad een douane workfow verbonden aan vormenbibliotheek, wij hebben de werking „van Gegevens uit Gebruiker“ bijeenzoeken wat tot een nieuwe taak in de lijst „HRTasks“ leiden van de douanetaak, het probleem wij de gecre�ërde taak kunnen door allen worden uitgegeven bijdragen gebruikers hebben, kunnen wij ophieven toegang ontkend die bericht wanneer gebruiker die niet wordt toegewezen aan wanneer klik het taakpunt dat aan de pagina „Lijsten/HRTasks/DispForm.aspx "

Thanks
door:sturen

Antwoord : Van het de douanewerkschema van Sharepoint de statustoestemmingen

Hallo,

Ik probeerde lopend de code en werk boete met toegewezen en niet-toegewezen gebruiker.
Gelieve te verbinden debugger (band aan w3wp.exe) in Visuele Studio om de kwestie te zuiveren.

Hierbij de code, hebben wij gebruikt -

openbare opheffing nietige ItemUpdating (eigenschappen SPItemEventProperties)
        {
            base.ItemUpdating (eigenschappen);

            als (ware properties.ListTitle.Equals (DocumentLibararyType.Tasks , StringComparison.InvariantCultureIgnoreCase) ==)
            {
                De plaats van SPWeb = verklaart nietig;
                probeer
                {
                    SPListItem spItem = properties.ListItem;
                    plaats = properties.OpenWeb ();
                    SPGroup spOwnerGroup = site.AssociatedOwnerGroup;
                    SPUser spCurrentUser = site.CurrentUser;

                    koord strStatus = spItem [ItemFiledType.Status] .ToString ();
                    int. intIndex = spItem [ItemFiledType.AssignedTo] .ToString () .IndexOf („#“);
                    koord spAssignedTo = spItem [ItemFiledType.AssignedTo] .ToString (). Verwijder (0, intIndex + 1);
                    koord spCurrentUserLoginName = site.CurrentUser.LoginName;
                    koord spCurrentUserName = site.CurrentUser.Name;  // voegde toe om te zien of „Toegewezen aan“ is zelfde zoals naam van huidige gebruiker.
                    bool blnAllowUpdate = vals;

                    als (valse spCurrentUserLoginName.Equals („sharepoint \ \ systeem“, StringComparison.InvariantCultureIgnoreCase) ==)
                    {
                        foreach (SPGroup spg in spCurrentUser.Groups)
                        {
                            als (site.AssociatedOwnerGroup ! = verklaar) nietig
                            {
                                als (spg. Name.CompareTo (site.AssociatedOwnerGroup.Name) == 0)
                                {
                                    als (ware strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) ==)
                                    {
                                        // dit is het bericht dat wij aan de gebruiker zouden willen tonen
                                        // als he/she probeert om een actieve taak bij te werken
                                        properties.ErrorMessage = de „Taak wordt reeds voltooid en kan niet nu worden bijgewerkt. “;
                                        //// Deze lijn annuleert eigenlijk de schrapping
                                        eigenschappen. Annuleer = waar;
                                    }
                                    anders
                                    {
                                        blnAllowUpdate = waar;
                                    }
                                }
                            }
                        }

                        // als de taakstatus Volledig is het is meer geen actieve taak
                        // annuleren wij anders de schrapping
                        // als (strStatus! = „Voltooide“ strStatus &&! = strStatus van de „Productie“ &&! = „Ontkende Goedkeuring“)
                        als (blnAllowUpdate valse ==)
                        {
                            // „spAssignedTo.CompareTo (spCurrentUserName)! = 0“ deze die voorwaarde wordt toegevoegd om te zien of „Toegewezen aan“ is zelfde zoals naam van huidige gebruiker.
                            als ((spAssignedTo.CompareTo (spCurrentUserLoginName)! = 0 && spAssignedTo.CompareTo (spCurrentUserName)! = 0) &&
                                (valse strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) ==))
                            {
                                // dit is het bericht dat wij aan de gebruiker zouden willen tonen
                                // als he/she probeert om een actieve taak bij te werken
                                properties.ErrorMessage = „Dit punt is nog lopend en kan slechts door de schepper van het punt worden bijgewerkt. “;
                                //// Deze lijn annuleert eigenlijk de schrapping
                                eigenschappen. Annuleer = waar;
                            }
                            als anders (ware strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) ==)
                            {
                                // dit is het bericht dat wij aan de gebruiker zouden willen tonen
                                // als he/she probeert om een actieve taak te schrappen
                                properties.ErrorMessage = de „Taak wordt reeds voltooid en kan niet nu worden bijgewerkt. “;
                                //// Deze lijn annuleert eigenlijk de schrapping
                                eigenschappen. Annuleer = waar;
                            }
                        }
                    }
                }
                vangst (ex Uitzondering)
                {
                    properties.ErrorMessage = een „Interne fout kwam terwijl het doen van actie“ + Environment.NewLine + voor
                        ex. Message.ToString ();
                    eigenschappen. Annuleer = waar;
                }
            }

        }

Ik hoop, helpt het.

Juicht… toe
Rajendra
Andere oplossingen  
 
programming4us programming4us