この例では、Microsoft Excel Online Connector を使用して次のアクションを実行する方法を示しています。
始める前に
この例を実行するには、以下が必要です。
-
Anypoint Studio 7.3.5 以降
-
Microsoft Excel Online Connector 1.0 以降
-
Microsoft Excel Online の作業インスタンス
OAuth 認証を設定する
このコネクタでは、OAuth を使用して接続を保護するため、OAuth 項目値 (クライアントログイン情報、キー、OAuth 関連の URL など) を指定する必要があります。次の手順を実行します。
-
OAuth 接続の設定ファイルを作成します。
-
OAuth 関連のグローバル要素を設定します。
-
プロパティファイルのグローバル要素を設定します。
OAuth 接続の設定ファイルを作成する
[Authorization Code (クライアントログイン情報)] 許可種別のプロパティが含まれる OAuth 接続の設定ファイルを作成します。
-
/src/main/resources/ フォルダー内に mule-app.properties という名前のファイルを作成します。 -
mule-app.properties ファイルで、次のような [Authorization Code (認証コード)] 許可種別の一連のプロパティを作成します。括弧で囲まれたテキスト (括弧を含む) は、各自の OAuth 設定の適切な値に置き換えます。config.oauth.authorization.code.consumerKey=<consumerKey> config.oauth.authorization.code.consumerSecret=<consumerSecret> config.oauth.authorization.code.authorizationUrl=<authorizationUrl> config.oauth.authorization.code.accessTokenUrl=<accessTokenUrl>
プロパティファイルの作成についての詳細は、「プロパティプレースホルダーの設定」を参照してください。
OAuth グローバル要素を設定する
OAuth_Authorization_Code_Config ファイルのグローバル要素を設定します。
-
新しい Mule プロジェクトを作成します。
-
[Mule Palette (Mule パレット)] ビューで、[Search in Exchange (Exchange 内を検索)] をクリックして「
microsoft excel」と入力します。 -
[Selected modules (選択したモジュール)] セクションに [Microsoft Excel Online Connector] を追加し、[Finish (完了)] をクリックします。
-
[Global Elements (グローバル要素)] タブをクリックし、[Create (作成)] をクリックします。
-
[Connector Configuration (コネクタ設定)] > [Microsoft Excel Online Authorization Code Config (Microsoft Excel Online 認証コード設定)] を選択し、[OK] をクリックします。
-
次の値を入力します。
項目 値 Name (名前)
OAuth_Authorization_Code_ConfigConsumer key (コンシューマーキー)
${config.oauth.authorization.code.consumerKey}Consumer secret (コンシューマーシークレット)
${config.oauth.authorization.code.consumerSecret}Authorization url (認証 URL)
${config.oauth.authorization.code.authorizationUrl}Access token url (アクセストークン URL)
${config.oauth.authorization.code.accessTokenUrl}スコープ
デフォルト (
https://graph.microsoft.com/.default) のままにします。Listener config (リスナー設定)
authCallback path (コールバックパス)
/callbackAuthorize path (認証パス)
authorizePathExternal callback url (外部コールバック URL)
http://localhost:8083/callback -
[OK] をクリックします。
プロパティファイルのグローバル要素を設定する
mule-app.properties ファイルのグローバル要素を設定し、このファイルの検索場所が Mule で認識されるようにします。
-
[Global Elements (グローバル要素)] タブをクリックし、[Create (作成)] をクリックします。
-
[Choose Global Type (グローバル種別の選択)] ダイアログで、[Configuration properties (設定プロパティ)] を選択し、[OK] をクリックします。
-
[File (ファイル)] 項目に「
mule.app.properties」と入力します。 -
[OK] をクリックします。
ワークシートを追加する
次のスクリーンショットは、新しいワークシートを追加する Studio アプリケーションフローを示しています。
新しいワークシートを追加するには、HTTP Listener コンポーネント、Transform Message コンポーネント、Add worksheet 操作、Logger コンポーネントを設定する必要があります。
フローを作成する手順は、次のとおりです。
-
Studio で新しい Mule プロジェクトを作成します。
-
[Mule Palette (Mule パレット)] で「HTTP」を検索し、Listener 操作を選択します。
-
[Listener] 操作をキャンバスにドラッグします。
-
Listener 設定で、[Connector configuration (コネクタ設定)] 項目の横にある [+] をクリックしてグローバル要素を追加します。
-
デフォルトを受け入れます。
-
[HTTP] プロパティウィンドウで、[Path (パス)] 項目を
/create に設定します。
[Transform Message] コンポーネントを追加する
最初の Transform Message コンポーネントでは、チームの作成に使用する入力のテンプレートを作成します。
-
[Mule Palette (Mule パレット)] ビューで、「transform message」を検索します。
-
Transform Message コンポーネントをキャンバスの Listener コンポーネントの右にドラッグします。
-
Transform Message 設定で、[Output (出力)] セクションの括弧を次の XML で上書きします。
<ee:set-payload ><![CDATA[%dw 2.0 output application/json --- { workbookId: attributes.queryParams.workbookID, worsheetname: attributes.queryParams.worksheetName }]]></ee:set-payload>
Add Worksheet 操作を追加する
Add Worksheet 操作では、ユーザー入力に基づいて新しいワークシートを作成します。
-
[Add worksheet] 操作をキャンバスの [Transform Message] コンポーネントの右にドラッグします。
-
[Add worksheet] の設定で、[Connector configuration (コネクタ設定)] ドロップダウンをクリックし、[Microsoft-Excel-Online-Authorization-Code-Config] を選択します。
-
グローバル要素種別として [Microsoft_Excel_Online_Authorization_Code_Config] を選択し、[OK] をクリックします。
-
[Add worksheet] のプロパティウィンドウで、次の項目を設定します。
項目 値 Workbook Id (ワークブック ID)
payload.workbookIdWorksheet Name (ワークシート名)
payload.worsheetname
ワークシートをリストする
ワークシートをリストする 2 番目のフローを作成します。 このフローでは、List worksheet 操作を使用します。
ワークシートを更新する
ワークシートに関する情報を更新する 3 番目のフローを作成します。 このフローでは、Update worksheet 操作を使用します。
ワークシートを削除する
ワークシートを削除する 4 番目のフローを作成します。 このフローでは、Delete worksheet 操作を使用します。
アプリケーションを実行する
アプリケーションを実行する手順は、次のとおりです。
-
Package Explorer でプロジェクトを右クリックし、[Run As (別のユーザーとして実行)] > [Mule Application (Mule アプリケーション)] を選択します。
-
アプリケーションをデプロイしたら、Web ブラウザーを開きます。
-
http://localhost:8081/authorize という URL を入力して、OAuth ダンスを開始します。 -
ログイン画面で、Microsoft Excel Online にアクセスするためのログイン情報を入力し、[Login (ログイン)] をクリックします。
-
[Allow (許可)] をクリックします。
-
次の表に示すように、関連付けられた URL を入力してフローを開始します。
Flow URL 注意事項 ワークシートを追加する
http://localhost:8081/create?workbookID={workbookID}&worksheetName={worksheetName}ワークシートをリストする
ワークシートを更新する
ワークシートを削除する
http://localhost:8081/delete?workbookID={workbookID}&worksheetName={worksheetName}
例の XML
この XML コードをプロジェクトの [Configuration XML (設定 XML)] タブに貼り付けて、前のセクションで説明したフローを試してください。このコードを貼り付けたら、[Regenerate 'doc:id' Values (「doc:id」値を再生成)] ダイアログで [Yes (はい)] をクリックします。
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:excel="http://www.mulesoft.org/schema/mule/excel"
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/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/excel http://www.mulesoft.org/schema/mule/excel/current/mule-excel.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" doc:id="b67a7f0e-9d8f-43ee-b3d8-0a2f86fe10c5" >
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<excel:authorization-code-config name="Microsoft_Excel_Online_Authorization_Code_Config" doc:name="Microsoft Excel Online Authorization Code Config" doc:id="a03ea31c-ab5c-4508-ae87-91485d0d9201" >
<excel:oauth-authorization-code-connection >
<excel:oauth-authorization-code consumerKey="${consumerKey}" consumerSecret="${consumerSecret}" authorizationUrl="${authorizationUrl}" accessTokenUrl="${accessTokenUrl}" scopes="${scopes}" resourceOwnerId="${resourceOwnerId}"/>
<excel:oauth-callback-config listenerConfig="HTTP_Listener_config" callbackPath="/callback" authorizePath="/authorize" externalCallbackUrl="http://localhost:8081/callback" />
</excel:oauth-authorization-code-connection>
</excel:authorization-code-config>
<configuration-properties doc:name="Configuration properties" doc:id="2820ecc1-e8be-4b5f-8d6e-5eb3afaf1732" file="mule-app.properties" />
<flow name="create-flow" doc:id="fcdaa88d-173a-4213-aaef-65bdcf384f03" >
<http:listener doc:name="Listener" doc:id="f6a51e00-2be8-4524-9e39-cd4e3387b5e0" config-ref="HTTP_Listener_config" path="/create"/>
<ee:transform doc:name="Transform Message" doc:id="f277839a-9e59-4d2a-9d53-c4d2f012ae90" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
{
workbookId: attributes.queryParams.workbookID,
worsheetname: attributes.queryParams.worksheetName
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<excel:add-worksheet doc:name="Add worksheet" doc:id="071f5319-16ae-43dc-9420-bf47479eb3d1" config-ref="Microsoft_Excel_Online_Authorization_Code_Config" workbookId="#[payload.workbookId]" worksheetName="#[payload.worsheetname]"/>
<logger level="INFO" doc:name="Logger" doc:id="9dd54e43-357e-454d-94ff-ccace4bcb580" message="Worksheet ID : #[payload.id]"/>
</flow>
<flow name="list-flow" doc:id="5b1b8836-f3a2-445e-b495-c80d93dcd82d" >
<http:listener doc:name="Listener" doc:id="0ffa794c-37a4-4c57-a14d-da7009fa504f" config-ref="HTTP_Listener_config" path="/list" />
<ee:transform doc:name="Transform Message" doc:id="f71f89a7-0f51-44ba-9e46-18e6f8dcc8c8" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
{
workbookId: attributes.queryParams.workbookID
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<excel:list-worksheet doc:name="List worksheet" doc:id="5e576012-f3a1-428a-b20f-d9d5a3442398" config-ref="Microsoft_Excel_Online_Authorization_Code_Config" workbookId="#[payload.workbookId]"/>
</flow>
<flow name="update-flow" doc:id="0cfe6bad-85e8-4e61-9688-52c6b37a93a8" >
<http:listener doc:name="Listener" doc:id="6c874287-c011-4b19-b3e8-55744003f0f6" config-ref="HTTP_Listener_config" path="/update"/>
<ee:transform doc:name="Transform Message" doc:id="d0697ad3-e842-48cd-b0c4-016dd65a712e" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
{
name : attributes.queryParams.worksheetUpdateName
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<excel:update-worksheet doc:name="Update worksheet" doc:id="983a65bc-584b-4199-867d-abfb9cf09bcb" config-ref="Microsoft_Excel_Online_Authorization_Code_Config" workbookId="#[attributes.queryParams.workbookID]" worksheetId="#[attributes.queryParams.worksheetName]">
</excel:update-worksheet>
</flow>
<flow name="delete-flow" doc:id="c989f49f-809c-4593-95dc-f93f8634c609" >
<http:listener doc:name="Listener" doc:id="f6e8d004-e264-48c1-85cf-b2ce5a0135d6" config-ref="HTTP_Listener_config" path="/delete"/>
<ee:transform doc:name="Transform Message" doc:id="ea4da82b-cd40-4bf6-b8c7-04efe280d835" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
{
workbookId: attributes.queryParams.workbookID,
worksheetName: attributes.queryParams.worksheetName
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<excel:delete-worksheet doc:name="Delete worksheet" doc:id="183fb53f-0c3d-42c2-8676-df485f9a5f43" config-ref="Microsoft_Excel_Online_Authorization_Code_Config" workbookId="#[payload.workbookId]" worksheetId="#[payload.worksheetName]"/>
</flow>
</mule>