के माध्यम से साझा करें


वेब API का उपयोग करके तालिका पंक्तियों को अद्यतन करें और हटाएं

डेटा को संशोधित करने के लिए ऑपरेशन वेब एपीआई का एक मुख्य हिस्सा हैं। सरल अद्यतन और हटाएं कार्रवाई के अतिरिक्त, आप एकल तालिका स्तंभों (निकाय विशेषताओं) पर कार्रवाई कर सकते हैं और अपसर्ट अनुरोध लिख सकते हैं जो या तो डेटा को अपडेट या सम्मिलित करेगा, जो इस बात पर निर्भर करता है कि यह मौजूद है या नहीं।

मूल अद्यतन

अद्यतन कार्रवाई HTTP PATCH क्रिया का उपयोग करें। एक JSON ऑब्जेक्ट पास करें जिसमें वे गुण हैं जिन्हें आप रिकॉर्ड का प्रतिनिधित्व करने वाले URI में अपडेट करना चाहते हैं। की स्थिति 204 No Content के साथ एक प्रतिसाद दिया जाता है यदि अद्यतन सफल होता है।

हेडर यह If-Match: * सुनिश्चित करता है कि आप गलती से अपसर्ट ऑपरेशन करके एक नया रिकॉर्ड न बनाएं। अधिक जानकारी: अपसर्ट में बनाने से रोकें

महत्त्वपूर्ण

किसी निकाय को अपडेट करते समय, केवल उन गुणों को शामिल करें जिन्हें आप अनुरोध मुख्य भाग में बदल रहे हैं। बस किसी इकाई के गुणों को अपडेट करना जिसे आपने पहले पुनर्प्राप्त किया था, और उस JSON को अपने अनुरोध में शामिल करना, प्रत्येक संपत्ति को अपडेट करेगा, भले ही मूल्य समान हो। यह सिस्टम ईवेंट पैदा कर सकता है जो व्यावसायिक तर्क को ट्रिगर कर सकता है जो अपेक्षा करता है कि मान बदल गए हैं। इससे ऐसा प्रतीत हो सकता है कि गुण ऑडिटिंग डेटा में अपडेट किए गए हैं, जबकि वास्तव में वे वास्तव में नहीं बदले हैं।

जब आप संपत्ति को statecode अपडेट करते हैं, तो यह महत्वपूर्ण है हमेशा वांछित statuscodeसेट करें . statecode और statuscode आश्रित मूल्य हैं। किसी दिए गए statecode मान के लिए एकाधिक मान्य statuscode मान हो सकते हैं, लेकिन प्रत्येक statecode स्तंभ में एक एकल DefaultStatus मान कॉन्फ़िगर किया गया है. जब आप निर्दिष्ट statuscodeकिए बिना अपडेट करते statecode हैं, तो डिफ़ॉल्ट स्थिति मान सिस्टम द्वारा सेट किया जाएगा। साथ ही, जब तालिका और statuscode कॉलम पर ऑडिटिंग सक्षम होती है, तो कॉलम के लिए statuscode परिवर्तित मान ऑडिट डेटा में तब तक कैप्चर नहीं किया जाएगा जब तक कि इसे अपडेट ऑपरेशन में निर्दिष्ट न किया जाए।

नोट

विशेषताओं की परिभाषा में एक RequiredLevel संपत्ति शामिल है। जब यह करने के लिए SystemRequiredसेट किया गया है, तो आप इन विशेषताओं को एक नल मान पर सेट नहीं कर सकते। अधिक जानकारी: विशेषता आवश्यकता स्तर

यह उदाहरण 00000000-0000-0000-0000-0000-0000000000001 के मान के साथ accountid किसी मौजूदा खाता रिकॉर्ड को अद्यतन करता है।

निवेदन:

PATCH [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001) HTTP/1.1  
Content-Type: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0
If-Match: *  
  
{  
    "name": "Updated Sample Account ",  
    "creditonhold": true,  
    "address1_latitude": 47.639583,  
    "description": "This is the updated description of the sample account",  
    "revenue": 6000000,  
    "accountcategorycode": 2  
}  

प्रतिक्रिया:

HTTP/1.1 204 No Content  
OData-Version: 4.0  
  

नोट

अद्यतन पर निकायों को संबद्ध करने और अलग करने के बारे में जानकारी के लिए एकल-मान वाले नेविगेशन गुणों का उपयोग करना देखें.

लौटाए गए डेटा के साथ अपडेट

आपके द्वारा अद्यतन किए जा रहे निकाय से डेटा पुनर्प्राप्त करने के लिए, आप अपना PATCH अनुरोध लिख सकते हैं ताकि बनाए गए रिकॉर्ड से डेटा 200 (ठीक) की स्थिति के साथ लौटाया जा सके. यह परिणाम प्राप्त करने के लिए, आपको अनुरोध शीर्षलेख का Prefer: return=representation उपयोग करना होगा।

यह नियंत्रित करने के लिए कि कौन से गुण लौटाए जाते हैं, URL में क्वेरी विकल्प को $select निकाय सेट में जोड़ें. यदि उपयोग किया जाता है तो क्वेरी विकल्प पर $expand ध्यान नहीं दिया जाता है।

यह उदाहरण किसी खाता निकाय को अद्यतन करता है और प्रतिसाद में अनुरोधित डेटा लौटाता है.

निवेदन:

PATCH [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001)?$select=name,creditonhold,address1_latitude,description,revenue,accountcategorycode,createdon HTTP/1.1  
OData-MaxVersion: 4.0  
OData-Version: 4.0  
Accept: application/json  
Content-Type: application/json; charset=utf-8  
Prefer: return=representation
If-Match: * 
  
{"name":"Updated Sample Account"}  

प्रतिक्रिया:

HTTP/1.1 200 OK  
Content-Type: application/json; odata.metadata=minimal  
Preference-Applied: return=representation  
OData-Version: 4.0  
  
{  
    "@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts/$entity",  
    "@odata.etag": "W/\"536537\"",  
    "accountid": "00000000-0000-0000-0000-000000000001",  
    "accountcategorycode": 1,  
    "description": "This is the description of the sample account",  
    "address1_latitude": 47.63958,  
    "creditonhold": false,  
    "name": "Updated Sample Account",  
    "createdon": "2016-09-28T23:14:00Z",  
    "revenue": 5000000.0000,  
    "_transactioncurrencyid_value": "048dddaa-6f7f-e611-80d3-00155db5e0b6"  
}  
  

एक ही अनुरोध में एकाधिक रिकॉर्ड अद्यतन करें

एक ही अनुरोध में एक ही प्रकार के एकाधिक रिकॉर्ड को अपडेट करने का सबसे तेज़ तरीका UpdateMultiple क्रिया का उपयोग करना है। इस लेखन के समय, UpdateMultiple क्रिया। सभी मानक तालिकाएँ इस क्रिया का समर्थन नहीं करती हैं, लेकिन सभी लोचदार तालिकाएँ ऐसा करती हैं।

और जानकारी:

एकल गुण मान का अद्यतन करें

जब आप केवल एक ही प्रॉपर्टी मान अपडेट करना चाहते हैं, तो निकाय के Uri में जोड़े गए प्रॉपर्टी नाम के साथ अनुरोध PUT का उपयोग करें.

निम्न उदाहरण 00000000-0000-0000-0000-0000-00000000000 के मान के साथ accountid किसी मौजूदा account पंक्ति की संपत्ति अद्यतन करता हैname

निवेदन:

PUT [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001)/name HTTP/1.1  
Content-Type: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  
  
{"value": "Updated Sample Account Name"}  

प्रतिक्रिया:

HTTP/1.1 204 No Content  
OData-Version: 4.0  
  

एकल प्रॉपर्टी मान हटाना

किसी एकल प्रॉपर्टी के मान को हटाने के लिए, निकाय के Uri में जोड़े गए प्रॉपर्टी नाम के साथ अनुरोध DELETE का उपयोग करें.

निम्न उदाहरण 00000000-0000-0000-0000-0000-000000001 के मान के साथ accountid किसी खाता निकाय की संपत्ति का description मान हटा देता है।

निवेदन:

DELETE [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001)/description HTTP/1.1  
Content-Type: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  

प्रतिक्रिया:

HTTP/1.1 204 No Content  
OData-Version: 4.0  
  

नोट

इसका उपयोग दो निकायों को अलग करने के लिए एकल-मान नेविगेशन गुण के साथ नहीं किया जा सकता है. वैकल्पिक दृष्टिकोण के लिए, एकल-मान नेविगेशन गुण के साथ असंबद्ध करें देखें.

एक तालिका पंक्ति को ऊपर करें

एक अपसर्ट ऑपरेशन एक अद्यतन के समान है। यह एक PATCH अनुरोध का उपयोग करता है और एक विशिष्ट रिकॉर्ड को संदर्भित करने के लिए यूआरआई का उपयोग करता है। अंतर यह है कि यदि रिकॉर्ड मौजूद नहीं है, तो यह बनाया जाता है। यदि यह पहले से मौजूद है, तो इसे अपडेट किया गया है।

बाहरी प्रणालियों के बीच डेटा को सिंक्रनाइज़ करते समय अपसर्ट मूल्यवान है। बाहरी सिस्टम में Dataverse तालिका की प्राथमिक कुंजी का संदर्भ नहीं हो सकता है, इसलिए आप बाहरी सिस्टम से मानों का उपयोग करके Dataverse तालिका के लिए वैकल्पिक कुंजियों को कॉन्फ़िगर कर सकते हैं जो दोनों प्रणालियों पर रिकॉर्ड की विशिष्ट पहचान करते हैं। अधिक जानकारी: संदर्भ पंक्तियों के लिए वैकल्पिक कुंजियाँ निर्धारित करें

आप $metadata सेवा दस्तावेज़ में निकाय प्रकार के एनोटेशन में किसी तालिका के लिए निर्धारित कोई भी वैकल्पिक कुंजी देख सकते हैं. अधिक जानकारी: वैकल्पिक कुंजियाँ

निम्नलिखित उदाहरण में, नाम sample_thing के साथ एक तालिका है जिसमें एक वैकल्पिक कुंजी है जो दो स्तंभों को संदर्भित करती है: sample_key1 और sample_key2, जो दोनों पूर्णांक मानों को संग्रहीत करने के लिए परिभाषित की गई हैं।

निवेदन:

PATCH [Organization URI]/api/data/v9.2/sample_things(sample_key1=1,sample_key2=1) HTTP/1.1
Accept: application/json 
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Content-Type: application/json

{
    "sample_name": "1:1"
}

दोनों बनाने या अद्यतन संचालन के लिए आपको एक ही प्रतिक्रिया मिलती है। ध्यान दें कि OData-EntityId प्रतिसाद शीर्ष लेख रिकॉर्ड के लिए GUID प्राथमिक कुंजी पहचानकर्ता के बजाय कुंजी मानों का उपयोग कैसे करता है।

प्रतिक्रिया:

HTTP/1.1 204 No Content
OData-Version: 4.0
OData-EntityId: [Organization URI]/api/data/v9.2/sample_things(sample_key1=1,sample_key2=1)

क्योंकि प्रतिक्रिया समान है, आप यह नहीं जान सकते कि ऑपरेशन एक या Create ऑपरेशन Update का प्रतिनिधित्व करता है या नहीं।

यदि आपको जानने की आवश्यकता है, तो आप अनुरोध हेडर का उपयोग कर सकते हैं Prefer: return=representation । इस हेडर के साथ, रिकॉर्ड बनाए जाने पर आपको प्रतिक्रिया 201 Created मिलती है और 200 OK रिकॉर्ड अपडेट होने पर प्रतिक्रिया मिलती है। यह विकल्प एक Retrieve ऑपरेशन जोड़ता है, जिसका प्रदर्शन पर प्रभाव पड़ता है। यदि आप अनुरोध शीर्ष लेख का उपयोग करते Prefer: return=representation हैं, तो सुनिश्चित करें कि आपके में $select डेटा की न्यूनतम मात्रा शामिल है, अधिमानतः केवल प्राथमिक कुंजी स्तंभ. अधिक जानकारी: लौटाए गए डेटा के साथ अपडेट करें और लौटाए गए डेटा के साथ बनाएं

वैकल्पिक कुंजियों का उपयोग करते समय, आपको अनुरोध के मुख्य भाग में वैकल्पिक कुंजी मान शामिल नहीं करना चाहिए।

  • जब एक अपसर्ट एक का Updateप्रतिनिधित्व करता है, तो इन वैकल्पिक कुंजी मानों को अनदेखा कर दिया जाता है। आप रिकॉर्ड की पहचान करने के लिए वैकल्पिक कुंजी मानों का उपयोग करते समय उन्हें अद्यतन नहीं कर सकते.
  • जब एक अपसर्ट का Createप्रतिनिधित्व करता है, तो URL में कुंजी मान रिकॉर्ड के लिए सेट किए जाते हैं यदि वे मुख्य भाग में मौजूद नहीं हैं। इसलिए उन्हें अनुरोध के मुख्य भाग में शामिल करने की कोई आवश्यकता नहीं है।

अधिक जानकारी: रिकॉर्ड बनाने या अद्यतन करने के लिए Upsert का उपयोग करें

नोट

आम तौर पर एक नया रिकॉर्ड बनाते समय आप सिस्टम को प्राथमिक कुंजी के लिए एक GUID मान असाइन करने देंगे। यह एक सर्वोत्तम अभ्यास है क्योंकि सिस्टम अनुक्रमणिका के लिए अनुकूलित कुंजियाँ उत्पन्न करता है और यह प्रदर्शन में सुधार करता है। लेकिन यदि आपको किसी विशिष्ट प्राथमिक कुंजी मान के साथ कोई रिकॉर्ड बनाने की आवश्यकता है, जैसे कि जब कुंजी GUID मान किसी बाहरी सिस्टम द्वारा जनरेट किया जाता है, तो upsert कार्रवाई ऐसा करने का एक तरीका प्रदान करती है।

अपसर्ट के साथ बनाने या अपडेट करने से रोकें

कभी-कभी ऐसी स्थितियां होती हैं जहां आप करना चाहते हैं एक , upsertलेकिन आप संभावित कार्यों में से एक को रोकना चाहते हैं: या तो बनाएं या अपडेट करें। आप या हेडर If-None-Match का उपयोग करके If-Match ऐसा कर सकते हैं। अधिक जानकारी के लिए, अपसर्ट कार्रवाई सीमित करें देखें।

मूल हटाना

एक डिलीट ऑपरेशन सीधा है। उस निकाय के URI के साथ क्रिया का DELETE उपयोग करें जिसे आप हटाना चाहते हैं. यह उदाहरण संदेश 00000000-0000-0000-0000-0000-000000001 के बराबर प्राथमिक कुंजी accountid मान के साथ एक खाता निकाय को हटा देता है।

निवेदन:

DELETE [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001) HTTP/1.1  
Content-Type: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  

प्रतिक्रिया:

यदि निकाय मौजूद है, तो आपको यह इंगित करने के लिए स्थिति 204 के साथ एक सामान्य प्रतिसाद मिलता है कि हटाना सफल रहा। यदि निकाय नहीं मिलता है, तो आपको स्थिति 404 के साथ एक प्रतिसाद मिलता है.

HTTP/1.1 204 No Content  
OData-Version: 4.0  

डुप्लिकेट रिकॉर्ड की जाँच करें

किसी अद्यतन कार्रवाई के दौरान डुप्लिकेट रिकॉर्ड की जाँच करने के तरीके के बारे में अधिक जानकारी के लिए, वेब API का उपयोग कर अद्यतन कार्रवाई के दौरान डुप्लिकेट का पता लगाना देखें।

एक ही अनुरोध में एकाधिक रिकॉर्ड हटाएँ

एक ही अनुरोध में एक ही प्रकार के कई रिकॉर्ड को हटाने का सबसे तेज़ तरीका कार्रवाई का DeleteMultiple उपयोग करना है। इस लेखन के DeleteMultiple समय, कार्रवाई एक पूर्वावलोकन सुविधा है। मानक तालिकाएँ इस क्रिया का समर्थन नहीं करती हैं, लेकिन सभी लोचदार तालिकाएँ ऐसा करती हैं.

नोट

मानक तालिकाओं के लिए, हम BulkDelete क्रिया का उपयोग करने की सलाह देते हैं, जो किसी क्वेरी से मेल खाने वाले रिकॉर्ड को अतुल्यकालिक हटाने में सक्षम बनाता है. अधिक जानकारी: बल्क में डेटा हटाएँ

और जानकारी:

भंडारण विभाजन में दस्तावेज़ों को अद्यतन करें और हटाएं

यदि आप विभाजन में संग्रहीत लोचदार तालिका डेटा को अद्यतन या हटा रहे हैं, तो उस डेटा तक पहुँचते समय विभाजन कुंजी निर्दिष्ट करना सुनिश्चित करें।

अधिक जानकारी: कोई PartitionId मान चुनना

यह सभी देखें

वेब API मूलभूत कार्रवाई नमूना (C#)
वेब API बेसिक ऑपरेशन नमूना (क्लाइंट-साइड जावास्क्रिप्ट)
वेब एपीआई का उपयोग करके संचालन करें
Http अनुरोध लिखें और त्रुटियों को संभालें
वेब API का उपयोग करके क्वेरी डेटा
वेब API का उपयोग करके एक तालिका पंक्ति बनाएँ
वेब API का उपयोग करके तालिका पंक्ति पुनर्प्राप्त करें
वेब API का उपयोग करके तालिका पंक्तियों को संबद्ध और अलग करें
वेब एपीआई फ़ंक्शन का उपयोग करें
वेब API क्रियाएँ उपयोग करें
वेब API का उपयोग करके बैच ऑपरेशन निष्पादित करें
वेब API का उपयोग करके किसी अन्य उपयोगकर्ता का प्रतिरूपण करें
वेब एपीआई का उपयोग करके सशर्त कार्रवाई करें