征求意见和回答“当 - Python脚本参数执行?” https://knowledge.亚搏在线safe.com/questions/2356/when-is-python-script-parameter-executed.html 对于这个问题的最新意见和回答“当 - Python脚本参数执行?” 通过anandak评论 https://knowledge.亚搏在线safe.com/comments/6809/view.html 嗨,

下面是代码提取物,

进口cx_Oracle
进口fmeobjects

打印“的Python脚本开始......”
打印“的Python脚本处理......”

从FME#获取参数
用户= FME_MacroValues [ '用户']
通= FME_MacroValues [ '通']
服务= FME_MacroValues [ '服务']
表名= FME_MacroValues [ '表名']
featureTypes = “”

#SET备份Oracle连接字符串
的ConnectionString =用户+ '/' +通行证+“@”+服务

#连接到Oracle和查询表
尝试:
#打开连接
连接= cx_Oracle.connect(的ConnectionString)

#获取表名
表= TableName.split()
reqColsQuery = []
在表表:
#SET备份Oracle查询
....
....
connection.commit()
connection.close()时
除外例外为e:
打印“无法连接到数据库或表。检查该表名参数给出的值是数据库中的表和你的数据库连接参数是否正确“。
打印E
#设置paremeter
打印“的Python脚本结束......”
返回featureTypes


和日志摘录如下,

开始翻译...
2013年4月22日13:33:48 | 0.4| 0.4|INFORM|FME 2013 (20130207 - Build 13264 - WIN32)
2013年4月22日13:33:48 | 0.4| 0.0|INFORM|FME_HOME is 'C:\Program Files\FME\'
2013年4月22日13:33:48 | 0.4| 0.0|INFORM|FME Smallworld Edition (node locked-crc)
2013年4月22日13:33:48 | 0.4| 0.0|INFORM|Serial Number: 0
2013年4月22日13:33:48 | 0.4| 0.0|INFORM|Temporary License: 11 days left.
2013年4月22日13:33:49 | 0.8| 0.0|INFORM|Connected to ORACLE database
2013年4月22日13:33:49 | 0.8| 0.0|INFORM|ORACLE Reader: Executing SQL Statement
2013年4月22日13:33:49 | 0.9| 0.1|INFORM|Reading source feature # 2500
2013年4月22日13:33:49 | 1.1| 0.1|INFORM|Reading source feature # 5000
...
...


2013年4月22日13:35:23 | 89.5| 0.1|INFORM|Reading source feature # 1997500
2013年4月22日13:35:23 | 89.7| 0.1|INFORM|Reading source feature # 2000000
2013年4月22日13:35:23 | 89.7| 0.0|INFORM|MULTI_READER(MULTI_READER): Done reading 2000099 features from 2 readers
2013年4月22日13:35:23 | 89.7| 0.0|INFORM|Emptying factory pipeline
2013年4月22日13:35:23 | 89.7| 0.0|STATS |Source -> Generic(TeeFactory): Cloned 99 input feature(s) into 99 output feature(s)
2013年4月22日13:35:23 | 89.7| 0.0|STATS |DB.ABC Feature Counter -1 4(TeeFactory): Cloned 99 input feature(s) into 99 output feature(s)
2013年4月22日13:35:23 | 89.7| 0.0|STATS |AttributeFileWriter(TeeFactory): Cloned 99 input feature(s) into 99 output feature(s)
| 89.7| 0.0|STATS |AttributeFileWriter输出输出Nuker(TeeFactory):克隆99个输入特性为0个输出特性
| 89.7| 0.0|STATS |最终输出特性类型路由器(TestFactory):测试0个输入特性—0个输入特性通过,0个输出特性失败
| 89.7| 0.0|STATS |最终输出Nuker(TeeFactory):克隆0输入特性为0输出特性
2013-04-22 13:35:26 | 89.7 | 0.1 |数据| = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -
| 89.7| 0.0|统计|功能读取摘要
2013-04-22 13:35:26 | 89.7 | 0.0 |数据| = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -
| 89.7| 0.0|统计|DB美国广播公司(ABC) 1000099
| 89.7| 0.0|统计|DBXYZ 1000000
2013-04-22 13:35:26 | 89.7 | 0.0 |数据| = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
| 89.7| 0.0|统计|总功能读取2000099
2013-04-22 13:35:26 | 89.7 | 0.0 |数据| = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -
2013-04-22 13:35:26 | 89.7 | 0.0 |数据| = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -
| 89.7| 0.0|统计|功能总结
2013-04-22 13:35:26 | 89.7 | 0.0 |数据| = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -
2013-04-22 13:35:26 | 89.7 | 0.0 |数据| = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
| 89.7| 0.0|统计|总功能0
2013-04-22 13:35:26 | 89.7 | 0.0 |数据| = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -
| 89.7| 0.0|通知|翻译成功,警告1个(s)(输出0个特征)
| 89.7| 0.0|通知|FME会话时长:1分41.6秒(CPU: 88.7s用户,0.7s系统)
| 89.7| 0.0|通知|结束进程d: 3004,峰值进程内存使用量47628 kB,当前进程内存使用量47360 kB
Python脚本开始……
Python脚本处理……
Python脚本结束……
翻译是成功的

在转换期间,读取的一些特性与工作区中的阅读器特性类型不匹配。如果reader数据集被更改,或者reader特性类型被删除或重命名,就会发生这种情况。

周一,2013年4月22日8点18分52秒GMT anandak
通过david_r评论 https://knowledge.亚搏在线safe.com/comments/6540/view.html 感谢您,马克鸣响。

我FME2013sp1测试脚本参数确实是运行在最开始的工作空间,而不是当它第一次被引用。

除了马克关于移动脚本别的地方很好的建议,你也可以使用一个PythonCreator可能输出上完成伪特征,然后触发一个或多个FeatureReader(S)。

大卫
周四,2013年4月18日15时32分09秒GMT david_r
通过imarkatsafe1评论亚搏在线 https://knowledge.亚搏在线safe.com/comments/8906/view.html 我可以看到两种方式,这是可行的。或者:

- 脚本正在按需运行(即每当该参数被引用)
- 该脚本是在翻译起点(并存储在参数引用返回的结果)运行

我怀疑这些第二个是真实的(我将与开发者后来检查,如果需要)。所以脚本只运行一次,每个功能不是一次。

说实话,一个脚本参数的设计计算,并返回一个特定的值。我不认为我们设想它被用来进行分贝交易或类型的处理。

这听起来像一个更好的解决方案,你将是一个启动或关机脚本(看看下工作场所参数>高级导航窗口)或PythonCaller变压器。一个启动/关机脚本将被一次(翻译之前或之后),而PythonCaller运行一次,每个进入的功能运行。

希望这可以帮助。正如大卫说,更多的意见,将有助于更多地了解您的具体使用情况。

问候

标记

马克爱尔兰
产品传播者
亚搏在线安全软件公司


周四,2013年4月18日十五点18分49秒GMT imarkat亚搏在线safe1
通过david_r评论 https://knowledge.亚搏在线safe.com/comments/8726/view.html 嗨,

据我所知,一个脚本参数在起步时的翻译执行,FME不会继续翻译脚本已经终止之前(返回的值)。

我需要您的具体情况下,一些更多的信息,给你更具体的建议。考虑张贴截图或代码,脚本,这样我们可以更好地理解正在发生的事情。

大卫

周四,2013年4月18日13点52分53秒GMT david_r