質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Embulk

Embulkは、CSVデータやアクセスログなどの構造化データを高い信頼性で転送することができる、プラグインベースのバルクデータローダーです。

Salesforce

Salesforceは、クラウド型の顧客関係管理(CRM)、営業支援(SFA)などのサービスを提供している企業。米カリフォルニア州に本社があり、日本法人は株式会社セールスフォース・ドットコムです。

Q&A

1回答

1033閲覧

embulkがsalesforceのテーブルを読み込んでくれない

MMH

総合スコア3

Embulk

Embulkは、CSVデータやアクセスログなどの構造化データを高い信頼性で転送することができる、プラグインベースのバルクデータローダーです。

Salesforce

Salesforceは、クラウド型の顧客関係管理(CRM)、営業支援(SFA)などのサービスを提供している企業。米カリフォルニア州に本社があり、日本法人は株式会社セールスフォース・ドットコムです。

0グッド

0クリップ

投稿2019/08/15 06:10

前提・実現したいこと

embulk-input-salesforce_bulkでsalesforceのデータを一括取得したいと考えています。そこでsalesforceのテーブルを叩くクエリを書いているのですが、うまく実行されません。

発生している問題・エラーメッセージ

embulk-input-salesforce_bulkのconfig.ymlでは以下のように設定しました。querySelectFromでRecommendationテーブルからNameを取得しようと考えているのですが、このクエリを読み込んでもらえないです。

in: type: salesforce_bulk userName: ユーザーネーム password: パスワード + セキュリティートークン objectType: Account pollingIntervalMillisecond: 5000 querySelectFrom: SELECT Name FROM Recommendation limit 10 columns: - {type: string, name: Name} out: type: stdout

embulk runすると以下のような処理とエラーメッセージが吐き出されます。

2019-08-15 14:55:49.854 +0900: Embulk v0.9.17 2019-08-15 14:55:50.718 +0900 [WARN] (main): DEPRECATION: JRuby org.jruby.embed.ScriptingContainer is directly injected. 2019-08-15 14:55:54.335 +0900 [INFO] (main): Gem's home and path are set by default: "C:\Users\(名前).embulk\lib\gems" 2019-08-15 14:55:56.299 +0900 [INFO] (main): Started Embulk v0.9.17 2019-08-15 14:55:56.423 +0900 [INFO] (0001:transaction): Loaded plugin embulk-input-salesforce_bulk (0.2.0) 2019-08-15 14:55:56.467 +0900 [INFO] (0001:transaction): Using local thread executor with max_threads=8 / output tasks 4 = input tasks 1 * 4 2019-08-15 14:55:56.475 +0900 [INFO] (0001:transaction): {done: 0 / 1, running: 0} 2019-08-15 14:55:56.657 +0900 [INFO] (0013:task-0000): Try login to 'https://login.salesforce.com/services/Soap/u/39.0'. 2019-08-15 14:55:57.349 +0900 [INFO] (0013:task-0000): Login success. 2019-08-15 14:55:57.350 +0900 [INFO] (0013:task-0000): Send request : 'SELECT Name FROM Recommendation limit 10' 2019-08-15 14:56:05.193 +0900 [ERROR] (0013:task-0000): class com.sforce.async.AsyncApiException com.sforce.async.AsyncApiException: InvalidBatch : InvalidBatch : Failed to process query: INVALID_TYPE: sObject type 'Recommendation' is not supported. at org.embulk.input.salesforce_bulk.SalesforceBulkWrapper.syncQuery(SalesforceBulkWrapper.java:137) ~[na:na] at org.embulk.input.salesforce_bulk.SalesforceBulkInputPlugin.run(SalesforceBulkInputPlugin.java:211) ~[na:na] at org.embulk.exec.LocalExecutorPlugin$ScatterExecutor.runInputTask(LocalExecutorPlugin.java:269) [embulk.bat:0.9.17] at org.embulk.exec.LocalExecutorPlugin$ScatterExecutor.access$100(LocalExecutorPlugin.java:194) [embulk.bat:0.9.17] at org.embulk.exec.LocalExecutorPlugin$ScatterExecutor$1.call(LocalExecutorPlugin.java:233) [embulk.bat:0.9.17] at org.embulk.exec.LocalExecutorPlugin$ScatterExecutor$1.call(LocalExecutorPlugin.java:230) [embulk.bat:0.9.17] at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.8.0_221] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.8.0_221] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.8.0_221] at java.lang.Thread.run(Unknown Source) [na:1.8.0_221] 2019-08-15 14:56:05.196 +0900 [INFO] (0001:transaction): {done: 1 / 1, running: 0} 2019-08-15 14:56:05.200 +0900 [INFO] (main): Committed. 2019-08-15 14:56:05.200 +0900 [INFO] (main): Next config diff: {"in":{},"out":{}}

なお、RecommendationテーブルはAPI参照名がRecommendationで、表示ラベルは「おすすめ」です。

Accountテーブルで試したときは動いたのですが、カスタムで制作したテーブルが動かないため、どのようにしたら動くのか知りたいです。よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/08/15 06:12

is not supported. サポートしてるバージョンにしてみたら?
guest

回答1

0

こんにちは、こちらのプラグインは使ったことがありませんが

  • こちらの質問の結果からAccountだと大丈夫だったといことでしょうか?
  • objectType: AccountobjectType: Recommendationにしてみてはいかがでしょうか?(こちらの値はFromと一致しないといけないようです。と作った人が言っていました。)
  • ネットでエラーを検索すると権限云々という情報があったので、権限周りを確認した方がよいかもしれません。

2019-08-16 18:30 追記

プラグインのドキュメントも修正してもらったので併せてご確認ください。

2019-08-22 11:14 追記

エラーはRecommendationがないと言っていますね。Recommendationがあるのは確実なのでしょうか?
このプラグインもsalesforceも全く使ったことがないので当てずっぽうになりますが、自分なら以下を試します。

  • embulk-input-salesforce_bulk を0.2.2にアップデート: 本質とは関係ないが不具合が修正されているため
  • 他の標準オブジェクトらしいRecommendation以外のものを試す。
  • Recommendationのドキュメメントをみると、"API バージョン 45.0 以降"と書かれている
  • そのため、embulk-input-salesforce_bulkのAPIのauthEndpointURLを変える。説明 https://login.salesforce.com/services/Soap/u/45? or 45.0?
  • Recommendationは作らないといけない?

2019-08-23 09:02 追記

開発者の人に聞いたところ以下を教えてもらいました。

Recommendation が「カスタムで制作した」オブジェクトということであれば、Recommendation__c としなければいけないはずです。

参考のURLをみると、以下のようにする模様です。

yaml

1 objectType: Recommendation__c 2 pollingIntervalMillisecond: 5000 3 querySelectFrom: SELECT Name FROM Recommendation__c limit 10

参考: リレーション名、カスタムオブジェクトおよびカスタム項目について

投稿2019/08/16 05:25

編集2019/08/23 00:06
hiroysato

総合スコア415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MMH

2019/08/22 01:51

hiroysatoさん、ご回答頂きありがとうございます。こちらの方法を試したのですが、うまく動きませんでした。 ''' in: type: salesforce_bulk userName: ユーザーネーム password: パスワード + セキュリティートークン objectType: Recommendation pollingIntervalMillisecond: 5000 querySelectFrom: SELECT Name FROM Recommendation limit 10 columns: - {type: string, name: Name} out: type: stdout ''' として実行したところ、 ''' 2019-08-22 10:39:33.400 +0900 [ERROR] (0013:task-0000): class com.sforce.async.AsyncApiException com.sforce.async.AsyncApiException: InvalidJob : Unable to find object: Recommendation at com.sforce.async.BulkConnection.parseAndThrowException(BulkConnection.java:180) ~[na:na] at com.sforce.async.BulkConnection.createOrUpdateJob(BulkConnection.java:164) ~[na:na] at com.sforce.async.BulkConnection.createOrUpdateJob(BulkConnection.java:132) ~[na:na] at com.sforce.async.BulkConnection.createJob(BulkConnection.java:122) ~[na:na] at org.embulk.input.salesforce_bulk.SalesforceBulkWrapper.syncQuery(SalesforceBulkWrapper.java:113) ~[na:na] at org.embulk.input.salesforce_bulk.SalesforceBulkInputPlugin.run(SalesforceBulkInputPlugin.java:211) ~[na:na] at org.embulk.exec.LocalExecutorPlugin$ScatterExecutor.runInputTask(LocalExecutorPlugin.java:269) [embulk.bat:0.9.17] at org.embulk.exec.LocalExecutorPlugin$ScatterExecutor.access$100(LocalExecutorPlugin.java:194) [embulk.bat:0.9.17] at org.embulk.exec.LocalExecutorPlugin$ScatterExecutor$1.call(LocalExecutorPlugin.java:233) [embulk.bat:0.9.17] at org.embulk.exec.LocalExecutorPlugin$ScatterExecutor$1.call(LocalExecutorPlugin.java:230) [embulk.bat:0.9.17] at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.8.0_221] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.8.0_221] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.8.0_221] at java.lang.Thread.run(Unknown Source) [na:1.8.0_221] ''' このようなエラーが吐き出されてしまいました。 どこが良くなかったのかご教授いただけますと幸いです。よろしくお願い申し上げます。
hiroysato

2019/08/22 02:17

Markdownが使えないので、上にコメントしました。ご確認ください。
hiroysato

2019/08/22 03:06

権限周りもご確認ください。
hiroysato

2019/08/26 07:37

2019-08-23 09:02 追記を加えたというのを書いたつもりだったんですが、投稿してなかったみたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問