#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.