Microsoft Dynamics 365 Web API の制限

 

公開日: 2017年1月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

Microsoft Dynamics 365 Web API には組織サービスの機能を持つ完全なパリティが用意されています。Microsoft Dynamics 365 (オンラインおよび設置型) のために、このトピックでは一部の制限について説明します。

このトピックの内容

Microsoft Dynamics 365 用 2016 年 12 月の更新プログラム (オンライン) および Microsoft Dynamics 365 用 2016 年 12 月 Service Pack (設置型) の制限

Microsoft Dynamics 365 用 2016 年 12 月の更新プログラム (オンライン) および Microsoft Dynamics 365 用 2016 年 12 月 Service Pack (設置型) で対処された制限

Microsoft Dynamics CRM Online 2016 更新プログラム 1 および Microsoft Dynamics CRM 2016 Service Pack 1 で対処された制限

Microsoft Dynamics CRM Online 2016 更新プログラム 0.1 および Microsoft Dynamics CRM 2016 更新プログラム 0.1 で対処された制限

Microsoft Dynamics 365 用 2016 年 12 月の更新プログラム (オンライン) および Microsoft Dynamics 365 用 2016 年 12 月 Service Pack (設置型) の制限

このセクションでは、Microsoft Dynamics 365 用 2016 年 12 月の更新プログラム (オンライン) および Microsoft Dynamics 365 用 2016 年 12 月 Service Pack (設置型) の制限に関する情報が提供されます。

  • Web API で使用できない、ユーザー定義のアクション

  • 一部の組織サービス メッセージにない機能とアクション

Web API で使用できない、ユーザー定義のアクション

複雑な戻り値と簡易な戻り値を含むユーザー定義のアクションを定義する場合は、対応するアクションは Web API ではなく、2011 SOAP エンドポイントを使用した場合のみ有効です。 複雑な戻り値は、EntityReferenceEntity、または EntityCollection です。 簡易な戻り値、または 1 つの複雑な戻り値の組み合わせを含めることができます。詳細:独自のアクションの作成

一部の組織サービス メッセージにない機能とアクション

次の表には、Microsoft Dynamics 365 用 2016 年 12 月の更新プログラム (オンライン) および Microsoft Dynamics 365 用 2016 年 12 月 Service Pack (設置型) が適用されると、対応する機能またはアクションがないメッセージを示します。

GrantAccessRequest

ModifyAccessRequest

ReactivateEntityKeyRequest

RemoveMemberListRequest

RemoveItemCampaignRequest

RemoveItemCampaignActivityRequest

初期リリースからなくなった機能およびアクションのリストのために、このリストと Microsoft Dynamics CRM Online 2016 更新プログラム 0.1 および Microsoft Dynamics CRM 2016 更新プログラム 0.1 に追加された機能とアクション および Microsoft Dynamics CRM Online 2016 更新プログラム 1 および Microsoft Dynamics CRM 2016 Service Pack 1 に追加された機能とアクション のリストを結合します。

Microsoft Dynamics 365 用 2016 年 12 月の更新プログラム (オンライン) および Microsoft Dynamics 365 用 2016 年 12 月 Service Pack (設置型) で対処された制限

このセクションでは、Microsoft Dynamics 365 用 2016 年 12 月の更新プログラム (オンライン) および Microsoft Dynamics 365 用 2016 年 12 月 Service Pack (設置型) の制限に関する情報が提供されます。

  • ユーザーがオフラインのときに オフライン アクセス対応 Outlook 用 Microsoft Dynamics 365 で無効な Web API

  • 日付値をクエリできません

  • エンティティ コレクション パラメータを他のパラメーターと共に使用してアクションを呼び出すとき、コレクション パラメーターはボディ内の最新のパラメーターとして渡される必要があります

  • 顧客検索属性を作成できません

  • 非公開メタデータを取得できない

追加された新しい操作

Microsoft Dynamics 365 用 2016 年 12 月の更新プログラム (オンライン) および Microsoft Dynamics 365 用 2016 年 12 月 Service Pack (設置型) の Web API に次の操作が追加されています。

QualifyLead Action

RetrieveByResourcesService Function

RetrieveFilteredForms Function

ユーザーがオフラインのときに オフライン アクセス対応 Outlook 用 Microsoft Dynamics 365 で無効な Web API

注意

この問題は Microsoft Dynamics 365 用 2016 年 12 月の更新プログラム (オンライン) および Microsoft Dynamics 365 用 2016 年 12 月 Service Pack (設置型) で対処されます。

フォーム スクリプト、リボン コマンド、または HTML Web リソースで実行する JavaScript コードは、Web API を使用することができません。 ユーザーがオフラインの時に使用するローカル サーバーが有効になりました。

日付値をクエリできません

この問題は実際は制限ではなく、構文の問題です。 フィルターの値として日付を指定する場合は、シングル クォーテーションを使用しないでください。

取引先担当者の誕生日などの日付のプロパティでクエリする時、次のクエリ構文を使用できます。

/contacts?$select=fullname,birthdate&$filter=birthdate eq 1990-01-01

次の構文には使用できません。

/contacts?$select=fullname,birthdate&$filter=birthdate eq '1990-01-01'

エンティティ コレクション パラメータを他のパラメーターと共に使用してアクションを呼び出すとき、コレクション パラメーターはボディ内の最新のパラメーターとして渡される必要があります

注意

この問題は Microsoft Dynamics 365 用 2016 年 12 月の更新プログラム (オンライン) および Microsoft Dynamics 365 用 2016 年 12 月 Service Pack (設置型) で対処されます。

以下のアクションには、他のパラメーターに加え、エンティティ コレクション パラメーターが含まれています。

AddListMembersList Action

AddPrivilegesRole Action

CompoundUpdateDuplicateDetectionRule Action

DeliverIncomingEmail Action

DeliverPromoteEmail Action

InstantiateTemplate Action

QualifyMemberList Action

ReplacePrivilegesRole Action

SendTemplate Action

SetLocLabels Action

Microsoft Dynamics 365 用 2016 年 12 月の更新プログラム (オンライン) および Microsoft Dynamics 365 用 2016 年 12 月 Service Pack (設置型) の前に、これらのアクションを使用するときは、エンティティ コレクションを含むパラメータが、JSON の最新のパラメーターとして渡される必要があります。そうでない場合は、エラーが返されます。 たとえば、QualifyMemberList Action を使用して以下の仕方でパラメーター値を渡すと、エラーが発生します。

{
"ListMember": [
  {
   "@odata.type": "Microsoft.Dynamics.CRM.account",
   "accountid": "483F8080-6976-E511-9172-0024E8436263"
  },
  {
   "@odata.type": "Microsoft.Dynamics.CRM.account",
   "accountid": "4D3F8080-6976-E511-9172-0024E8436263"
  }
 ],
"OverrideorRemove": true
}

ただし、以下のものは成功します。

{
 "OverrideorRemove": true,
 "ListMember": [
  {
   "@odata.type": "Microsoft.Dynamics.CRM.account",
   "accountid": "483F8080-6976-E511-9172-0024E8436263"
  },
  {
   "@odata.type": "Microsoft.Dynamics.CRM.account",
   "accountid": "4D3F8080-6976-E511-9172-0024E8436263"
  }
 ]
}

顧客検索属性を作成できません

注意

この問題は Microsoft Dynamics 365 用 2016 年 12 月の更新プログラム (オンライン) および Microsoft Dynamics 365 用 2016 年 12 月 Service Pack (設置型) で対処されます。

Microsoft Dynamics CRM Online 2016 更新プログラム 1 および Microsoft Dynamics CRM 2016 Service Pack 1 では、Web API を使用して顧客の検索属性を作成することはできません。

Microsoft Dynamics 365 用 2016 年 12 月の更新プログラム (オンライン) および Microsoft Dynamics 365 用 2016 年 12 月 Service Pack (設置型) を使用して Web API でカスタマー検索属性を作成するには、顧客検索属性の作成 を参照してください。

非公開メタデータを取得できない

注意

この問題は Microsoft Dynamics 365 用 2016 年 12 月の更新プログラム (オンライン) および Microsoft Dynamics 365 用 2016 年 12 月 Service Pack (設置型) で対処されます。

メタデータを取得する組織サービス メッセージには、公開によりコミットされていないメタデータ定義を返すオプションを提供する、RetrieveAsIfPublished パラメーターが含まれます。 この機能は、メタデータを編集するために使用するアプリケーションを作成するとき、およびコミットされていない変更の保存を許可する必要があるときに便利です。Microsoft Dynamics CRM Online 2016 更新プログラム 1 および Microsoft Dynamics CRM 2016 Service Pack 1 では、メタデータ取得オペレーションのすべては、公開済みメタデータのみを返します。詳細:Web API を Dynamics 365 メタデータで使用する および カスタマイズの公開

Microsoft Dynamics CRM Online 2016 更新プログラム 1 および Microsoft Dynamics CRM 2016 Service Pack 1 で対処された制限

Microsoft Dynamics CRM Online 2016 更新プログラム 1 および Microsoft Dynamics CRM 2016 Service Pack 1 には機能とアクションが追加され、Web API の次の問題が対処されています。

  • Microsoft Dynamics CRM Online 2016 更新プログラム 1 および Microsoft Dynamics CRM 2016 Service Pack 1 に追加された機能とアクション

  • 単一値ナビゲーション プロパティの値に基づいてクエリをフィルタ処理できない

Microsoft Dynamics CRM Online 2016 更新プログラム 1 および Microsoft Dynamics CRM 2016 Service Pack 1 に追加された機能とアクション

次の表には、Microsoft Dynamics CRM Online 2016 更新プログラム 1 および Microsoft Dynamics CRM 2016 Service Pack 1 のために追加された機能とアクションが一覧されています。

Book Action

Reschedule Action

CalculateRollupField Function

単一値ナビゲーション プロパティの値に基づいてクエリをフィルタ処理できない

注意

この問題は Microsoft Dynamics CRM Online 2016 更新プログラム 1 および Microsoft Dynamics CRM 2016 Service Pack 1 で適切に対処されます。 ナビゲーション プロパティが参照先エンティティのプライマリ属性値を参照する場合、単一値ナビゲーション プロパティのクエリをフィルター処理できるようになりました。詳細:単一値のナビゲーション プロパティに基づくレコードのフィルター処理

単一値ナビゲーション プロパティのプロパティをクエリ内のフィルターとして使用する場合、501 エラーが表示されます。 たとえば、次のクエリでは、関連する取引先責任者の firstname プロパティ値が "Renee" であるすべての取引先企業を返そうとします。

  • 要求

    GET 
    [Organization URI]/api/data/v8.0/accounts?$select=name&$filter=primarycontactid/firstname eq 'Renee' HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
  • 応答

    HTTP/1.1 501 Not Implemented
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0
    
    {  
     "error": {    
      "code": "",
       "message": "The query node (0) is not supported",
       "innererror": {      
       "message": "The query node (0) is not supported",
       "type": "Microsoft.Crm.CrmHttpException",
       "stacktrace": 
                            <stacktrace value removed for brevity>
      }  
     }
    }
    

Microsoft Dynamics CRM Online 2016 更新プログラム 0.1 および Microsoft Dynamics CRM 2016 更新プログラム 0.1 で対処された制限

Microsoft Dynamics CRM Online 2016 更新プログラム 0.1 と Microsoft Dynamics CRM Online 2016 更新プログラム 0.1 には機能とアクションが追加され、Web API の次の問題が対処されました。

  • Microsoft Dynamics CRM Online 2016 更新プログラム 0.1 および Microsoft Dynamics CRM 2016 更新プログラム 0.1 に追加された機能とアクション

  • 自己参照の多対多関係をクエリするときのエラー

  • 一部の $expand 式の $select が無視される場合がある

  • null 値がある場合、$expand クエリから単一値ナビゲーション プロパティが返されない場合があります

  • activitypointer にリンクされた FetchXML クエリにリンクされたフィールドが含まれない場合がある

  • 展開されたナビゲーション プロパティの結果で null 値のプロパティが返されない場合がある

Microsoft Dynamics CRM Online 2016 更新プログラム 0.1 および Microsoft Dynamics CRM 2016 更新プログラム 0.1 に追加された機能とアクション

次の表には、Microsoft Dynamics CRM Online 2016 更新プログラム 0.1 および Microsoft Dynamics CRM 2016 更新プログラム 0.1 のために追加された機能とアクションが一覧されています。

CheckIncomingEmail Function

FindParentResourceGroup Function

GetQuantityDecimal Function

IncrementKnowledgeArticleViewCount Function

InitializeFrom Function

IsValidStateTransition Function

QueryMultipleSchedules Function

RetrieveAllEntities Function

RetrieveDuplicates Function

RetrieveLocLabels Function

RetrievePrincipalAccess Function

RetrieveRecordWall Function

RetrieveUnpublishedMultiple Function

SearchByBodyKbArticle Function

SearchByKeywordsKbArticle Function

SearchByTitleKbArticle Function

ValidateRecurrenceRule Function

自己参照の多対多関係をクエリするときのエラー

注意

この問題は Microsoft Dynamics CRM Online 2016 更新プログラム 0.1 および Microsoft Dynamics CRM 2016 更新プログラム 0.1 で対処されます。

自己参照の多対多関連付けを持つ 2 つのシステム エンティティがあります。connectionrole EntityType には connectionroleassociation_association があり、campaign EntityType には campaigncampaign_association があります。 これらのコレクション値ナビゲーション プロパティを使用するクエリを試みる場合、以下の HTTP Status 400 エラーが発生します。Reflexive relationship must specify direction using ReflexiveManyToManyRelationship.

これらの多対多関連付けを使用してデータをクエリする必要がある場合、代わりに交差エンティティを使用することができます。campaigncampaign_association コレクション値ナビゲーション プロパティの場合、campaignitem EntityType エンティティが、その関連付けを定義する特別な交差エンティティです。connectionroleassociation_association の場合、connectionroleassociation は、この多対多関連付けを定義するデータを含む、通常の交差エンティティです。 通常の交差エンティティは参照ドキュメントに含まれていませんが、Web API で利用することができます。connectionroleassociation エンティティには、URI /api/data/v8.0/connectionroleassociations を使用してアクセスすることができます。詳細:コレクション値ナビゲーション プロパティ

一部の $expand 式の $select が無視される場合がある

注意

この問題は Microsoft Dynamics CRM Online 2016 更新プログラム 0.1 および Microsoft Dynamics CRM 2016 更新プログラム 0.1 で対処されます。

2 つのナビゲーション プロパティを取得するとき、最後のナビゲーション プロパティに $select クエリ オプションがない場合、最初のナビゲーション プロパティのすべてのプロパティが返されます。 たとえば、以下のクエリを作成するとします。

GET 
[Organization URI]/api/data/v8.0/accounts(0495779B-F67F-E511-80C2-00155DB09B03)$select=name&$expand=contact_customer_accounts($select=lastname),opportunity_customer_accounts

取引先企業の name プロパティ、 contact_customer_accounts を使用して関連付けられた取引先企業の lastname、および opportunity_customer_accounts を使用して関連付けられた営業案件のプロパティすべてを予期します。

ただし、取引先担当者のすべてのプロパティと、関連する営業案件のすべてのプロパティが取得されます。 すべての取得操作では常に $select を使用してプロパティを制限するのが最善です。このベスト プラクティスに従うと最高のパフォーマンスを得ることができ、必要以上のデータを取得することはありません。

null 値がある場合、$expand クエリから単一値ナビゲーション プロパティが返されない場合があります

注意

この問題は Microsoft Dynamics CRM Online 2016 更新プログラム 0.1 および Microsoft Dynamics CRM 2016 更新プログラム 0.1 で対処されます。

OData 仕様 によれば、単一ナビゲーション プロパティを展開するときに値が含まれていない場合、プロパティは null セットと共に含まれる必要があります。 現在の動作では、プロパティは JSON 応答に含まれません。 次の例では、取引先企業 primarycontactid の単一値ナビゲーション プロパティが要求されますが、そのナビゲーション プロパティに関連付けられた取引先担当者がないため、値は null です。

  • 要求

    GET 
    [Organization URI]/api/data/v8.0/accounts(25DD0B31-ED8B-E511-80D2-00155D2A68D4)?$select=name&$expand=primarycontactid($select=fullname) HTTP/1.1
    Accept: application/json
    Content-Type: application/json; charset=utf-8
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
  • 予想される応答

    HTTP/1.1 200 OK
    OData-Version: 4.0
    
    {
     "@odata.context": "
    [Organization URI]/api/data/v8.0/$metadata#accounts(name,primarycontactid,primarycontactid(fullname))/$entity",
     "@odata.etag": "W/\"504724\"",
     "name": "A. Datum Corporation (sample)",
     "accountid": "25dd0b31-ed8b-e511-80d2-00155d2a68d4",
     "primarycontactid": null
    }
    
  • 実際の応答

    HTTP/1.1 200 OK
    OData-Version: 4.0
    
    {
     "@odata.context": "
    [Organization URI]/api/data/v8.0/$metadata#accounts(name,primarycontactid,primarycontactid(fullname))/$entity",
     "@odata.etag": "W/\"504724\"",
     "name": "A. Datum Corporation (sample)",
     "accountid": "25dd0b31-ed8b-e511-80d2-00155d2a68d4"
    }
    

activitypointer にリンクされた FetchXML クエリにリンクされたフィールドが含まれない場合がある

注意

この問題は Microsoft Dynamics CRM Online 2016 更新プログラム 0.1 および Microsoft Dynamics CRM 2016 更新プログラム 0.1 で対処されます。

リンクされたエンティティとして activitypointer を含む FetchXML を使用するクエリを作成する場合、プロパティ値は null です。 たとえば、以下の FetchXML を使用するとします。

<fetch version="1.0"
       output-format="xml-platform"
       mapping="logical"
       distinct="true">
  <entity name="account">
    <attribute name="name" />
    <link-entity name="activitypointer"
                 from="regardingobjectid"
                 to="accountid"
                 link-type="inner">
      <attribute name="subject" />
    </link-entity>
  </entity>
</fetch>

関連する activitypointer を要求します。subject 値が返されます。 実際の値が存在する時に、null 値で返されます。

  • 要求

    GET 
    [Organization URI]/api/data/v8.0/accounts?fetchXml=%3Cfetch%20version=%221.0%22%20output-format=%22xml-platform%22%20mapping=%22logical%22%20distinct=%22true%22%3E%3Centity%20name=%22account%22%3E%3Cattribute%20name=%22name%22%20/%3E%3Clink-entity%20name=%22activitypointer%22%20from=%22regardingobjectid%22%20to=%22accountid%22%20link-type=%22inner%22%3E%3Cattribute%20name=%22subject%22%20/%3E%3C/link-entity%3E%3C/entity%3E%3C/fetch%3E HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
  • 予想される応答

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0
    
    {
     "@odata.context": "
    [Organization URI]/api/data/v8.0/$metadata#accounts(name)",
     "value": [
      {
       "name": "A. Datum Corporation (sample)",
       "activitypointer1.subject": "Task Subject Value"
      }
     ]
    }
    
  • 実際の応答

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0
    
    {
     "@odata.context": "
    [Organization URI]/api/data/v8.0/$metadata#accounts(name)",
     "value": [
      {
       "name": "A. Datum Corporation (sample)",
       "activitypointer1.subject": null
      }
     ]
    }
    

詳細:ユーザー定義の FetchXML を使用する

展開されたナビゲーション プロパティの結果で null 値のプロパティが返されない場合がある

注意

この問題は Microsoft Dynamics CRM Online 2016 更新プログラム 0.1 および Microsoft Dynamics CRM 2016 更新プログラム 0.1 で対処されます。

コレクション値ナビゲーション プロパティで展開されたプロパティの 1 つが null の場合、展開プロパティが結果に含まれません。 最初の例では、取引先企業と関連付けられた取引先担当者の 1 人に null 値があるときの、展開された emailaddress1 プロパティのデータを示します。 取引先担当者に値がある場合であっても、emailaddress1 プロパティは返されません。

  • 要求

    GET 
    [Organization URI]/api/data/v8.0/accounts(25DD0B31-ED8B-E511-80D2-00155D2A68D4)?$select=name&$expand=contact_customer_accounts($select=emailaddress1,lastname,firstname) HTTP/1.1
    Accept: application/json
    Content-Type: application/json; charset=utf-8
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
  • 予想される応答

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0
    
    {
     "@odata.context": "
    [Organization URI]/api/data/v8.0/$metadata#accounts(name,contact_customer_accounts,contact_customer_accounts(emailaddress1,lastname,firstname))/$entity",
     "@odata.etag": "W/\"504724\"",
     "name": "A. Datum Corporation (sample)",
     "accountid": "25dd0b31-ed8b-e511-80d2-00155d2a68d4",
     "contact_customer_accounts": [
      {
       "@odata.etag": "W/\"504749\"",
       "emailaddress1": null,
       "lastname": "Valdes (sample)",
       "firstname": "Rene",
       "contactid": "8bdd0b31-ed8b-e511-80d2-00155d2a68d4"
      },
      {
       "@odata.etag": "W/\"503647\"",
       "emailaddress1": someone_l@example.com,
       "lastname": "Burk (sample)",
       "firstname": "Susan",
       "contactid": "91dd0b31-ed8b-e511-80d2-00155d2a68d4"
      }
     ]
    }
    
  • 実際の応答

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0
    
    {
     "@odata.context": "
    [Organization URI]/api/data/v8.0/$metadata#accounts(name,contact_customer_accounts,contact_customer_accounts(emailaddress1,lastname,firstname))/$entity",
     "@odata.etag": "W/\"504724\"",
     "name": "A. Datum Corporation (sample)",
     "accountid": "25dd0b31-ed8b-e511-80d2-00155d2a68d4",
     "contact_customer_accounts": [
      {
       "@odata.etag": "W/\"504749\"",
       "lastname": "Valdes (sample)",
       "firstname": "Rene",
       "contactid": "8bdd0b31-ed8b-e511-80d2-00155d2a68d4"
      },
      {
       "@odata.etag": "W/\"503647\"",
       "lastname": "Burk (sample)",
       "firstname": "Susan",
       "contactid": "91dd0b31-ed8b-e511-80d2-00155d2a68d4"
      }
     ]
    }
    

展開せずに直接 contact_customer_accounts コレクション値ナビゲーション プロパティを使用する次のクエリは、期待するデータを返します。

  • 要求

    GET 
    [Organization URI]/api/data/v8.0/accounts(25DD0B31-ED8B-E511-80D2-00155D2A68D4)/contact_customer_accounts?$select=emailaddress1,lastname,firstname HTTP/1.1
    Accept: application/json
    Content-Type: application/json; charset=utf-8
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
  • 応答

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0
    
    {
     "@odata.context": "
    [Organization URI]/api/data/v8.0/$metadata#contacts(emailaddress1,lastname,firstname)",
     "value": [
      {
       "@odata.etag": "W/\"504749\"",
       "emailaddress1": null,
       "lastname": "Valdes (sample)",
       "firstname": "Rene",
       "contactid": "8bdd0b31-ed8b-e511-80d2-00155d2a68d4"
      },
      {
       "@odata.etag": "W/\"503647\"",
       "emailaddress1": "someone_l@example.com",
       "lastname": "Burk (sample)",
       "firstname": "Susan",
       "contactid": "91dd0b31-ed8b-e511-80d2-00155d2a68d4"
      }
     ]
    }
    

関連項目

Microsoft Dynamics 365 Web API の使用
Web API を使用して Microsoft Dynamics 365 への認証
Web API の種類および操作
Web API を使用して演算を実行する

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権