---
schema_version: "1"
id: b9e0df3f21f3ee7c91cab86746045f3932d2327a18bd988a52aff8e36c28794f
title: Microsoft SharePoint Online Connector - Mule 3
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/microsoft-sharepoint-online-connector/latest/index.md
canonical_url: https://docs.mulesoft.com/jp/microsoft-sharepoint-online-connector/latest/
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 832ff6fe69258e2a05f9962812e6cf25b92ca1ade5a2f729244c3d81840015bc
description: MuleSoft Documentation Site
release: 0.3.9
latest: true
---
# Microsoft SharePoint Online Connector - Mule 3

Microsoft SharePoint Online Connector v1.0

Microsoft SharePoint Online 用 Anypoint Connector (SharePoint Online Connector) は、コンテンツとドキュメントの管理、イントラネットポータル、コラボレーション、エクストラネット、Web サイト、およびエンタープライズ検索用の Web アプリケーションプラットフォームです。

このコネクタを使用すると、REST API を介した SharePoint とのインテグレーションが可能になります。

リリースノート: [Microsoft SharePoint Online Connector リリースノート](#release-notes::connector/microsoft-sharepoint-online-connector-release-notes.adoc)  
サンプル: [Sharepoint Online Connector デモ](https://docs.mulesoft.com/jp/microsoft-sharepoint-online-connector/latest/_attachments%E2%80%8B/sharepoint-online-crud-app-demo.zip)  
FAQ: [\[よくある質問について\]](#よくある質問について)​

## [](#サポートされている操作)サポートされている操作

- リストおよびリスト項目の API: リストおよびリスト項目の Create、Delete、Retrieve、Update。
- ファイルおよびフォルダーの API:
    
    - ファイル: ファイルの Add、Retrieve content、Retrieve metadata、Delete、Check out、Undo check out、Check in、Publish、Unpublish、Approve、Deny、Recycle、Copy。
    - フォルダー: フォルダーの Create、Delete、Retrieve。

## [](#pom-ファイル情報)POM ファイル情報

Studio プロジェクトを Maven 化する場合、プロジェクトの pom.xml ファイルでこの情報を使用できます。

```xml
<dependency>
  <groupId>org.mule.modules</groupId>
  <artifactId>sharepoint-online</artifactId>
  <version>x.x.x</version>
  <classifier>mule-plugin</classifier>
</dependency>
```

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

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

## [](#認証)認証

サポート対象の Microsoft SharePoint Online 認証:

- Microsoft Online (Office 365)
- セキュリティトークンを使用する Microsoft Online (Office 365)
- Okta を使用する Microsoft Online (Office 365)

注意: あらゆる種別の HTTP プロキシを使用するようにすべてを設定できます。

### [](#okta-認証)Okta 認証

Okta 認証を使用するようにコネクタを設定するためには、次の情報が必要です。

- Okta Domain (Okta ドメイン): 認証用の Okta ユーザー名とパスワードを受け入れる Okta エンドポイント。例: `your-domain.okta.com`​
- Okta Username (Okta ユーザー名): Okta のユーザー名。例: `your-email@example.com`​
- Okta Password (Okta パスワード): Okta のパスワード。例:
- Okta API Token (Okta API トークン): Okta は、API 認証にスライドスケール有効期限付きのベアラートークンを使用します。例: `http://developer.okta.com/docs/api/getting_started/getting_a_token.html`​
- SharePoint Online Embedded Link (SharePoint Online の埋め込みリンク): Okta から Microsoft Office 365 SharePoint Online アプリケーションへのリンク。例: `https://your-domain.okta.com/home/office365/0oa14mz7f4HAWypdZ1t7/31737`

### [](#sharepoint-online-の認証)SharePoint Online の認証

1. \[Username (ユーザー名)\]、\[Password (パスワード)\]、および \[Site URL (サイト URL)\] を指定します。
2. 認証を設定します。
    
    - 自己署名 SSL 証明書を使用する場合、\[Disable SSL Certificate Validation (SSL 証明書検証の無効化)\] チェックボックスをクリックします。
    - SharePoint Online に接続するには、\[Username (ユーザー名)\]、\[Password (パスワード)\]、および \[Site URL (サイト URL)\] を指定します。
        
        あらゆる種別の HTTP プロキシを使用するように接続を設定できます。
3. 必要に応じて、\[Proxy Host (プロキシホスト)\]、\[Proxy Port (プロキシポート)\]、\[Proxy Username (プロキシユーザー名)\]、\[Proxy Password (プロキシパスワード)\] を指定します。

### [](#セキュリティトークン認証)セキュリティトークン認証

SAML セキュリティトークンを使用して、SharePoint にログインできます。POST 要求を介して XML 本文を提供することで、Studio の \[Security Token (セキュリティトークン)\] 項目に入力したセキュリティトークンを取得することができます。

セキュリティトークンを取得するには、次の XML 本文で ​`https://login.microsoftonline.com/extSTS.srf`​ に POST 要求を実行します。

```text
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"
      xmlns:a="http://www.w3.org/2005/08/addressing"
      xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <s:Header>
    <a:Action s:mustUnderstand="1">http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue</a:Action>
    <a:ReplyTo>
      <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>
    </a:ReplyTo>
    <a:To s:mustUnderstand="1">https://login.microsoftonline.com/extSTS.srf</a:To>
    <o:Security s:mustUnderstand="1"
       xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
      <o:UsernameToken>
        <o:Username>[username]</o:Username>
        <o:Password>[password]</o:Password>
      </o:UsernameToken>
    </o:Security>
  </s:Header>
  <s:Body>
    <t:RequestSecurityToken xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust">
      <wsp:AppliesTo xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
        <a:EndpointReference>
          <a:Address>[endpoint]</a:Address>
        </a:EndpointReference>
      </wsp:AppliesTo>
      <t:KeyType>http://schemas.xmlsoap.org/ws/2005/05/identity/NoProofKey</t:KeyType>
      <t:RequestType>http://schemas.xmlsoap.org/ws/2005/02/trust/Issue</t:RequestType>
      <t:TokenType>urn:oasis:names:tc:SAML:1.0:assertion</t:TokenType>
    </t:RequestSecurityToken>
  </s:Body>
</s:Envelope>
```

この要求の応答の <wsse:BinarySecurityToken> タグの間にセキュリティトークンが含まれます。

セキュリティトークンを取得したら、Studio でトークン値を指定します。

![セキュリティトークン設定](/mulesoft/current/ja-jp/microsoft-sharepoint-online-connector/latest/_images/sharepoint-security-token-config.png)

- Security token (セキュリティトークン): セキュリティトークンの値を入力します。
- Site URL (サイト URL): サイト URL を ​`https://<your site>.sharepoint.com`​ の形式で入力します。

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

1. Anypoint Studio で、Studio タスクバーの Exchange アイコンをクリックします。
2. Anypoint Exchange で \[Login (ログイン)\] をクリックします。
3. コネクタを検索して ​**\[Install (インストール)\]**​ をクリックします。
4. 画面の指示に従ってコネクタをインストールします。

### [](#最初のフローを設定する)最初のフローを設定する

1. Anypoint Studio で、​**\[File (ファイル)\]**​ > ​**\[New (新規)\]**​ > ​**\[Mule Project (Mule プロジェクト)\]**​ をクリックします。
2. \[Project Name (プロジェクト名)\] の値を指定して、​**\[Finish (完了)\]**​ をクリックします。
3. **\[Global Elements (グローバル要素)\]**​ タブをクリックします。
4. \*\[Create (作成)\] をクリックします。
5. `sharepoint`​ を検索します。
6. **\[Microsoft SharePoint\]**​ をクリックして ​**\[OK\]**​ をクリックします。
7. 設定するグローバル種別を選択します。
    
    ![sharepoint online windows global types](/mulesoft/current/ja-jp/microsoft-sharepoint-online-connector/latest/_images/sharepoint-online-windows-global-types.png)
    
    1. **\[Test Connection (接続をテスト)\]**​ をクリックして、正しく接続されることを確認します。
        
        ![sharepoint online global element props](/mulesoft/current/ja-jp/microsoft-sharepoint-online-connector/latest/_images/sharepoint-online-global-element-props.png)

もう一方の接続種別にも同様の情報が必要です。

**注意**​: \[Pooling Profile (プーリングプロファイル)\]、\[Reconnection (再接続)\]、および \[Notes (メモ)\] タブは無視できます。これらは Studio によって提供され、デフォルト情報を含みます。

### [](#studio-フローの作成)Studio フローの作成

Anypoint Studio フローを作成する手順は、次のとおりです。

1. Anypoint Studio で、​**\[File (ファイル)\]**​ > ​**\[New (新規)\]**​ > ​**\[Mule Project (Mule プロジェクト)\]**​ をクリックします。
2. プロジェクト名を指定して、​**\[Finish (完了)\]**​ をクリックします。
3. `http`​ を検索して、HTTP Connector をキャンバスにドラッグします。
4. `sharepoint`​ を検索して、Microsoft SharePoint Connector を HTTP Connector の隣にドラッグします。
5. `json`​ を検索して、\[Object to JSON\] トランスフォーマーを Microsoft SharePoint Connector の横にドラッグします。
    
    ![sharepoint online mule flow](/mulesoft/current/ja-jp/microsoft-sharepoint-online-connector/latest/_images/sharepoint-online-mule-flow.png)
6. HTTP Connector をダブルクリックして、\[Host (ホスト)\] を ​`0.0.0.0`​、\[Port (ポート)\] を ​`8081`​、\[Path (パス)\] を ​`query`​ に設定します。​**\[OK\]**​ をクリックします。
7. Microsoft SharePoint Connector をダブルクリックして、緑色のプラス記号をクリックします。
8. 次の設定値を更新します。
    
    1. \[Connector Configuration (コネクタ設定)\] リストで、以前に作成した Microsoft SharePoint の設定をクリックします。
    2. \[Operation (操作)\] リストから、​**\[List Query (リストクエリ)\]**​ をクリックします。
        
        **注意**​: \[List Query (リストクエリ)\] 操作は、SharePoint インスタンスに正常に接続された後にのみ \[Operation (操作)\] リストに表示されます。
    3. \[Language (言語)\] リストから、​**\[DataSense Query Language (DataSense クエリ言語)\]**​ を選択します。
9. クエリビルダーをクリックします。
    
    1. \[Types (種別)\] のリストから、​**\[Documents (ドキュメント)\]**​ をクリックします。
    2. \[Fields (項目)\] のリストから、​**\[ID\]**​ と ​**\[Title (タイトル)\]**​ をクリックします。
    3. \[Order By (並び替え基準)\] から、​**\[Title (タイトル)\]**​ をクリックします。
    4. \[Direction (方向)\] から、​**\[DESCENDING (降順)\]**​ をクリックします。
        
        ![sharepoint online mssp query builder](/mulesoft/current/ja-jp/microsoft-sharepoint-online-connector/latest/_images/sharepoint-online-mssp-query-builder.png)

## [](#フローの実行)フローの実行

1. Package Explorer で、プロジェクト名を右クリックし、​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。
2. アプリケーションの起動時にコンソールを確認します。エラーがない場合、次のメッセージが表示されます。
    
    ```text
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    + Started app 'sharepoint-online-demo'                     +
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ```
3. `http://0.0.0.0:8081/query`​ にアクセスします。
4. ドキュメントのリストがタイトルの降順で並び替えられ、JSON 形式で返されます (結果は SharePoint Online インスタンスに応じて異なります)。

```text
[{"__metadata":{"id":"Web/Lists(guid'GUID_VALUE')/Items(4)","uri":"https://ec2-54-200-49-206.us-west-
2.compute.amazonaws.com/_api/Web/Lists(guid'GUID_VALUE')/Items(4)","etag":"\"1\"","type":"SP.Data.Shared_x0020_Document
sItem"},"Id":4,"ID":4,"Title":"folder"}]
```

## [](#操作-リストおよびリスト項目の-api)操作: リストおよびリスト項目の API

リストおよびリスト項目の API を使用すると、SharePoint リストおよびリスト項目を作成、取得、更新、削除できます。

### [](#リスト項目の作成更新削除)リスト項目の作成、更新、削除

項目を作成または更新する場合、リスト ID を指定します。ID を指定すると、DataSense はリストのメタデータを取得し、入力可能な各項目がオブジェクトビルダーに表示されます。

```xml
<sharepoint-online:list-create
	config-ref="Sharepoint_Online"
	doc:name="Sharepoint Online"
	baseTemplate="GENERIC_LIST"
	title="Title">
  <sharepoint-online:list ref="#[payload]"/>
</sharepoint-online:list-create>
```

または、コネクタ自体で属性を定義します。

```xml
<sharepoint-online:list-create
	config-ref="Sharepoint_Online"
	doc:name="Sharepoint Online"
	baseTemplate="GENERIC_LIST"
	title="Title">
  <sharepoint-online:list
  	contentTypesEnabled="true"
	description="Description"/>
</sharepoint-online:list-create>
```

リストの取得および削除には、リスト ID のみが必要です。

```xml
<sharepoint-online:list-delete
	config-ref="Sharepoint_Online"
	doc:name="Sharepoint Online"
	listId="LIST_ID" />
```

項目を作成または更新する場合、リスト ID を指定します。DataSense はリスト ID を使用してリストのメタデータを取得します。オブジェクトビルダーは、入力する必要がある項目を提供します。

![sharepoint online mssp object builder](/mulesoft/current/ja-jp/microsoft-sharepoint-online-connector/latest/_images/sharepoint-online-mssp-object-builder.png)

### [](#リスト項目のクエリ)リスト項目のクエリ

クエリビルダーを使用します。

左側のパネルには、表示可能な各リストが表示されます。右側のパネルには、選択したリストの項目が表示されます。項目が参照項目の場合、​`SharepointListReference`​ または ​`SharepointListMultiValueReference`​ を使用します。

![sharepoint online query builder](/mulesoft/current/ja-jp/microsoft-sharepoint-online-connector/latest/_images/sharepoint-online-query-builder.png)

このいずれかの項目をクエリで返すように選択している場合、\[Retrieve Full Objects for Reference Fields (参照項目のすべてのオブジェクトを取得)\] チェックボックスの値に応じて 2 つの種別の戻りオブジェクトを使用できます。

- オフ: 参照オブジェクトの ID と参照オブジェクトリストの ID を含む概要オブジェクト。
    
    ```json
    {
        "Title": "A title",
        "LookupFieldId": {
            "id": "1",
            "lookupListId": "aaaa-1111-bbbb-2222"
        },
        "MultiValueLookupFieldId": {
            "ids": [
                1,
                2,
                3
            ],
            "lookupListId": "cccc-3333-dddd-4444"
        }
    }
    ```
    
    このオブジェクトを別のコネクタで使用して、参照先のオブジェクトを for each コンポーネントと共に取得します。
    
    ![sharepoint online mssp list item query](/mulesoft/current/ja-jp/microsoft-sharepoint-online-connector/latest/_images/sharepoint-online-mssp-list-item-query.png)
- オン: 完全なオブジェクトグラフを取得します。サイクルがある場合は、概要参照オブジェクトが表示されます。
    
    ```json
    {
        "Title": "A title",
        "LookupFieldId": {
            "Title": "Another title",
            "Id": "1",
            "Property1": "A value"
        },
        "MultiValueLookupFieldId": [
            {
                "Title": "Another title",
                "Id": "1",
                "Property1": "A value"
            },
            {
                "Title": "Another title",
                "Id": "2",
                "Property1": "A value"
            }
        ]
    }
    ```

クエリテキストの例:

![sharepoint online example q text](/mulesoft/current/ja-jp/microsoft-sharepoint-online-connector/latest/_images/sharepoint-online-example-q-text.png)

注意: このオプションをオンにすると、多くの参照項目がある大きな項目リストの取得に時間がかかることがあります。

以下のような他のリストの操作に加えて DSQL クエリで内部項目名またはタイトル項目名を使用できます。

たとえば、前述のクエリは次のようになります。

SELECT AuthorId, Created, List3MultiId FROM <LIST\_ID>

`<LIST_ID>`​ をリスト ID に置き換えます。

タイトルが次の \[Author (作成者)\]、\[Date Created (作成日)\]、および \[Details (詳細)\] に続く場合、項目名を使用してクエリを記述できます。

SELECT Author, 'Date created', Details FROM Inventory

内部項目とタイトル項目を混在させることができます。

SELECT AuthorId, 'Date created', List3MultiId FROM Inventory

内部項目とタイトル項目は、次のリスト操作でのみ使用できます。

- 新しい項目をリストに追加する
- リスト内の既存の項目を更新する
- リスト内の項目を照会する

**注意:**​ DSQL 句で検索条件を指定する場合、日時データ型で絞り込むには、ISO-8601 形式を使用して値を記述します (例: \[Created (作成日)\] > 「2017-01-01T00:00:00-03:00)。

## [](#操作-ファイルおよびフォルダーの-api)操作: ファイルおよびフォルダーの API

ファイルとフォルダーの API を使用すると、ファイルとフォルダーの作成、取得、更新、削除のほか、ファイルのチェックイン、チェックアウト、パブリッシュ、承認、拒否、コピー、リサイクルをドキュメントリストから行うことができます。

フォルダー操作を使用する場合、サーバーの相対 URL は、フォルダーが存在する場所を参照します。URL の形式は、​`/site/docList/innerFolder`​ または ​`docList/innerFolder`​ にすることができます。後者の場合、コネクタの設定のサイト URL パラメーターで指定されたサイトが使用されます。

ファイル操作を使用する場合、ファイルサーバーの相対 URL は、フォルダーサーバーの相対 URL とファイル名 (​`/site/docList/innerFolder/filename`​ または ​`docList/innerFolder/filename`​) を参照します。

### [](#フォルダーの作成および削除)フォルダーの作成および削除

フォルダーを作成または削除するには、サーバーの相対 URL (フォルダーが存在する場所、またはフォルダーを作成する予定の場所) を指定することができます。

結果のフローは次のようになります。

```xml
<sharepoint-online:folder-create config-ref="Sharepoint_Online"
url="/path/to/folder" doc:name="Sharepoint Online"/>

<sharepoint-online:folder-delete config-ref="Sharepoint_Online"
url="/path/to/folder" doc:name="Sharepoint Online"/>
```

### [](#ファイルの追加)ファイルの追加

ファイルをアップロードするには、物理ファイルを選択するか、入力ストリームをコネクタに渡します。ファイルは、相対 URL を使用してサーバーにアップロードされます。たとえば、次の例を File Connector と共に使用して、ファイルをリストにアップロードできます。

次の入力ストリームを使用します。

```xml
<sharepoint-online:file-add config-ref="Sharepoint_Online"
fileServerRelativeUrl="/path/to/folder/filename"
fileContentStream-ref="#[payload]" overwrite="true"
doc:name="Sharepoint Online"/>
```

大きなファイルをアップロードするには、SharePoint サーバーと IIS サーバーを設定します。

- サイトの SharePoint 管理コンソールで \[Maximum Upload Size (最大アップロードサイズ)\] を 2047MB (最大) に設定します。
- IIS サイトの接続タイムアウトを高い値に設定します。
- 要求の絞り込みで IIS アプリケーションの \[Maximum Allowed Content Length (最大許容コンテンツ長)\] を 2147483647 に設定します。

**注意:**​ コネクタが使用する SharePoint REST API では、最大 2 GB のファイルのアップロードがサポートされます。大きなファイルを操作する場合は、ファイルへのシステムのローカルパスを ​`localFilePath`​ パラメーターの値に提供します。これは、コネクタを介してファイルをアップロードするための最も効果的な方法です。

### [](#ファイルのコンテンツの取得)ファイルのコンテンツの取得

ファイルのコンテンツがバイト配列として返されます。たとえば、次を File Connector の入力として使用して、リストからファイルをダウンロードできます。

```xml
<sharepoint-online:file-get-content config-ref="Sharepoint_Online"
doc:name="Sharepoint Online"
fileServerRelativeUrl="/path/to/folder/filename"/>
```

### [](#ファイルのメタデータの取得)ファイルのメタデータの取得

この操作では、ファイルの相対パスのみが必要です。

```xml
<sharepoint:file-get-metadata config-ref="Sharepoint_Online" fileServerRelativeUrl="/Shared Documents/My File.txt" doc:name="Sharepoint Online">
</sharepoint:file-get-metadata>
```

### [](#ファイルのメタデータの更新)ファイルのメタデータの更新

この操作では、ファイルの相対パスとそのキー-値プロパティを更新する必要があります。次の例は、ファイルとそのタイトルの名前を変更する方法を示しています。

```xml
<sharepoint:file-update-metadata config-ref="Sharepoint_Online"
  fileServerRelativeUrl="/Shared Documents/My File.txt" doc:name="Sharepoint Online">
	<sharepoint:updated-properties>
		<sharepoint:updated-property
		  key="Title">New Title Value</sharepoint:updated-property>
		<sharepoint:updated-property
		  key="FileLeafRef">NewFileName.txt</sharepoint:updated-property>
	</sharepoint:updated-properties>
</sharepoint:file-update-metadata>
```

### [](#ファイルおよびフォルダーのクエリ)ファイルおよびフォルダーのクエリ

クエリでは、指定されたフォルダー以降で、指定された条件に一致するすべてのファイルとフォルダーが返されます。

クエリビルダーを使用します。

- 左側のパネルには、SharePoint インスタンスからのドキュメントリストが表示されます。選択したインスタンスを開始パスの一部として使用して、ファイルとフォルダーを照会します。
- 右側のパネルでは、すべてのドキュメントリストで同じ項目が表示されます。
- \[Folder Path (フォルダーパス)\] の入力で内部フォルダーを指定して、開始パスとして使用します。
- 再帰チェックボックスを選択すると、開始パスのすべてのフォルダーでファイルとフォルダーが再帰的に検索されます。

クエリビルダーのオプションを設定する方法は次のとおりです。

![sharepoint online folder path](/mulesoft/current/ja-jp/microsoft-sharepoint-online-connector/latest/_images/sharepoint-online-folder-path.png)

例:

```text
<sharepoint-online:file-query config-ref="Sharepoint_Online" query="dsql:SELECT Author,ModifiedBy,Name,ServerRelativeUrl FROM #[header:inbound:documentListName]" recursive="true" doc:name="Sharepoint Online"/>

<sharepoint-online:folder-query config-ref="Sharepoint_Online" recursive="true" query="dsql:SELECT ItemCount,Name,ServerRelativeUrl FROM #[header:inbound:documentListName] WHERE ItemCount &gt; 0" doc:name="Sharepoint Online"/>
```

### [](#その他のファイル操作)その他のファイル操作

Approve、Check In、Check Out、Deny、Publish、Undo Checkout、Unpublish の操作を実行できます。ファイルの URL を指定し、必要に応じて追加のコメントをパラメーターとして渡します。

```xml
<sharepoint-online:file-publish config-ref="Sharepoint_Online"
doc:name="Sharepoint Online" fileServerRelativeUrl="" comment=""/>
```

### [](#update-list-item-操作を使用したファイルのメタデータの設定)Update List Item 操作を使用したファイルのメタデータの設定

Update List Item 操作を使用してドキュメントライブラリにアップロードするファイルのメタデータを取得および設定できます。

リスト内のファイルのプロパティを設定するには、\[List Item Id (リスト項目 ID)\] を認識する必要があります。これは、遅延 ListItemAllFields プロパティを使用して取得できます。

次のフローは、File Add を ​**Update List Item**​ 操作に直接連結してリストにファイルをアップロードし、その直後にメタデータを設定する方法を示しています。

```xml
<flow name="sharepoint_demo_fileAddWithMetadata"
   doc:name="sharepoint_demo_fileAddWithMetadata">
   <http:inbound-endpoint exchange-pattern="request-response" host="0.0.0.0"
     port="8081" path="upload" doc:name="HTTP"/>
   <sharepoint:file-add config-ref="Sharepoint"
     fileServerRelativeUrl="/Shared Documents/myfile.txt"
     overwrite="true"
     doc:name="Add file"/>
   <sharepoint:resolve-object config-ref="Sharepoint"
     doc:name="Get ListItemId of File"
     url="#[payload.listItemAllFields.__deferred.uri]"/>
   <sharepoint:list-item-update config-ref="Sharepoint" itemId="#[payload.Id]"
     listId="ccbfaf65-b53e-48ac-be19-adf45192ecc3" doc:name="Set file properties">
       <sharepoint:updated-properties>
           <sharepoint:updated-property key="Title">Test title</sharepoint:updated-property>
       </sharepoint:updated-properties>
   </sharepoint:list-item-update>
   <set-payload value="OK" doc:name="Set Payload"/>
</flow>
```

## [](#遅延プロパティの解決)遅延プロパティの解決

パフォーマンス上の理由で、多くの SharePoint 操作がエンティティの基本データセットとともに、1 つ以上の遅延プロパティ参照を返します。この遅延プロパティ参照を使用して追加の詳細や関連オブジェクトを取得できます。

汎用の Resolve Object 操作または Resolve Collection 操作を使用して、遅延プロパティセットを 1 つの ​`Map<string,object>`​ または ​`List<Map<string,object>>`​ に解決し、その情報にフローでアクセスできます。

たとえば、次の方法を使用して、SharePoint ファイルオブジェクトの項目の完全セットを取得します。

```xml
<sharepoint:resolve-object config-ref="SharePoint"
  url="#[payload.listItemAllFields.__deferred.url]"
  doc:name="Microsoft SharePoint" >
</sharepoint:resolve-object>
```

Mule デバッガーまたは Logger コンポーネントを使用してペイロードを記録すると、​`_deferred`​ URL プロパティでプロパティを識別できます。

## [](#リスト項目へのファイルの添付)リスト項目へのファイルの添付

リスト項目にファイルを添付するには、ResolveObject 操作を使用します。

```xml
<flow name="sp-testFlow2">
    <http:listener config-ref="HTTP_Listener_Configuration" path="/at" doc:name="HTTP"/>
    <set-variable variableName="FileNameToAttach" value="CHANGELOG.md" doc:name="Set FileNameToAttach"/>
    <sharepoint:list-item-query config-ref="Microsoft_SharePoint__Online_Connection"
     query="dsql:SELECT ID,Title FROM LIST_ID WHERE Title = 'test-list-item-1'" doc:name="Read List Item"/>
    <set-variable variableName="ListItemUrl" value="#[payload.next() .__metadata.uri]"
     doc:name="SetListItemUri from list item query result"/>
    <set-payload value="#[groovy:new FileInputStream('C:\\temp\\' + flowVars.FileNameToAttach)]"
     doc:name="Set file to attach as inputstream in payload"/>
    <sharepoint:resolve-object config-ref="Microsoft_SharePoint__Online_Connection"
     url="#[flowVars.ListItemUrl]/AttachmentFiles/add(FileName='#[flowVars.FileNameToAttach]')"
     resolveRequestType="Create" doc:name="create attachment"/>
    <json:object-to-json-transformer doc:name="Object to JSON"/>
</flow>
```

このフローは次の方法を示しています。

1. SharePoint からリスト項目の URL を読み取って取得します。同じフロー内で作成されているリスト項目がすでにある場合、その項目を使用できます。
2. ファイルを入力ストリームに読み込みます。ここでは、入力ストリームは c:\\temp にあります (フロー内のこのパスを見つけて置き換えてください)。
3. ファイルへのリスト項目の添付ファイルを作成します。

## [](#rest-api-を使用したダイレクトコールの実行)REST API を使用したダイレクトコールの実行

SharePoint REST API では、Resolve Object および Resolve Collection アクションを介してアクセスできる多くのコマンドを使用できます。これらの操作は、指定された URL への認証済みコールを提供し、それぞれ Map および ​`List<Map>`​ に解決されます。

Resolve Object 操作はすべての HTTP 動詞 (GET、POST、PUT/MERGE、DELETE) を受け入れます。また、この操作ではリクエストボディを API に送信できます。本文のデフォルト値は Mule メッセージのペイロードです。

本文は、JSON を受け入れる API エンドポイント用とすることができます。

- `Map<String, Object>`​ は JSON 文字列に変換されます。
- `String`​ は JSON を含みます。この文字列はそのまま送信されます。

ファイルを受け入れる API エンドポイント:

- ファイルを含む ​`InputStream`​。ストリームは使用後に閉じられます。
- ファイルを含む ​`byte[]`​。このバイト配列はそのまま送信されます。

## [](#複数の値を含む-choice-列型の操作)複数の値を含む Choice 列型の操作

複数の値を許可するように Choice 列型を設定できます。複数の値を受け入れる列のメタデータは Studio で次のように表示されます。

![sharepoint online choice multi select](/mulesoft/current/ja-jp/microsoft-sharepoint-online-connector/latest/_images/sharepoint-online-choice-multi-select.png)

SharePoint 内の対象リストに Title プロパティと、​`"one"`​、​`"two"`​、​`"three"`​ の値を受け入れる複数選択列 (ChoiceMultiSelect) があるとします。次の Groovy スクリプトは、選択肢を ​`"one", "three"`​ に設定するペイロードを作成します。

\[Title: "foo", ChoiceMultiSelect: \[results: \["one", "three"\]\]\]

複数選択列の結果プロパティの ​`List<string>`​ を作成できる任意の言語を使用できます。

次の疑似コードは、ChoiceMultiSelect 列の値として Choice #1 と Choice #2 を設定する方法を示しています。

```text
values = new List<String>
values.add("Choice #1")
values.add("Choice #2")
multiValuesMap = new Map<String, Object>
multiValuesMap["results"] = values
List-item["ChoiceMultiSelect"] = multiValuesMap
```

## [](#例外処理)例外処理

- 接続時の例外
    
    何らかの理由でコネクタが SharePoint インスタンスへの接続に失敗した場合、ConnectionException 種別の例外がスローされます。例外メッセージは、例外の原因をデバッグするのに役立ちます。
- 操作での例外
    
    操作の実行時にエラーが発生した場合、エラーに関するメッセージと共に SharepointException がスローされます。

## [](#よくある質問と回答)よくある質問と回答

- このコネクタはどの SharePoint バージョンをサポートしますか?
    
    SharePoint Online Connector では、SharePoint Online がサポートされます。Sharepoint 2013 オンプレミス用 Sharepoint 2013 Connector を使用します。
- このコネクタではどの認証方式がサポートされますか?
    
    SharePoint Online では、標準の SharePoint Online ユーザーログイン情報を使用した認証と Okta 認証がサポートされます。
- コネクタからは SharePoint オブジェクトモデルのどの部分にアクセスできますか?
    
    ファイルおよびフォルダー、リスト、リスト項目、および添付ファイルがサポートされます。さらに、SharePoint API の他のすべてのエンティティには、ResolveObject 操作と ResolveCollection 操作を使用して JSON 形式でアクセスできます。
- このコネクタでは DataSense と DataMapper はサポートされますか?
    
    はい。サポートされるすべてのエンティティとエンティティ属性はコネクタによって Studio に提供され、DataMapper で使用できます。
- このコネクタではどのような操作を実行できますか?
    
    リストおよびリスト項目の API では、Create、Retrieve、Update、および Delete の各操作がサポートされます。
    
    ファイルおよびフォルダーでは、Add、Retrieve content、Retrieve metadata、Delete、Check out、Undo check out、Check in、Publish、Unpublish、Approve、Deny、Recycle、および Copy の各操作がサポートされます。
- コネクタの使用方法を示している例はありますか?
    
    はい、[Sharepoint Online Connector デモ](https://docs.mulesoft.com/jp/microsoft-sharepoint-online-connector/latest/_attachments%E2%80%8B/sharepoint-online-crud-app-demo.zip) では、Anypoint Studio のサンプルプロジェクトを利用できます
- このコネクタではどの Mule エディションを使用できますか?
    
    このコネクタは、CloudHub インテグレーション PaaS など、あらゆるビットのあらゆるオペレーティングシステムで動作しているすべての Enterprise Edition Anypoint プラットフォームでサポートされます。

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

- [Exchange での Microsoft SharePoint Online Connector](https://www.mulesoft.com/exchange/org.mule.modules/sharepoint-online/)
- [MuleSoft ヘルプセンター](https://help.mulesoft.com)