Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.

Custom Participant Step with multiple users / groups selection

Avatar

Level 2

I have requirement where I am trying to create custom Participant step which should allow multiple groups to be displayed in the drop down while advancing workflow. I was able to overlay Participant Step using following this guide (https://docs.adobe.com/docs/en/aem/6-0/develop/extending/workflows/wf-extending.html) and I have used multifield widget which includes pathbrowser to choose the group multiple times. But when I save the workflow and re-open, it does not display the groups selected previously. Also, in the log I am getting below exception ( I have pasted only few lines). So it is not storing it correctly under workflow model /etc/workflow/models/POC/jcr:content/model/nodes/node3/metaData where it should create PARTICIPANT property with value. 

javax.jcr.ValueFormatException: PARTICIPANT = [/home/groups/test/rollout_notifications1, /home/groups/test/rollout_notifications2,] is multi-valued.

at org.apache.jackrabbit.oak.jcr.delegate.PropertyDelegate.getSingleState(PropertyDelegate.java:112) at org.apache.jackrabbit.oak.jcr.session.PropertyImpl$5.perform(PropertyImpl.java:238) at org.apache.jackrabbit.oak.jcr.session.PropertyImpl$5.perform(PropertyImpl.java:235) at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:293) at org.apache.jackrabbit.oak.jcr.session.ItemImpl.perform(ItemImpl.java:113) at org.apache.jackrabbit.oak.jcr.session.PropertyImpl.getValue(PropertyImpl.java:235) at org.apache.jackrabbit.oak.jcr.session.PropertyImpl.getString(PropertyImpl.java:259) at com.adobe.granite.workflow.console.servlet.ModelGenerateServlet$ContentVisitor.copyMetaData(ModelGenerateServlet.java:399) at com.adobe.granite.workflow.console.servlet.ModelGenerateServlet$ContentVisitor.handleStep(ModelGenerateServlet.java:332) at com.adobe.granite.workflow.console.servlet.ModelGenerateServlet$ContentVisitor.entering(ModelGenerateServlet.java:287) at javax.jcr.util.TraversingItemVisitor.visit(TraversingItemVisitor.java:182)

Any clue on this ?

4 Replies

Avatar

Level 10

OOB, participant step is a single valued and hence you cant have multiple groups or users that can be sent..

Instead see if below thoughts can be used

1. Create a new single group combining multiple groups in it and use that group in the participant step

2. Have multiple participant step one after the other for each group

I can't have multiple participant step one after the other because all of them have to be siblings of each other (at same level in hierarchy) and should not block each other in notification. Is there any way, we can return multiple participants using ParticipantStepChooser interface (or any other class / interface) because its getParticipant() has return type of String and not String[]. 

Avatar

Level 3

RonnieForum wrote...

I can't have multiple participant step one after the other because all of them have to be siblings of each other (at same level in hierarchy) and should not block each other in notification. Is there any way, we can return multiple participants using ParticipantStepChooser interface (or any other class / interface) because its getParticipant() has return type of String and not String[]. 

 

 

Hi Folks,

I have similar requirement for my project so would like to know if above got resolved and completed . If yes, can you please provide me solution that you implemented. It would be really helpful.

Thank you so much in advance !!