How to create multi select checkbox items in a separate list?


Badge +2

Hi,

I have 2 simple lists.

List A:

Title - Single line text

Skills - Multiple Choice

List B:

Title - Single line of text

Skill- Single line of text

I have been able to design a workflow to create multiple list items based on the List A's "Skills" column in List B.

Example:

List A:

Title                     Skills

Employee1          SharePoint;Nintex;SQL

Employee2          Nintex;SQL

List B:

Title                     Skills

Employee1          SharePoint

Employee1          Nintex

Employee1          SQL

Employee2          Nintex

Employee2          SQL

But the problem is whenever I tried to edit the item in List A and update it, it creates duplicates entries in List B.

I know I have to use the ID of List A to update List B's items but not sure where or how.

Can someone please help

Thanks.


15 replies

Userlevel 5
Badge +14

add one another column in listB of type lookup and point it to listA ID coulm.

if it is ensured that in listA there is only one item per each employee, it could have been pointed listA Title field instead of ID, and you need not to store Employee name in listB Title column.

209848_pastedImage_1.png

Badge +2

Thanks but your solution didn't work. Do I need to do anything on the workflow end?

Badge +2

Skills is List B.

209910_pastedImage_1.png

Userlevel 5
Badge +14

yes, you have to fill in the lookup field in listB.

is 'QuizID' the suggested lookup list field in listB? if so then your create item action seems to be configured correctly (I assume workflow is running on listA).

what error do you get? or what's exactly not working?

Badge +2

Yes QuizID is the lookup of list B.

I dont get any errors. The items in list B doesnt get updated when I save an item in list B.

It keeps adding duplicate items to list B everytime I edit and save an item in list A.

Example:

List A:

Title                     Skills

Employee1          SharePoint;Nintex;SQL

Employee2          Nintex;SQL

 

 

List B: (see below)

Title                     Skills

Employee1          SharePoint

Employee1          Nintex

Employee1          SQL

Employee2          Nintex

Employee2          SQL

Employee1          SharePoint - Duplicate

Employee1          Nintex- Duplicate

Employee1          SharePoint- Duplicate

Employee1          Nintex- Duplicate

Employee1          SharePoint- Duplicate

Employee1          Nintex- Duplicate

Userlevel 5
Badge +14

could you share a screenshot of your workflow, to get a picture what exactly you do there?

how do you check for presence of respective item in listB? you should check by all 3 key field - QuizID + Title + Skills

Badge +2

I am not doing any kind of check right now. Here is the workflow.

Userlevel 5
Badge +14

ok, I see...

within the loop you have to first check listB (with query list action) whether there already exists respective item.

as mentioned above, query action should filter by all 3 key fields: quizID, tilte, skill.

then check with (eg.) run-if action whether the query returned any items or not. just in case it didn't returned any item you should create new item.

I'm not sure what's your real business case, but are you aware that this handles just cases when a new skill is added to an employee?

if a skill is removed from employees in listA, your workflow will not notice that it should remove it from listB.

Badge +2

I want the workflow to update List B everytime the multi seelct checkboxes in List A changes, which includes addtions, updates and deletes.

What would you recommend? Sorry but this is my first Nintex worklfow so its still a huge learning curve for me.

Userlevel 5
Badge +14

do you store some further data in listB apart from QuizID, employee and skill?

if not, the easiest way would be first to delete all the items for a given QuizID and then create them once again by actual content in listA

Badge +2

Not an ideal solution since all the deleted items in the recycle bin would use up space.

Is there no other way to do this in Nintex? InfoPath/QRules could do this easily without having to delete stuff.

Userlevel 5
Badge +14

sure there is, but it makes things quite complex.

I do not know InfoPath so I can not compare/comment on this.

you would need

- you have check (query) which skills for a given QuizID+Employee are missing in listB to create them there (new skills in listA)

- then you have to check (query) the opposite way which skills exists in listB but are not present in listA, these skills were likely deleted so you should delete them from listB as well

- I'm not sure what update means in your scenario, but if it's not covered by add and delete then you need 3rd check and action that will synchronize the change

btw, why do you need this exercise? why to duplicate the same things on two places?

I'm quite sure it will get out of sync at some point...

Badge +2

The reason I am trying to do this is to help users report on multi select fields in a form.

Currently the only other way you can do this is to either use the quick edit view in a list or insert the form data into a SQL table and use an external list to manage the data or use InfoPath/QRules. I was hoping that Nintex had a solution since we recently purchased Nintex and are reviewing its features.

Userlevel 5
Badge +14

as I explained above it would be possible with nintex but it's quite complex.

but what about of creating a workflow that would send the users a report in some csv/table format?

it would do moreless the same but instead of filling other list it would send out a notification.

workflow would always run on actual data and you need not care of user changes.

Badge +2

Thanks for your help. We decided to use the quick edit view of a custom list as a solution.

Reply