खोज…


टिप्पणियों

शासन

"गवर्नेंस" लंबे समय से चल रही, पलायन या संसाधन-गहन लिपियों का पता लगाने और रोकने के लिए नेटसुइट की प्रणाली को दिया गया नाम है।

प्रत्येक स्क्रिप्ट प्रकार में शासन सीमाएँ होती हैं जो कि अधिक नहीं हो सकती हैं, और प्रत्येक स्क्रिप्ट प्रकार के लिए चार प्रकार की शासन सीमाएँ हैं।

  • एपीआई उपयोग की सीमा
  • निर्देश गणना सीमा
  • समय सीमा
  • मेमोरी उपयोग की सीमा

यदि कोई स्क्रिप्ट इन चार क्षेत्रों में से किसी एक में अपनी शासन सीमा से अधिक हो जाती है, तो नेटसुइट एक अप्राप्य अपवाद को फेंक देगा और स्क्रिप्ट को तुरंत समाप्त कर देगा।

एपीआई उपयोग की सीमा

NetSuite "उपयोग इकाइयों" पर आधारित प्रणाली के साथ आपकी लिपियों के एपीआई उपयोग को सीमित करता है। कुछ नेटसुइट एपीआई कॉल, विशेष रूप से वे जो डेटाबेस पर एक पढ़ने या लिखने की क्रिया करते हैं, एक विशेष संख्या में इकाइयों की लागत होती है जो हर बार उन्हें आमंत्रित किया जाता है। प्रत्येक स्क्रिप्ट प्रकार में तब अधिकतम इकाइयाँ होती हैं जिनका उपयोग स्क्रिप्ट के प्रत्येक निष्पादन के दौरान किया जा सकता है।

यदि कोई स्क्रिप्ट अपनी API उपयोग सीमा से अधिक है, तो NetSuite SSS_USAGE_LIMIT_EXCEEDED त्रुटि फेंककर स्क्रिप्ट को समाप्त कर SSS_USAGE_LIMIT_EXCEEDED है।

नीचे आम कार्यों के लिए इकाई लागत के कुछ उदाहरण दिए गए हैं। शासन लागतों की एक विस्तृत सूची के लिए, नेटसुइट हेल्प में "एपीआई गवर्नेंस" नामक लेख देखें।

ऑपरेशन इकाई लागत
एक सहेजा गया खोज लोड हो रहा है 5
खोज परिणाम पुनः प्राप्त करना 10
किसी कार्य का निर्धारण करना 10
एक URL का अनुरोध करना 10
ईमेल भेजना 10
एक कस्टम रिकॉर्ड बनाना 2
एक कर्मचारी रिकॉर्ड बनाना 5
विक्रय आदेश रिकॉर्ड बनाना 10
एक कस्टम रिकॉर्ड सहेजना 4
संपर्क रिकॉर्ड सहेजना 10
क्रय आदेश रिकॉर्ड सहेजना 20

विभिन्न प्रचालन विभिन्न मात्रा में इकाइयों का उपयोग करते हैं, और कुछ प्रचालनों के लिए उपयोग किए जा रहे रिकॉर्ड प्रकार के आधार पर एक अलग राशि खर्च होती है। एक फंक्शन की लागत जितनी बड़ी होगी, आम तौर पर इसे निष्पादित करने में अधिक समय लगेगा।

लेन-देन रिकॉर्ड प्रकारों में से सबसे बड़ा है, इसलिए उनके साथ काम करने में इकाइयों की सबसे बड़ी राशि खर्च होती है। इसके विपरीत, कस्टम रिकॉर्ड बहुत हल्के होते हैं, और इसलिए कई इकाइयों की लागत नहीं होती है। मानक नेटसुइट रिकॉर्ड, जो ग्राहक, कर्मचारी या संपर्क जैसे लेन-देन नहीं हैं, लागत के संदर्भ में दोनों के बीच में बैठते हैं।

ये स्क्रिप्ट प्रकार द्वारा उपयोग की सीमाएँ हैं:

स्क्रिप्ट प्रकार उपयोग की सीमा
ग्राहक 1,000
उपयोगकर्ता घटना 1,000
Suitelet 1,000
portlet 1,000
वर्कफ़्लो क्रिया 1,000
RESTlet 5000
अनुसूचित 10,000
मानचित्र छोटा करना 10,000
बंडल स्थापना 10,000
मास अपडेट 10,000 प्रति रिकॉर्ड

टाइमआउट और निर्देश गणना सीमाएँ

NetSuite टाइमआउट तंत्र और एक अनुदेश काउंटर का उपयोग करके रनवे स्क्रिप्ट का पता लगाने और रोकने के लिए शासन प्रणाली का उपयोग करता है।

यदि किसी स्क्रिप्ट को चलने में बहुत अधिक समय लगता है, तो NetSuite SSS_TIME_LIMIT_EXCEEDED त्रुटि फेंककर उसे रोक देगा।

इसके अलावा, भगोड़ा लिपियों का पता लगाया जा सकता है और उनके "निर्देश गणना" के आधार पर रोका जा सकता है। यदि निर्धारित निर्देश संख्या सीमाएं पार हो जाती हैं, तो SSS_INSTRUCTION_COUNT_EXCEEDED त्रुटि फेंककर स्क्रिप्ट को रोक देगा।

दुर्भाग्य से, कोई मदद दस्तावेज नहीं है जो परिभाषित करता है:

  • प्रत्येक स्क्रिप्ट प्रकार के लिए टाइमआउट
  • प्रत्येक स्क्रिप्ट प्रकार के लिए निर्देश गणना सीमा
  • क्या एक "निर्देश" का गठन

यह जानना महत्वपूर्ण है कि यदि आप SSS_TIME_LIMIT_EXCEEDED त्रुटि या SSS_INSTRUCTION_COUNT_EXCEEDED त्रुटि में से किसी एक स्क्रिप्ट में आपका सामना करते हैं, तो आपके पास प्रसंस्करण है जो बहुत लंबा समय ले रहा है। अनुकूलन कहाँ हो सकता है, यह निर्धारित करने के लिए अपने लूप संरचनाओं पर अपनी जाँच पर ध्यान दें।

मेमोरी उपयोग की सीमा

यदि आपकी स्क्रिप्ट मेमोरी उपयोग सीमा से अधिक है, तो SSS_MEMORY_USAGE_EXCEEDED त्रुटि फेंककर आपकी स्क्रिप्ट को समाप्त कर देगा।

प्रत्येक चर घोषित, हर फ़ंक्शन परिभाषित, संग्रहीत प्रत्येक वस्तु आपकी स्क्रिप्ट के मेमोरी उपयोग में योगदान करती है।

शेड्यूल्ड स्क्रिप्ट और मैप / रिड्यूस स्क्रिप्ट दोनों ने 50MB मेमोरी लिमिट्स डॉक्यूमेंट की है। किसी भी स्ट्रिंग के आकार के लिए 10MB की एक प्रलेखित सीमा भी है जो पारित कर दी गई है या RESTlet से वापस आ गई है। दी गई स्क्रिप्ट के लिए विशिष्ट सीमाओं पर कोई अन्य दस्तावेज नहीं है।

मेरे पास कितनी इकाइयाँ शेष हैं?

सुइटस्क्रिप्ट 1.0 में, शेष इकाइयों को पुनः प्राप्त करने के लिए nlobjContext.getRemainingUsage() का उपयोग करें। एक nlobjContext संदर्भ वैश्विक nlapiGetContext फ़ंक्शन का उपयोग करके पुनर्प्राप्त किया जाता है।

// 1.0
var context = nlapiGetContext();
nlapiLogExecution("DEBUG", "Governance Monitoring", "Remaining Usage = " + context.getRemainingUsage());

nlapiSearchRecord("transaction"); // uses 10 units
nlapiLogExecution("DEBUG", "Governance Monitoring", "Remaining Usage = " + context.getRemainingUsage());

सुइटस्क्रिप्ट 2.0 में, N/runtime मॉड्यूल की Script ऑब्जेक्ट की getRemainingUsage विधि का उपयोग करें।

// 2.0
require(["N/log", "N/runtime", "N/search"], function (log, runtime, s) {
    var script = runtime.getCurrentScript();
    log.debug({
        "title": "Governance Monitoring",
        "details": "Remaining Usage = " + script.getRemainingUsage()
    });

    s.load({"id":"customsearch_mysearch"}); // uses 5 units
    log.debug({
        "title": "Governance Monitoring",
        "details": "Remaining Usage = " + script.getRemainingUsage()
    });
});


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow