Best way to accomplish Sharepoint List being updated based on different list updating

  • 13 April 2018
  • 5 replies
  • 84 views

Badge +1

I am working on building in some functionality that will allow us to track when items are changed from one status to another with a Sharepoint list. What I want to happen is that it writes to another list the previous status and the new updated status along with the date start for new status and date end of the old status and some other important info from the initial list. I am almost positive this can be accomplished via Workflow automations, but I have only built simple ones that email people based on new items being generated.

What is the best way to accomplish this?  I know I can keep version histories, but as we have a limit this would quickly be reached where we would lost important information. 


5 replies

Badge +17

Matt,

For this, you should be able to setup a workflow that runs when an item is updated. I would use conditional start options to ensure it doesn't continually trigger the workflow every time it updates.

Do you have an example of the two list you want to manage. This does seem like overkill versus just managing the versions of an item within the same list, but its completely doable. The difficulty may come in creating a connection so that you don't create duplicate items for the same parent item that is updating its status. 

Any additional information can help get a more detailed response.

Eric

Badge +1

Eric, 

well I have some custom forms I built using js/angular that update various lists based on what the user inputs.  The main list I would be looking at here would be the status list.  I am attempting to track number of days in the specified status, which would mean I would need to have entries in a list for whenever someone modifies the status of a project. 

So for instance if a person changes the status of a project from Test Phase 1 to Test Phase 2 I need to capture this in another list which would be able to track the dates it was put into these phases(which would likely just be the create date since it would write a new record each time its changed).

I have a main list which has an id lookup to the status list.  The main list receives the majority of the updates, the status list is only affected when someone updates the status of the project(which is done via a pop-up modal on the main dashboard), so I don't believe there would be a case when an update would be done to this list that would not be related to the status(the field I want to track).

As this is a 1-1 list with the main list, I cannot have multiple statuses in there, so I would need to capture these updates in another list.  This new list would not be used in the forms themselves but would be linked to an Excel workbook where these numbers would be used to build out a scorecard for the various employees based on the metrics being used for days allowed in each testing phase(I already have the status list set up like this in excel but it's not exactly what I need since it only tracks the latest status and does not give us any information of previous statuses or how long it was in that status).

I looked at versions but it seems that it only keeps so many versions of a list and with these statuses being update frequently we would likely blow through the maximum versions allowed and then would lose a lot of the data with no ability to recover it.

So basically what I need to do is this:

1) When a status is updated, trigger a workflow that writes a new record into a new list

2) This new record contains:

   a) Status id

   b) Prev Status

   c) Prev Status start date(possibly not needed since I could probably just take the days between the start date of this status and the start date of the next status)

   d) New Status

   e) New Status start date(probably just the created date)

   f) Created By info(automatically added)

3) link this information to an Excel workbook(already know how to do this)

4) Use this data in Excel to create scorecards based on various metrics and test status lengths allowed.

Hopefully this is a little more detailed and can help provide a tailored response.  I don't think this is that major of a thing to do since Nintex looks exceptionally powerful and this seem pretty basic in terms of all the options I am seeing in there, but it comes down to knowing how to start it out.

Userlevel 5
Badge +14

capturing previous item values within workflow after change happened is quite complicated.

how do you manage who can change the status?

are they dedicated (group of) people? - if so you could assign them a task to advance project status to next (or previous happy.png) phase. once the task is responded it doesn't update source list on its own. so you have full control over how to proceed on based on task response - ie. you capture 'old' (current) value from source list a write them to reporting list. just after that you (workflow) would update status in source list.

can it change anybody? - then you could create a workflow named like "Change state" and let it appear on right-click menu. configure a custom workflow start form to captue all the needed info (next phase...). workflow would do similar processing as mentioned above.

finally just teach users to chose 'change state' from  right click menu (or directly replace a link in dashboard from popup form to workflow start form).

Badge +17

Matt let me digest this and give you a response.

Badge +17

Good details here. It may be easier to chat about this via a call... but I'll try and type it out.

Your main list is good for the items and then having a status list is next.

You can use a workflow that creates a new item in the Status list every time the status is changed.

What you would end up with is a parent child list for item and its statuses. 

You could then query that as needed and run reports off of that via exporting to excel etc.

For capturing the dates, I'd suggest using the built-in date and time stamping on when the item is created and pulling the modified date from the main list.

To do this, when an item is created, store that items status in the status list as the initial status. Then when its modified, query the status list, pull in the last known status and date and add another one with it. This should give you both the current date/status and the last known date/status. 

Completely doable and shouldn't be too much.

Reply