分享方式:


Web API 基本作業範例

 

發佈日期: 2017年1月

適用對象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

此範例群組示範如何執行基本 CRUD (建立、擷取、更新或刪除),及使用 Microsoft Dynamics 365 Web API 與作業相關聯。 此範例做為個別專案實作,提供給下列語言:

本主題描述一組常用的操作,會在這組範例中的所有範例實作。 本主題描述 HTTP 要求和回覆及文字輸入,這組範例中的每一個都會執行,沒有語言特定的詳細資料。 查看語言特定描述和個別範例,以了解如何執行這些操作的詳細資料。

示範

此範例細分成下列區段,包含 Dynamics 365 Web API 查詢資料操作,將在指定的相關概念主題中更深入討論。

程式碼區段

相關的概念主題

區段 1:基本建立和更新作業

基本建立
以傳回的資料建立
基本更新
以傳回的資料更新

區段 2:建立並產生關聯

在建立時關聯實體

區段 3:建立相關的實體 (深層插入)

在單一作業中建立相關實體

區段 4:關聯及取消關聯現有實體

使用 Web API 建立和取消實體的關聯

區段 5:刪除實體 (範例清理)

基本刪除

備註

簡單來說,已省略較不相關的 HTTP 標頭。 記錄的 URL 會隨基底組織地址與您的 Dynamics 365 伺服器指派記錄的識別碼而不同。

區段 1:基本建立和更新作業

此區段建立單一連絡人,然後對該執行個體執行一連串的更新。 請注意,回應標頭 OData-EntityId 包含此新建記錄 (實體執行個體) 的 URL,並且在括號中包含此記錄的唯一識別碼。

  1. 建立新連絡人,名為 Peter Cambel。

    HTTP 請求

    POST http://cc_WebAPI_ServiceURI/contacts HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    {
      "firstname": "Peter",
      "lastname": "Cambel"
    }
    

    HTTP 回覆

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)
    

    主控台輸出

    Contact 'Peter Cambel' created.
    

    每一種類型可用的屬性是在中繼資料文件中定義,也會在 Web API EntityType Reference 區段中針對每一種類型記載。 如需更多一般資訊,請參閱 Web API 類型和作業

  2. 更新連絡人的年收入 ($80,000) 及職稱 (Junior Developer) 的值。

    HTTP 請求

    PATCH http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    {
      "annualincome": 80000,
      "jobtitle": "Junior Developer"
    }
    

    HTTP 回覆

    HTTP/1.1 204 No Content
    

    主控台輸出

    Contact 'Peter Cambel' updated with job title and annual income.
    
  3. 擷取連絡人,與其明確初始化的屬性。fullname 是唯讀屬性,從 firstnamelastname 屬性計算而得,是在建立執行個體時明確初始化。 相反的,description 屬性未明確初始化,因此保留其預設值,null 字串。

    請注意,除了要求的值和一般標題之外,回覆也會自動傳回下列類型的其他資訊:

    • 目前實體類型的主要識別碼,此處為 contactid。

    • ETag 值,以 @odata.etag 索引鍵表示,用於識別所要求資源的特定版本。 如需詳細資訊,請參閱使用 Web API 執行條件運算

    • 中繼資料內容,以 @odata.context 索引鍵表示,提供比較查詢結果的方式,以判斷是否來自相同查詢。

    • _transactioncurrencyid_value,代表貨幣交易的當地貨幣。

    HTTP 請求

    GET http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)?$select=fullname,annualincome,jobtitle,description HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    HTTP 回覆

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0
    { 
       "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#contacts(fullname,annualincome,jobtitle,description)/$entity",
       "@odata.etag":"W/\"628883\"",
       "fullname":"Peter Cambel",
       "annualincome":80000.0000,
       "jobtitle":"Junior Developer",
       "description":null,
       "_transactioncurrencyid_value":"0d4ed62e-95f7-e511-80d1-00155da84c03",
       "contactid":"60f77a42-5f0e-e611-80e0-00155da84c03"
    }
    

    主控台輸出

    Contact 'Peter Cambel' retrieved:
            Income: 80000
            Job title: Junior Developer
            Description: .
    

    重要

    您應一律在擷取作業中使用選取和篩選,以最佳化效能。 如需詳細資訊,請參閱使用 Web API 查詢資料

  4. 藉由提供新值給這些屬性更新連絡人實體執行個體。

    HTTP 請求

    PATCH http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    {
      "jobtitle": "Senior Developer",
      "annualincome": 95000,
      "description": "Assignment to-be-determined"
    }
    

    HTTP 回覆

    HTTP/1.1 204 No Content
    

    主控台輸出

    Contact 'Peter Cambel' updated:
            Job title: Senior Developer
            Annual income: 95000
            Description: Assignment to-be-determined
    

    重要

    只在更新要求中傳送已變更的屬性。 如需詳細資訊,請參閱基本更新

  5. 明確設定單一屬性,主要電話號碼。 請注意,這是 PUT 要求,且在個別屬性上執行作業時使用名為 value 的 JSON 金鑰。

    HTTP 請求

    PUT http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)/telephone1 HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    {
      "value": "555-0105"
    }
    

    HTTP 回覆

    HTTP/1.1 204 No Content
    

    主控台輸出

    Contact 'Peter Cambel' phone number updated.
    
  6. 擷取相同的單一屬性,主要電話號碼。 再次注意,使用名為 value 的金鑰。

    HTTP 請求

    GET http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)/telephone1 HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    HTTP 回覆

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0
    { 
       "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#contacts(60f77a42-5f0e-e611-80e0-00155da84c03)/telephone1",
       "value":"555-0105"
    }
    

    主控台輸出

    Contact's telephone# is: 555-0105.
    
  7. 建立類似的連絡人,但也在相同作業中傳回執行個體資訊。 後面這項功能是由 Prefer: return=representation 標頭啟用。 這項功能是在 Dynamics 365 (Online 和內部部署) 的 2016 年 12 月更新 中推出,而且需要 8.2 或更高版本。

    HTTP 請求

    POST http://cc_WebAPI_ServiceURI/contacts?$select=fullname,annualincome,jobtitle,contactid HTTP/1.1
    OData-Version: 4.0
    Content-Type: application/json; charset=utf-8
    Prefer: return=representation
    {
      "firstname": "Peter_Alt",
      "lastname": "Cambel",
      "jobtitle": "Junior Developer",
      "annualincome": 80000,
      "telephone1": "555-0110"
    }
    

    HTTP 回覆

    HTTP/1.1 201 Created
    Content-Type: application/json; odata.metadata=minimal
    Preference-Applied: return=representation
    OData-Version: 4.0
    {
      "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#contacts/$entity","@odata.etag":"W/\"758870\"","_transactioncurrencyid_value":"0d4ed62e-95f7-e511-80d1-00155da84c03","annualincome":80000.0000,"contactid":"199250b7-6cbe-e611-80f7-00155da84c08","jobtitle":"Junior Developer","fullname":"Peter_Alt Cambel"
    }
    

    主控台輸出

    Contact 'Peter_Alt Cambel' created:
            Annual income: 80000
            Job title: Junior Developer
    Contact URI: http://cc_WebAPI_ServiceURI/contacts(199250b7-6cbe-e611-80f7-00155da84c08)
    
  8. 更新此項就類似連絡人,而且也會在相同作業中傳回執行個體資訊。 同樣地,這項功能是由 Prefer: return=representation 標頭啟用。 這項功能是在 Dynamics 365 (Online 和內部部署) 的 2016 年 12 月更新 中推出,而且需要 8.2 或更高版本。

    HTTP 請求

    POST http://cc_WebAPI_ServiceURI/contacts?$select=fullname,annualincome,jobtitle,contactid HTTP/1.1
    OData-Version: 4.0
    Content-Type: application/json; charset=utf-8
    Prefer: return=representation
    {
      "firstname": "Peter_Alt",
      "lastname": "Cambel",
      "jobtitle": "Junior Developer",
      "annualincome": 80000,
      "telephone1": "555-0110"
    }
    

    HTTP 回覆

    HTTP/1.1 201 Created
    Content-Type: application/json; odata.metadata=minimal
    Preference-Applied: return=representation
    OData-Version: 4.0
    {
      "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#contacts/$entity","@odata.etag":"W/\"758870\"","_transactioncurrencyid_value":"0d4ed62e-95f7-e511-80d1-00155da84c03","annualincome":80000.0000,"contactid":"199250b7-6cbe-e611-80f7-00155da84c08","jobtitle":"Junior Developer","fullname":"Peter_Alt Cambel"
    }
    

    主控台輸出

    Contact 'Peter_Alt Cambel' updated:
            Annual income: 95000
            Job title: Senior Developer
    

區段 2:建立並產生關聯

本區段會建立名為 Contoso, Ltd. 的新客戶執行個體,並將它與區段 1:基本建立和更新作業 中建立的現有連絡人 Peter Cambel 產生關聯。 此建立和關聯是在單一 POST 作業中執行。

  1. 建立 Contoso, Ltd. 客戶,並將其主要連絡人屬性設定為現有的連絡人 Peter Cambel。@odata.bind 註解指出,正在建立關聯,這裡會繫結 primarycontactid 單一值導覽屬性至現有的連絡人 Peter Cambel。

    HTTP 請求

    POST http://cc_WebAPI_ServiceURI/accounts HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    {
      "name": "Contoso Inc",
      "telephone1": "555-5555",
      "primarycontactid@odata.bind": "http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)"
    }
    

    HTTP 回覆

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: http://cc_WebAPI_ServiceURI/accounts(65f77a42-5f0e-e611-80e0-00155da84c03)
    

    主控台輸出

    Account 'Contoso Inc' created.
    
  2. 擷取客戶 Contoso, Ltd. 的主要連絡人,同樣使用 $expandprimarycontactid 單一值導覽屬性存取關聯的 contact EntityType 記錄。

    HTTP 請求

    GET http://cc_WebAPI_ServiceURI/accounts(65f77a42-5f0e-e611-80e0-00155da84c03)?$select=name,&$expand=primarycontactid($select=fullname,jobtitle,annualincome) HTTP/1.1
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    HTTP 回覆

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0
    { 
       "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#accounts(name,primarycontactid,primarycontactid(fullname,jobtitle,annualincome))/$entity",
       "@odata.etag":"W/\"628886\"",
       "name":"Contoso Inc",
       "accountid":"65f77a42-5f0e-e611-80e0-00155da84c03",
       "primarycontactid":{ 
          "@odata.etag":"W/\"628885\"",
          "fullname":"Peter Cambel",
          "jobtitle":"Senior Developer",
          "annualincome":95000.0000,
          "_transactioncurrencyid_value":"0d4ed62e-95f7-e511-80d1-00155da84c03",
          "contactid":"60f77a42-5f0e-e611-80e0-00155da84c03"
       }
    }
    

    主控台輸出

    Account 'Contoso Inc' has primary contact 'Peter Cambel':
         Job title: Senior Developer
         Income: 95000
    

區段 3:建立相關的實體 (深層插入)

此區段示範如何建立實體執行個體和相關的實體執行個體,在單一 POST 要求中。 使用此方法,所有執行個體都是新建立;沒有要產生關聯的現有執行個體。 此方法有兩個優點。 更有效率,將多個較簡單的建立和關聯作業取代為單一合併作業。 另外,它不可部分完成,也就是整個作業成功,並且建立所有相關的物件,或是作業失敗,並且沒有建立任何項目。

此區段會在一項要求內建立客戶、其主要連絡人,以及該連絡人的一組工作。

  1. 在一項作業中建立客戶 Fourth Coffee 及其主要連絡人 Susie Curtis,與她的三項相關工作。 請注意,分別使用單一值 primarycontactid 導覽屬性和集合值導覽屬性 Contact_Tasks 定義這些關聯。 單一值導覽屬性採用物件值,集合值導覽屬性則採用陣列值。

    HTTP 請求

    POST http://cc_WebAPI_ServiceURI/accounts HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    {
      "name": "Fourth Coffee",
      "primarycontactid": {
        "firstname": "Susie",
        "lastname": "Curtis",
        "jobtitle": "Coffee Master",
        "annualincome": 48000,
        "Contact_Tasks": [
          {
            "subject": "Sign invoice",
            "description": "Invoice #12321",
            "scheduledend": "2016-04-19T00:00:00-07:00"
          },
          {
            "subject": "Setup new display",
            "description": "Theme is - Spring is in the air",
            "scheduledstart": "2016-04-20T00:00:00-07:00"
          },
          {
            "subject": "Conduct training",
            "description": "Train team on making our new blended coffee",
            "scheduledstart": "2016-06-01T00:00:00-07:00"
          }
        ]
      }
    }
    

    HTTP 回覆

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: http://cc_WebAPI_ServiceURI/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)
    

    主控台輸出

    Account 'Fourth Coffee' created.
    
  2. 選擇性地擷取新建立的 Fourth Coffee 客戶及其主要連絡人。 擴充是在單一值導覽屬性 primarycontactid 上執行。

    HTTP 請求

    GET http://cc_WebAPI_ServiceURI/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)?$select=name,&$expand=primarycontactid($select=fullname,jobtitle,annualincome) HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    HTTP 回覆

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0 
    { 
       "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#accounts(name,primarycontactid,primarycontactid(fullname,jobtitle,annualincome))/$entity",
       "@odata.etag":"W/\"628902\"",
       "name":"Fourth Coffee",
       "accountid":"6af77a42-5f0e-e611-80e0-00155da84c03",
       "primarycontactid":{ 
          "@odata.etag":"W/\"628892\"",
          "fullname":"Susie Curtis",
          "jobtitle":"Coffee Master",
          "annualincome":48000.0000,
          "_transactioncurrencyid_value":"0d4ed62e-95f7-e511-80d1-00155da84c03",
          "contactid":"6bf77a42-5f0e-e611-80e0-00155da84c03"
       }
    }
    

    主控台輸出

    Account 'Fourth Coffee' has primary contact 'Susie Curtis':
            Job title: Coffee Master
            Income: 48000
    
  3. 選擇性地擷取與前一項作業中擷取的主要連絡人相關聯的工作。 擴充是在集合值導覽屬性 Contact_Tasks 上執行。

    HTTP 請求

    GET http://cc_WebAPI_ServiceURI/contacts(6bf77a42-5f0e-e611-80e0-00155da84c03)?$select=fullname,&$expand=Contact_Tasks($select=subject,description,scheduledstart,scheduledend) HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    HTTP 回覆

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0 
    { 
       "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#contacts(fullname,Contact_Tasks,Contact_Tasks(subject,description,scheduledstart,scheduledend))/$entity",
       "@odata.etag":"W/\"628892\"",
       "fullname":"Susie Curtis",
       "contactid":"6bf77a42-5f0e-e611-80e0-00155da84c03",
       "Contact_Tasks":[ 
          { 
             "@odata.etag":"W/\"628903\"",
             "subject":"Sign invoice",
             "description":"Invoice #12321",
             "scheduledstart":"2016-04-19T00:00:00Z",
             "scheduledend":"2016-04-19T00:00:00Z",
             "activityid":"6cf77a42-5f0e-e611-80e0-00155da84c03"
          },
          { 
             "@odata.etag":"W/\"628905\"",
             "subject":"Setup new display",
             "description":"Theme is - Spring is in the air",
             "scheduledstart":"2016-04-20T00:00:00Z",
             "scheduledend":"2016-04-20T00:00:00Z",
             "activityid":"6df77a42-5f0e-e611-80e0-00155da84c03"
          },
          { 
             "@odata.etag":"W/\"628907\"",
             "subject":"Conduct training",
             "description":"Train team on making our new blended coffee",
             "scheduledstart":"2016-06-01T00:00:00Z",
             "scheduledend":"2016-06-01T00:00:00Z",
             "activityid":"6ef77a42-5f0e-e611-80e0-00155da84c03"
          }
       ]
    }
    

    主控台輸出

    Contact 'Susie Curtis' has the following assigned tasks:
    Subject: Sign invoice,
            Description: Invoice #12321
            Start: 4/19/2016
            End: 4/19/2016
    
    Subject: Setup new display,
            Description: Theme is - Spring is in the air
            Start: 4/20/2016
            End: 4/20/2016
    
    Subject: Conduct training
            Description: Train team on making our new blended coffee,
            Start: 6/1/2016
            End: 6/1/2016
    

區段 4:關聯及取消關聯現有實體

此區段示範如何關聯和取消關聯現有實體執行個體。 建立關聯需要使用參考 URI 與關聯物件,然後會在 POST 要求中傳送。 取消關聯需要傳送 DELETE 要求至該關聯的參考 URI。 首先在連絡人和客戶之間建立一對多關聯。 然後在競爭者和一或多個商機之間建立多對多關聯。

  1. 新增 Peter Cambel 做為客戶 Fourth Coffee 的連絡人,使用 contact_customer_accounts 集合值導覽屬性。 請注意,使用特殊索引鍵 @odata.id 指定關聯的記錄。

    HTTP 請求

    POST http://cc_WebAPI_ServiceURI/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)/contact_customer_accounts/$ref HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    {
      "@odata.id": "http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)"
    }
    

    HTTP 回覆

    HTTP/1.1 204 No Content
    

    主控台輸出

    Contact 'Peter Cambel' associated to account 'Fourth Coffee'.
    
  2. 藉由擷取客戶 Fourth Coffee 的連絡人集合確認先前的作業。 回覆包含單一元素的陣列,也就是最近指派的連絡人 Peter Cambel。

    HTTP 請求

    GET http://cc_WebAPI_ServiceURI/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)/contact_customer_accounts?$select=fullname,jobtitle HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    HTTP 回覆

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0 
    {
      "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#contacts(fullname,jobtitle)","value":[
        {
          "@odata.etag":"W/\"632481\"","fullname":"Peter Cambel","jobtitle":"Senior Developer","contactid":"00b6e0e2-b010-e611-80e1-00155da84c03"
        }
      ]
    }
    

    主控台輸出

    Contact list for account 'Fourth Coffee':
            Name: Peter Cambel, Job title: Senior Developer
    
  3. 移除客戶 Fourth Coffee 與連絡人 Peter Cambel 之間剛建立的關聯。

    HTTP 請求

    DELETE http://cc_WebAPI_ServiceURI/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)/contact_customer_accounts/$ref?$id=http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    HTTP 回覆

    HTTP/1.1 204 No Content
    

    主控台輸出

    Contact 'Peter Cambel' dissociated from account 'Fourth Coffee'.
    
  4. 建立競爭者,名為 Adventure Works。

    HTTP 請求

    POST http://cc_WebAPI_ServiceURI/competitors HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    {
      "name": "Adventure Works",
      "strengths": "Strong promoter of private tours for multi-day outdoor adventures"
    }
    

    HTTP 回覆

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: http://cc_WebAPI_ServiceURI/accounts(77f77a42-5f0e-e611-80e0-00155da84c03) 
    

    主控台輸出

    Competitor 'Adventure Works' created.
    
  5. 建立商機,名為 River rafting adventure。

    HTTP 請求

    POST http://cc_WebAPI_ServiceURI/opportunities HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    {
      "name": "River rafting adventure",
      "description": "Sales team on a river-rafting offsite and team building"
    }
    

    HTTP 回覆

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: http://cc_WebAPI_ServiceURI/opportunities(7cf77a42-5f0e-e611-80e0-00155da84c03) 
    

    主控台輸出

    Opportunity 'River rafting adventure' created.
    
  6. 將此新商機與此新競爭者產生關聯。 請注意,此多對多關聯中使用相同的一般語法,就如先前一對多關聯中所使用。

    HTTP 請求

    POST http://cc_WebAPI_ServiceURI/opportunities(7cf77a42-5f0e-e611-80e0-00155da84c03)/opportunitycompetitors_association/$ref HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    {
      "@odata.id": "http://cc_WebAPI_ServiceURI/competitors(77f77a42-5f0e-e611-80e0-00155da84c03)"
    }
    

    HTTP 回覆

    HTTP/1.1 204 No Content
    

    主控台輸出

    Opportunity 'River rafting adventure' associated with competitor 'Adventure Works'.
    
  7. 選擇性地擷取所有與競爭者 Adventure Works 相關聯的商機。 傳回陣列,當中包含單一商機。

    HTTP 請求

    GET http://cc_WebAPI_ServiceURI/competitors(77f77a42-5f0e-e611-80e0-00155da84c03)?$select=name,&$expand=opportunitycompetitors_association($select=name,description) HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    HTTP 回覆

    HTTP/1.1 200 OK
    { 
       "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#competitors(name,opportunitycompetitors_association,opportunitycompetitors_association(name,description))/$entity",
       "@odata.etag":"W/\"628913\"",
       "name":"Adventure Works",
       "competitorid":"77f77a42-5f0e-e611-80e0-00155da84c03",
       "opportunitycompetitors_association":[ 
          { 
             "@odata.etag":"W/\"628917\"",
             "name":"River rafting adventure",
             "description":"Sales team on a river-rafting offsite and team building",
             "opportunityid":"7cf77a42-5f0e-e611-80e0-00155da84c03"
          }
       ]
    }
    

    主控台輸出

    Competitor 'Adventure Works' has the following opportunities:
            Name: River rafting adventure,
            Description: Sales team on a river-rafting offsite and team building
    
  8. 取消商機與競爭者的關聯。 再次注意,此一般語法與移除一對多關聯的語法相同。

    HTTP 請求

    DELETE http://cc_WebAPI_ServiceURI/opportunities(7cf77a42-5f0e-e611-80e0-00155da84c03)/opportunitycompetitors_association/$ref?$id=http://[Token-CRM-Org-Name]/Contoso/api/data/v8.1/competitors(77f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    HTTP 回覆

    HTTP/1.1 204 No Content
    

    主控台輸出

    Opportunity 'River rafting adventure' disassociated from competitor 'Adventure Works'.
    

區段 5:刪除實體 (範例清理)

此區段示範如何刪除實體執行個體。 對應的訊息是直接的 DELETE 要求,使用要刪除的實體執行個體的 URI。 如果目標實體與其他實體有上下層關係,則根據預設,刪除上層也會自動串聯刪除下層執行個體。 例如,在此販力中,工作的上層為連絡人。 如需詳細資訊,請參閱實體關聯行為

  1. 實體 URL 的集合的每一個元素都會刪除。 第一個是 Peter Cambel 的連絡人記錄。

    HTTP 請求

    DELETE http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    HTTP 回覆

    HTTP/1.1 204 No Content
    
  2. 集合中的後續反覆操作會刪除其餘記錄。

    HTTP 請求

    DELETE http://cc_WebAPI_ServiceURI/accounts(65f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1
    . . .
    
    DELETE http://cc_WebAPI_ServiceURI/accounts(6af77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1
    . . .
    
    DELETE http://cc_WebAPI_ServiceURI/contacts(6bf77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1
    . . .
    
    DELETE http://cc_WebAPI_ServiceURI/competitors(77f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1
    . . .
    
    DELETE http://cc_WebAPI_ServiceURI/opportunities(7cf77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1
    . . .
    

另請參閱

使用 Microsoft Dynamics 365 Web API
使用 Web API,建立實體
使用 Web API 擷取實體
使用 Web API 更新和刪除實體
使用 Web API 建立和取消實體的關聯
Web API 基本作業範例 (C#)
Web API 基本作業範例 (用戶端 JavaScript)

Microsoft Dynamics 365

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