284.4. サポートされている Salesforce API


このコンポーネントは、次の Salesforce API をサポートしています

プロデューサーエンドポイントは、次の API を使用できます。ほとんどの API は一度に 1 つのレコードを処理しますが、Query API は複数のレコードを取得できます。

284.4.1. Rest API

operationName には以下を使用できます。

  • getVersions - サポートされている Salesforce REST API バージョンを取得します
  • getResources - 利用可能な Salesforce REST Resource エンドポイントを取得します
  • 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 クエリーを実行します
  • 制限 - 組織 API の使用制限をフェッチする
  • recent - 最近のアイテムの取得
  • approval - 承認プロセスのために 1 つまたは複数のレコード (バッチ) を送信します
  • approvals - すべての承認プロセスのリストを取得します
  • composite - 関連する可能性のある最大 25 個の REST リクエストを送信し、個々のレスポンスを受け取ります
  • composite-tree - 親子関係 (最大 5 レベル) を持つ最大 200 レコードを一度に作成します
  • composite-batch - リクエストの設定をバッチで送信します
  • queryAll - SOQL クエリーを実行します。マージまたは削除のために削除された結果を返します。また、アーカイブされたタスクおよびイベントレコードに関する情報も返します。
  • getBlobField - 個々のレコードから指定された BLOB フィールドを取得します。
  • apexCall - ユーザー定義の APEX REST API 呼び出しを実行します。

たとえば、次のプロデューサーエンドポイントは upsertSObject API を使用し、sObjectIdName パラメーターで Name を外部 ID フィールドとして指定します。リクエストメッセージの本文は、maven プラグインを使用して生成された SObject DTO である必要があります。レスポンスメッセージは、既存のレコードが更新された場合は null になるか、新しいレコードの ID を持つ CreateSObjectResult、または新しいオブジェクトの作成中のエラーのリストのいずれかになります。

...to("salesforce:upsertSObject?sObjectIdName=Name")...
Copy to Clipboard

284.4.2. Bulk 2.0 API

Bulk 2.0 API には、元の Bulk API よりも単純化されたモデルがあります。これを使用して、大量のデータを Salesforce にすばやくロードしたり、大量のデータを Salesforce からクエリーしたりします。データは CSV 形式で提供する必要があります。Bulk 2.0 の最小 API バージョンは v41.0 です。一括クエリーの最小 API バージョンは v47.0 です。以下に示す DTO クラスは、org.apache.camel.component.salesforce.api.dto.bulkv2 パッケージからのものです。以下の操作がサポートされます。

  • bulk2CreateJob - 一括ジョブを作成します。メッセージボディーに Job のインスタンスを指定します。
  • bulk2GetJob - 既存のジョブを取得します。jobId パラメーターが必要です。
  • bulk2CreateBatch - CSV レコードのバッチをジョブに追加します。メッセージ本文に CSV データを指定します。最初の行にはヘッダーが含まれている必要があります。jobId パラメーターが必要です。
  • bulk2CloseJob - ジョブを閉じます。ジョブを処理または中止/削除するには、ジョブを閉じる必要があります。jobId パラメーターが必要です。
  • bulk2AbortJob - ジョブを中止します。jobId パラメーターが必要です。
  • bulk2DeleteJob - ジョブを削除します。jobId パラメーターが必要です。
  • bulk2GetSuccessfulResults - ジョブの成功結果を取得します。返されるメッセージボディーには、CSV データの InputStream が含まれます。jobId パラメーターが必要です。
  • bulk2GetFailedResults - ジョブの失敗した結果を取得します。返されるメッセージボディーには、CSV データの InputStream が含まれます。jobId パラメーターが必要です。
  • bulk2GetUnprocessedRecords - ジョブの未処理のレコードを取得します。返されるメッセージボディーには、CSV データの InputStream が含まれます。jobId パラメーターが必要です。
  • bulk2GetAllJobs - すべてのジョブを取得します。レスポンスボディは Jobs のインスタンスです。done プロパティーが false の場合、取得する追加のページがあり、nextRecordsUrl プロパティーには、後続の呼び出しで queryLocator パラメーターに設定される値が含まれます。
  • bulk2CreateQueryJob - 一括クエリージョブを作成します。メッセージ本文に QueryJob のインスタンスを指定します。
  • bulk2GetQueryJob - 一括クエリージョブを取得します。jobId パラメーターが必要です。
  • bulk2GetQueryJobResults - 一括クエリージョブの結果を取得します。jobId パラメーターが必要です。
  • bulk2AbortQueryJob - 一括クエリージョブを中止します。jobId パラメーターが必要です。
  • bulk2DeleteQueryJob - 一括クエリージョブを削除します。jobId パラメーターが必要です。
  • bulk2GetAllQueryJobs - すべてのジョブを取得します。レスポンスボディは QueryJobs のインスタンスです。done プロパティーが false の場合、取得する追加のページがあり、nextRecordsUrl プロパティーには、後続の呼び出しで queryLocator パラメーターに設定される値が含まれます。

284.4.3. Rest Bulk (オリジナル) API

プロデューサーエンドポイントは、次の API を使用できます。すべてのジョブデータ形式、つまり xml、csv、zip/xml、および zip/csv がサポートされています。
リクエストとレスポンスは、ルートによってマーシャリング/マーシャリング解除する必要があります。通常、リクエストは CSV ファイルなどのストリームソースになります。
また、応答をファイルに保存して、要求と関連付けることもできます。

operationName には以下を使用できます。

  • createJob - Salesforce 一括ジョブを作成します
  • getJob - Salesforce ID を使用してジョブを取得します
  • closeJob - ジョブを閉じます
  • abortJob - ジョブを中止します
  • createBatch - 一括ジョブ内でバッチを送信します
  • getBatch - Id を使用してバッチを取得します
  • getAllBatches - 一括ジョブ ID のすべてのバッチを取得します
  • getRequest - バッチのリクエストデータ (XML/CSV) を取得します
  • getResults - 完了時にバッチの結果を取得します
  • createBatchQuery - SOQL クエリーからバッチを作成します
  • getQueryResultIds - バッチクエリーの結果 ID のリストを取得します
  • getQueryResult - 結果 ID の結果を取得します
  • getRecentReports - Report List リソースに GET リクエストを送信して、最近表示したレポートを最大 200 件取得します
  • getReportDescription - レポート、レポートタイプ、およびレポートの関連メタデータを表形式、要約形式、またはマトリックス形式で取得します。
  • executeSyncReport - フィルターを変更して、または変更せずにレポートを同期的に実行し、最新の概要データを返します
  • executeAsyncReport - フィルターの有無にかかわらずレポートのインスタンスを非同期的に実行し、詳細の有無にかかわらず概要データを返します
  • getReportInstances - 非同期実行を要求したレポートのインスタンスのリストを返します。リスト内の各項目は、レポートの個別のインスタンスとして扱われます。
  • getReportResults : レポートの実行結果が含まれます。

たとえば、次のプロデューサーエンドポイントは、createBatch API を使用してジョブバッチを作成します。in メッセージには、InputStream に変換できる本文 (通常は、ファイルからの UTF-8 CSV または XML コンテンツなど) と、ジョブのヘッダーフィールド jobId およびジョブコンテンツタイプの contentType が含まれている必要があります。XML、CSV、ZIP_XML、または ZIP_CSV を指定できます。put メッセージの本文には、成功した場合は BatchInfo が含まれ、エラーが発生した場合は SalesforceException が出力されます。

...to("salesforce:createBatchJob")..
Copy to Clipboard

284.4.4. Rest Streaming API

コンシューマーエンドポイントは、ストリーミングエンドポイントに次の構文を使用して、作成/更新時に Salesforce 通知を受信できます。

トピックを作成してサブスクライブするには

from("salesforce:CamelTestTopic?notifyForFields=ALL&notifyForOperations=ALL&sObjectName=Merchandise__c&updateTopic=true&sObjectQuery=SELECT Id, Name FROM Merchandise__c")...
Copy to Clipboard

既存のトピックをサブスクライブするには

from("salesforce:CamelTestTopic&sObjectName=Merchandise__c")...
Copy to Clipboard

284.4.5. プラットフォームイベント

プラットフォームイベントを発行するには、createSObject 操作を使用します。また、メッセージ本文を JSON 文字列またはキー値データを含む InputStream に設定します。その場合、sObjectName をイベントの API 名、またはイベントの適切なクラス名を持つ AbstractDTOBase から拡張されたクラスに設定する必要があります。

たとえば、DTO を使用すると、次のようになります。

class Order_Event__e extends AbstractDTOBase {
  @JsonProperty("OrderNumber")
  private String orderNumber;
  // ... other properties and getters/setters
}

from("timer:tick")
    .process(exchange -> {
        final Message in = exchange.getIn();
        String orderNumber = "ORD" + String.valueOf(in.getHeader(Exchange.TIMER_COUNTER));
        Order_Event__e event = new Order_Event__e();
        event.setOrderNumber(orderNumber);
        in.setBody(event);
    })
    .to("salesforce:createSObject");
Copy to Clipboard

または、JSON イベントデータを使用します。

from("timer:tick")
    .process(exchange -> {
        final Message in = exchange.getIn();
        String orderNumber = "ORD" + String.valueOf(in.getHeader(Exchange.TIMER_COUNTER));
        in.setBody("{\"OrderNumber\":\"" + orderNumber + "\"}");
    })
    .to("salesforce:createSObject?sObjectName=Order_Event__e");
Copy to Clipboard

プラットフォームイベントを受信するには、プラットフォームイベントの API 名の前に event/ (または /event/) を付けたコンシューマーエンドポイントを使用します (例: salesforce:events/Order_Event__e)。そのエンドポイントから消費するプロセッサーは、rawPayload がそれぞれ false または true であるかに応じて、本文で org.apache.camel.component.salesforce.api.dto.PlatformEvent オブジェクトまたは org.cometd.bayeux.Message のいずれかを受け取ります。

たとえば、1 つのイベントを消費する最も単純な形式では、次のようになります。

PlatformEvent event = consumer.receiveBody("salesforce:event/Order_Event__e", PlatformEvent.class);
Copy to Clipboard
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat