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

Microsoft SharePoint 2013 Connector v2.3

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

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

リリースノート: [Microsoft SharePoint 2013 Connector リリースノート](#release-notes::connector/microsoft-sharepoint-2013-connector-release-notes.adoc)  
サンプル: [sharepoint-connector-samples.zip](https://docs.mulesoft.com/jp/microsoft-sharepoint-2013-connector/latest/_attachments%E2%80%8B/sharepoint-connector-samples.zip)  
FAQ: [\[よくある質問\]](#よくある質問)​

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

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

## [](#サポート対象の-microsoft-sharepoint-バージョン)サポート対象の Microsoft SharePoint バージョン

- Microsoft SharePoint 2013
- Microsoft SharePoint Online
    
    - SharePoint Online とやりとりする場合、​**FileQuery**​ 操作と ​**FolderQuery**​ 操作はサポートされません。

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

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

```xml
<dependency>
  <groupId>org.mule.modules</groupId>
  <artifactId>mule-module-sharepoint-2010</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 (連動関係スニペット)\]**​ をクリックします。

## [](#認証)認証

SharePoint 2013 では、アクセスする Microsoft SharePoint に基づいて異なる認証スキームがサポートされます。

サポート対象のオンプレミスの Microsoft SharePoint 認証:

- NTLM
- Microsoft ADFS に対するクレームベース認証
- Microsoft ADFS から取得したセキュリティトークン
- サポート対象外の認証: Kerberos

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

- Microsoft Online (Office 365) 管理対象ユーザー
- Microsoft ADFS に対する Microsoft Online (Office 365) 統合ユーザー
- Microsoft Online から取得したセキュリティトークン
- 標準の SharePoint Online ユーザーログイン情報

### [](#クレームベース認証)クレームベース認証

クレームベース認証を使用するようにコネクタを設定するためには、認証で使用するセキュリティトークンサービス (STS) からの次の情報が必要です。

- **STS URL**​
    
    ユーザーを認証するためのユーザー名とパスワードを受け入れて WS-Trust 1.3 プロトコルを理解する STS エンドポイント。STS が Microsoft の ADFS (Active Directory フェデレーションサービス) の場合、通常、この URL は次のようになります。
    
    `https://youradfs.com/adfs/services/trust/13/usernamemixed`​。
- **STS アプリケーション識別子**​
    
    STS 内の SharePoint サイトを識別する文字列。これは、依存パーティ ID、クライアント ID、スコープ、または領域とも呼ばれます。STS が Microsoft の ADFS の場合、この値を AD FS 管理コンソールの \[AD FS\] の下の ​**\[Trust Relationships (信頼関係)\]**​ > ​**\[Relying Party Trusts (証明書利用者信頼)\]**​ > (SharePoint サイトの証明書利用者プロパティ) > ​**\[Identifiers (識別子)\]**​ タブで見つけることができます。
    
    STS アプリケーション識別子は、Web ブラウザーでサイト URL を開くことでアクセスする SharePoint サイトにログインして取得できます。サイトで複数の認証プロバイダーが設定されている場合、ドロップダウンメニューにいくつかのオプションが表示されます。STS のログインページにリダイレクトする、目的の STS を選択します。この時点で、Web ブラウザーのアドレスバーには、次のクエリパラメーターを含む URL が含まれます。  
    
    `wa=wsignin1.0&wtrealm=uri%3amule%3asp80`
    
    パラメーター ​**wa**​ は、サインインが開始された場合に STS に伝えます。​**wtrealm**​ には、STS アプリケーション識別子の URI エンコードされた値が含まれます。この例では、​`uri%3amule%3asp80`​ は ​`uri:mule:sp80`​ です。エンコードされていない値は、コネクタの設定用のパラメーターです。

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

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 でトークン値を指定します。

![sharepoint security token config](/mulesoft/current/ja-jp/microsoft-sharepoint-2013-connector/latest/_images/sharepoint-security-token-config.png)

- Security token (セキュリティトークン): 対応するセキュリティトークンを入力します。
- Site URL (サイト URL): 対応するサイトの URL を入力します。

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

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

Studio の更新がある場合、右下隅にメッセージが表示されます。メッセージをクリックすると、更新をインストールできます。

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

設定方法:

1. Anypoint Studio で、​**\[File (ファイル)\]**​ > ​**\[New (新規)\]**​ > ​**\[Mule Project (Mule プロジェクト)\]**​ をクリックします。
2. **\[Project Name (プロジェクト名)\]**​ を指定して、​**\[Finish (完了)\]**​ をクリックします。
3. **\[Global Elements (グローバル要素)\]**​ タブをクリックします。
4. **\[Create (作成)\]**​ をクリックします。
5. **\[Search (検索)\]**​ テキストボックスに​**「sharepont」**​と入力します。
6. **\[Microsoft SharePoint\]**​ をクリックして ​**\[OK\]**​ をクリックします。
7. 設定するグローバル種別を選択します。
    
    ![WindowsGlobalTypes](/mulesoft/current/ja-jp/microsoft-sharepoint-2013-connector/latest/_images/windowsglobaltypes.png)
8. レガシー接続:
    
    1. **\[Username (ユーザー名)\]**​、​**\[Password (パスワード)\]**​、および ​**\[Site URL (サイト URL)\]**​ を入力します。
    2. 認証については、次のように設定します。
        
        - 自己署名 SSL 証明書を使用する場合、​**\[Disable SSL certificate validation (SSL 証明書検証の無効化)\]**​ チェックボックスをクリックします。
        - クレーム認証を使用して接続するには、STS URL (セキュリティトークンサービス) とスコープ (依存パーティ ID) を入力します。 STS URL は、認証ログイン情報としてユーザー名とパスワードを受け入れて WS-Trust 1.3 標準を理解する STS のエンドポイントを参照する必要があります。通常、ADFS ではエンドポイントは ​`https://myadfs.com/adfs/services/trust/13/usernamemixed`​ になります。また、エンドポイントを ADFS で有効にする必要があります (デフォルトでは有効)。
        - NTLM 認証を使用して接続するには、​**\[Domain (ドメイン)\]**​ を入力します。
        - SharePoint Online に接続するには、NTLM とクレームの入力を空のままにします。​**\[Username (ユーザー名)\]**​、​**\[Password (パスワード)\]**​、および ​**\[Site URL (サイト URL)\]**​ のみを入力します。
    3. **\[Test Connection (接続をテスト)\]**​ をクリックして、正しく接続されることを確認します。
        
        ![SPGlobalElementProps](/mulesoft/current/ja-jp/microsoft-sharepoint-2013-connector/latest/_images/spglobalelementprops.png)

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

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

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

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

1. Anypoint Studio で、​**\[File (ファイル)\]**​ > ​**\[New (新規)\]**​ > ​**\[Mule Project (Mule プロジェクト)\]**​ をクリックします。
2. **\[Project Name (プロジェクト名)\]**​ を指定して、​**\[Finish (完了)\]**​ をクリックします。
3. 検索ボックスに​**「http」**​と入力し、​**HTTP Connector**​ をキャンバスにドラッグします。
4. 検索ボックスに​**「sharepoint」**​と入力し、Microsoft SharePoint Connector インスタンスを HTTP Connector の横にドラッグします。
5. 検索ボックスに​**「json」**​と入力し、​**\[Object to JSON\]**​ トランスフォーマーを Microsoft SharePoint Connector の横にドラッグします。
    
    ![SPMuleFlow](/mulesoft/current/ja-jp/microsoft-sharepoint-2013-connector/latest/_images/spmuleflow.png)
6. HTTP Connector をダブルクリックします。​**\[Host (ホスト)\]**​ が​**「localhost」**​に設定され、​**\[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 (降順)\]**​ をクリックします。
        
        ![MSSPQueryBuilder](/mulesoft/current/ja-jp/microsoft-sharepoint-2013-connector/latest/_images/msspquerybuilder.png)

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

1. Package Explorer で \[sharepoint2013-demo\] を右クリックし、​**\[Run As (別のユーザーとして実行)\] > \[Mule Application (Mule アプリケーション)\]**​ を選択します。
2. アプリケーションの起動時にコンソールを確認します。エラーが発生していない場合、次のメッセージが表示されます。
    
    ```text
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    + Started app 'sharepoint2013-demo'                        +
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ```
3. インターネットブラウザーを開いて [http://localhost:8081/query](http://localhost:8081/query) にアクセスします。
4. ドキュメントのリストがタイトルの降順で並び替えられ、JSON 形式で返されます (結果は SharePoint 2013 インスタンスに応じて異なります)。
    
    ```text
    [{"__metadata":{"id":"Web/Lists(guid'2af685ae-5aec-4f60-b175-
    54b21b6bd668')/Items(4)","uri":"https://ec2-54-200-49-206.us-west-
    2.compute.amazonaws.com/_api/Web/Lists(guid'2af685ae-5aec-4f60-b175-
    54b21b6bd668')/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-2013:list-create config-ref="SharePoint_2013" doc:name="SharePoint 2013" baseTemplate="GENERIC_LIST" title="Title">
  <sharepoint-2013:list ref="#[payload]"/>
</sharepoint-2013:list-create>
```

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

```xml
<sharepoint-2013:list-create config-ref="SharePoint_2013" doc:name="SharePoint 2013" baseTemplate="GENERIC_LIST" title="Title">
  <sharepoint-2013:list contentTypesEnabled="true" description="Description"/>
</sharepoint-2013:list-create>
```

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

```xml
<sharepoint-2013:list-delete config-ref="SharePoint_2013" doc:name="SharePoint 2013" listId="8e306633-c600-40ab-80db-80f57968c0a1" />
```

![MSSPObjectBuilder](/mulesoft/current/ja-jp/microsoft-sharepoint-2013-connector/latest/_images/msspobjectbuilder.png)

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

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

左側のパネルには、非表示以外のすべてのリストが表示されます。右側のパネルには、選択したリストの項目が表示されます。項目が​**参照項目**​の場合、データ型は ​`SharepointListReference`​ または ​`SharepointListMultiValueReference`​ です。

![SPQueryBuilder](/mulesoft/current/ja-jp/microsoft-sharepoint-2013-connector/latest/_images/spquerybuilder.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 コンポーネントと共に取得できます。
    
    ![MSSPListItemQuery](/mulesoft/current/ja-jp/microsoft-sharepoint-2013-connector/latest/_images/mssplistitemquery.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"
            }
        ]
    }
    ```
    
    **クエリテキスト**​の例:
    
    ![SPExampleQText](/mulesoft/current/ja-jp/microsoft-sharepoint-2013-connector/latest/_images/spexampleqtext.png)
    
    **注意**​: このオプションをオンにすると、多くの参照項目がある大きな項目リストの取得に時間がかかることがあります。

このコネクタのバージョン 2.1.10 以降、(以下のような他のリストの操作に加えて) DSQL クエリで内部項目名またはタイトル項目名を使用できます。

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

SELECT AuthorId, Created, List3MultiId FROM 8e306633-c600-40ab-80db-80f57968c0a1

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

SELECT Author, 'Date created', Details FROM Inventory

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

SELECT AuthorId, 'Date created', List3MultiId FROM Inventory

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

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

**注意:**​ DSQL 句で検索条件を指定する場合、日時データ型で絞り込むには、ISO-8601 形式を使用して値を記述します (例: \[Created (作成日)\] > 「2000-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-2013:folder-create config-ref="SharePoint_2013"
url="/path/to/folder" doc:name="SharePoint 2013"/>

<sharepoint-2013:folder-delete config-ref="SharePoint_2013"
url="/path/to/folder" doc:name="SharePoint 2013"/>
```

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

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

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

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

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

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

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

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

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

```xml
<sharepoint-2013:file-get-content config-ref="SharePoint_2013"
doc:name="SharePoint 2013"
fileServerRelativeUrl="/path/to/folder/filename"/>
```

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

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

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

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

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

![SharePointFolderPath](/mulesoft/current/ja-jp/microsoft-sharepoint-2013-connector/latest/_images/sharepointfolderpath.png)

例:

```text
sharepoint-2013:file-query config-ref="SharePoint_2013" query="dsql:SELECT Author,ModifiedBy,Name,ServerRelativeUrl FROM #[header:inbound:documentListName]" recursive="true" doc:name="SharePoint 2013"/>

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

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

Approve、Check In、Check Out、Deny、Publish、Undo Checkout、Unpublish の各操作の使用方法はほぼ同じです。ファイルの URL を指定します。また、操作によっては、追加のコメントをパラメーターとして渡します。

```xml
<sharepoint-2013:file-publish config-ref="SharePoint_2013"
doc:name="SharePoint 2013" fileServerRelativeUrl="" comment=""/>
```

### [](#ファイルのメタデータの設定)ファイルのメタデータの設定

**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="localhost"
     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__NTLM_Connection" query="dsql:SELECT ID,Title FROM 82b2a455-3faf-4162-8276-63a1093fcc7e 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__NTLM_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 エンドポイント用とすることができます。

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

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

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

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

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

![SharePointChoiceMultiSelect](/mulesoft/current/ja-jp/microsoft-sharepoint-2013-connector/latest/_images/sharepointchoicemultiselect.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 バージョンをサポートしますか?

SharePoint Connector は、SharePoint 2013 オンプレミスバージョンと SharePoint オンラインバージョンをサポートします。

### [](#コネクタでサポートされる認証スキームは)コネクタでサポートされる認証スキームは?

オンプレミスの SharePoint インスタンスに対する認証のオプションには、クレーム認証 (ADFS) と NTLM があります。SharePoint Online では、標準の SharePoint Online ユーザーログイン情報を使用した認証がサポートされます。

### [](#コネクタからは-sharepoint-オブジェクトモデルのどの部分にアクセスできますか)コネクタからは SharePoint オブジェクトモデルのどの部分にアクセスできますか?

ファイルおよびフォルダー、リスト、リスト項目、および添付ファイルに対する特定のサポートが提供されます。さらに、SharePoint API の他のすべてのエンティティには、ResolveObject 操作と ResolveCollection 操作を介して JSON 形式でアクセスできます。

### [](#このコネクタでは-datasense-はサポートされますか)このコネクタでは DataSense はサポートされますか?

はい。サポートされるすべてのエンティティとエンティティ属性はコネクタによって Studio に提供され、DataSense で使用できます。

### [](#このコネクタではどのような操作を実行できますか)このコネクタではどのような操作を実行できますか?

リストおよびリスト項目の 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-connector-samples.zip](https://docs.mulesoft.com/jp/microsoft-sharepoint-2013-connector/latest/_attachments%E2%80%8B/sharepoint-connector-samples.zip) では、Anypoint Studio のサンプルプロジェクトを無料で利用できます。

### [](#このコネクタはどの-mule-エディションで使用できますか)このコネクタはどの Mule エディションで使用できますか?

このコネクタは、CloudHub インテグレーション PaaS など、あらゆるビットのあらゆるオペレーティングシステムで動作しているすべての Enterprise Edition Anypoint プラットフォームでサポートされます。

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

- [Mule Expression Language (MEL)](#3.9@mule-runtime::mule-expression-language-mel.adoc)
- [エンドポイントの設定](#3.9@mule-runtime::endpoint-configuration-reference.adoc)
- [Studio トランスフォーマー](#3.9@mule-runtime::transformers.adoc)
- [フロー参照](#3.9@mule-runtime::flow-reference-component-reference.adoc)
- [Exchange での Microsoft SharePoint 2013 Connector](https://www.mulesoft.com/exchange/org.mule.modules/mule-module-sharepoint/)
- [MuleSoft ヘルプセンター](https://help.mulesoft.com)