---
schema_version: "1"
id: 54898235013025610b6f50d5c1f1550d76d48ef07582a297e4d0e3ddb6803880
title: SuccessFactors Connector - Mule 3
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/successfactors-connector/latest/index.md
canonical_url: https://docs.mulesoft.com/jp/successfactors-connector/latest/
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 1316295d68255d0a958cd8ded68e28d47c9f7e6cfcfe80b4c61c38793b9756bf
description: MuleSoft Documentation Site
release: 0.3.9
latest: true
---
# SuccessFactors Connector - Mule 3

SAP SuccessFactors 用 Anypoint Connector (SuccessFactors Connector) では、SuccessFactors によって公開されている SFAPI API を使用してエンティティをクエリ、作成、更新、削除できます。本製品の詳細は、 [SuccessFactors HCM スイートサイト](https://help.sap.com/cloud4hr)を参照してください。

リリースノート: [SuccessFactors Connector リリースノート](#release-notes::connector/successfactors-connector-release-notes.adoc)  
Exchange: [SuccessFactors Connector](https://www.mulesoft.com/exchange/org.mule.modules/mule-module-success-factors/)​

## [](#始める前に)始める前に

この情報を使用するには、SAP SuccessFactors に精通して、 [SAP アカウント](http://www.successfactors.com/en_us.html)を持っている必要があります。 このコネクタを使用するには、SuccessFactors Connector がインストールされている [Anypoint Studio](https://www.mulesoft.com/platform/studio) が稼動している必要があります。

## [](#コネクタをインストールする)コネクタをインストールする

1. Anypoint Studio で、Studio タスクバーの Exchange アイコンをクリックします。
2. Anypoint Platform のログイン情報で Exchange にサインインします。
3. Anypoint Exchange で **\[Provided by MuleSoft (MuleSoft による提供)\]** をクリックします。
4. Mule 3 Connector を検索して **\[Install (インストール)\]** をクリックします。

### [](#新規プロジェクトを作成する)新規プロジェクトを作成する

SuccessFactors Connector を Mule アプリケーションで使用するには、まず Anypoint Studio で新しい Mule プロジェクトを作成します。

1. Anypoint Studio で、\[File (ファイル)\] > \[New (新規)\] > \[Mule Project (Mule プロジェクト)\] をクリックします。
2. 新しいプロジェクトの名前を入力し、残りのオプションをデフォルト値のままにします。
3. Git を使用する場合、\[Create a default .gitignore file (デフォルトの gitignore ファイルを作成)\] を選択し (Studio プロジェクトの場合は無視設定)、\[Next (次へ)\] をクリックします。
4. \[Finish (完了)\] をクリックして、プロジェクトを作成します。

## [](#名前空間とスキーマの場所)名前空間とスキーマの場所

コネクタを Studio キャンバスにドラッグすると、Mule アプリケーションの設定 XML に名前空間とスキーマの場所が自動的に入力されます。

​名前空間:

xmlns:successfactors="http://www.mulesoft.org/schema/mule/successfactors"

​スキーマの場所:

http://www.mulesoft.org/schema/mule/successfactors/current/mule-successfactors.xsd

Studio の XML エディターまたは他のテキストエディターで Mule アプリケーションを手動でコーディングする場合、設定 XML のヘッダーの `<mule>` タグ内で名前空間およびスキーマの場所を定義します。

## [](#studio-visual-editor-で-successfactors-グローバル要素を設定する方法)Studio Visual Editor で SuccessFactors グローバル要素を設定する方法

1. Mule アプリケーションで SuccessFactors Connector を使用するには、アプリケーション内のすべての SuccessFactors Connector が使用できるグローバル設定要素を設定します。
2. キャンバスの下部にある \[Global Elements (グローバル要素)\] タブをクリックします。
3. \[Global Mule Configuration Elements (グローバル Mule 設定要素)\] 画面で、\[Create (作成)\] をクリックします。
4. \[Choose Global Type (グローバル種別の選択)\] ウィザードで、\[Connector Configuration (コネクタ設定)\] を展開し、\[SuccessFactors\] を選択します。
5. \[OK\] をクリックします。
6. 以下の指示に従ってパラメーターを設定します。
    
    ![Global Element Configuration (グローバル要素設定)](/mulesoft/current/ja-jp/successfactors-connector/latest/_images/success-factors-global-element.png)
    
    <table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">項目</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Name (名前)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">後ほど参照できるように設定の名前を入力します。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Username (ユーザー名)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">SuccessFactors にログインして API にアクセスするためのユーザー名。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Password (パスワード)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">そのユーザー名のパスワード。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Company ID (会社 ID)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">情報を管理する SuccessFactors の組織の ID。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Connection Timeout (接続タイムアウト)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">クライアントがタイムアウトするまで接続の確立を試みる時間 (ミリ秒) を指定します。0 を指定すると、接続の確立を無期限に試行します。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Receive Timeout (受信タイムアウト)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">クライアントがタイムアウトするまで応答を待機する時間 (ミリ秒) を指定します。0 を指定すると無限に待ちます。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">WSDL Location (WSDL の場所)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">SFAPI SOAP 1.1 WSDL の場所。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Fetch all entities (すべてのエンティティを取得)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">すべての操作で利用できるエンティティの完全なリストを表示するには、このチェックボックスをオンにします。このリストの作成には非常に長い時間を要するため、このチェックボックスはオフにしておくことを強くお勧めします。このチェックボックスをオフにした場合は、[Entity List (エンティティリスト)] 項目を設定してください。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Entity List (エンティティリスト)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">[Fetch all entities (すべてのエンティティを取得)] チェックボックスをオフにした場合は必須です。作業するすべてのエンティティ名のリストを入力してください。</p></td>
</tr>
</tbody>
</table>
7. \[Test Connection (接続をテスト)\] をクリックし、「Connection Successful (接続に成功しました)」のメッセージが返されることを確認してください。
8. \[OK\] をクリックして、グローバルコネクタ設定を保存します。

## [](#xml-エディターで-successfactors-グローバル要素を設定する方法)XML エディターで SuccessFactors グローバル要素を設定する方法

1. Mule アプリケーションで SuccessFactors Connector を使用するには、アプリケーション内のすべての SuccessFactors Connector が使用できるグローバル設定要素を設定します。
2. 設定ファイルに SuccessFactors 名前空間を含めます。
    
    ```xml
    <?xml version="1.0" encoding="UTF-8"?>
    
    <mule xmlns:successfactors="http://www.mulesoft.org/schema/mule/successfactors"
    xmlns="http://www.mulesoft.org/schema/mule/core"
    xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
      xmlns:spring="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-current.xsd
    http://www.mulesoft.org/schema/mule/core
    http://www.mulesoft.org/schema/mule/core/current/mule.xsd
    http://www.mulesoft.org/schema/mule/successfactors http://www.mulesoft.org/schema/mule/successfactors/current/mule-successfactors.xsd">
    </mule>
    ```
3. 次のグローバル設定コードを使用して、フローの外側と上にグローバル SuccessFactors 設定を作成します。
    
    ```xml
    <successfactors:config name="Success_Factors__Configuration" username="${username}" password="${password}" companyId="${companyId}" wsdlLocation="${wsdlLocation}" doc:name="Success Factors: Configuration" fetchAllEntities="false">
            <successfactors:entity-list>
                <successfactors:entity-list>Goal$1</successfactors:entity-list>
                <successfactors:entity-list>picklistlabel</successfactors:entity-list>
                <successfactors:entity-list>picklistoption</successfactors:entity-list>
                <successfactors:entity-list>TrendData_sysOverallCompetency</successfactors:entity-list>
                <successfactors:entity-list>user</successfactors:entity-list>
            </successfactors:entity-list>
        </successfactors:config>
    ```
    
    <table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">項目</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Name (名前)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">後ほど参照できるように設定の名前を入力します。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Username (ユーザー名)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">SuccessFactors にログインして API にアクセスするためのユーザー名。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Password (パスワード)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">そのユーザー名のパスワード。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Company ID (会社 ID)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">情報を管理する SuccessFactors の組織の ID。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Connection Timeout (接続タイムアウト)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">クライアントがタイムアウトするまで接続の確立を試みる時間 (ミリ秒) を指定します。0 を指定すると、接続の確立を無期限に試行します。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Receive Timeout (受信タイムアウト)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">クライアントがタイムアウトするまで応答を待機する時間 (ミリ秒) を指定します。0 を指定すると無限に待ちます。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">WSDL Location (WSDL の場所)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">SFAPI SOAP 1.1 WSDL の場所。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Fetch all entities (すべてのエンティティを取得)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">すべての操作で利用できるエンティティの完全なリストを表示するには、true に設定します。このリストの作成には非常に長い時間を要するため、このチェックボックスはオフにしておくことを強くお勧めします。false に設定した場合は、[Entity List (エンティティリスト)] 項目を設定してください。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Entity List (エンティティリスト)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">[Fetch all entities (すべてのエンティティを取得)] パラメーターを false に設定した場合は必須です。作業するすべてのエンティティ名のリストを入力してください。</p></td>
</tr>
</tbody>
</table>

## [](#コネクタの使用)コネクタの使用

操作の詳細を見るには、 [SuccessFactors Connector テクニカルリファレンス](https://mulesoft.github.io/mule3-sap-successfactors-connector/)を参照し、ご利用のコネクタバージョンの APIdoc をクリックしてください。

### [](#maven-対応の-mule-アプリケーションでのコネクタの使用)Maven 対応の Mule アプリケーションでのコネクタの使用

Maven 対応の Mule アプリケーションをコーディングしている場合は、次のスニペットを `pom.xml` ファイルに含める必要があります。

```xml
<dependency>
  <groupId></groupId>
  <artifactId></artifactId>
  <version>x.y.z</version>
</dependency>
```

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

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

## [](#successfactor-connector-のユースケースとデモ)SuccessFactor Connector のユースケースとデモ

SuccessFactors Connector は操作ベースのコネクタであり、**SFAPI** API によって公開されている Web サービス操作を呼び出すことができます。

このマニュアルセクションでは、このコネクタのシンプルなユースケースシナリオを簡単に説明します。

- [List Entities のユースケース](#list-entities-のユースケース)
- [Describe Entity のユースケース](#describe-entity-のユースケース)
- [Query のユースケース](#query-のユースケース)
- [Upsert のユースケース](#upsert-のユースケース)
- [Update のユースケース](#update-のユースケース)
- [Insert のユースケース](#insert-のユースケース)
- [Delete のユースケース](#delete-のユースケース)

すべてのユースケース例は、1 つの Mule アプリケーションに保存されています。[ユースケースのフロー XML](#ユースケースのフロー-xml)を参照してください。

### [](#list-entities-のユースケース)List Entities のユースケース

このフローは、組織内のエンティティのリストを取得します。

![list\_flow](/mulesoft/current/ja-jp/successfactors-connector/latest/_images/list-flow.png)

コネクタ自身は、選択する操作以外は追加の設定を必要としません。

![list\_flow\_connector\_config](/mulesoft/current/ja-jp/successfactors-connector/latest/_images/list-flow-connector-config.png)

テストするため、Studio でフローを実行し、ブラウザーウィンドウを開きます。`[http://localhost:8081/](http://localhost:8081/)` にアクセスして、\[List Entities\] セクションにある \[List (リスト)\] ボタンをクリックします。

### [](#describe-entity-のユースケース)Describe Entity のユースケース

このフローは、組織内のエンティティから利用できるメタデータをすべて取得します。  

![describe\_flow](/mulesoft/current/ja-jp/successfactors-connector/latest/_images/describe-flow.png)

**Describe Entities** 操作では、メタデータを取得するエンティティに対応する文字列のリストのみを指定する必要があります。次の例では、先行するエンドポイントから送信されたペイロードを取るように次の入力を設定します。

![describe\_flow\_connector\_config](/mulesoft/current/ja-jp/successfactors-connector/latest/_images/describe-flow-connector-config.png)

コネクタ用の入力を設計するには、**Transform Message** コンポーネントを介して利用できる **Dataweave** を使用します。出力は、HTTP Connector からのクエリパラメーター「entity」を唯一の要素として含むリストです。

Transform Message コンポーネント内で、DataWeave エディターに次の DataWeave コードを追加します。

```text
%dw 1.0
%output application/java
---
[inboundProperties."http.query.params".'entity']
```

Studio でフローを実行してテストし、ブラウザーウィンドウを開きます。`[http://localhost:8081/](http://localhost:8081/)` にアクセスします。**\[List Entities\]** セクションにある **\[List (リスト)\]** をクリックして、いずれかのエンティティ名をクリックします。そして、**\[Describe Entities\]** セクションにある **\[Describe (説明)\]** ボタンをクリックし、選択したエンティティで利用できるすべてのメタデータを表示します。

### [](#query-のユースケース)Query のユースケース

このフローは、SuccessFactors に対してクエリを実行して応答を表示します。  

![query\_flow](/mulesoft/current/ja-jp/successfactors-connector/latest/_images/query-flow.png)

**Query** 操作では、クエリとページサイズを指定する必要があります。

ネイティブ (SFQL) クエリ言語を入力するか、または DataSense クエリビルダーを使用してクエリを作成できます。

![query\_flow\_query\_builder](/mulesoft/current/ja-jp/successfactors-connector/latest/_images/query-flow-query-builder.png)

ページサイズはデフォルトのままで構いません。

![query\_flow\_connector\_config](/mulesoft/current/ja-jp/successfactors-connector/latest/_images/query-flow-connector-config.png)

テストするため、Mule Studio でフローを実行し、ブラウザーウィンドウを開きます。 `http://localhost:8081/query`​ にアクセスします。 ブラウザーにクエリの結果が表示されます。

### [](#upsert-のユースケース)Upsert のユースケース

このフローは次の処理を実行します。

- 新規ユーザーを挿入する (すでに存在する場合は更新する)。
- 更新/挿入の結果を返す。

![upsert\_flow](/mulesoft/current/ja-jp/successfactors-connector/latest/_images/upsert-flow.png)

SuccessFactors エンドポイントを ​**Upsert** 操作で設定する必要があります。まず、更新/挿入するエンティティの種別を選択します。この例では User です。**\[Type (種別)\]** ドロップダウンの内容が表示されていない場合は、右側の更新ボタンをクリックします。 DataWeave によってペイロードから入力構造が取得されます。

![upsert\_flow\_connector\_config](/mulesoft/current/ja-jp/successfactors-connector/latest/_images/upsert-flow-connector-config.png)

DataWeave は、HTTP エンドポイントのペイロードから取った JSON オブジェクトを、Upsert 操作で必要な入力であるマップに変換します。

テストするため、Mule Studio でフローを実行し、ブラウザーウィンドウを開きます。`http://localhost:8081/` にアクセスし、**\[Upsert User\]** セクションにある **\[Submit (送信)\]** ボタンをクリックして、Upsert 操作の結果をブラウザーで表示します。

### [](#update-のユースケース)Update のユースケース

このフローは次の処理を実行します。

- User エンティティを新しいユーザー名で更新する。
- 最後の更新からの出力を返す。

![update\_flow](/mulesoft/current/ja-jp/successfactors-connector/latest/_images/update-flow.png)

SuccessFactors エンドポイントを **Update** 操作で設定する必要があります。まず、更新するエンティティの種別を選択します。ここでは User です。**\[Type (種別)\]** ドロップダウンの内容が表示されていない場合は、右側の更新ボタンをクリックします。 DataWeave によってペイロードから入力構造が取得されます。

DataWeave は、HTTP エンドポイントのペイロードから取った JSON オブジェクトを、Update 操作で必要な入力であるマップに変換します。

テストするため、Mule Studio でフローを実行し、ブラウザーウィンドウを開きます。`http://localhost:8081/` にアクセスし、**\[Update User (ユーザーを更新)\]** セクションにある **\[Submit (送信)\]** ボタンをクリックして、Update 操作の結果をブラウザーで表示します。**Upsert** のデモを実行してある場合は、Update ジョブの入力はすでに設定されています。

#### [](#insert-のユースケース)Insert のユースケース

このフローは、新しい Goal$1 エンティティを挿入して、挿入からの出力を返します。

![insert\_flow](/mulesoft/current/ja-jp/successfactors-connector/latest/_images/insert-flow.png)

SuccessFactors エンドポイントを **Insert** 操作で設定する必要があります。挿入するエンティティの種別を選択します。ここでは Goal$1 です。**\[Type (種別)\]** ドロップダウンの内容が表示されていない場合は、右側の更新ボタンをクリックします。 DataWeave によってペイロードから入力構造が取得されます。

![insert\_flow\_connector\_config](/mulesoft/current/ja-jp/successfactors-connector/latest/_images/sfc-insert-flow-connector-config.png)

DataWeave は、HTTP エンドポイントのペイロードから取った JSON オブジェクトを、Insert 操作で必要な入力であるマップに変換します。

テストするため、Mule Studio でフローを実行し、ブラウザーウィンドウを開きます。`http://localhost:8081/` にアクセスし、\[Insert Goals\] セクションにある \[Submit (送信)\] ボタンをクリックして、Insert 操作の結果をブラウザーで表示します。

#### [](#delete-のユースケース)Delete のユースケース

このフローは、既存の Goal エンティティを削除して、削除からの出力を返します。

![delete\_flow](/mulesoft/current/ja-jp/successfactors-connector/latest/_images/delete-flow.png)

SuccessFactors エンドポイントを Delete 操作で設定する必要があります。削除するエンティティの種別を選択します。\[Type (種別)\] ドロップダウンの内容が表示されていない場合は、右側の更新ボタンをクリックします。 DataWeave によってペイロードから入力構造が取得されます。

![delete\_flow\_connector\_config](/mulesoft/current/ja-jp/successfactors-connector/latest/_images/delete-flow-connector-config.png)

DataWeave は、HTTP エンドポイントのペイロードから取った JSON オブジェクトを、Delete 操作で必要な入力であるマップに変換します。

![dataweave\_payload](/mulesoft/current/ja-jp/successfactors-connector/latest/_images/dataweave-payload.png)

テストするため、Mule Studio でフローを実行し、ブラウザーウィンドウを開きます。`http://localhost:8081/` にアクセスし、\[Delete Goals\] セクションにある \[Submit (送信)\] ボタンをクリックして、Delete 操作の結果をブラウザーで表示します。Insert のデモを実行してある場合は、Delete ジョブの入力はすでに設定されています。

### [](#ユースケースのフロー-xml)ユースケースのフロー XML

ユースケースの例を実行するには、次のコードを XML エディターに貼り付けます。

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

<mule xmlns:scripting="http://www.mulesoft.org/schema/mule/scripting"
xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking"
xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw"
xmlns:json="http://www.mulesoft.org/schema/mule/json" xmlns:successfactors="http://www.mulesoft.org/schema/mule/successfactors" xmlns:mulexml="http://www.mulesoft.org/schema/mule/xml"
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:spring="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans-current.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/xml
http://www.mulesoft.org/schema/mule/xml/current/mule-xml.xsd
http://www.mulesoft.org/schema/mule/ee/dw
http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd
http://www.mulesoft.org/schema/mule/successfactors
http://www.mulesoft.org/schema/mule/successfactors/current/mule-successfactors.xsd
http://www.mulesoft.org/schema/mule/json
http://www.mulesoft.org/schema/mule/json/current/mule-json.xsd
http://www.mulesoft.org/schema/mule/ee/tracking
http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd
http://www.mulesoft.org/schema/mule/scripting
http://www.mulesoft.org/schema/mule/scripting/current/mule-scripting.xsd">
    <http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081"
    doc:name="HTTP Listener Configuration"/>
    <successfactors:config name="Success_Factors__Configuration" username="${username}"
    password="${password}" companyId="${companyId}" wsdlLocation="${wsdlLocation}"
    doc:name="Success Factors: Configuration">
        <successfactors:entity-list>
            <successfactors:entity-list>Goal$1</successfactors:entity-list>
            <successfactors:entity-list>picklistlabel</successfactors:entity-list>
            <successfactors:entity-list>picklistoption</successfactors:entity-list>
            <successfactors:entity-list>TrendData_sysOverallCompetency</successfactors:entity-list>
            <successfactors:entity-list>user</successfactors:entity-list>
        </successfactors:entity-list>
    </successfactors:config>

<scripting:transformer name="EntityForCrudObject" doc:name="Groovy">
  <scripting:script engine="Groovy" file="src/main/resources/EntityForCrudObject.groovy"></scripting:script>
</scripting:transformer>

<scripting:transformer name="AddIdToEntity" doc:name="Groovy">
  <scripting:script engine="Groovy" file="src/main/resources/AddIdToEntity.groovy"></scripting:script>
</scripting:transformer>

    <flow name="htmlFormFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="/"/>
        <parse-template location="form.html" doc:name="Parse Template"/>
        <set-property propertyName="Content-Type" value="text/html" doc:name="Property"/>
    </flow>
    <flow name="listEntitiesFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="list" doc:name="/list"/>
        <successfactors:list-entities config-ref="Success_Factors__Configuration" doc:name="Success Factors"/>
        <json:object-to-json-transformer doc:name="Object to JSON"/>
    </flow>
    <flow name="describeEntitiesFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="describe" doc:name="/describe"/>
        <dw:transform-message doc:name="Transform Message">
            <dw:input-variable variableName="entity"/>
            <dw:input-inbound-property doc:sample="map_string_string.dwl" propertyName="http.query.params"/>
            <dw:input-inbound-property propertyName="http.uri.params"/>
            <dw:set-payload><![CDATA[%dw 1.0%output application/java
---
[inboundProperties."http.query.params".'entity']]]></dw:set-payload>
        </dw:transform-message>
        <successfactors:describe-entities config-ref="Success_Factors__Configuration" doc:name="Success Factors"/>
        <json:object-to-json-transformer doc:name="Object to JSON"/>
    </flow>
    <flow name="queryFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="query" doc:name="/query"/>
        <successfactors:query config-ref="Success_Factors__Configuration"  doc:name="Success Factors"
  queryString="dsql:SELECT email,externalId,firstName,lastName,username FROM user"/>
        <json:object-to-json-transformer doc:name="Object to JSON"/>
    </flow>
    <flow name="submitQueryFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="submitQueryJob" doc:name="/submitQueryJob"/>
        <dw:transform-message doc:name="Transform Message">
            <dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
inboundProperties."http.query.params".'query']]></dw:set-payload>
        </dw:transform-message>
        <successfactors:submit-query-job config-ref="Success_Factors__Configuration" doc:name="Success Factors"/>
        <json:object-to-json-transformer doc:name="Object to JSON"/>
    </flow>
    <flow name="getJobResultFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="getJobResult" doc:name="/getJobResult"/>
        <dw:transform-message doc:name="Transform Message">
            <dw:input-inbound-property propertyName="http.query.params" doc:sample="map_string_string_1.dwl"/>
            <dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
{
  format: "csv",
  taskId: inboundProperties."http.query.params".'taskId'
} as :object {
  class : "com.successfactors.sfapi.sfobject.GetJobResult"
}]]></dw:set-payload>
        </dw:transform-message>
        <successfactors:get-job-result config-ref="Success_Factors__Configuration" doc:name="Success Factors"/>
    </flow>
    <flow name="upsertFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="upsert" doc:name="/upsert" allowedMethods="POST,"/>
        <dw:transform-message doc:name="Transform Message">
            <dw:input-payload doc:sample="json.json"/>
            <dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
// Some output fields were skipped as the structure is too deep (more than 2 levels).
// To add missing fields click on the scaffold icon (second on the toolbar).
payload]]></dw:set-payload>
        </dw:transform-message>
        <logger message="Executing upsert: #[payload]" level="INFO" doc:name="Logger"/>
        <successfactors:upsert config-ref="Success_Factors__Configuration" type="user" doc:name="Update/Insert a User"
  doc:description="try to create a new user, if the user exists only updates it">
            <successfactors:input ref="#[payload]"/>
        </successfactors:upsert>
        <json:object-to-json-transformer doc:name="Object to JSON"/>
        <logger message="Upsert result: #[payload]" level="INFO" doc:name="Logger"/>
    </flow>
    <flow name="updateFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/update" doc:name="/update"/>
        <dw:transform-message doc:name="Transform Message">
            <dw:input-payload doc:sample="json_1.json"/>
            <dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
payload]]></dw:set-payload>
        </dw:transform-message>
        <logger message="Executing update: #[payload]" level="INFO" doc:name="Logger"/>
        <successfactors:update config-ref="Success_Factors__Configuration" type="user" doc:name="Update a User">
            <successfactors:input ref="#[payload]"/>
        </successfactors:update>
        <json:object-to-json-transformer doc:name="Object to JSON"/>
        <logger message="Update result: #[payload]" level="INFO" doc:name="Logger"/>
    </flow>
    <flow name="insertFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/insert" doc:name="/insert"/>
        <dw:transform-message doc:name="Transform Message">
            <dw:input-payload doc:sample="json_2.json"/>
            <dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
payload]]></dw:set-payload>
        </dw:transform-message>
        <logger message="Executing insert: #[payload]" level="INFO" doc:name="Logger"/>
        <successfactors:insert config-ref="Success_Factors__Configuration" type="Goal$1" doc:name="Insert a Goal$1"/>
        <json:object-to-json-transformer doc:name="Object to JSON"/>
        <logger message="Insert result: #[payload]" level="INFO" doc:name="Logger"/>
    </flow>
    <flow name="deleteFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/delete" doc:name="/delete"/>
        <dw:transform-message doc:name="Transform Message">
            <dw:input-payload doc:sample="json_3.json"/>
            <dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
payload]]></dw:set-payload>
        </dw:transform-message>
        <logger message="Executing delete: #[payload]" level="INFO" doc:name="Logger"/>
        <successfactors:delete config-ref="Success_Factors__Configuration" type="Goal$1" doc:name="Delete a Goal$1"/>
        <json:object-to-json-transformer doc:name="Object to JSON"/>
        <logger message="Delete result: #[payload]" level="INFO" doc:name="Logger"/>
    </flow>
    <flow name="queryNativeFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="queryNative" doc:name="/queryNative"/>
        <dw:transform-message doc:name="Transform Message">
            <dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
inboundProperties."http.query.params".'query']]></dw:set-payload>
        </dw:transform-message>
        <successfactors:query config-ref="Success_Factors__Configuration" queryString="#[payload]" doc:name="Success Factors"/>
        <json:object-to-json-transformer doc:name="Object to JSON"/>

  </flow>
</mule>
```

## [](#関連情報)関連情報

[MuleSoft ヘルプセンター](https://help.mulesoft.com)