SAP Concur コネクタ

Select

SAP Concurは、出張および経費管理ソリューションが統合された SAP の SaaS プロバイダです。

Concur 用の Anypoint コネクタは、Concur と Mule のインスタンス間の双方向ゲートウェイとして機能します。さまざまな Concur API への SOAP および REST コールをサポートする、クローズドソースのコネクタです。

前提条件

このドキュメントは、読者が Mule、Anypoint コネクタ、Anypoint Studio、Mule の概念、Mule フローの要素、グローバル要素に精通していることを前提としています。

対象リソースへの接続をテストするには、ログイン情報が必要です。

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

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

Design Center での接続方法

  1. トリガをクリックします。再利用可能な設定を選択して、グローバル要素を作成できます。 グローバル要素が不要な場合は、HTTP リスナまたはスケジューラトリガを使用できます。

    トリガオプション
  2. コネクタの HTTP グローバル要素を作成するには、次の項目を設定します。

    HTTP リスナの設定
    項目 説明

    Protocol (プロトコル)

    HTTP エンドポイントのプロトコル。HTTP または HTTPS (セキュア) を選択できます。

    Host (ホスト)

    Mule アプリケーションが要求をリスンする IP アドレス。

    Port (ポート)

    Mule アプリケーションが要求をリスンするポートアドレス。

    Base (ベース)

    Mule アプリケーションが要求をリスンするパス。

  3. プラス記号を選択して、コンポーネントを追加します。

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

  5. 操作を選択します (操作のリストは次のセクションを参照)。

  6. コネクタのグローバル要素を設定します。

    コネクタの設定
    項目 説明

    Host (ホスト)

    Concur コネクタのホスト名を入力します。

    Port (ポート)

    Concur コネクタが実行されるポートを入力します。デフォルト値は 443 です。

    Base Path (ベースパス)

    Mule アプリケーションが要求をリスンするパス。

    Protocol (プロトコル)

    http エンドポイント用に選択されたプロトコル。http または https (セキュア) のいずれかです。

    Authorization (承認)

    Concur アクセストークン。

  7. Postman で GET メソッドを使用して https://www.concursolutions.com:443/net2/oauth2/accesstoken.ashx を指定し、Concur インスタンスのアクセストークンを作成します。

  8. ユーザ名とパスワードを使用して [Basic Auth (基本認証)] を設定します。

    Postman の基本認証セットアップ
  9. Concur ヘッダーでコンシューマキーを使用して X-ConsumerKey を設定します。

    Postman の Concur ヘッダー設定

    Concur から次の内容が返されます。

     <Access_Token>
        <Instance_Url>https://www.concursolutions.com/</Instance_Url>
        <Token>0_PijEv7CuZl+123123123=</Token>
        <Expiration_date>2/28/2019 11:34:51 PM</Expiration_date>
        <Refresh_Token>0_HlvMXvXod6LsK123123123123123=</Refresh_Token>
    </Access_Token>
  10. 次のように、SAP Concur コネクタ設定にトークンを挿入します。

    Oauth 0_PijEv7CuZl+123123123=

Concur API の可用性について

サポート対象 API の SAP Concur コネクタリファレンスを参照してください。

Anypoint Studio 7 での接続

このコネクタは、連動関係として Mule アプリケーションに追加すれば Anypoint Studio で使用できます。

Studio でのコネクタのインストール

  1. Anypoint Studio で Mule プロジェクトを開きます。

  2. コネクタを連動関係として pom.xml ファイルに追加します。

    <dependency>
      <groupId>org.mule.modules</groupId>
      <artifactId>mule-module-concur</artifactId>
      <version>4.0.3</version>
      <classifier>mule-plugin</classifier>
    </dependency>

ユースケースの例

このガイドでは、組織内の Concur コネクタで発生する可能性がある多数のユースケースのうち 2 つ、リストの一覧の取得とクイック経費の取得について説明します。Concur コネクタをダウンロードし、Concur インスタンスのログイン情報を参照するグローバル要素を作成したら、フローのコードを Studio の XML エディタに貼り付けることができます。

リストの一覧を取得する

新しいプロジェクトと Concur グローバル要素の作成後、次の作業を実行します。

  1. 新しいフロー要素をパレットからドラッグして追加し、フローに getlists などの名前を付けます。

  2. パレットから [HTTP Listener (HTTP リスナ)] をフローにドラッグします。

  3. [HTTP Listener (HTTP リスナ)] をダブルクリックして [Connector Configuration (コネクタ設定)] ドロップダウンの横にある緑のプラス記号をクリックし、[Host (ホスト)] を「localhost」、[Port (ポート)] を「8081」に設定します。

  4. [OK] をクリックしてプロパティウィンドウを閉じ、この HTTP リスナの [Basic Settings (基本設定)] セクションの [Path (パス)] 項目に値として「getlists」と入力します。

  5. 目的の [Connector configuration (コネクタ設定)] を選択した後に、新しいフローに Concur コネクタを追加し、[Get list of lists] 操作を選択します。

  6. 最後に、[Transform Message (変換メッセージ)] トランスフォーマをフローに追加します。

  7. 参考として、下の方にあるサンプル XML コード内の特定の getlists フローを確認してください。

フローを実行して結果を確認する手順は、次のとおりです。

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

  2. Studio コンソールを監視して、アプリケーションが起動したことを確認します。

  3. ブラウザを開き、http://localhost:8081/getlist に移動します。

  4. 次のような JSON 応答を受け取ります。

    {"list":[{"batchLink":"https://www.concursolutions.com/api/expense/list/v1.0/gWqXO46r6GsRt9CeqUjOAfZXRTmGyyVczqg/batch","id":"https://www.concursolutions.com/api/expense/list/v1.0/gWqXO46r6GsRt9CeqUjOAfZXRTmGyyVczqg","isVendor":false,"itemsLink":"https://www.concursolutions.com/api/expense/list/v1.0/gWqXO46r6GsRt9CeqUjOAfZXRTmGyyVczqg/items","levels":1,"name":"AT Tax Form List 1"},
    {"batchLink":"https://www.concursolutions.com/api/expense/list/v1.0/gWqXO46r6GsRsUIXmIbg3iUc6qE9AlKEVxA/batch","id":"https://www.concursolutions.com/api/expense/list/v1.0/gWqXO46r6GsRsUIXmIbg3iUc6qE9AlKEVxA","isVendor":false,"itemsLink":"https://www.concursolutions.com/api/expense/list/v1.0/gWqXO46r6GsRsUIXmIbg3iUc6qE9AlKEVxA/items","levels":1,"name":"BE Tax Form List 1"},
    {"batchLink":"https://www.concursolutions.com/api/expense/list/v1.0/gWqXO46r6GscWDPncbQqGUoCjCv4pxrnp2A/batch","id":"https://www.concursolutions.com/api/expense/list/v1.0/gWqXO46r6GscWDPncbQqGUoCjCv4pxrnp2A","isVendor":false,"itemsLink":"https://www.concursolutions.com/api/expense/list/v1.0/gWqXO46r6GscWDPncbQqGUoCjCv4pxrnp2A/items","levels":1,"name":"CH Tax Form List 1"}
  5. 停止ボタンをクリックして、アプリケーションを実行しているサーバを停止します。

クイック経費を作成する

  1. 新しいフロー要素をパレットからドラッグして追加し、「getquickexpenses」という名前を付けます。

  2. [HTTP Listener (HTTP リスナ)] をパレットからドラッグしてフローに追加します。

  3. 最初のデモの設定を使用するか、そのフローを作成しなかった場合は、HTTP エンドポイントの [Connector Configuration (コネクタ設定)] の横にある緑のプラス記号をクリックし、[Host (ホスト)] に「localhost」、[Port (ポート)] に「8081」を入力します。

  4. [OK] をクリックしてプロパティウィンドウを閉じ、この HTTP リスナの [Basic Settings (基本設定)] セクションの [Path (パス)] 項目に値として「getquickexpenses」と入力します。

  5. [Connector Configuration (コネクタ設定)] からグローバル要素を参照して Concur コネクタを新しいフローに追加し、実行する操作と他の必要なプロパティを設定します。

  6. 最後に、前の例に [Transform Message (変換メッセージ)] トランスフォーマリンクを追加します。

フローを実行して結果を確認する手順は、次のとおりです。

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

  2. アプリケーションの起動時にコンソールを確認します。

  3. ブラウザを開き、http://localhost:8081/getquickexpenses に移動します。

  4. 次のような JSON 応答を受け取ります。

    {"items":{"quickExpense":[{"comment":"","currencyCode":"USD","expenseTypeCode":"UNDEF","expenseTypeName":"Undefined","id":"gWr7TiTHdIi5fyWCPBRPtqjeCIWyv2w","locationName":"","ownerLoginID":"","ownerName":"Unknown","paymentTypeCode":"PENDC","receiptImageID":"","transactionAmount":111.0,"transactionDate":"2018-07-21T00:00:00","uri":"https://www.concursolutions.com/api/v3.0/expense/quickexpenses/gWr7TiTHdIi5fyWCPBRPtqjeCIWyv2w","vendorDescription":""},
    {"comment":"","currencyCode":"USD","expenseTypeCode":"UNDEF","expenseTypeName":"Undefined","id":"gWr7TiTXbQ47PtJ$pVkr6CzbLeRVRPww","locationName":"","ownerLoginID":"","ownerName":"Unknown","paymentTypeCode":"PENDC","receiptImageID":"","transactionAmount":111.0,"transactionDate":"2018-07-21T00:00:00","uri":"https://www.concursolutions.com/api/v3.0/expense/quickexpenses/gWr7TiTXbQ47PtJ$pVkr6CzbLeRVRPww","vendorDescription":""},
  5. 停止ボタンをクリックして、アプリケーションを実行しているサーバを停止します。

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub