I have a workspace which uses input user credentials to do stuff. I also want the workspace to work during testing by using System environment variables.
This is working great for things like DBNAME, HOST, PORT etc where the user inputs are strings (text user parameters). I can simply just enter in ${PORT} for example and FME will look for a set environment variable.
Where I'm having trouble is with the password. I can't do the same thing for the password so I've created a simple scripted parameter which first checks if there is a user password set and if not try and see if there is an environment variable.
In most cases it works well, however, I've discovered that some special cahrachters are getting encoded by FME - So something like @ becomes '<at>'.
Does anyone know a way to 'decode' these encoded strings. Ideally it'd be done in the scripted parameter, however, if it has to be done in the workspace so be it.
Short from using some kind of regex in a string replacer I'm a bit stuck.
For reference here's my super basic python scripted parameter:
import os
import fme
password = ''
userpass = fme.macroValues.get('PASSWORD', -1)
if userpass == '':
password = os.getenv('ENV_PASSWORD')
if userpass == '-1':
password = os.getenv('ENV_PASSWORD')
if userpass != -1 and userpass != '':
password = userpass
return password