span8
span4
我试图在嵌套在另一个自定义转换器中的自定义转换器中使用python调用程序。
只有一个自定义变压器我将使用:
paramVal = str (FME_MacroValues [MyCustomTransformerName_MyParameterName])
获取自定义转换器中的参数值。然而,当这个自定义转换器嵌套在另一个自定义转换器中时,这种命名约定就不起作用了——我得到了一个python异常
Python的例外:“MyCustomTransformerName_MyParameterName”
这两个自定义转换器名称的组合将引发错误
paramVal = str (FME_MacroValues [MyContainingCustomTransformer_MyCustomTransformer_MyParameterName])
如下所示,仅使用参数名就可以得到父工作区中的值
paramVal = str (FME_MacroValues [MyParameterName])
在使用连接包含自定义转换器的名称时,将从该转换器中获取参数
paramVal = str (FME_MacroValues [MyContainingCustomTransformer_MyParameterName])
有什么特定的命名规则可以帮助我吗?如果没有,我可能只能满足于从包含自定义转换器的值。
您看到的问题是,前缀不是自定义转换器名称,而是自定义转换器实例的名字。碰巧,自定义转换器名称的第一个实例与其实例名具有相同的名称。
您可以使用此模式首先获取自定义转换器内的实例名,并将其与您的参数名连接起来:
custom_transformer_name = 'MyContainingCustomTransformer' parameter_name = 'MyParameterName' instance_name = FME_MacroValues[custom_transformer_name + '_WORKSPACE_NAME']
如果你觉得这应该更容易些,我完全同意。
@jdh,这就是我今天早些时候所说的。
FME_MacroValues(测试):{..., 'test_WORKSPACE_NAME': 'test_2'}这似乎是我的错误,我会看到什么安全的话。亚搏在线
FME_MacroValues(test_2):{..., 'test_WORKSPACE_NAME': 'test_2'}
©2019安全亚搏在线软件公司法律