Flex Gateway新着情報
Governance新着情報
Monitoring API Manager次の目的で Salesforce 用 Anypoint Connector (Salesforce Connector) を設定します。
データのバッチ読み込み
Lead Convert Request 操作のリード ID の指定
null
への項目値の更新
OAuth 2.0 キーストアファイルの生成
APEX Rest メソッドの呼び出し
Salesforce Bulk API は、組織のデータのバッチを Salesforce に読み込みます。Salesforce Connector には、Bulk API と連動する Create 操作と Create Bulk 操作が用意されています。
一括操作はすべて、Salesforce が作成プロセスをバックグラウンドで処理します。コネクタは BatchInfo
オブジェクトで応答します。このオブジェクトにはバッチの ID と、バッチオブジェクトをアップロードするために作成するジョブの ID が含まれます。
Salesforce で、一括データ読み込みジョブのジョブ ID を使用して、一括データ読み込みジョブと関連するバッチの状況を追跡できます。
<YOUR_NAME > [Setup (設定)] > [Monitoring (監視)] > [Bulk Data Load Jobs (一括データ読み込みジョブ)] をクリックします。
ジョブ ID をクリックすると、ジョブの詳細ページが表示されます。
ジョブの詳細ページに、ジョブに関連する全バッチのリストが表示されます。リストには、各バッチの [View Request
(要求を表示)] および [View Response
(応答を参照)] リンクが表示されます。バッチが CSV ファイルの場合は、これらのリンクから CSV 形式の要求や応答が返されます。バッチが XML ファイルの場合は、これらのリンクから XML 形式の要求や応答が返されます。
LeadConvertRequest
操作でリード ID を指定するには、DataWeave transform message を使用します。操作の前で transform message を使用するには、操作のメタデータで指定されないため leadId
項目を追加する必要があります。
<ee:transform doc:name="Transform Message" > <ee:message > <ee:set-payload ><![CDATA[%dw 2.0 output application/java --- { leadId: "LEAD_ID", accountId: "ACCOUNT_ID", convertedStatus: "Closed - Converted", doNotCreateOpportunity: true } as Object { class : "org.mule.extension.salesforce.api.core.LeadConvertRequest" }]]></ee:set-payload> </ee:message> </ee:transform>
example
項目値を null
に設定するには、Update または Upsert 要求操作を使用して、null にする項目の名前を Transform Message コンポーネントの fieldsToNull 項目に挿入します。
Salesforce Connector は、Bouncy Castle 暗号ライブラリを使用して、キーストアから証明書を読み込み、認証要求のペイロードに署名します。
ライブラリには、BKS-V1 キーストアファイル種別に関連する 脆弱性 (CVE-2018-5382) があります。デフォルトでは、Salesforce Connector は JKS または PKCS12 キーストアを使用します。 Bouncy Castle で提案されるソリューション
に記載されているように BKS-V1 キーストアファイルを使用することは避けてください。
JKS キーストアファイルを生成する手順は、次のとおりです。
Mule ワークスペースに移動し、コマンドプロンプト (Windows) またはターミナル (Mac) を開きます。
次のコマンドを入力します。
keytool -genkeypair -alias salesforce-cert -keyalg RSA -keystore salesforce-cert.jks
次の情報を入力します。
キーストアのパスワード
自身の姓名
自身の組織単位
都道府県と 2 文字の国コード
システムが、ワークスペースに非公開キーと公開キーのペアが含まれる Java キーストアファイル (JKS 形式) を生成します。
コネクタ設定でキーストアのファイルパスを指定します。
次のコマンドを入力します。
keytool -exportcert -alias salesforce-cert -file salesforce-cert.crt -keystore salesforce-cert.jks
システムが、キーストアからワークスペースに公開キーをエクスポートします。これは、Salesforce インスタンスに入力する公開キーです。
ワークスペースにキーストア (salesforce-cert.jks
) と公開キー (salesforce-cert.crt
) の両方のファイルがあることを確認します。
Invoke APEX Rest 操作を使用すると、ユーザーは REST サービスとして公開されている Apex クラスからメソッドを呼び出すことができます。次の例は、この操作のペイロードを示しています。
<ee:transform doc:name="Transform Message"> <ee:message > <ee:set-payload ><![CDATA[output application/java --- { body: { URLParameters: { Parameter1: "parameter1Value", Parameter2: "parameter2Value" }, account: { Name: "Example", AccountNumber: "55" } }, headers: { header1:"header1Value" }, cookies: { cookie1:"cookie1Value" }, queryParameters: { queryParam1Name:"queryParam1Value", queryParam2Name:"queryParam2Value" } }]]></ee:set-payload> </ee:message> </ee:transform>
example
例について説明します。
body
要素に含まれる URLParameters
は、Apex クラスに記述されている REST リソースのパス内のワイルドカードを置き換えるパラメーターが含まれるマップです。
たとえば、REST リソースが @RestResource(urlMapping='/myResource/\/mySubResource/')
に設定されている場合、Parameter1
の値で 1 番目の *
が置き換えられ、Parameter2
の値で 2 番目の *
が置き換えられます。
キー名は Parameter
で始まり、その後に、置き換える *
の位置を示す数値が続く必要があります。
URLParameters
ブロックの後に、REST リソースに送信する body
値のコンテンツを指定します (例の account
ブロックを参照)。
headers
および cookies
項目では、HTTP 要求と共に目的のサービスに渡すヘッダーと Cookie を記述します。
queryParameters
項目では、使用するクエリパラメーターのほか、指定した Apex クラスで受け入れられる必要があるこのマップ内のキーと値を記述します。