我正在使用Talend Open Studio V5.4进行数据集成。
以下是我在Talend中创建的作业的简要说明:
我创建了一个作业名Refresh_bFO_Tabl
e,它连接到Salesforce.com并从Account
和Opportunity
表中获取数据
使用该数据填充名为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令牌的位置。
有什么方法可以让这个令牌文件路径动态化?我希望它始终指向已安装的目录。
答案 0 :(得分:2)
尝试使用相对路径而不是绝对路径:Token File=E:/OFOT_Workspace/token.properties
这将是:Token File=../token.properties
这里当Talend作业运行时,它将在.bat / .sh文件的当前位置上方的一个文件夹中搜索文件,然后尝试打开Talend生成的.bat / .sh文件以及您可能正在使用的文件你的作业执行 - 它将有一个相对路径引用到Talend的lib文件夹中的.jar文件。