Xrm.Mobile.offline (クライアント側の参照)

 

公開日: 2017年1月

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

Xrm.Mobile.offline 名前空間は、オフライン モードを使用中に Dynamics 365 モバイル クライアント (電話用 Dynamics 365 および タブレット PC 用 Dynamics 365) のレコードを作成および管理するメソッドを提供します。

注意

Xrm.Mobile.offline 名前空間は Dynamics 365 用 2016 年 12 月の更新プログラム (オンラインおよび設置型) に導入されました。

この Xrm.Mobile.offline 名前空間の下にあるこれらのクライアント API は、オフライン モードのときおよび Mobile Offline 同期ができるエンティティに対してのみ有効です。詳細:ヘルプとトレーニング: 電話およびタブレット用 CRM の Mobile offline 同期の構成

重要

オフライン モードでレコードを作成、または更新する場合、基本的な検証のみが入力データで実行されます。 基本的な検証には指定されたエンティティ属性の名前が小文字であることおよびエンティティに存在すること、指定された属性値がデータ タイプと一致しないこと、同じ GUID 値でレコードが作成されないこと、関連するエンティティを取得する際に関連するエンティティがオフラインで有効になるかどうか、取得、更新、削除するレコードが実際にオフライン データ ストアに存在するかどうかを検証します。 ビジネス レベルでは、Dynamics 365 サーバーに接続してデータを同期した場合のみ検証されます。 入力データが完全に有効な場合にのみ、Dynamics 365 にレコードが作成、または更新されます。

このトピックの内容

isOfflineEnabled

createRecord

retrieveRecord

retrieveMultipleRecords

updateRecord

deleteRecord

isOfflineEnabled

エンティティをオフラインで使用できるかどうかを返します。

Xrm.Mobile.offline.isOfflineEnabled("entityType")
  • パラメーター
    種類: 文字列。Dynamics 365 のエンティティの種類。 たとえば、「account」。Dynamics 365 のエンティティの種類の詳細については、「Web API EntityType Reference」を参照してください。

  • 戻り値
    種類: ブール値。True エンティティがオフラインで有効; それ以外の場合 false。

createRecord

オフライン モードでの作業中に、Dynamics 365 モバイル クライアントのエンティティ レコードを作成します。

Xrm.Mobile.offline.createRecord(entityType, data).then(successCallback, errorCallback)

retrieveRecord

オフライン モードでの作業中に、Dynamics 365 モバイル クライアントのエンティティ レコードを取得します。

Xrm.Mobile.offline.retrieveRecord(entityType, id, options).then(successCallback, errorCallback)
  • パラメーター

    名前

    必須出席者

    説明

    entityType

    文字列

    不可

    レコードを取得する Dynamics 365 エンティティの種類。 たとえば、「account」。Dynamics 365 のエンティティの種類の詳細については、「Web API EntityType Reference」を参照してください。

    id

    文字列

    不可

    取得するレコードの GUID。

    オプション

    文字列

    不可

    データを取得する OData システム クエリ オプション。 以下のシステム クエリ オプションをサポートしています: $select および $expand

    • $expand を使用するためには、関連エンティティをオフラインで使用できるようにする必要があります。 たとえば、アカウントレコードに関連付けられているコンタクトを取得するために、アカウント エンティティおよびコンタクト エンティティは、オフラインで使用できるようにする必要があります。

    • ? で始まるクエリ オプションを指定します。 複数のクエリ オプションを指定するには、クエリ オプションを & で区切ります。 たとえば、次のようになります。

      ?$select=name&$expand=primarycontactid($select=contactid,fullname)

    ヒント

    パフォーマンスのベスト プラクティスとしては、$select クエリ オプションを使用して取得するプロパティの数を制限します。 さもなければ、すべてのプロパティが取得されます。

    また、$expand オプションを使用して、関連するエンティティのプロパティ名を取得する間に、ナビゲーション プロパティの名前を入れるだけで、関連するレコードに対するすべてのプロパティが返されます。$expand のナビゲーション プロパティ名の後にかっこで示される、$select システム クエリ オプションを使用して、関連レコードに対して返されるプロパティを制限できます。 詳細: ナビゲーション プロパティの拡張によるエンティティに関連するエンティティの取得

    successCallback

    機能

    不可

    レコードを取得した場合に呼び出す関数。 次のプロパティを持つオブジェクトが渡され、取得されたレコードが識別されます:

    • id: 文字列。 取得されたレコードの GUID。

    • logicalName: 文字列。 エンティティの論理名。

    errorCallback

    機能

    不可

    処理が失敗したときに呼び出す関数。 次のプロパティを持つオブジェクトが渡されます。

    • errorCode: 数値。 エラー コード。

    • message: 文字列。 問題を示すエラー メッセージが表示されます。

    • debugMessage: 文字列。 問題に関する詳細が含まれる可能性がある内部エラー メッセージ。

  • 制限

    • $expand 内で $select オプションのみを指定できます。

    • オフライン モードでレコードを取得するために、次の属性の種類のみがサポートされます: BigInt、Boolean、Customer、DateTime、Decimal、Double、EntityName、Integer、Lookup、Memo、Money、Owner、Picklist、String、State、Status、および UniqueIdentifier。

retrieveMultipleRecords

オフライン モードでの作業中に、Dynamics 365 モバイル クライアントのエンティティ レコードのコレクションを取得します。

Xrm.Mobile.offline.retrieveMultipleRecords(entityType, options, maxPageSize).then(successCallback, errorCallback)
  • パラメーター

    名前

    必須出席者

    説明

    entityType

    文字列

    不可

    レコードを取得する Dynamics 365 エンティティの種類。 たとえば、「account」。Dynamics 365 のエンティティの種類の詳細については、「Web API EntityType Reference」を参照してください。

    オプション

    文字列

    不可

    データを取得する OData システム クエリ オプション、または FetchXML クエリ。 以下のシステム クエリ オプションをサポートしています: $select$top$filter$expand、および $orderby

    • $filter では、結果のフィルター セクションで説明した標準フィルタ演算子のみサポートされます; 標準のクエリ関数はサポートされていません

    • $expand を使用するためには、関連エンティティをオフラインで使用できるようにする必要があります。 たとえば、アカウントレコードのためのコンタクトを取得するために、アカウント エンティティおよびコンタクト エンティティは、オフラインで使用できるようにする必要があります。 関連するエンティティを取得するエンティティのために コレクション値のナビゲーション プロパティ で展開した場合、[NavigationPropertyName]@odata.nextLink プロパティは関連するエンティティに返されます。 たとえば、primarycontactid ナビゲーション プロパティで展開する場合、primarycontactid@odata.nextLink に返されます。 必要なデータを返すには、新しい GET リクエストで、primarycontactid@odata.nextLink プロパティの値を 使用する必要があります。

    • ? で始まるクエリ オプションを指定します。 複数のクエリ オプションを指定するには、クエリ オプションを & で区切ります。 たとえば、次のようになります。

      ?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname)

      FetchXML クエリを指定するには、クエリを指定する fetchXml パラメーターを使用します:

      ?fetchXml=<FetchXML>

      FetchXml を使用して、基本エンティティの属性のみを取得できます。

    たとえば、クエリ オプションを使用した複数コールの取得例を以下に示します:

    Xrm.Mobile.offline.retrieveMultipleRecords("account", "?select=name,revenue,&$orderby=revenue&$filter=revenue ne '60000.00'", null)

    maxPageSize

    整数

    不可

    ページごとに返されるエンティティ レコードの数を表す、正の数を指定します。 このパラメーターを指定しない場合、既定の 5000 が渡されます。

    取得するレコードの数が、maxPageSize より多い場合は、@odata.nextLink プロパティが返され、次のレコードのセットを返す新しい GET リクエストに @odata.nextLink のプロパティの値を使用できます。 詳細: ページに戻すエンティティ数の指定

    successCallback

    機能

    不可

    レコードを取得した場合に呼び出す関数。 取得した key : value のペアを含むディクショナリが、取得されたレコードを確認するために渡されます。

    errorCallback

    機能

    不可

    処理が失敗したときに呼び出す関数。 次のプロパティを持つオブジェクトが渡されます。

    • errorCode: 数値。 エラー コード。

    • message: 文字列。 問題を示すエラー メッセージが表示されます。

    • debugMessage: 文字列。 問題に関する詳細が含まれる可能性がある内部エラー メッセージ。

  • 制限

    • $expand の使用時に最大 5000 の関連レコードを取得できます。

    • $expand 内で $select オプションのみを指定できます。

    • $skip クエリオプションがサポートされていない。

    • オフライン モードでレコードを取得するために、次の属性の種類のみがサポートされます: BigInt、Boolean、Customer、DateTime、Decimal、Double、EntityName、Integer、Lookup、Memo、Money、Owner、Picklist、String、State、Status、および UniqueIdentifier。

updateRecord

オフライン モードでの作業中に、Dynamics 365 モバイル クライアントのエンティティ レコードを更新します。

Xrm.Mobile.offline.updateRecord(entityType, id, data).then(successCallback, errorCallback)
  • パラメーター

    名前

    必須出席者

    説明

    entityType

    文字列

    不可

    レコードをアップデートする Dynamics 365 エンティティの種類。 たとえば、「account」。Dynamics 365 のエンティティの種類の詳細については、「Web API EntityType Reference」を参照してください。

    id

    文字列

    不可

    更新するレコードの GUID。

    data

    オブジェクト

    不可

    key : value ペアを含むディクショナリ オブジェクト、key が更新するプロパティの論理名、value は、プロパティの更新する値です。 ディクショナリオブジェクトで指定するプロパティと値のみが、レコード用に更新されます。 たとえば、次のようになります。

    var myUpdatedAccount = {};
    myUpdatedAccount.name = "Changed Account Name";
    myUpdatedAccount.revenue = "60000.00";

    successCallback

    機能

    不可

    レコードを更新した場合に呼び出す関数。 次のプロパティを持つオブジェクトが渡され、更新されたレコードが識別されます:

    • id: 文字列。 更新されたレコードの GUID。

    • logicalName: 文字列。 エンティティの論理名。

    errorCallback

    機能

    不可

    処理が失敗したときに呼び出す関数。 次のプロパティを持つオブジェクトが渡されます。

    • errorCode: 数値。 エラー コード。

    • message: 文字列。 問題を示すエラー メッセージが表示されます。

    • debugMessage: 文字列。 問題に関する詳細が含まれる可能性がある内部エラー メッセージ。

  • 制限

    • 交差および活動関係者エンティティを更新することはできません。

    • オフライン モードでレコードを取得するために、次の属性の種類のみがサポートされます: BigInt、Boolean、Customer、DateTime、Decimal、Double、EntityName、Integer、Lookup、Memo、Money、Owner、Picklist、String、State、Status、および UniqueIdentifier。

deleteRecord

オフライン モードでの作業中に、Dynamics 365 モバイル クライアントのエンティティ レコードを削除します。

Xrm.Mobile.offline.deleteRecord(entityType, id).then(successCallback, errorCallback)
  • パラメーター

    名前

    必須出席者

    説明

    entityType

    文字列

    不可

    レコードを削除する Dynamics 365 エンティティの種類。 たとえば、「account」。Dynamics 365 のエンティティの種類の詳細については、「Web API EntityType Reference」を参照してください。

    id

    文字列

    不可

    削除するレコードの GUID。

    successCallback

    機能

    不可

    レコードを削除した場合に呼び出す関数。 次のプロパティを持つオブジェクトが渡され、削除されたレコードが識別されます:

    • id: 文字列。 削除されたレコードの GUID。

    • logicalName: 文字列。 エンティティの論理名。

    errorCallback

    機能

    不可

    処理が失敗したときに呼び出す関数。 次のプロパティを持つオブジェクトが渡されます。

    • errorCode: 数値。 エラー コード。

    • message: 文字列。 問題を示すエラー メッセージが表示されます。

    • debugMessage: 文字列。 問題に関する詳細が含まれる可能性がある内部エラー メッセージ。

  • 制限
    交差および活動関係者エンティティを削除することはできません。

関連項目

電話用およびタブレット PC 用 Dynamics 365 のスクリプトの記述とデバッグ
クライアント側のプログラミング リファレンス

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権