Talend作业中的动态文件路径

时间:2014-06-26 05:30:03

标签: visual-studio-2010 relative-path talend

我正在使用Talend Open Studio V5.4进行数据集成。

以下是我在Talend中创建的作业的简要说明:

我创建了一个作业名Refresh_bFO_Tabl e,它连接到Salesforce.com并从AccountOpportunity表中获取数据 使用该数据填充名为OFOTaccdb的本地数据库。

在这个本地数据库中有两个表bFO_Account和 使用从SalesForce检索的数据填充bFO_Opportunity

现在,为了连接到SalesForce,我们使用OAuth2.0进行身份验证。我们提供了consumerSecret,consumerkey, 在Talend中重定向uri tSalesforceComponent配置和作业从Talend完美运行。

从V5.4开始,Talend Open Studio支持OAuth2.0用于组件tSalesforceConnection。现在,在OAuth2.0的这种配置中,Talend要求提供以下凭据:

  • Salesforce Webservice URL = https://test.salesforce.com/services/oauth2

  • 消费者密钥= 3MVG98RqVesxRgQ6mxmnIwk2UxKXENoAKb4Df._JBihTl5pidT3Ue17yzU_oewYx3wv.7YLxli5nsNl55_Y06

  • 消费者秘密= 5550378321918973123

  • Callback Host = localhost

  • Callback Port = 8443

  • 令牌文件= E:/OFOT_Workspace/token.properties

需要注意的是,我正在为内部环境创建此应用程序,因此我将Webservice URL指定为“test.Salesforce.com”而不是“login.Salesforce.com”。

现在正如我上面提到的那样,Talend的作业运行完美,但是当我将这些作业导出到VS2010时。然后令牌文件路径出现问题。我们使用Visual Basic为最终用户创建了一个UI。因此,在从Talend导出这些工作后,我们将它们放在路径中 C:\Users\SumitG\Documents\Visual Studio 2010\Olm-v2\Olm-test2\bin\Debug\Talend。 其中olm-test2是我的VB项目名称。在此之后,我们使用Inno Setup编译器制作此VB项目的.exe文件。我们正在创建这个.exe文件,以便每个用户都可以在他们的机器上安装它并使用VB界面完成必要的任务。

当用户运行安装程序时,他们的安装正常,但在调用Talend Job期间,OAuth2.0无法正常工作,因为他们没有获取令牌文件。

为了解决这个问题,我已将令牌文件放在安装目录中,以便将其提供给用户。 但这会导致此属性出现问题: Token File=E:/OFOT_Workspace/token.properties因为它现在不再匹配用户安装目录中OAuth2令牌的位置。

有什么方法可以让这个令牌文件路径动态化?我希望它始终指向已安装的目录。

1 个答案:

答案 0 :(得分:2)

尝试使用相对路径而不是绝对路径:Token File=E:/OFOT_Workspace/token.properties

这将是:Token File=../token.properties

这里当Talend作业运行时,它将在.bat / .sh文件的当前位置上方的一个文件夹中搜索文件,然后尝试打开Talend生成的.bat / .sh文件以及您可能正在使用的文件你的作业执行 - 它将有一个相对路径引用到Talend的lib文件夹中的.jar文件。