getSetting(key) {
        const node = this.subflowInstance;
        if (node) {
            if (key === "NR_NODE_NAME" || key === "NR_SUBFLOW_NAME") {
                return node.name;
            }
            if (key === "NR_NODE_ID" || key === "NR_SUBFLOW_ID") {
                return node.id;
            }
            if (key === "NR_NODE_PATH" || key === "NR_SUBFLOW_PATH") {
                return node._path;
            }
        }
        if (!key.startsWith("$parent.")) {
            if (this._env.hasOwnProperty(key)) {
                return (this._env[key] && Object.hasOwn(this._env[key], 'value') && this._env[key].__clone__) ? clone(this._env[key].value) : this._env[key]
            }
        } else {
            key = key.substring(8);
        }
        // Push the request up to the parent.
        // Unlike a Flow, the parent of a Subflow could be a Group
        if (node.g) {
            return this.parent.getGroupNode(node.g).getSetting(key)
        }
        return this.parent.getSetting(key)
    }
Get environment variable of subflow
@param {String}   key   name of env var
@return {Object}  val    value of env var