Creating Workflows that transfer data from list to list
So I am new to Nintex workflow and was tasked with an initiative to create
an audit list that could transfer completed audit data to a 2nd archive
list, send incomplete past due data to a 3rd past due list and resetting
the fields of the main audit list to blank to prepare for the next day audits.
All of this while keeping specific process fields on the main list as
"static" so they do not change from day to day. With the help of Cassy Freeman (who is absolutely amazing
and a pleasure to work with) and a few others, I was able to do exactly what I
needed. The threads are listed all over this site so I wanted to centralize it
here to maybe help someone else in the future.
Now this may sound like I knew what I was doing, but I am summarizing hours
of trial and error in these steps. Please keep in mind I am NOT a professional blogger.
First, I created 1 main list (we will call this Master) on SharePoint 2013
that had all my processes that needed to be audited and the details around
them. I then saved this list as a template. I used this template to create two
more lists. Archive and Past Due. Important for these lists to be
identical to the Master.
I created a workflow on Master called Archiving. I added an action set
action and within that action set, I then added a RUN if Audit
is a Pass inside the container. In the run if, I configured it to say if
current item field equals value where Review Process Completed equals value of
yes. Next I added a Create Item action inside the container to
move ALL items to Archive. In this action, I configured it to say create item
in Archive with content type of item and selected all the column fields from
master that I wanted to move to this Archive. (I selected every single column
for this piece because I wanted this to be a final reportable list.) Selected
my field from the dropdown, list lookup, current item for the source, field
would be the same field as you selected from the dropdown. In my final action
item of this workflow, I added an Updated Current Item action
to reset specific fields back to blank for the next day audit. This one was a
little tricky and thanks to Cassy, I was able to create a workaround. First, I
went to my Master and created a line in my list that was blank in all fields
except title. In title I typed “Blank Template”. The purpose of this is that we
will use a look up to this sheet and say, if this field value equals Blank
Template, use what is in the corresponding field (hence the leaving blank on
Master). So after I created this blank field on Master, I went back to my
workflow in the Configure Action of Update Item and selected only the completed
audit fields I wanted to update (this is where I kept static fields I wanted to
leave the same every day) and selected Master as the source, field I wanted to
clear out, when Title equals value of “Blank Template”. This workflow is now
ready for daily auditing and as you Pass an audit, it sends
Now I wanted to make this so that if an item to be audited, was not audited
by the due date, it sent it to a past due report to work. The key here was
creating a SITE workflow instead of a list workflow. I called this one, Move
Past Review Items to Past Due list. First off, I created a few workflow
variables. Collect Past Due Items, ID Past Due Item, Current Date, and Blank
Date. I then created a Perform a list
item query action to query the Master for any line item that had a past due
date less than or equal to today. You are wondering why I did today? It’s because,
after I finished this workflow, I scheduled it to run at 11:30pm. In the
configure action for the query, use query builder from the Master. Filter items
only when the following is true and select Due Date is less than or equal to
current date (insert this as a reference), then select And when column Review
Completed equal to No. Then sort by Field ID from the dropdown and select your
Collect Past due Items variable from the dropdown. My next action in the
workflow was for each action and in
configure I selected collect past due items as my target collection then my
store result in was the ID Past Due Item variable. Inside this for each
container, I added a create item
action to create these past due items on the 3rd Past Due list you created
at the beginning. I configured this action to create item in Past Due with a
content type of Item. I then selected ONLY the main static fields in the Field
drop down that I wanted to bring from the Master. Source was Master, field was
field I wanted to bring over to Past Due when ID equals Workflow Date of ID
Past Due Item variable. Since this is a “daily” audit, I went ahead and created
a final action of Update Multiple Items so
that I could update the item on Master to have today’s date. So after the
workflow runs at 11:30 Pm and stores my past due items on the past due report,
it will replace it with today’s date. Configure this action to select your site
where Master is on, select Master from the dropdown and filter due date to show
workflow data as current date variable. Now you may be thinking, but if it
changes to today’s date at 11:30pm, and when someone comes in at 8am to work
it, it will already be past due. Well, I just thought of that myself and now I
have to figure that out post blog. Maybe Cassy will have some ideas. She’s so
smart.
So now I had to go back to my Past due list and create a workflow that does
exactly what the Master does when completed. It will send your completed items
to the archive. The only thing I did different with this workflow (by the way,
I saved my Master workflow as a template and uploaded for this one) was create
a Delete item action in the
container after moving items to Archive. All I had to do to configure this was
to select Delete from current item. This deletes the whole line item from the
past due report.
And there you have it. Summed up in one blog. I hope this helps someone. It
was really fun to figure out and is a very useful tool for us.