According to safe: Tthe user parameters behave a little bit differently inside a custom transformer. They are in fact prefixed with the name of the custom transformer to avoid collisions with the main workspace parameters. Example: if you have a custom transformer called "custtransf" with a published parameter called "custparam", you will have to refer to it like this.
value = FME_MacroValues["custtransf_custparam"] The issue is that a user can change the name of the custom transformer in the main canvas, or could have multiple copies ("custtransd_2") and the reference breaks. Ideally I would like to just refer to the user parameter without prefixing anything, and have FME figure it out when interpreting the python. If that's not possible, then having the ability to insert a "transformer name" into the python call would also work. value = FME_MacroValues[transformerName + "_custparam"]