GetValue ( checkboxField ; valueCount ( CheckboxField ) )
will return the most recently clicked check box value.
This is because the values selected are entered into the field in the order that the boxes were clicked. You can actually watch this happen if you make a copy of your field, change the copy back to edit box format and place it next to the check box field so that you can see the actual data in the field change as you click checkboxes.
I've been using the internet since the early 90s. I've spent a lot of time helping people in my own chosen field, but I have to say, I have never seen anyone as knowledgeable as you appear to be, contribute so much to a community. What do you do when you're not answering questions on this forum? :) :)
Aside from that ... thank you for the solution. I'll challenge your knowledge one more time though. What if the user wants to 'deselect' a checkbox choice? Is there any way of getting the value of the field that they deselected?
That takes a bit more creativity, but it can be done.
Use a script with the onObjectEnter trigger to capture the previous value of the field in a global variable.
Then your OnObjectModify or OnObjectValidate triggered script can compare the original list of values to the new list of values to see which value is not in both lists of values. Identifying the value at that point requires either a looping script or a recursive custom function.
Thanks again Phil.
In the end, it was overly complicated to do it this way, so I found another, better way using the replace script step via a portal.