2

親エンティティを介して子エンティティのプロパティを取得しようとしています。総勘定元帳勘定は親エンティティであり、総勘定元帳勘定に関連する総勘定元帳アクションエンティティの詳細が必要です。総勘定元帳アクションには、総勘定元帳の参照フィールドがあります。私はを使ってURLを構築し、データを取得しています。 Microsoft Documentationによるとナビゲーションプロパティの取得ダイナミックWebAPI

あなたが小さいページサイズを指定しない限り、5000個のエンティティの最大は、各要求に対して返されます。クエリフィルタ条件に一致するエンティティがさらにある場合は、結果とともに@ odata.nextLinkプロパティが返されます。 @ odata.nextLinkプロパティの値を新しいGETリクエストとともに使用して、次のページのデータを返します。

私はこの障壁を打つべきではないので、親エンティティと子エンティティを1つ返すだけです。私は、URLを使用する場合

{ 
    "@odata.context":"https://crm.com/api/data/v8.0/$metadata#ccseq_generalledgeractions","value":[ 
    { 
     "@odata.etag":"W/\"676070510\"","_organizationid_value":"ff05a89b-16b0-44a6-879c-26866b3a9d9d","ccseq_servicecode":"111","modifiedon":"2017-06-26T14:41:49Z","ccseq_generalledgernumber":"44000","ccseq_dollar":25.0000,"statecode":0,"ccseq_percent":0.0000000000,"statuscode":1,"_createdby_value":"3b0731e3-52bd-e611-80df-005056b33317","ccseq_jobclasscode":"111","ccseq_companycode":"111","_ccseq_generalledgeraccountid_value":"48513938-7d5a-e711-80e5-005056b33317","ccseq_dollar_base":25.0000,"_modifiedby_value":"3b0731e3-52bd-e611-80df-005056b33317","versionnumber":676070510,"exchangerate":1.0000000000,"ccseq_generalledgeractionid":"3e17f993-7d5a-e711-80e5-005056b33317","ccseq_geographycode":"111","createdon":"2017-06-26T14:41:49Z","_transactioncurrencyid_value":"863aa006-cae5-dc11-92e8-001a6449bbe7","_modifiedonbehalfby_value":null,"_createdonbehalfby_value":null,"utcconversiontimezonecode":null,"timezoneruleversionnumber":null,"importsequencenumber":null,"ccseq_name":null,"overriddencreatedon":null 
    } 
    ] 
} 

は:

https://crm.com/api/data/v8.0/ccseq_generalledgeraccounts?$select=ccseq_code&$expand=ccseq_generalledgeraccount_ccseq_generalledgeraction_GeneralLedgerAccountID 

を、私は結果を得る:私は結果を得る

https://crm.com/api/data/v8.0/ccseq_generalledgeraccounts(48513938-7d5a-e711-80e5-005056b33317)/ccseq_generalledgeraccount_ccseq_generalledgeraction_GeneralLedgerAccountID 

:しかし、

は、私は、URLを使用する場合

{ 
    "@odata.context":"https://crm.com/api/data/v8.0/$metadata#ccseq_generalledgeraccounts(ccseq_code,ccseq_generalledgeraccount_ccseq_generalledgeraction_GeneralLedgerAccountID)","value":[ 
    { 
     "@odata.etag":"W/\"676070286\"","ccseq_code":null,"ccseq_generalledgeraccountid":"48513938-7d5a-e711-80e5-005056b33317","ccseq_generalledgeraccount_ccseq_generalledgeraction_GeneralLedgerAccountID":[ 

     ],"ccseq_genera[email protected]odata.nextLink":"https://crminternal.cohencpa.com/COHEN/api/data/v8.0/ccseq_generalledgeraccounts(48513938-7d5a-e711-80e5-005056b33317)/ccseq_generalledgeraccount_ccseq_generalledgeraction_GeneralLedgerAccountID" 
    } 
    ] 
} 

私の理解では、これらの2つのURLは、親の&子属性のjsonオブジェクトとまったく同じデータを返さなければなりません。これらのクエリの違いは何ですか? 2番目のクエリがエンティティのjson表現の代わりにodata.nextLinkを返すのはなぜですか?

+0

総勘定元帳アクションを照会して、関連する総勘定元帳のレコードをフィルタリングしようとしましたか? 5,000レコードの制限は、クエリのプライマリターゲットエンティティにのみ適用されます。 –

答えて

1

最初のリクエストでは1つのレコードからデータを取得し、2番目の例ではすべての総勘定元帳を取得しています。

これまで想像していたように、パフォーマンスの問題を避けるために、単一のレコードまたはコレクションを取得している場合(以前はこれもサポートされておらず、例外が発生していました) 。コレクションを取得するとき、WebAPIは、@ odata.nextLinkを提供します。これは、2番目のGETを使用して子レコードを取得するために使用できることを示しています。あなたはMSDNにこの例を見ることができます

はコレクション値ナビゲーションに プロパティを拡大することで関連するエンティティを取得する:あなたが関連するエンティティを取得するために、コレクション値のナビゲーションパラメータ に展開するとエンティティセットでは、関連するエンティティに対して@ odata.nextLink プロパティが返されます。 @ odata.nextLinkプロパティの の値に新しいGET要求を使用して、 のデータを返す必要があります。

関連する問題