Динамические пути к файлам в задании Talend

#visual-studio-2010 #relative-path #talend

#visual-studio-2010 #относительный путь #talend

Вопрос:

Я использую Talend Open Studio V5.4 для интеграции данных.

Вот краткое описание задания, которое я создал в Talend:

Я создал имя задания Refresh_bFO_Tabl e, которое подключается к Salesforce.com и извлекает данные из Account Opportunity таблиц и и этими данными заполняет локальную базу данных с именем OFOTaccdb .

В этой локальной базе данных есть две таблицы bFO_Account , bFO_Opportunity которые заполняются данными, полученными из SalesForce.

Теперь для подключения к SalesForce мы использовали OAuth2.0 для аутентификации. Мы предоставили uri consumerSecret, consumerkey, redirect в конфигурации Talend tSalesforceComponent, и задания из Talend выполняются отлично.

Начиная с версии 5.4, Talend Open Studio поддерживает OAuth2.0 для компонента tSalesforceConnection. Теперь в этой конфигурации OAuth2.0 Talend запрашивает следующие учетные данные:

  • URL веб-сервиса Salesforce= https://test.salesforce.com/services/oauth2
  • Потребительский ключ = 3MVG98RqVesxRgQ6mxmnIwk2UxKXENoAKb4Df._JBihTl5pidT3Ue17yzU_oewYx3wv.7YLxli5nsNl55_Y06
  • Потребительский секрет = 5550378321918973123
  • Узел обратного вызова = localhost
  • Порт обратного вызова = 8443
  • Файл токена=E:/OFOT_Workspace/token.properties

Следует отметить, что я создаю это приложение для внутренней среды, поэтому я указал URL-адрес веб-сервиса как «test.Salesforce.com » не как «войти в систему.Salesforce.com «.

Теперь, как я упоминал выше, задания из Talend выполняются отлично, но когда я экспортирую эти задания в VS2010. Тогда возникает проблема с путем к файлу токена.Мы создали пользовательский интерфейс для конечного пользователя с использованием Visual Basic. Итак, после экспорта этих заданий из Talend мы помещаем их в path C:UsersSumitGDocumentsVisual Studio 2010Olm-v2Olm-test2binDebugTalend . Где olm-test2 — это имя моего проекта VB. После этого мы создаем EXE-файл этого проекта VB с помощью компилятора Inno Setup. Мы создаем этот EXE-файл, чтобы каждый пользователь мог установить его на свой компьютер и использовать интерфейс VB для выполнения необходимой задачи.

Когда пользователь запускает программу установки, их установка проходит нормально, но во время вызова задания Talend OAuth2.0 не может работать, поскольку они не получают файл токена.

Чтобы преодолеть эту проблему, я поместил файл токена в каталог установки, чтобы он также был предоставлен пользователю. Но это создает проблему с этим свойством: Token File=E:/OFOT_Workspace/token.properties поскольку теперь оно больше не будет соответствовать расположению токена OAuth2 в каталоге установки пользователя.

Есть ли какой-либо способ, с помощью которого я могу сделать этот путь к файлу токена динамическим? Я хочу, чтобы он всегда указывал на установленный каталог.

Ответ №1:

Попробуйте использовать относительный путь вместо вашего абсолютного пути: Token File=E:/OFOT_Workspace/token.properties

Это было бы: Token File=../token.properties

Здесь, когда задание Talend запускается, оно будет искать файл в одной папке над текущим местоположением .bat/.sh файл, а затем попробуйте открыть .bat/.sh файл, который генерирует Talend и который вы, возможно, используете для выполнения своего задания — он будет иметь ссылку на относительный путь к файлам .jar в папке libTalend.