SAP SuccessFactors Connector 3.1

SAP SuccessFactors 用 Anypoint Connector (SuccessFactors Connector) では、SuccessFactors によって公開されている ODATA API を使用してエンティティをクエリ、作成、更新、削除できます。

このコネクタでは、次の操作を実行できます。

  • エンティティを作成、更新、削除する。

  • 単一エンティティの取得または複数エンティティのクエリを行う。

始める前に

この情報を使用するには、SAP SuccessFactors、Mule Runtime Engine (Mule)、Anypoint Connector、Anypoint Studio の基礎に精通している必要があります。

このコネクタを使用するには、以下が必要です。

  • 開発者アカウントまたは他の有効な SAP SuccessFactors インスタンス。

  • MuleSoft Enterprise ライセンス。

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

Maven でこのコネクタを使用するには、Anypoint Exchange の [Dependency Snippets (連動関係スニペット)] で pom.xml の連動関係情報を確認してください。

POM ファイル情報

<dependency>
  <groupId>com.mulesoft.connectors</groupId>
  <artifactId>mule-sap-successfactors-connector</artifactId>
  <version>x.y.z</version>
  <classifier>mule-plugin</classifier>
</dependency>

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

最新の ​pom.xml​ ファイル情報を取得するには、​ Anypoint Exchange​ でコネクタにアクセスし、​[Dependency Snippets (連動関係スニペット)]​ をクリックします。

このコネクタの新機能

このバージョンのコネクタでは、Mule 4.x のサポートが追加されています。

このコネクタは、SuccessFactors によって公開されている ODATA API に対応しています。

サポートされている操作

SuccessFactors Connector では、次のアウトバウンド操作がサポートされています。

  • Create Entity

  • Delete Entity

  • Get Entity by ID

  • Query

  • Update

  • Update Entity

Studio プロジェクトへのコネクタの追加

Anypoint Studio には、Studio プロジェクトにコネクタを追加する 2 つの方法があります。Studio タスクバーの Exchange ボタンから追加するか、[Mule Palette (Mule パレット)] ビューから追加します。

Exchange を使用してコネクタを追加する

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

  2. Studio タスクバーの左上にある Exchange アイコン ​(X)​ をクリックします。

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

  4. Exchange で、「success」を検索します。

  5. コネクタを選択して ​[Add to project (プロジェクトに追加)]​ をクリックします。

  6. 画面の指示に従ってコネクタをインストールします。

Studio でコネクタに追加する

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

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

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

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

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

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

SuccessFactors Connector のグローバル要素を設定する

Mule アプリケーションで SuccessFactors Connector を使用するには、アプリケーションで必要な任意の数の SuccessFactors Connector で使用できるグローバル SuccessFactors 設定要素を設定する必要があります。

  1. キャンバスの下部にある [Global Elements (グローバル要素)] タブをクリックします。

  2. [Global Configuration Elements (グローバル設定要素)] 画面で、[Create (作成)] をクリックします。次のウィンドウが表示されます。

    「Global Element Configuration (グローバル要素設定)」 ウィザード
  3. [Choose Global Type (グローバル種別を選択)] ウィザードで、[Connector Configuration (コネクタ設定)] を展開し、[SuccessFactors connector Config (SuccessFactors Connector 設定)] を選択して [OK] をクリックします。

    [Basic Connection (基本接続)] の次の設定画面が表示されます。

    「Basic Connection (基本接続)」 画面
  4. 次のプロパティを設定します。

    パラメーター 説明

    Company ID (会社 ID)

    会社 ID。

    User Name (ユーザー名)

    接続するためのユーザー名。

    Password (パスワード)

    接続するためのパスワード。

    Data Center’s Endpoint URL (データセンターのエンドポイント URL)

    SuccessFactors Web API URL。

    Enable Session Reuse (セッション再利用を有効化)

    セッションが存続します。

    注意:

    • 上記の [Basic configuration (基本設定)] 画面のプレースホルダー値は、プロジェクトの ​src/main/resources​ フォルダーの設定ファイル ​mule-artifact.properties​ を参照します。

    • ログイン情報をグローバル設定プロパティに入力するか、それらの値を含む設定ファイルを参照することができます。

    • メンテナンスをシンプルにして、プロジェクトを再利用できるようにするために、設定ファイルを使用することをお勧めします。これらの値を別個のファイルに保存しておくと、アクセスログイン情報が異なるさまざまな環境 (本番、開発、QA など) にデプロイする必要がある場合に便利です。

  5. [OK] をクリックして、グローバルコネクタ設定を保存します。

ユースケース: Studio でセットアップおよび実行する

  1. Anypoint Studio で、[File (ファイル)] > [New (新規)] > [Mule Project (Mule プロジェクト)] をクリックします。

  2. プロジェクト名を指定して、[Finish (完了)] をクリックします。

  3. 「http」を検索し、HTTP Connector をキャンバスにドラッグします。[Connector Configuration (コネクタ設定)] の横にある緑のプラス記号をクリックし、メニューで [OK] をクリックしてデフォルト値を受け入れます。

  4. SuccessFactors Connector の操作をキャンバスにドラッグします。 [Connector Configuration (コネクタ設定)] の横にある緑のプラスをクリックし、アクセスログイン情報を指定します。

  5. 認証の接続戦略をクリックします。

    • Basic Connection (基本接続)

基本接続の設定方法

「SuccessFactors Connector のグローバル要素を設定する」セクションの説明に従って基本接続を設定します。

フローの実行方法

  1. Package Explorer で、プロジェクトの名前を右クリックし、[Run As (別のユーザーとして実行)] > [Mule Application (Mule アプリケーション)] をクリックします。

  2. アプリケーションの起動時にコンソールを確認します。エラーが発生していない場合、次のようなメッセージが表示されます。

************************************************************
INFO  2019-07-14 22:12:42,003 [main] org.mule.module.launcher.DeploymentDirectoryWatcher:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Mule is up and kicking (every 5000ms)                    +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
INFO  2019-07-14 22:12:42,006 [main] org.mule.module.launcher.StartupSummaryDeploymentListener:
**********************************************************
*  - - + DOMAIN + - -               * - - + STATUS + - - *
**********************************************************
* default                           * DEPLOYED           *
**********************************************************

************************************************************************
* - - + APPLICATION + - -   * - - + DOMAIN + - -  * - - + STATUS + - - *
************************************************************************
* myapp                     * default             * DEPLOYED           *
************************************************************************

例: SuccessFactors

この例では、SuccessFactors Connector の使用について説明します。

このデモプロジェクトを構築して実行するには、以下が必要です。

  • Mule 4.0 Runtime 以上を備えた Anypoint Studio。

  • SuccessFactors Connector v3.0.0 以降。

  • ODATA API 要求を送信するためのログイン情報。

フローのテスト方法

  1. Anypoint Exchange を使用するか、Anypoint Studio で [File (ファイル)] メニューの [Import] コマンドを使用して、デモプロジェクトをワークスペースにインポートします。

  2. /src/main/app/mule-app.properties​ ファイルで基本ログイン情報を指定します。

  3. Studio でプロジェクトを実行します。

  4. ブラウザーで ​localhost:8081​ と入力し、デモの選択メニューにアクセスします。

  5. 必要に応じて、[Connection Timeout (接続タイムアウト)] と [Read Timeout (読み取りタイムアウト)] を設定できます。

    [Connection Timeout (接続タイムアウト)] は、サーバーに初めて接続するときのタイムアウトです。 [Read Timeout (読み取りタイムアウト)] は、サーバーからのデータの読み取りを待機するときのタイムアウトです。

http://localhost:8081​ の選択メニューを使用して、フローをテストできます。

ユースケース: SuccessFactors の操作

Studio 7 の操作フロー
Studio 7 の操作フロー
<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:successfactors="http://www.mulesoft.org/schema/mule/successfactors"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
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/ee/core
http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/core
http://www.mulesoft.org/schema/mule/core/current/mule.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/successfactors
http://www.mulesoft.org/schema/mule/successfactors/current/mule-successfactors.xsd">
  <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>
  <successfactors:config name="SuccessFactors_Configuration" doc:name="SuccessFactors Configuration" >
      <successfactors:basic-connection
              companyId="${config.companyId}"
              userName="${config.userName}"
              password="${config.password}"
              endpointUrl="${config.endpointUrl}"/>
      </successfactors:config>
      <configuration-properties file="automation-credentials.properties"/>

      <flow name="Query">
           <http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/list"/>
           <successfactors:query entitySetName="VendorInfo" doc:name="Query"
	   config-ref="SuccessFactors_Configuration" />
           <ee:transform doc:name="Transform Message">
               <ee:message >
                   <ee:set-payload ><![CDATA[%dw 2.0
   output application/json
   ---
   payload]]></ee:set-payload>
               </ee:message>
           </ee:transform>
           <logger level="INFO" doc:name="Logger" message="#[payload]"/>
       </flow>

           <flow name="Create-Entry">
           <http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/createVendor"/>
           <ee:transform doc:name="Transform Message">
               <ee:message >
                   <ee:set-payload ><![CDATA[%dw 2.0
   output application/java
   ---
   {
       vendorCode: "XYZ123ABC",
       effectiveStartDate: "2018-07-08T00:00:00"  as DateTime,
       effectiveStatus: "I"
   }]]></ee:set-payload>
               </ee:message>
           </ee:transform>
           <successfactors:create-entity doc:name="Create entity"
	   config-ref="SuccessFactors_Configuration" entitySetName="VendorInfo"/>
           <ee:transform doc:name="Transform Message" >
               <ee:message >
                   <ee:set-payload ><![CDATA[%dw 2.0
   output application/json
   ---
   payload]]></ee:set-payload>
               </ee:message>
           </ee:transform>
           <logger level="INFO" doc:name="Logger" message="#[payload]"/>
       </flow>

           <flow name="Get-Entity-by-Id">
           <http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/getById"/>
           <ee:transform doc:name="Transform Message">
               <ee:message>
                   <ee:set-payload><![CDATA[%dw 2.0
   output application/java
   ---
   {
   	effectiveStartDate: attributes.queryParams.effectiveStartDate as DateTime,
   	vendorCode: attributes.queryParams.vendorCode
   }]]></ee:set-payload>
               </ee:message>
           </ee:transform>
   		<successfactors:get-entity-by-id entitySetName="VendorInfo" doc:name="Get entity by id"
		config-ref="SuccessFactors_Configuration" />
           <ee:transform doc:name="Transform Message">
               <ee:message >
                   <ee:set-payload ><![CDATA[%dw 2.0
   output application/json
   ---
   payload]]></ee:set-payload>
               </ee:message>
           </ee:transform>
           <logger level="INFO" doc:name="Logger" message="#[payload]"/>
       </flow>

       <flow name="Delete-Entry">
           <http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/deleteVendor"/>
           <ee:transform doc:name="Transform Message">
               <ee:message >
                   <ee:set-payload ><![CDATA[%dw 2.0
   output application/java
   ---
   {
       effectiveStartDate: attributes.queryParams.effectiveStartDate as DateTime,
       vendorCode: attributes.queryParams.vendorCode as String
   }]]></ee:set-payload>
               </ee:message>
           </ee:transform>
           <successfactors:delete-entity entitySetName="VendorInfo" doc:name="Delete entity"
	   config-ref="SuccessFactors_Configuration" />
           <ee:transform doc:name="Transform Message">
               <ee:message >
                   <ee:set-payload ><![CDATA[%dw 2.0
   output application/json
   ---
   payload]]></ee:set-payload>
               </ee:message>
           </ee:transform>
           <logger level="INFO" doc:name="Logger" message="#[payload]"/>
       </flow>
</mule>

検索条件としてクエリを使用する

  1. Anypoint Studio の ​[Filter (検索条件)]​ 項目で、​[Query (クエリ)]​ 値を使用します。これにより、独自の検索条件を作成できます。

  2. [Value (値)]​ 項目で、 「ODATA URI Conventions (ODATA URI 変換)」​サイトの項目 4.5 で説明されている形式を使用して検索条件オプションを入力します。

  3. 重要: クエリに「Entity set name (エンティティセット名)」を追加する必要はありません。リストから選択する必要があります。

例:

  • startswith(username, 'Mule') eq true

  • startswith(username, 'JA') eq true or endswith(username, 'n3') eq true

  • username eq 'Mike'

結論として、[Query (クエリ)] の値は [Filter (検索条件)] 項目にのみ使用されます。実際のクエリはコネクタによってビルドされます。