Pentaho / Salesforce: Как интегрировать SF-Enterprise-Web-Services-API V48.0 в PDI 9.0, который поддерживает только v47.0 - PullRequest
2 голосов
/ 11 апреля 2020

На самом деле я работаю с PDI 8.2, однако я могу перейти на 9.0.

Основная проблема заключается в том, что клиент хочет получить данные из Salesforce, который до сих пор работает хорошо. Но он использует Enterprise Web Services API с версией 48.0, последняя версия Pentaho поддерживает только v47.0.

Я настоятельно полагаю, что чтение через v48.0 не будет работать с PDI, поэтому мне придется искать обходной путь. Кто-нибудь может указать мне на возможное решение? Честно говоря, я даже не знаю, имеет ли отношение Enterprise или Partner API к Pentaho. У меня есть своя SF-учетная запись, чтобы я мог попробовать API. Является ли «поиск в веб-сервисах» правильным шагом для обходного пути?

Любой ответ будет признателен! Заранее спасибо!

1 Ответ

1 голос
/ 11 апреля 2020

О, чувак, что за безумный вопрос, повсюду.

Я настоятельно предполагаю, что чтение через v48.0 не будет работать

Вы должны попробовать это, но это должно работать. Salesforce выпускает 3 выпуска в год, и именно тогда они обновляют версии API. Мы сейчас в Spring'20, сейчас v.48. Это не значит, что ничего ниже не рекомендуется. У вас не должно возникнуть проблем с вызовом любой версии API> = 20. Из того, что я помню, в их основном соглашении об обслуживании говорится, что выпущенная версия API будет действовать не менее 3 лет. Ну, v.20 9 лет, и он все еще крепок ...

Проверьте, например, https://baa.my.salesforce.com/services/data/ (если у вашего клиента включен «Мой домен», вы можете использовать его вместо этого какой-то неизвестной компании), вы должны увидеть список, подобный следующему: https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_versions.htm (не требуется вход в систему, это будет ситуация курица и яйцо. Вам нужно выбрать версию API, которую вы хотите при создании вход в систему).

Итак ... что делает ваша интеграция. Я предполагаю, что он читает или записывает в SF-таблицы (объекты), довольно основы c вещи. В этом смысле 47 против 48 не будут иметь большого значения. Вы по-прежнему должны видеть Учетные записи, Контакты, пользовательские объекты ... Вы не увидите таблиц, созданных специально в v 48. Если вы не увидите что-то упомянутое в Замечания к выпуску Spring'20 Я бы не стал слишком беспокоиться .

Если ваш клиент написал специфицированный c класс (сервис) для предоставления вам данных, и он записан в v.48, он может не отображаться при входе в систему как v.47. Но тогда они могут просто понизить версию, и все должно быть хорошо. Такие пользовательские сервисы редко используются универсальными инструментами c ETL в любом случае, поэтому будет проблематично, только если вы создадите пользовательское кодирование.

, имеет ли отношение Enterprise или Partner API к Pentaho

Похоже, что ваш инструмент ETL использует SOAP API. Salesforce предлагает 2 версии файла WSDL с определениями сервиса.

«Партнер» является общим c, все SF-организации в мире создают один и тот же файл WSDL. Он не содержит никакой конкретной информации о таблицах, столбцах, пользовательских услугах, написанных поверх ванильных продаж. Но он содержит информацию о том, как вызвать login () или запустить «description», которое дает вам все таблицы, которые может видеть ваш пользователь, каковы их имена, каковы столбцы, типы данных ... Итак, вы изучаете вещи во время выполнения. «Партнер» - это замечательно, когда вы создаете универсальное c многократно используемое приложение, которое может подключаться к любой SF или вы хотите быть динамичным c (какой-то инструмент резервного копирования, который ежедневно изучает столбцы и может обрабатывать изменения без проблем. Или есть «мастер подключения», в котором вы указываете, какие таблицы, какие столбцы, какое отображение ... входит в новое поле - просто запустите мастер заново.

«Предприятие» будет указано c для данного конкретного клиента. Он содержит все, что есть у «Партнера», но также будет иметь описание текущего состояния таблиц базы данных и т. Д. c. Таким образом, вам не нужно называть «описать», у вас уже есть все на табличке. Вы можете использовать это, чтобы «потреблять» файл WSDL, генерировать из него ваши классы Java / PHP / C# и взаимодействовать с ними в вашей программе, как с любым другим обычным объектом, вместо создания XML сообщений. Недостатком является то, что если будет добавлено новое поле или новая таблица - вы не будете знать, не вызывает ли ваша программа «описывает». Вам нужно сгенерировать fre sh WSDL, использовать его снова и перекомпилировать вашу программу ...

Правильный выбор действительно зависит от того, что вам нужно сделать. Инструменты ETL, с которыми я встречался, обычно подходят для «партнера».

Является ли «поиск веб-сервисов» правильным шагом

Понятия не имею, я использовал Informatica Azure Фабрика данных, Jitterbit, Talend ... но понятия не имею об этой штуке в Пентахо. Просто попробуйте. Если вы извлекаете данные прямо из таблиц SF без вызова какого-либо пользовательского кода (вы можете думать о пользовательских службах SF, таких как извлечение данных из хранимых процедур) - версия API не должна иметь большого значения. Если вы go <41,0, я полагаю, что вы не увидите индивидуальный объект, например, но я сомневаюсь, что вам нужно быть на переднем крае. </p>

...