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 和 平板電腦用 Dynamics 365),同時以離線模式工作。

備註

Xrm.Mobile.offline 命名空間已在 Dynamics 365 (Online 和內部部署) 的 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 中的實體類型。 例如:「客戶」。 如需 Dynamics 365 中實體類型的詳細資訊,請參閱 Web API EntityType Reference

  • 傳回值
    類型: 布林。 如果實體已離線啟用則為 True,否則為 false。

createRecord

在 Dynamics 365 行動用戶端中建立實體記錄,同時在離線模式下工作。

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

    名稱

    類型

    出席者

    描述

    entityType

    字串

    Dynamics 365 中的實體類型,您要為其建立記錄。 例如:「客戶」。 如需 Dynamics 365 中實體類型的詳細資訊,請參閱 Web API EntityType Reference

    資料

    物件

    包含 key : value 配對的字典物件,其中 key 是實體集的屬性,value 是您要用於建立實體記錄的屬性值。 例如,定義以下物件來建立客戶:

    var myAccount = {};
    myAccount.name = "Sample Account Name";
    myAccount.accountid = "2724A2AF-697E-E611-80DB-00155DB412B4";
    myAccount.parentaccountid = {
    "logicalname": "account",
    "id": "76BE5E4A-5990-E611-80DA-00155DD8BA2D"
    };
    myAccount.revenue = "60000.00";
    myAccount.primarycontactid = {
    "logicalname": "contact",
    "id": "76BE5E4A-5990-E611-80DA-00155DD8BA2D"
    };
    myAccount.new_customdate = new Date("September 29, 2016 12:00:00");
    

    如需 Dynamics 365 中實體類型及其屬性的詳細資訊,請參閱 Web API EntityType Reference

    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。

retrieveRecord

在 Dynamics 365 行動用戶端中擷取實體記錄,同時在離線模式下工作。

Xrm.Mobile.offline.retrieveRecord(entityType, id, options).then(successCallback, errorCallback)
  • 參數

    名稱

    類型

    出席者

    描述

    entityType

    字串

    Dynamics 365 中的實體類型,您要擷取其記錄。 例如:「客戶」。 如需 Dynamics 365 中實體類型的詳細資訊,請參閱 Web API EntityType Reference

    識別碼

    字串

    您要擷取的記錄的 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 中的實體類型,您要擷取其記錄。 例如:「客戶」。 如需 Dynamics 365 中實體類型的詳細資訊,請參閱 Web API EntityType Reference

    選項

    字串

    OData 系統查詢選項或 FetchXML 查詢,用來擷取資料。 以下是支援的系統查詢選項:$select$top$filter$expand$orderby

    • 若是 $filter,只支援在 篩選結果 區段底下提到的標準篩選運算子;不支援標準查詢函數

    • 若要使用 $expand,也必須離線啟用相關的實體。 例如,若要擷取客戶記錄的連絡人,則必須同時離線啟用客戶和連絡人實體。 若要展開實體的集合值導覽屬性以擷取相關實體,將會傳回相關實體的 [NavigationPropertyName]@odata.nextLink 屬性。 例如,如果您要展開 primarycontactid 導覽屬性,它會傳回 primarycontactid@odata.nextLink。 您應使用 primarycontactid@odata.nextLink 屬性的值與新的 GET 要求傳回需要的資料。

    • 您指定開頭為 ? 的查詢選項。 若要指定多個查詢選項,使用 & 分隔查詢選項。 例如:

      ?$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 屬性將會傳回,您可以使用 @odata.nextLink 屬性的值與新的 GET 要求傳回下一組記錄。 其他資訊:指定頁面中要傳回的實體數目

    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 中的實體類型,您要更新其記錄。 例如:「客戶」。 如需 Dynamics 365 中實體類型的詳細資訊,請參閱 Web API EntityType Reference

    識別碼

    字串

    您要更新的記錄的 GUID。

    資料

    物件

    包含 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 中的實體類型,您要刪除其記錄。 例如:「客戶」。 如需 Dynamics 365 中實體類型的詳細資訊,請參閱 Web API EntityType Reference

    識別碼

    字串

    您要刪除的記錄的 GUID。

    successCallback

    函數

    刪除記錄時呼叫的函數。 具有下列屬性的物件將會傳遞,以識別刪除的記錄:

    • id:字串。 所刪除記錄的 GUID。

    • logicalName:字串。 實體的邏輯名稱。

    errorCallback

    函數

    作業失敗時呼叫的函數。 具有下列屬性的物件將會傳遞:

    • errorCode:數字。 錯誤碼。

    • message:字串。 描述問題的錯誤訊息。

    • debugMessage:字串。 可能包含有關問題的其他詳細資料的內部錯誤訊息。

  • 限制
    您無法刪除交集和活動當事人實體。

另請參閱

為行動電話和平板電腦用 Dynamics 365 撰寫指令碼並偵錯
用戶端程式設計參考

Microsoft Dynamics 365

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權