西班牙
斯潘4
所以我问过FME服务器团队这个问题,但我希望有人能帮我解决。我想指定,我不想使用带位置的表,我也不想使用python映射到正确的位置。也许没有办法做我想做的事。
所以我有一些工作区每晚都有。我想在桌面和我们的开发fme服务器上测试它们。还有一个生产fme服务器。
对于.sde连接:我在每个服务器环境的e驱动器上创建了一个文件夹(sde connections),其中包含连接文件。在桌面上,我正在将e:\映射到网络共享位置。桌面上的e驱动器和dev服务器都与开发数据库有连接。fme工作区作者将使用这些连接来测试他们的工作区。他们可以将它们发布到任何环境中,数据将从正确的数据库中读取并写入正确的数据库。唯一的问题是,无论何时发布它们,fme服务器都希望上载连接文件,并且您必须始终取消选中。
我还在一个作业中创建ffs文件,在dev或desktop上,应该转到一个位置,在prod上创建另一个位置。我创建了一个名为ffslocation的网络资源,指向一个网络共享。在我的工作区中,我还创建了一个名为ffslocation的已发布参数,该参数指向网络共享。现在,当我将工作区发布到fme服务器(dev或production)时,我希望它读取资源而不是参数。但这并不是而且是它唯一的方法,它是让我在运行工作区时在“已发布参数”框中指定$(ffslocation)。相反,如果我不创建一个参数,我就不能使用桌面上的资源。
现在,要读取ffs文件(在某些工作区中确实需要这样做),我可以将其指定为读卡器源,但不能使用它对其进行写入。奇怪吧?
更让人困惑的是,我可以在fme服务器上创建一个数据库和web连接,在桌面上创建相同的数据库和web连接,而且无论我将工作区发布到哪个环境,我都可以使用它。FME服务器告诉我连接已经存在。我希望能够以同样的方式使用资源/参数。
最终目标是拥有一个工作区(已经在bitbucket中进行了版本控制),并且能够使其无缝工作,而不必考虑开发或生产、桌面或服务器。
希望你能考虑一下。
如果我读得对的话,就已发布的参数而言,我认为您可能需要一个带alias的类型选择参数。您有一个参数,可以从dev、test或production中进行选择;但返回的值是ffs文件的路径。您可以将该参数链接到ffs reader/writer参数,它应该可以正常工作。运行工作区时只需选择参数值。
然而,正如我所想@尼尔斯格瑞特也可以根据$fme_engine参数的值来设置参数。我知道你说过不要蟒蛇,但这应该相当简单。创建scripted(python)类型的参数。在这里,将其设置为if$(fme_engine)=test then ffspath=xyz,else if$(fme_engine)=prod then ffspath=abc,else…等等-然后将该参数链接到ffs读写器。那么你不必在运行时挑选任何东西;它只是起作用。
但是退一步…这是做事情的最好方法吗?好吧,我认为脚本参数是为这种场景设计的。这只意味着你必须把它保持在FME内。如果您不想在*fme中那样设置,那么您可以使用环境变量。
例如,设置您的ffs writer以使用预设环境变量或创建自己的环境变量写入%systemdrive%\fmeoutput\ffs(或其他)。然后您可以将该工作区推送到fme服务器,它将使用该机器上设置的任何变量。
这对我来说很有意义。我是说,你说的是不同的环境,因此有环境变量。fme可以在其参数中为读写器使用其中一个参数。
?2019安全亚搏在线软件公司|合法的