netsuite
स्क्रिप्ट प्रकार अवलोकन
खोज…
परिचय
आप इवेंट-संचालित सिस्टम का उपयोग करके सुइटस्क्रिप्ट अनुकूलन बनाते हैं। आप विभिन्न प्रकार के स्क्रिप्ट रिकॉर्ड को परिभाषित करते हैं, जिनमें से प्रत्येक के पास घटनाओं का अपना अनूठा सेट है, और आपकी स्रोत फ़ाइल में, आप उन फ़ंक्शन को परिभाषित करते हैं जिन्हें उन घटनाओं को संभालने के लिए बुलाया जाएगा।
लिपियाँ उन प्राथमिक घटकों में से एक हैं जिनके साथ आप अपने अनुप्रयोगों का डिज़ाइन और निर्माण करेंगे। इस लेख के साथ लक्ष्य केवल उपलब्ध स्क्रिप्ट प्रकारों और घटनाओं से परिचित होना है।
क्लाइंट स्क्रिप्ट
क्लाइंट स्क्रिप्ट आपके लिए उपलब्ध अधिक सामान्य और जटिल, स्क्रिप्ट प्रकारों में से एक है। जैसा कि इसके नाम का तात्पर्य है, क्लाइंट स्क्रिप्ट ब्राउज़र में चलती है, अर्थात क्लाइंट की तरफ। यह एकमात्र स्क्रिप्ट प्रकार है जो क्लाइंट साइड पर चलता है; अन्य सभी नेटसुइट के सर्वर साइड पर निष्पादित होंगे।
क्लाइंट स्क्रिप्ट का प्राथमिक उपयोग NetSuite UI के भीतर रिकॉर्ड रूपों के साथ उपयोगकर्ता इंटरैक्शन का जवाब देने के लिए है।
जैसे ही उपयोगकर्ता एडिट मोड में एक रिकॉर्ड फॉर्म लोड करता है, एक pageInit घटना को निकाल दिया जाता है जिसे हम कोड को चलाने के लिए उपयोग कर सकते हैं जैसे कि फॉर्म को इनिशियलाइज़ किया जाता है, इससे पहले कि उपयोगकर्ता इसके साथ इंटरैक्ट कर सके।
जब भी उपयोगकर्ता प्रपत्र पर किसी भी फ़ील्ड को बदलता है, तो ईवेंट की एक श्रृंखला में आग लग जाएगी:
- एक
validateFieldघटना घटना आग जो हमें उस मान को मान्य करने की अनुमति देती है जो उपयोगकर्ता क्षेत्र में प्रवेश करने की कोशिश कर रहा है। हम इसका उपयोग या तो स्वीकार करने या परिवर्तन को रोकने से रोक सकते हैं। - एक
fieldChangedघटना तब आग लगती है जो हमें क्षेत्र में नए मूल्य पर प्रतिक्रिया देने की अनुमति देती है। - अंत में, किसी भी और सभी आश्रित क्षेत्रों के बाद एक
postSourcingइवेंट में आग लग जाती है। यह हमें परिवर्तन का जवाब देने और यह सुनिश्चित करने की अनुमति देता है कि हम सभी सही डेटा के साथ काम कर रहे हैं।
घटनाओं की यह श्रृंखला कोई फर्क नहीं पड़ता कि उपयोगकर्ता किसी बॉडी फ़ील्ड को बदल रहा है या किसी सबलिस्ट फ़ील्ड को।
जैसे ही उपयोगकर्ता सबलिस्ट लाइनों में बदलाव करता है, घटनाओं की एक और श्रृंखला शुरू हो जाएगी:
- एक
lineInitघटना निकाल दिया जाता है जब भी उपयोगकर्ता शुरू में एक नए या मौजूदा लाइन का चयन करती है, इससे पहले कि वे लाइन पर खेतों में कोई परिवर्तन करने में सक्षम हैं। - जब भी उपयोगकर्ता जोड़ें बटन एक नई लाइन को जोड़ने के लिए क्लिक करता है, एक
validateLineघटना निकाल दिया जाता है कि सत्यापित करने के लिए है कि पूरे लाइन वैध है और रिकॉर्ड करने के लिए जोड़ा जा सकता है की अनुमति देता है। - जब भी उपयोगकर्ता किसी मौजूदा लाइन के ऊपर एक नई लाइन जोड़ने के लिए इन्सर्ट बटन पर क्लिक करता है, तो एक
validateInsertघटना को निकाल दिया जाता है, जो बिलकुल वैसा ही होता है, जैसा किvalidateLineइवेंट में होता है। - इसी तरह, जब भी उपयोगकर्ता किसी लाइन को हटाने की कोशिश करता है, तो एक
validateDeleteनिकाल दिया जाता है जो लाइन को हटाने की अनुमति देने या अस्वीकार करने की अनुमति देता है। - [सूटस्क्रिप्ट १.० केवल] अंतिम रूप से, उपयुक्त सत्यापन घटना के सफल होने के बाद, यदि लाइन में परिवर्तन से लेन-देन की कुल राशि में भी परिवर्तन होता है, तो एक
recalcघटना को निकाल दिया जाता है जो हमें हमारी राशि में परिवर्तन का जवाब देने की अनुमति देता है लेन-देन। - [सुइटस्क्रिप्ट २.० केवल] आखिरकार, उपयुक्त सत्यापन घटना सफल होने के बाद, एक
sublistChangedघटना हमें पूरा लाइन परिवर्तन का जवाब देने के लिए निकाल दिया जाता है।
अंत में, जब उपयोगकर्ता रिकॉर्ड पर सहेजें बटन पर क्लिक करता है, तो एक saveRecord घटना निकाल दी जाती है जो हमें यह सत्यापित करने की अनुमति देती है कि क्या रिकॉर्ड मान्य है और सहेजा जा सकता है। हम या तो बचत को होने से रोक सकते हैं, या इसे इस घटना के साथ आगे बढ़ने की अनुमति दे सकते हैं।
क्लाइंट स्क्रिप्ट में किसी भी स्क्रिप्ट प्रकार की सबसे अधिक घटनाएं होती हैं, और उन घटनाओं के बीच सबसे जटिल संबंध होता है।
उपयोगकर्ता ईवेंट स्क्रिप्ट
क्लाइंट स्क्रिप्ट से निकटतम रूप से संबंधित उपयोगकर्ता ईवेंट स्क्रिप्ट है। इस स्क्रिप्ट प्रकार की घटनाओं को फिर से निकाल दिया जाता है जब एक रिकॉर्ड लोड किया जा रहा है या बचाया जा रहा है, लेकिन यह इसके बजाय सर्वर साइड पर चलता है। इस प्रकार, इसका उपयोग फ़ील्ड परिवर्तनों पर तुरंत प्रतिक्रिया देने के लिए नहीं किया जा सकता है, लेकिन यह केवल उन उपयोगकर्ताओं तक सीमित नहीं है जो किसी प्रपत्र पर रिकॉर्ड के साथ सहभागिता कर रहे हैं।
उपयोगकर्ता ईवेंट स्क्रिप्ट निष्पादित नहीं करेगा जहां लोड या सबमिट अनुरोध आ रहा है, चाहे वह यूआई में काम करने वाला उपयोगकर्ता हो, तृतीय-पक्ष एकीकरण, या अनुरोध करने वाला कोई अन्य आंतरिक स्क्रिप्ट।
जब भी कोई प्रक्रिया या उपयोगकर्ता डेटाबेस से बाहर रिकॉर्ड को पढ़ने का प्रयास करता है, तो उपयोगकर्ता ईवेंट की पहले से beforeLoad ईवेंट ट्रिगर हो जाती है। हम डेटा को प्री-प्रोसेस करने, डिफ़ॉल्ट मान सेट करने या उपयोगकर्ता द्वारा देखने से पहले UI फॉर्म में हेरफेर करने के लिए इसका उपयोग कर सकते हैं।
एक बार एक प्रक्रिया या उपयोगकर्ता डेटाबेस में रिकॉर्ड जमा करने का प्रयास करता है, चाहे वह एक नया रिकॉर्ड बनाने का हो, किसी मौजूदा रिकॉर्ड का संपादन करने का हो या किसी रिकॉर्ड को हटाने का, निम्न क्रम होता है:
- सबसे पहले, इससे पहले कि अनुरोध वास्तव में अपनी तरह से डेटाबेस, एक के लिए बनाता है
beforeSubmitघटना आग। हम इस घटना का उपयोग कर सकते हैं, उदाहरण के लिए, डेटाबेस में मिलने से पहले रिकॉर्ड को साफ करने के लिए। - अनुरोध डेटाबेस को भेजा जाता है, और रिकॉर्ड तदनुसार बनाया / संशोधित / हटा दिया जाता है।
- डेटाबेस प्रसंस्करण पूरा होने के बाद, एक
afterSubmitघटना आग। हम इस घटना का उपयोग कर सकते हैं, उदाहरण के लिए, परिवर्तनों की ईमेल सूचनाएं भेजने के लिए, या एकीकृत तृतीय-पक्ष सिस्टम के साथ समन्वयित करने के लिए।
आप वीडियो की इस श्रृंखला को भी देख सकते हैं जो इस स्क्रिप्ट प्रकार की घटनाओं की कल्पना करने में मदद करती है।
अनुसूचित और नक्शा / लिपियों को कम करना
दो प्रकार की स्क्रिप्ट हैं जो हम एक विशिष्ट, नियमित अंतराल पर पृष्ठभूमि प्रसंस्करण चलाने के लिए ले सकते हैं; ये अनुसूचित और मानचित्र / स्क्रिप्ट को कम करते हैं। ध्यान दें कि मैप / कम स्क्रिप्ट प्रकार केवल सुइटस्क्रिप्ट 2.0 में उपलब्ध है। अनुसूचित स्क्रिप्ट 1.0 और 2.0 दोनों के लिए उपलब्ध है।
शेड्यूल्ड स्क्रिप्ट में केवल एक ही execute घटना होती है जो आपके द्वारा निर्धारित किसी भी शेड्यूल पर ट्रिगर हो जाती है। उदाहरण के लिए, आप एक रात्रिकालीन स्क्रिप्ट चलाना चाह सकते हैं जो चालान या एक प्रति घंटा स्क्रिप्ट पर भुगतान करती है जो बाहरी सिस्टम के साथ डेटा को सिंक करती है। जब समय अंतराल हिट, NetSuite आग इस execute अपने अनुसूचित स्क्रिप्ट पर घटना।
मैप / स्क्रिप्ट लिपि समान रूप से काम करती है, लेकिन एक बार ट्रिगर होने के बाद, यह प्रोसेसिंग को चार अलग-अलग चरणों में तोड़ देती है:
-
getInputDataचरण वह जगह है जहाँ आप उन सभी इनपुट डेटा को इकट्ठा करते हैं जिन्हें आपको व्यवसाय प्रक्रिया को पूरा करने की आवश्यकता होगी। आप इस चरण का उपयोग खोज करने, रिकॉर्ड पढ़ने और अपने डेटा को एक निर्णायक डेटा संरचना में पैकेज करने के लिए कर सकते हैं। -
getInputDataस्वचालित रूप से आपकेgetInputDataचरण के परिणामों को दूसरे चरण में पास करता है, जिसेmapकहा जाता है। यह चरण प्रसंस्करण के लिए तार्किक रूप से आपके इनपुट डेटा को समूहीकृत करने के लिए जिम्मेदार है। उदाहरण के लिए, यदि आप चालान का भुगतान कर रहे हैं, तो आप ग्राहक द्वारा पहले चालान का समूह बनाना चाह सकते हैं। -
mapचरण के परिणाम फिरreduceचरण में पारित किए जाते हैं, जहां वास्तविक प्रसंस्करण होता है। यह वह जगह है जहां आप हमारे उदाहरण को ध्यान में रखते हुए वास्तव में पेमेंट इनवॉइस लागू करेंगे। - अंत में, एक
summaryचरण लागू किया जाता है जिसमें पिछले तीन चरणों में आपके सभी प्रसंस्करण के परिणामों के बारे में डेटा होता है। आप इसका उपयोग रिपोर्ट उत्पन्न करने या ईमेल भेजने के लिए कर सकते हैं जो प्रसंस्करण पूर्ण है।
नक्शा / स्क्रिप्ट को कम करने का मुख्य लाभ यह है कि नेटसुइट स्वचालित रूप से कई कतारों में आपके लिए प्रसंस्करण को समानांतर कर देगा, यदि उपलब्ध हो।
इन दोनों प्रकार की स्क्रिप्ट में एक बहुत बड़ी शासन सीमा होती है, इसलिए आप इन्हें थोक प्रसंस्करण या आम तौर पर लंबे समय तक चलने वाली पृष्ठभूमि प्रक्रियाओं के लिए भी उपयोग कर सकते हैं।
इन स्क्रिप्ट प्रकारों में से सबसे छोटा अंतराल हर 15 मिनट में चलाने के लिए कॉन्फ़िगर किया जा सकता है।
यदि आवश्यक हो तो ये दोनों स्क्रिप्ट प्रकार उपयोगकर्ताओं द्वारा या अन्य स्क्रिप्ट द्वारा ऑन-डिमांड भी मंगवाए जा सकते हैं।
सुइटलेट और पोर्टलेट लिपियों
अक्सर हम नेटयूइट में कस्टम UI पेज बनाना चाहते हैं; सुइटलेट दर्ज करें। सुइटलेट स्क्रिप्ट आंतरिक, कस्टम UI पृष्ठों के निर्माण के लिए डिज़ाइन की गई है। पेज फ्री-फॉर्म एचटीएमएल हो सकते हैं, या वे नेटसुइट के यूआई बिल्डर एपीआई का उपयोग कर ऐसे फॉर्म का निर्माण कर सकते हैं जो नेटसुइट के रूप और अनुभव का अनुसरण करते हैं।
जब इसे तैनात किया जाता है, तो एक स्वीटलेट अपना विशिष्ट URL प्राप्त करता है। तब सुइटलेट में एक एकल render घटना होती है जिसे उस URL को HTTP GET या POST अनुरोध के साथ हिट किया जाता है। आमतौर पर, GET अनुरोध की प्रतिक्रिया फ़ॉर्म को स्वयं प्रस्तुत करने के लिए होगी, और फिर प्रपत्र डेटा को संसाधित करने के लिए प्रपत्र स्वयं POST वापस आ जाएगा।
नेटसाइट के "असिस्टेंट" यूआई घटकों का उपयोग करके विज़ार्ड-शैली यूआई प्रगति का निर्माण करने के लिए हम सूटलेट का भी लाभ उठा सकते हैं।
पोर्टलेट्स सूटलेट के समान हैं, सिवाय इसके कि वे विशेष रूप से पूर्ण कस्टम पृष्ठों के बजाय कस्टम डैशबोर्ड विजेट बनाने के लिए उपयोग किए जाते हैं। इसके अलावा, दो स्क्रिप्ट प्रकार बहुत समान रूप से कार्य करते हैं।
रेस्टलेट
Restlets हमें NetSuite में कस्टम REST- आधारित समापन बिंदु बनाने की अनुमति देते हैं; इस प्रकार, रैस्टलेट्स नेटसुइट में लगभग किसी भी एकीकरण की रीढ़ बनाते हैं।
Restlets चार सबसे अधिक उपयोग किए जाने वाले HTTP अनुरोध विधियों के लिए व्यक्तिगत ईवेंट हैंडलर प्रदान करते हैं:
-
GET -
POST -
PUT -
DELETE
जब रैस्टलेट को एक अनुरोध प्राप्त होता है, तो वह अनुरोध का उपयोग किए गए HTTP अनुरोध विधि के आधार पर उचित ईवेंट हैंडलर फ़ंक्शन के लिए करेगा।
रैस्टोरैंट का प्रमाणीकरण उपयोगकर्ता सत्र, HTTP हेडर या OAuth टोकन के माध्यम से किया जा सकता है।
मास अपडेट स्क्रिप्ट
मास अपडेट स्क्रिप्ट का उपयोग करके, हम उपयोगकर्ताओं के प्रदर्शन के लिए कस्टम मास अपडेट बना सकते हैं। यह एक सामान्य जन अद्यतन की तरह ही कार्य करता है, जहाँ उपयोगकर्ता जन अद्यतन के प्रकार का चयन करता है, एक खोज बनाता है जो अद्यतन करने के लिए रिकॉर्ड लौटाता है, और फिर प्रत्येक खोज परिणाम व्यक्तिगत रूप से कस्टम मास अपडेट स्क्रिप्ट में पारित हो जाता है।
स्क्रिप्ट एक भी प्रदान करता है each ईवेंट हैंडलर कि आंतरिक आईडी और रिकॉर्ड अद्यतन करने की है इस बात का रिकॉर्ड प्रकार प्राप्त करता है।
मास अपडेट स्क्रिप्ट्स को मानक मास अपडेट इंटरफेस के माध्यम से उपयोगकर्ताओं द्वारा मैन्युअल रूप से ट्रिगर किया जाना चाहिए।
बड़े पैमाने पर अद्यतन लिपियों की एक व्यापक रूप से उच्च शासन सीमा है और आम तौर पर उपयोग किए जाने वाले कस्टम थोक प्रसंस्करण के लिए अभिप्रेत है।
वर्कफ़्लो एक्शन स्क्रिप्ट
वर्कफ़्लो उनकी कार्यक्षमता में कुछ हद तक सीमित हो सकता है; उदाहरण के लिए, वर्कफ़्लोज़ लाइन आइटम्स के साथ इंटरैक्ट नहीं कर सकता है। वर्कफ़्लो एक्शन स्क्रिप्ट प्रकार का इरादा वर्कफ़्लो द्वारा स्क्रिप्टिंग कार्यक्षमता को जोड़ने के लिए किया जाता है ताकि वर्कफ़्लो स्वयं को पूरा न कर सके।
वर्कफ़्लो क्रियाओं में एक एकल onAction ईवेंट हैंडलर है जिसे वर्कफ़्लो द्वारा लागू किया जाएगा।
बंडल स्थापना स्क्रिप्ट
अंत में, हमारे पास बंडल इंस्टॉलेशन स्क्रिप्ट प्रकार है, जो कई घटनाओं को प्रदान करता है जो हमें एक विशेष बंडल की स्थापना, अद्यतन और अनइंस्टॉल करने की अनुमति देता है। यह एक शायद ही कभी सामना करना पड़ा स्क्रिप्ट प्रकार है, लेकिन फिर भी अवगत होने के लिए महत्वपूर्ण है।
बंडल इंस्टॉलेशन में निम्नलिखित ईवेंट हैंडलर शामिल हैं, जो कि काफी आत्म-व्याख्यात्मक होने चाहिए:
-
beforeInstall -
afterInstall -
beforeUpdate -
afterUpdate -
beforeUninstall