Hi,
What I understand is - you have different users/roles, Approver, Team/User X, Team/User Y, Team/User Z and Supervisor.
I hope you are using Person/Group field to capture the logged in user with "Current User (DisplayName)" or "Current User (Email Address)" or "Current User (Login ID)", and this field calculates automatically and shows the current user.
- If not already done - Update your list to have colummns, "Approver", "Team X", "Team Y", "Team Z" and "Supervisor".
- Replace Person/Group contols on the form with "Calculated value" control, conect each of these controls to respective list columns.
- Use this formula and settings for each control (replace the highlighted list column respect to each control)
This control gets calcuated only in "Edit" mode of the form, (new mode is not required as the initiator begins with new mode, and view mode is not required as we don't want to re-calcualte)
- You already have a mechanisim to show the panel using fn-IsMemberOfGroup, so, when other user opens the form, that section will not display.
- When the first time X opens the form, column Team X is empty, so it will populated with Team X's name
The only design issue you may see is - All user controls are shown as labels instead of Person/Group controls. Hope this helps. Let me know if any questions.
@meridianline If the above does not resolve your issue. I would recommend using task forms for all users after the initiator. The task form can still show/update fields on the starting item, or you can have workflow update fields and you will be able to have the workflow control the approval process.
Thank you for the quick reply, @kchaluvadi.
There is one potential issue I see with the formula/solution. If Team X, Y, or Z identify something incorrect or wrong with the previously filled information, they have the opportunity to send the form back to the Approver for clarification. Once the Approver makes that correction, they can send it back to Team X, Y, and Z again to be processed.
Once the form reaches X, Y, and Z again, there was already information in those calculated values, therefore the field will not be null or empty. I find that the field is blank again. Is there a rule or formula adjustment that could solve this issue?
When the form is sent back to X or Y or Z by the approver, either of X or Y or Z gets changed? If none of them changes, no need to populate again, right?
@kchaluvadi
There is a possibility that the member in X, Y, or Z may change from the original X, Y, or Z member that received the request. Let's say there are 3 members on each team-
1. Member X-1, Y-3, Z-3 receive the initial request
2. Member Y-3 sends back to the approver
3. Approver sends back with correction
4. Member X-2, Y-3, Z-2 make changes suggested by the Approver
In this case, we can set the respective column value to blank in the workflow. Lets say, the "Approver" sends it to "Team X" in the workflow, use "Update Item" action to set "Team X" to blank (create a text variable with empty string, and use it to set for blank). When any person from Team X opens the form, the formula finds that "Team X" column is blank, and it updates the person who opens it. Hope this helps.