第8页
斯潘4
对于FME 2019.1,默认情况下会打开功能缓存。有人知道如何在工作区文件中设置此行为(如worksapce参数)吗?
当用户想要再次运行这个过程时,问题就来了,FME 2019.1很聪明,它隐藏了输入参数,但不是所有参数。再次单击“运行”时,有时会有选择新数据的选项,但是其他选项不存在。这会导致意外的行为(比如删除数据库表而不是插入其中…哎呀!)
用户实际上需要重新运行整个工作区,这也不是默认的。我收到了很多支持请求,因为工作区产生了意想不到的结果。
我也记录了它,并尽可能地向客户说明,但是,这个问题仍然出现在不熟悉FME的用户身上。
我真的希望在运行这个时缓存行为被关闭。
任何想法都将不胜感激。也许@达维塔夫亚搏在线有一个技巧像工作刀头?
我也对其他人在这方面的经验感兴趣。
如果有人感兴趣的话,这里有一点python,它可以测试是否启用了缓存模式。对反馈很感兴趣,我对Python很熟悉,对最佳实践毫无头绪。
#调用windows注册表以获取“完全检查模式”项的当前设置。适用于2.7和3.4+#预期用途是当您需要用户在FME桌面(仅限windows)上运行工作区并禁用功能缓存时。#此外,脚本还检查父进程,因为缓存只有在从工作台调用时才重要。import fme import fmeobjects try:from winreg import*mod=1 except:try:from winreg import*mod=1 except:mod=0 try:from subprocess import getoutput import os sub=1 except:sub=0 def processFeature(feature):if mod==1:try:aReg=ConnectRegistry(None,HKEY\u CURRENT\u USER)aKey=OpenKey(aReg,r“Software\\Safe Software Inc.\\FME Workbench”)val='unknown'#遍历注册表中的所有工作台设置。使用循环是因为根据FME版本,i的完整检查模式索引在范围(1024)内可能不同:try:asubkey\u name=EnumKey(aKey,i)asubkey=OpenKey(aKey,asubkey\u name)if asubkey\u name=='设置':val=queryvaluex(asubkey,“完整检查模式”),除了:break if'true'in val:inspection='on亚搏在线'elif'false'in val:inspection='Off'else:检查='Unknown'feature.setAttribute属性('cacheMode',检查)除了:feature.setAttribute属性('cacheMode','unknown')其他:feature.setAttribute属性('cacheMode','未知')如果sub==1:尝试:#检查父进程-如果在FME服务器上或通过快速转换器运行,则缓存模式它不重要pid=操作系统getppid()#print(pid)processŠinfo=getoutput('wmic process where“ProcessID={}”get Caption'.format(pid))processŠinfo=str(processŠinfo)if processŠinfo:pname='workbench'feature.setAttribute属性('parentProcess',pname)else:pname='not\u workbench'feature.setAttribute属性('parentProcess',pname)#打印(pname),除了:feature.setAttribute属性('parentProcess','unknown')其他:feature.setAttribute属性('parentProcess','unknown')
©2020安全亚搏在线软件公司|法律