Salesforce Einstein Analytics Cloud Connector 3.14 - Mule 4

Salesforce Einstein Analytics Cloud 用 Anypoint Connector (Salesforce Analytics Connector) では、Salesforce 外部データ API を使用して Salesforce Analytics Cloud アプリケーションに接続できます。このコネクタでは、Salesforce Analytics Cloud システムに対するデータセットの作成、削除、入力を行う便利なメソッドが公開されています。オンプレミスかクラウドかに関係なく、多種多様なデータソースから Salesforce Einstein Analytics Cloud にデータを読み込むことができます。このコネクタで、.csv ファイル以外も利用できるようになります。

ソフトウェアの要件および互換性情報については、​「Salesforce Einstein Analytics Connector リリースノート」​を参照してください。

始める前に

このコネクタを使用するには、以下に精通している必要があります。

  • Salesforce Einstein Analytics API

  • Anypoint Connector

  • Mule Runtime Engine (Mule)

  • Mule フローの要素

  • グローバル要素

  • Anypoint Studio を使用した Mule アプリケーションの作成方法

アプリケーションを作成する前に、対象リソースへの接続をテストするには、ログイン情報が必要です。

POM ファイル情報

Apache Maven ​pom.xml​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​pom.xml​ ファイルに含めてこのコネクタにアクセスできるようにします:

<dependency>
  <groupId>com.mulesoft.connectors</groupId>
  <artifactId>mule-sfdc-analytics-connector</artifactId>
  <version>x.x.x</version>
  <classifier>mule-plugin</classifier>
</dependency>

x.x.x​ を使用しているコネクタに対応するバージョンに置き換えます。

最新の ​pom.xml​ ファイル情報を取得する手順は、次のとおりです。

  1. Anypoint Exchange​ に移動します。

  2. Exchange で、​[Login (ログイン)]​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。

  3. Exchange で、「​<connector-name>​」を検索します。

  4. コネクタを選択します。

  5. 画面の右上付近にある ​[Dependency Snippets (連動関係スニペット)]​ をクリックします。

Design Center での接続

  1. Design Center で、HTTP リスナーやスケジューラーなどのトリガーをクリックします。

  2. コネクタ用に省略可能なグローバル要素を作成する場合、次のオプションから選択できます。詳細は、後続のセクションで説明します。また、Salesforce ドキュメントへのリンクがこのドキュメントの「関連情報」セクションに記載されています。

    • 基本ユーザー名とパスワード認証の必須パラメーター

    • OAuth 2.0 設定の必須パラメーター

    • OAuth 2.0 JWT ベアラー設定の必須パラメーター

    • OAuth 2.0 SAML ベアラー設定の必須パラメーター

      グローバル種別の選択
  3. プラス記号を選択して、コンポーネントを追加します。

  4. コンポーネントとしてコネクタを選択します。

  5. 次の項目を設定して外部データを新しいデータセットにアップロードし、操作の処理を開始します。

    • Type (タイプ)
      挿入するレコードのタイプ。作成するデータセットのスキーマを表す JSON ファイルを選択します。

    • Records (レコード)
      DataSense 式。挿入するレコード。

    • 操作
      データセットにデータを読み込むときに使用する操作。

    • 説明

    • Label (表示ラベル)

    • Data Set Name (データセット名)

      アップロードして処理を開始

基本ユーザー名とパスワード認証の必須パラメーター

  • Username (ユーザー名)
    Salesforce Einstein Analytics ユーザー名。

  • Password (パスワード)
    Salesforce Einstein Analytics ユーザー名に対応するパスワード。

  • Security Token (セキュリティトークン)
    対応するセキュリティトークン

基本認証

OAuth 2.0 設定の必須パラメーター

  • Consumer Key (コンシューマーキー)
    Salesforce 接続アプリケーションのコンシューマーキー。

  • Consumer Secret (コンシューマーシークレット)
    Salesforce にアクセスするコネクタのコンシューマーシークレット。

OAuth 認証

OAuth 2.0 JWT ベアラー設定の必須パラメーター

  • Consumer Key (コンシューマーキー)
    Salesforce 接続アプリケーションのコンシューマーキー。

  • Keystore File (キーストアファイル)
    「​キーストアファイルの生成​」を参照してください。

  • Store Password (ストアのパスワード)
    キーストアのパスワード

  • Principal (プリンシパル)
    Salesforce ユーザー名

JWT ベアラー設定

OAuth 2.0 SAML ベアラー設定の必須パラメーター

  • Consumer Key (コンシューマーキー)
    Salesforce 接続アプリケーションのコンシューマーキー。

  • Keystore File (キーストアファイル)
    認証時にデータへの署名に使用するキーストアへのパス。Java キーストア形式のみが許可されます。

  • Store Password (ストアのパスワード)
    キーストアパスワード。

  • Principal (プリンシパル)
    Salesforce ユーザー名。

SAML ベアラー設定

キーストアファイルの生成

キーストアは、認証時にデータへの署名に使用するキーストアへのパスです。次の例は、JKS ファイルの生成方法を示しています。

  1. Mule ワークスペースに移動し、コマンドプロンプト (Windows) またはターミナル (Mac) を開きます。

  2. 「​keytool -genkeypair -alias salesforce-cert -keyalg RSA -keystore salesforce-cert.jks​」と入力して Enter キーを押します。

  3. 次の詳細を入力します。

    • キーストアのパスワード

    • 自身の姓名

    • 自身の組織単位

    • 市区郡と都道府県の名前と 2 文字の国コード

      システムが、ワークスペースに非公開キーと公開キーのペアが含まれる Java キーストアファイルを生成します。

  4. コネクタ設定でキーストアのファイルパスを指定します。

    「​keytool -exportcert -alias salesforce-cert -file salesforce-cert.crt -keystore salesforce-cert.jks​」と入力して Enter キーを押します。

    システムが、キーストアからワークスペースに公開キーをエクスポートします。これは、Salesforce インスタンスに入力する必要がある公開キーです。

  5. ワークスペースにキーストア (​salesforce-cert.jks​) と公開キー (​salesforce-cert.crt​) の両方のファイルがあることを確認します。

Studio でコネクタに追加する

  1. Studio で Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)] ビューで、​[(X) Search in Exchange ((X) Exchange 内を検索)]​ をクリックします。

  3. [Add Modules to Project (モジュールをプロジェクトに追加)]​ で、検索項目に「analytics」と入力します。

  4. [Available modules (使用可能なモジュール)]​ で、このコネクタの名前をクリックします。

  5. [Add (追加)]​ をクリックします。

  6. [Finish (完了)]​ をクリックします。

Studio でコネクタを設定する

  1. 目的の Salesforce Analytics 操作を Studio キャンバスにドラッグします。

  2. コネクタのグローバル要素を作成するには、​[General (一般)]​ タブで、認証セクションで説明したように認証を設定します。

    次の認証接続種別が使用できます。

  3. 次の項目を設定して外部データを新しいデータセットにアップロードし、操作の処理を開始します。

    • Type (タイプ)
      挿入するレコードのタイプ。作成するデータセットのスキーマを表す JSON ファイルを選択します。

    • Records (レコード)
      DataSense 式。挿入するレコード。

    • 操作
      データセットにデータを読み込むときに使用する操作を指定します。

    • 説明

    • Label (表示ラベル)

    • Data Set Name (データセット名)

      外部データのアップロード

ユーザー名パスワード

[Global Element Properties (グローバル要素のプロパティ)]​ 画面の ​[General (一般)]​ タブで、次の情報を入力して基本認証を設定します。

  • Username (ユーザー名)
    Salesforce ユーザー名を入力します。

  • Password (パスワード)
    対応するパスワードを入力します。

  • Security Token (セキュリティトークン)
    対応するセキュリティトークンを入力します。

次のスクリーンショットは、基本認証の設定例を示しています。

認証を設定するには、*[Connection (接続)]* 項目で `[Basic (基本)]` を選択し、*[General (一般)]* タブの項目に入力します。
Figure 1. 基本認証の項目

OAuth 2.0

[Global Element Properties (グローバル要素のプロパティ)]​ 画面の ​[General (一般)]​ タブで、次の情報を入力して OAuth 2.0 認証を設定します。

  • Consumer Key (コンシューマーキー)
    Salesforce 接続アプリケーションのコンシューマーキー。

  • Consumer Secret (コンシューマーシークレット)
    Salesforce にアクセスするコネクタのコンシューマーシークレット。

次のスクリーンショットは、OAuth 2.0 認証を設定する例を示しています。

認証を設定するには、*[Connection (接続)]* 項目で `[OAuth 2.0]` を選択し、*[General (一般)]* タブの項目に入力します。
Figure 2. OAuth 2.0 認証項目

OAuth 2.0 JWT

[Global Element Properties (グローバル要素のプロパティ)]​ 画面の ​[General (一般)]​ タブで、次の情報を入力して OAuth 2.0 JWT 認証を設定します。

  • Consumer Key (コンシューマーキー)
    Salesforce 接続アプリケーションのコンシューマーキー。

  • Keystore File (キーストアファイル)
    「​キーストアファイルの生成​」を参照してください。

  • Store Password (ストアのパスワード)
    キーストアのパスワード

  • Principal (プリンシパル)
    Salesforce ユーザー名

認証を設定するには、*[Connection (接続)]* 項目で `[OAuth 2.0 JWT]` を選択し、*[General (一般)]* タブの項目に入力します。
Figure 3. OAuth 2.0 JWT 認証項目

OAuth 2.0 SAML Bearer (OAuth 2.0 SAML ベアラー)

[Global Element Properties (グローバル要素のプロパティ)]​ 画面の ​[General (一般)]​ タブで、次の情報を入力して OAuth 2.0 SAML ベアラー認証を設定します。

  • Consumer Key (コンシューマーキー)
    Salesforce 接続アプリケーションのコンシューマーキー。

  • Keystore File (キーストアファイル)
    「​キーストアファイルの生成​」を参照してください。

    • Store Password (ストアのパスワード)
      キーストアのパスワード。

    • Principal (プリンシパル)
      Salesforce ユーザー名

認証を設定するには、*[Connection (接続)]* 項目で `[OAuth 2.0 SAML Beare (OAuth 2.0 SAML ベアラー)]` を選択し、*[General (一般)]* タブの項目に入力します。
Figure 4. OAuth 2.0 SAML ベアラー認証項目

ユースケース: Studio

このユースケースは、Salesforce Einstein Analytics Connector の使用方法の例を示しており、次のようにエンドツーエンドのフローが含まれます。

  • 入力元として HTTP リスナーを使用します。

  • ユーザー名、パスワード、セキュリティトークンを使用して接続を設定します。

  • 使用するパラメーターを含む Salesforce Analytics 操作を使用します。

以下の例には、次のコンポーネントが含まれます。

  • HTTP リスナー。HTTP 要求からデータを受け入れます。

  • Transform Message。Salesforce Einstein Analytics Connector で要求されるレコード入力データを提供します。

%dw 2.0
output application/java
---
[
	{
		"Id": 1,
		"Country": "Country",
		"City": "City",
		"Year": 428742153,
		"Distance": 284644936,
		"Currencies":
		[
			"EUR",
			"USD"
		],
		"CreationDate": "20/12/2017" as Date {format: "dd/MM/yyyy"}
	},
	{
		"Id": 2,
		"Country": "Country",
		"City": "City",
		"Year": 1432651434,
		"Distance": 1336594394,
		"Currencies":
		[
			"EUR",
			"USD",
			"HUF"
		],
		"CreationDate": "20/12/2017" as Date {format: "dd/MM/yyyy"}
	}
]
  • Salesforce Analytics Connector。Salesforce に接続し、データを Salesforce Einstein Analytics Cloud にプッシュする操作を実行します。

ユースケース

ユースケース: XML

この例で示している XML コードを Anypoint Studio の [Configuration XML (設定 XML)] タブに貼り付けて、前のセクションで説明したフローを試してください。

ここでも、作成するデータセットのスキーマを記述した ​metadata.json​ ファイルを指定する必要があります。

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:salesforce-analytics="http://www.mulesoft.org/schema/mule/salesforce-analytics"
xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns:file="http://www.mulesoft.org/schema/mule/file"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core
http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/file
http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd
http://www.mulesoft.org/schema/mule/http
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core
http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/salesforce-analytics
http://www.mulesoft.org/schema/mule/salesforce-analytics/current/mule-salesforce-analytics.xsd">
 	<configuration-properties file="mule-app.properties" />
	<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" >
		<http:listener-connection host="0.0.0.0" port="8081" />
	</http:listener-config>
	<salesforce-analytics:salesforce-analytics-config
	  name="Salesforce_Analytics_Salesforce_Analytics"
	  doc:name="Salesforce Analytics Salesforce Analytics" >
		<salesforce-analytics:basic-connection username="${salesforce.username}"
		   password="${salesforce.password}" securityToken="${salesforce.securityToken}"
		   url="${salesforce.url}"/>
	</salesforce-analytics:salesforce-analytics-config>
	<flow name="upload-all-in-one-with-append" >
		<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="append"/>
		<ee:transform doc:name="Transform Message" >
			<ee:message >
				<ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
[
	{
		"Id": 1,
		"Country": "Country",
		"City": "City",
		"Year": 428742153,
		"Distance": 284644936,
		"Currencies":
		[
			"EUR",
			"USD"
		],
		"CreationDate": "20/12/2017" as Date {format: "dd/MM/yyyy"}
	},
	{
		"Id": 2,
		"Country": "Country",
		"City": "City",
		"Year": 1432651434,
		"Distance": 1336594394,
		"Currencies":
		[
			"EUR",
			"USD",
			"HUF"
		],
		"CreationDate": "20/12/2017" as Date {format: "dd/MM/yyyy"}
	}
]]]></ee:set-payload>
			</ee:message>
		</ee:transform>
		<salesforce-analytics:upload-external-data-into-new-data-set-and-start-processing
		  doc:name="Upload external data into new data set and start processing"
		  config-ref="Salesforce_Analytics_Salesforce_Analytics" operation="APPEND"
		  description="${allInOne.dataSetDescription}" label="${allInOne.dataSetLabel}"
		  dataSetName="${allInOne.dataSetName}" edgemartContainer="${allInOne.dataSetContainerName}"
		  type="metadata.json" notificationSent="ALWAYS" notificationEmail="${notification.email}"/>
	</flow>
</mule>

関連情報