0

I have a list (list1) which contains many Projects.

Every project consists of many sub-projects which are located in another list (list2).

I am using lookup to link each sub-project (in list2) to its parent project (in list1).

What I want is: to automatically change the status of a certain project (in list1) to SHUTDOWN when all the related sub-projects (in list2) are SHUTDOWN.

e.g: Project1 (in list1) contains sub-projectA and sub-projectB. When I update sub-projectA and sub-projectB to SHUTDOWN, I want Project1 to be automatically updated to SHUTDOWN too.

What would be the simplest way to do this?

Many thanks,

1

If you don't have access to Visual Studio, then your available options are more limited.

The fact that you need to reference multiple items in the sub-projects list knocks out-of-the-box SharePoint Designer workflows out of the picture without some major Rube Goldberg type scenarios going on.

You could install the Execute Powershell Script workflow activity and have custom powershell that would run after any subproject is updated. However, that may not be available to you and the script signing can be a pain in the butt

This leaves jQuery + SPServices as your next best option, IMO, for non-VS based solutions.

From the default 'edit' form of your subproject, add javascript containing code which does pseudologic like the following:

if current item on page is in SHUTDOWN
     query all subprojects tied to current item's parent project (excluding current item)
          if each of these subprojects is in SHUTDOWN
               set parent project to SHUTDOWN
          else
               set parent project to NOTSHUTDOWN

This javascript will be a mix of jQuery and SPServices for the list lookups.

You can take advantage of the PreSaveAction() javascript function to invoke this custom javascript when the user updates the item. more on that here

0

Best option will be to write a custom Timer Job, that iterates through list2 and decide if the project is SHUTDOWN.. it should update list1 Item

You can set the Timer Job to run every hour (or even lesser than that if it is critical)..

Here are some tutorials to write one:
SharePoint 2010 Custom Timer Job
SharePoint 2010: Create Custom Timer Jobs

0

I would say either eventreceiver as the simplest way.

http://msdn.microsoft.com/en-us/library/ee231563.aspx

But this will only work on a farm solution. (It could be sandboxed, but I wouldn't recommend that)

Another way could be through javascript.. Not so simple in my opinion, but the best way forward..

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.