An alternative approach to getting values in your beforeOperation rule is to add it to the provisioningPlan as an accountRequest attribute.
You can use your before provisioning rule to add if to the accountRequest directly from the Identity as accountRequest.setArgument(string, string).
I wrote a blog post that addresses this for IDN, but the same code works for IIQ. Additionally, as SailPoint is trying to transition IIQ implementations to IDN, using this approach would mean less code changes should you ever migrate platforms: