Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.第139章 Salesforce
Salesforce コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.12 以降で利用可能
このコンポーネントにより、プロデューサーおよびコンシューマーエンドポイントは Java DTO を使用して Salesforce と通信できます。これらの DTO を生成するコンパニオン Maven プラグインである Camel Salesforce プラグインがあります(以下を参照)。
TLS (Transport Layer Security)を使用するように
camel-salesforce
コンポーネントを設定するには、Security Guide の Configuring Transport Security for Camel Components の章を参照してください。
Maven ユーザーは、以下の依存関係を
pom.xml
に追加する必要があります。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
このコンポーネントは、Red Hat JBoss Enterprise Application Platform (JBoss EAP) コンテナー上で簡素化されたデプロイメントモデルを提供する Camel on EAP (Wildfly Camel) フレームワークによってサポートされます。このモデルの詳細は、Deploying into a Web Server の Apache Camel on JBoss EAP の章を参照してください。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
salesforce コンポーネントの URI スキームは以下のとおりです。
salesforce:topic?options
salesforce:topic?options
URI にクエリーオプションは
?option=value&option=value&.. の形式で追加できます。
サポートされる Salesforce API リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは以下の Salesforce API をサポートします。
プロデューサーエンドポイントは、次の API を使用できます。ほとんどの API プロセスは一度に 1 レコードで、Query API は複数のレコードを取得できます。
Rest API リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
getVersions
- サポートされる Salesforce REST API バージョンの取得getResources
- 利用可能な Salesforce REST リソースエンドポイントを取得します。getGlobalObjects
: 利用可能なすべての SObject タイプのメタデータを取得します。getBasicInfo
: 特定の SObject タイプの基本メタデータを取得します。getDescription
: 特定の SObject タイプの包括的なメタデータを取得します。getSObject
- Salesforce ID を使用して SObject を取得します。createSObject
: SObject を作成しますupdateSObject
: Id を使用して SObject を更新します。deleteSObject
: Id を使用して SObject を削除します。getSObjectWithId
: 外部(ユーザー定義)id フィールドを使用して SObject を取得します。upsertSObject
: 外部 ID を使用して SObject を更新または挿入します。deleteSObjectWithId
: 外部 ID を使用して SObject を削除します。query
- Salesforce SOQL クエリーを実行します。queryMore
: クエリー API から返された結果リンクを使用して、より多くの結果(大量の結果の場合)を取得します。search
- Salesforce SOSL クエリーを実行します。
たとえば、以下のプロデューサーエンドポイントは upsertSObject API を使用し、sObjectIdName パラメーターが外部 id フィールドとして指定されています。リクエストメッセージのボディーは、maven プラグインを使用して生成された SObject DTO である必要があります。応答メッセージは、既存のレコードが更新された場合、または新規レコードの ID を持つ
CreateSObjectResult
、または新規オブジェクトの作成時のエラーの一覧のいずれかです。
...to("salesforce:upsertSObject?sObjectIdName=Name")...
...to("salesforce:upsertSObject?sObjectIdName=Name")...
REST Bulk API リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
プロデューサーエンドポイントは、次の API を使用できます。すべてのジョブデータ形式(xml、csv、zip/xml、および zip/csv)がサポートされます。要求と応答は、ルートによってマーシャリング/アンマーシャリングされる必要があります。通常、要求は CSV ファイルのようなストリームソースであり、応答もファイルに保存され、要求と関連付けられます。
createJob
- Salesforce 一括ジョブを作成します。getJob
- Salesforce ID を使用してジョブを取得します。closeJob
: ジョブを閉じるabortJob
: ジョブを中止します。createBatch
- 一括ジョブ内でバッチを送信します。getBatch
- Id を使用してバッチを取得します。getAllBatches
- 一括ジョブ ID のすべてのバッチを取得します。getRequest
- バッチのリクエストデータ(XML/CSV)を取得します。getResults
: バッチの完了時に結果を取得します。createBatchQuery
: SOQL クエリーから Batch を作成します。getQueryResultIds
- バッチクエリーの結果 ID の一覧を取得します。getQueryResult
: 結果 ID の結果を取得します。
たとえば、以下のプロデューサーエンドポイントは createBatch API を使用して Job Batch を作成します。in メッセージには、XML、CSV、ZIP\_XML または ZIP\_CSV の
InputStream
(通常は UTF-8 CSV または XML コンテンツ)および Job および contentType のヘッダーフィールド jobId に変換できるボディーが含まれている必要があります。put メッセージのボディーには、成功時に BatchInfo
が含まれたり、SalesforceException
をエラーに出力したりします。
...to("salesforce:createBatchJob")..
...to("salesforce:createBatchJob")..
REST Streaming API リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
コンシューマーエンドポイントは、以下の sytax を使用して、エンドポイントをストリーミングし、作成/更新時に Salesforce の通知を受信することができます。
トピックを作成してサブスクライブするには、以下を行います。
from("salesforce:CamelTestTopic?notifyForFields=ALL¬ifyForOperations=ALL&sObjectName=Merchandise__c&updateTopic=true&sObjectQuery=SELECT Id, Name FROM Merchandise__c")...
from("salesforce:CamelTestTopic?notifyForFields=ALL¬ifyForOperations=ALL&sObjectName=Merchandise__c&updateTopic=true&sObjectQuery=SELECT Id, Name FROM Merchandise__c")...
既存のトピックにサブスクライブするには、以下を実行します。
from("salesforce:CamelTestTopic&sObjectName=Merchandise__c")...
from("salesforce:CamelTestTopic&sObjectName=Merchandise__c")...
ContentWorkspace へのドキュメントのアップロード リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Processor インスタンスを使用して、Java で ContentVersion を作成します。
プロセッサーから Salesforce コンポーネントに出力を付与します。
from("file:///home/camel/library") .to(new ContentProcessor()) // convert bytes from the file into a ContentVersion SObject // for the salesforce component .to("salesforce:createSObject");
from("file:///home/camel/library")
.to(new ContentProcessor()) // convert bytes from the file into a ContentVersion SObject
// for the salesforce component
.to("salesforce:createSObject");
Camel Salesforce Maven プラグイン リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この Maven プラグインは、Camel Salesforce の DTO を生成します。
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
プラグイン設定には、以下のプロパティーがあります。
オプション | 説明 |
---|---|
clientId
|
Salesforce client Id for Remote API access. |
clientSecret
|
リモート API アクセス用の Salesforce クライアントシークレット。 |
userName
|
Salesforce アカウントのユーザー名。 |
password
|
Salesforce アカウントパスワード(シークレットトークンを含む) |
version
|
Salesforce Rest API バージョン。デフォルトは 34.0 です。 |
outputDirectory
|
生成された DTO を配置するディレクトリー。デフォルトは ${project.build.directory}/generated-sources/camel-salesforce です。
|
includes
|
追加する SObject タイプのリスト。 |
excludes
|
除外する SObject タイプのリスト。 |
includePattern
|
含める SObject タイプの Java RegEx。 |
excludePattern
|
除外する SObject タイプの Java RegEx。 |
packageName
|
生成された DTO の Java パッケージ名。デフォルトは org.apache.camel.salesforce.dto です。
|
mvn camel-salesforce:generate -DclientId=<clientid> -DclientSecret=<clientsecret> -DuserName=<username> -Dpassword=<password>
mvn camel-salesforce:generate -DclientId=<clientid> -DclientSecret=<clientsecret> -DuserName=<username> -Dpassword=<password>
生成された DTO は Jackson および XStream アノテーションを使用します。すべての Salesforce フィールドタイプがサポートされます。日時フィールドは Joda DateTime にマッピングされ、リストフィールドは生成された Java Enumerations にマッピングされます。