I have come across some customers that are using SBM for processes that require users to enter weekly status updates or next steps. This could be for things such as project tasks, sales opportunities, or any other work item where a someone needs to be kept informed of the progress of the work. In addition to capturing the updates, sometimes there is a requirement to store the previous entries in a journal field. This way you can go back and review the status update history but still be able to have a clean listing report with just the latest entry. This blog entry provides details on how to implement this type of functionality using form actions.
Now you may be thinking there are several ways to do this without a lot of effort at all, and you would be right. But as with any requirement for an SBM workflow this is true it just depends upon your desired outcome. So let's explore some of these.
- Journal field - You can just add this journal field to your form and require a new appended entry. But is you want to create a listing report that just contains the latest status update, you would need to include all of the updates in this journal field.
- Add Notes - This is similar to the journal field, but now your entries are not mixed in with any other note captured on the item.
- Change History - Just have a fixed length text field and review the previous entries in the Change History. This too presents reporting challenges.
- AppScript - Copy the Status Update field to a journal field. This is close to my solution, but I much prefer to use the OOB configuration then to have to maintain an AppScript. Actually before form actions this is one solution that was implemented for a customer to provide this functionality.
So the goal for my solution is to allow users to enter their next step update in a fixed length text field and the due date of those steps. Then when the user adds additional updates, copy the previous entry to a journal field and clear the next steps field so it is ready for the new entry. I am also going to include a date field of when the next step is due.
- Fixed length text field called Next Steps. Ensure this field is on my state form and on my "Status Update" transition form.
- Date field to capture when the next step is due. Ensure this field is on my state form and on my "Status Update" transition form.
- Journal field called Activity Log. The previous next step entries will be copied to this field. Ensure this field is on my state form and on my "Status Update" transition form.
- On the Status Update transition form, include the action below. First I am checking to see if the Next Step and Due Dates fields are empty, this is to account for new records that do not have entries yet. Then I set the Activity Log field using the string builder tool to concatenate the data from the entry fields and some hard-coded text for my journal entry. The journal field of course takes care of the date, time and user stamp form me.
- The hidden panel action is to hide the Activity Log field on the form so the form is as simple as possible for the users. BUT I do need to have that field on the form in order for the action to work that copies the next steps.
A few other comments....
- I could have just used the string builder in the journal field on the form, but then I could not include the logic for when it is the first entry and there is nothing to copy.
- You do need to make sure that the journal field is not read only, otherwise this solution will not work.
- Do not decide to set the field override in the transition to clear the value of the Next Step and Due Date field in the workflow as this will clear the values before they are copied to your journal field.