Based on the choice field I have to set the permissions I am having four values for the choice field based on that I am adding the different permissions I am looping through this because its a site work flow and applying this permissions to all the items present in the list
OK, but the configuration you've got in the screenshot means you're updating all items in the Product Definitions list with a Status of Draft every time. You'd only need to do this once.
I have send you the screen shot for only Draft like that I am having three more Choice values in the workflow that's why I have used the run if based on the choice field value
Thanks that makes sense. I'm not sure why this is not working for you then, I've tried this out and it does work for me. I'm assuming that the account used to publish the workflow has the necessary access level to change item permissions?
I think I have a solution for you. Query the list for Draft items and store the ID in a collection, loop through the collection and set permissions on each item.
Not 100% sure but the set item permissions action appears to work only on single items, so bulk updates don't seem to be applied. In my original testing I only had one item in my list so it looked like it was working, but once I added more list items I could see that the permissions were only set on the first item.
Applying the permissions update in a loop seemed to be the way to go so I'm glad it's working for you now.