Nordlet

← ब्लॉग

ERP प्रणालियाँ कैसे काम करती हैं: मॉड्यूल, डेटा फ़्लो और अंतर्निहित लेजर

एक ट्रांजैक्शन जो ERP के हर मॉड्यूल से होकर गुजरता है, उसकी वास्तविक जर्नल एंट्रीज के साथ, और यह भी कि जनरल लेजर वह रिकॉर्ड क्यों है जिससे बाकी सब कुछ पढ़ा जाता है।

Nordlet Team · · 11 मिनट पढ़ने में

एक ERP प्रणाली प्रत्येक व्यावसायिक घटना (business event) को एक बार, एक ही डेटाबेस में संग्रहीत करके काम करती है, और प्रत्येक मॉड्यूल को उस साझा रिकॉर्ड को पढ़ने और लिखने की अनुमति देती है। एक भेजा गया ऑर्डर (shipped order) वही रिकॉर्ड रहता है, चाहे उसे गोदाम, बिक्री टीम या लेखाकार (accountant) में से कोई भी देखे। पूरे सिस्टम को सटीक और पारदर्शी बनाए रखने वाला मॉड्यूल जनरल लेजर (general ledger) होता है: हर वह घटना जिसका मौद्रिक मूल्य होता है, वहाँ एक संतुलित जर्नल एंट्री (balanced journal entry) के रूप में समाप्त होती है, और प्रत्येक रिपोर्ट इन्हीं प्रविष्टियों से तैयार की जाती है।

यह लेख एक बिक्री (sale) के माध्यम से सभी मॉड्यूलों का अनुसरण करता है, इसके द्वारा उत्पन्न जर्नल प्रविष्टियों को दिखाता है, और यह बताता है कि ERP के साथ एकीकरण (integration) स्क्रीन के बजाय घटनाओं और लेजर के बारे में क्यों होता है।

साझा डेटाबेस (The shared database)

ERP से पहले, प्रत्येक विभाग अपना खुद का कार्यक्रम चलाता था। स्टॉक एक वेयरहाउस सिस्टम में रहता था, इनवॉइस बिलिंग सिस्टम में, और खाता-बही (books) एक अकाउंटिंग पैकेज में। महीने का अंत तीनों का मिलान (reconciling) करने में बीत जाता था। ERP सॉफ्टवेयर क्या है इस श्रेणी को स्पष्ट करता है; जिस तंत्र (mechanism) से यह काम करता है वह एक एकल डेटा मॉडल है जिसमें:

  • एक पार्टनर (partner) रिकॉर्ड का उपयोग बिक्री, खरीद और लेजर द्वारा समान रूप से किया जाता है,
  • एक आइटम (item) रिकॉर्ड स्टॉक मात्रा, FIFO लागत परतों (cost layers), बिक्री मूल्य और राजस्व खाते को संभालता है,
  • एक दस्तावेज़ (document) (ऑर्डर, इनवॉइस, क्रेडिट नोट, खरीद, उत्पादन ऑर्डर) पार्टनर और आइटम को संदर्भित करता है और ठीक एक सेट जर्नल एंट्रीज बनाता है,
  • एक जर्नल एंट्री (journal entry) उस दस्तावेज़ को संदर्भित करती है जिसने इसे बनाया है, ताकि रिपोर्ट के प्रत्येक आंकड़े को वापस ट्रैक किया जा सके।

जब रिकॉर्ड साझा किए जाते हैं, तो मॉड्यूल के बीच मिलान करने के लिए कुछ नहीं बचता है। जो मिलान करने के लिए शेष रहता है, वह बाहरी दुनिया है: बैंक स्टेटमेंट और टैक्स रिटर्न।

मॉड्यूल मैप (The module map)

मॉड्यूल (Module) लिखता है (Writes) पढ़ता है (Reads)
बिक्री (Sales) ऑर्डर, इनवॉइस, क्रेडिट नोट पार्टनर, आइटम, मूल्य, वैट नियम (VAT rules)
खरीद (Purchasing) परचेस ऑर्डर, आपूर्तिकर्ता इनवॉइस पार्टनर, आइटम, खर्च खाते
इन्वेंट्री (Inventory) स्टॉक मूवमेंट, FIFO लागत परतें, स्टॉक-टेक आइटम, वेयरहाउस
उत्पादन (Production) उत्पादन ऑर्डर, घटक खपत (component consumption), तैयार माल बिल ऑफ मैटेरियल्स, स्टॉक
बैंक (Bank) आयातित ट्रांजैक्शन, भुगतान मिलान खुले इनवॉइस, बैंक खाते
पे-रोल (Payroll) पे-रोल रन, योगदान, फाइलिंग कर्मचारी, अनुबंध, कर तालिकाएं
एसेट्स (Assets) एसेट रजिस्टर, मूल्यह्रास रन (depreciation runs) एसेट समूह, उपयोगी जीवन
कर (Tax) वैट रिटर्न, EU बिक्री सूचियां, इंट्रास्टेट, ई-इनवॉइस जारी और पंजीकृत दस्तावेज
जनरल लेजर (General ledger) जर्नल एंट्री, अवधि ताले (period locks) उपरोक्त सभी
रिपोर्टिंग (Reporting) कुछ नहीं जनरल लेजर और सबलेजर

अंतिम दो पंक्तियों को छोड़कर प्रत्येक पंक्ति जनरल लेजर में लिखने के साथ समाप्त होती है। यह वह डिज़ाइन नियम है जो एक ERP को कनेक्टेड टूल के सेट से अलग करता है।

एक काम करने वाला डेटा फ़्लो (A worked data flow)

नीचे दिया गया उदाहरण Nordlet के एंडपॉइंट्स और लिथुआनियाई चार्ट के डिफ़ॉल्ट खातों का उपयोग करता है जो इसके साथ आते हैं। कोई भी ERP समान चरणों को निष्पादित करता है; खाता कोड और एंडपॉइंट नाम भिन्न होते हैं।

1. ऑर्डर

एक स्टोरफ्रंट POST v1/ecommerce/orders/create के माध्यम से एक ऑर्डर देता है: एक पार्टनर, आइटम और मात्रा वाली लाइनें, और एक शिप-टू देश। अभी लेजर में कुछ भी पोस्ट नहीं होता है। एक ऑर्डर एक प्रतिबद्धता (commitment) है, न कि कोई ट्रांजैक्शन।

2. स्टॉक आरक्षण (Stock reservation)

orders/reserve मात्रा को अलग रखता है ताकि दूसरा ऑर्डर उन्हीं यूनिट्स को न बेच सके। अभी भी कोई जर्नल एंट्री नहीं होती है: आरक्षित स्टॉक अभी भी स्वामित्व में है।

3. फुलरमेंट (Fulfilment)

orders/fulfill गोदाम से माल के बाहर जाने को रिकॉर्ड करता है। एक डेटाबेस ट्रांजैक्शन में दो चीजें होती हैं:

  • FIFO लागत पर स्टॉक की खपत होती है: प्रत्येक आइटम के लिए सबसे पुरानी लागत परतों का उपयोग पहले किया जाता है, जो FIFO इन्वेंट्री मूल्यांकन शब्दावली प्रविष्टि में वर्णित विधि है।
  • उन यूनिट्स की लागत एक जर्नल एंट्री के रूप में पोस्ट होती है, जिसमें बेचे गए माल की लागत (cost of goods sold) डेबिट और स्टॉक क्रेडिट होता है।
खाता (Account) डेबिट (Debit) क्रेडिट (Credit)
6000 बेचे गए माल की लागत (Cost of goods sold) 600.00
2040 स्टॉक (Stock) 600.00

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

4. इनवॉइस जारी करना (Invoice issue)

इनवॉइस जारी करना वह क्षण है जब किसी विशिष्ट बिंदु पर बिक्री के लिए राजस्व को मान्यता दी जाती है (revenue is recognised)। दस्तावेज़ को उसका गैपलेस नंबर मिलता है, और एक संतुलित प्रविष्टि पोस्ट होती है: सकल (gross) प्रा प्राप्य खातों (receivables) में, वैट आउटपुट वैट खाते में, और शुद्ध (net) राजस्व खाते में।

21% लिथुआनियाई वैट पर €1,000 की शुद्ध बिक्री के लिए:

खाता (Account) डेबिट (Debit) क्रेडिट (Credit)
2410 प्राप्य खाते (Accounts receivable) 1,210.00
5000 माल से राजस्व (Revenue from goods) 1,000.00
4492 देय आउटपुट वैट (Output VAT payable) 210.00

यदि किसी लाइन में पॉइंट-इन-टाइम के अलावा कोई अन्य मान्यता विधि है, तो नेट इसके बजाय डिफ़र्ड इनकम (deferred income) में चला जाता है, और राजस्व मान्यता इंजन इसे शेड्यूल के अनुसार जारी करता है। प्राप्य खातों और वैट की पोस्टिंग नहीं बदलती है।

इनवॉइस अब एक PDF के रूप में, Peppol BIS 3.0 ई-इनवॉइस के रूप में, या कंपनी के देश द्वारा आवश्यक राष्ट्रीय ई-इनवॉइसिंग प्रारूप में बाहर जा सकता है।

5. बैंक मिलान (Bank match)

दो हफ्ते बाद €1,210 आ जाते हैं। यह मूवमेंट PSD2 बैंक फ़ीड या camt.053 स्टेटमेंट आयात के माध्यम से आता है। बैंक मॉड्यूल राशि, भुगतान संदर्भ, प्रतिपक्ष नाम (counterparty name) और IBAN द्वारा संभावित इनवॉइस को स्कोर करता है, और bank/transactions/match निपटान (settlement) को पोस्ट करता है:

खाता (Account) डेबिट (Debit) क्रेडिट (Credit)
2710 बैंक (Bank) 1,210.00
2410 प्राप्य खाते (Accounts receivable) 1,210.00

इनवॉइस की स्थिति भुगतान हो जाने (paid) में बदल जाती है, और एक sale_invoice.paid वेबहुक उत्सर्जित होता है। भुगतान मिलान प्रविष्टि मिलान तर्क को अधिक विस्तार से बताती है। किसी अन्य मुद्रा में भुगतान उसी चरण में प्राप्त विनिमय अंतर (realised exchange difference) को लाभ या हानि खाते में दर्ज करता है।

6. वैट रिटर्न (VAT return)

महीने के अंत में किसी भी चीज़ को दोबारा टाइप नहीं करना पड़ता है। वैट रिटर्न जारी और पंजीकृत दस्तावेजों से गणना किया जाता है: राष्ट्रीय रिटर्न के लिए declarations/eu/vat-return/compute (लिथुआनिया में FR0600), यूनियन योजना के तहत सीमा पार उपभोक्ता बिक्री के लिए declarations/eu/oss/compute। उपर्युक्त बिक्री घरेलू रिटर्न के मानक-दर बॉक्स में आती है क्योंकि इसकी वैट योजना domestic है।

7. अवधि ताला (Period lock)

एक बार रिटर्न दाखिल होने के बाद, ledger/periods/lock महीने को बंद कर देता है। उसके बाद उसमें दिनांकित कोई भी पोस्टिंग, जिसमें देर से बैंक मिलान या पुनः प्रयास किया गया API कॉल शामिल है, HTTP 409 के साथ अस्वीकार कर दी जाती है। लॉक करने से अवधि के अंत तक देय किसी भी स्थगित राजस्व (deferred revenue) की मान्यता भी शुरू हो जाती है, ताकि कोई भी महीना ऐसी कमाई के साथ बंद न हो जो देनदारी खाते में बची हुई हो।

लेजर रिकॉर्ड का सिस्टम क्यों है

प्रत्येक उपर्युक्त मॉड्यूल एक सबलेजर रखता है: ग्राहक द्वारा प्राप्य, आपूर्तिकर्ता द्वारा देय, आइटम द्वारा स्टॉक, एसेट द्वारा एसेट। जनरल लेजर में वे कुल शामिल होते हैं जिनसे उन सबलेजरों को सहमत होना चाहिए। सबलेजर बनाम जनरल लेजर इस संबंध को कवर करता है; व्यावहारिक बिंदु यह है कि लेजर से बनाई गई रिपोर्ट और सबलेजर से बनाई गई रिपोर्ट एक ही संख्या देनी चाहिए, और एक ERP जर्नल एंट्रीज से दोनों का उत्पादन करके इसकी गारंटी देता है।

तीन गुण लेजर को रिकॉर्ड के रूप में भरोसेमंद बनाते हैं:

  1. संतुलन लागू किया जाता है (Balance is enforced)। Nordlet में डेटाबेस ऐसी प्रविष्टि को अस्वीकार कर देता है जिसके डेबिट उसके क्रेडिट के बराबर नहीं होते हैं। किसी मॉड्यूल में कोई बग एक तरफ़ा पोस्टिंग नहीं बना सकता है।
  2. इतिहास केवल-जोड़ने वाला होता है (History is append-only)। पोस्ट की गई प्रविष्टि को कभी भी संपादित नहीं किया जाता है। किसी गलती को उलटफेर (reversal) और एक नई प्रविष्टि के साथ सुधारा जाता है, दोनों मूल से जुड़े होते हैं। अपरिवर्तनीय लेजर (immutable ledger) प्रविष्टि बताती है कि ऑडिटर इस पर क्यों जोर देते हैं।
  3. अवधियाँ बंद हो जाती हैं (Periods close)। एक लॉक किया गया महीना बदल नहीं सकता है, इसलिए आपके द्वारा फाइल किए गए आंकड़े वे आंकड़े हैं जो सिस्टम में रहते हैं।

एकीकरण: घटनाएं और आइडपोटेंसी, न कि रात के बैच

पुराने ERP एकीकरण रात में आदान-प्रदान की जाने वाली फाइलों पर चलते थे: ऑर्डर निर्यात करें, उन्हें आयात करें, सुबह त्रुटि लॉग (error log) की जांच करें। आधुनिक ERP एक API प्रदान करते हैं, और एकीकरण दो विषयों का मामला बन जाता है।

बाहर जाने वाली घटनाएं (Events out)। जब कुछ बदलता है, तो ERP आपको बताता है। Nordlet परिवर्तन के समान डेटाबेस ट्रांजैक्शन में आउटबॉक्स में प्रत्येक वेबहुक घटना लिखता है, इसलिए एक दस्तावेज़ जिसे रोल बैक किया गया था, वह कभी भी कोई घटना उत्सर्जित नहीं करता है और कोई घटना खोती नहीं है। डिलीवरी पर HMAC-SHA256 के साथ हस्ताक्षर किए जाते हैं और एक्सपोनेंशियल बैकऑफ़ के साथ पुनः प्रयास किया जाता है। आपका सिस्टम यह पूछने के बजाय कि क्या कुछ भुगतान किया गया है, हर पांच मिनट में sale_invoice.paid पर प्रतिक्रिया करता है।

सुरक्षित पुनः प्रयास (Safe retries in)। नेटवर्क विफल हो जाते हैं, और एक पुनः प्रयास किए गए अनुरोध को दूसरा इनवॉइस नहीं बनाना चाहिए। Nordlet प्रत्येक म्यूटेटिंग कॉल पर एक Idempotency-Key हेडर स्वीकार करता है: समान पेलोड के साथ समान कुंजी संग्रहीत प्रतिक्रिया लौटाती है, अलग पेलोड के साथ समान कुंजी अस्वीकार कर दी जाती है, और कुंजियाँ 24 घंटे के बाद समाप्त हो जाती हैं। आइडपोटेंसी (idempotency) शब्दावली प्रविष्टि और API कन्वेंशन सटीक व्यवहार का वर्णन करते हैं।

चूंकि प्रत्येक ऑपरेशन एक POST /v1/{module}/{resource}/{action} कॉल है और एप्लिकेशन समान एंडपॉइंट्स का उपयोग करता है, इसलिए एक एकीकरण बिना किसी के स्क्रीन खोले उपरोक्त पूरे प्रवाह को चला सकता है। क्लाउड अकाउंटिंग API को SaaS प्लेटफॉर्म में कैसे एकीकृत करें ऐसे बिल्ड के माध्यम से चलता है।

रिपोर्ट क्या पढ़ती हैं

रिपोर्ट आंकड़े संग्रहीत नहीं करती हैं। वे एक समय में लेजर और सबलेजर पर की जाने वाली क्वेरी होती हैं:

  • ट्रायल बैलेंस, बैलेंस शीट, प्रॉफिट एंड लॉस, कैश फ्लो खाते और अवधि के अनुसार जर्नल एंट्री पढ़ते हैं।
  • ऋण एजिंग (Debt aging) देय तिथि के अनुसार खुले प्राप्य और देय राशि को पढ़ती है।
  • स्टॉक बैलेंस और मूवमेंट इन्वेंट्री सबलेजर और उसकी FIFO परतों को पढ़ते हैं।
  • वैट सारांश (VAT summary) जारी और पंजीकृत दस्तावेजों की वैट लाइनों को पढ़ता है।
  • लागत-केंद्र रिपोर्ट (Cost-center reports) प्रत्येक जर्नल लाइन पर लागत-केंद्र आयाम को पढ़ती हैं।

Nordlet में एक रिपोर्ट पृष्ठभूमि में XLSX, PDF या JSON के रूप में तैयार की जाती है, और जब फ़ाइल तैयार हो जाती है तो एक वेबहुक फायर होता है। समूह के आंकड़े समेकन (consolidation) से आते हैं, जो स्वामित्व भार और मुद्रा अनुवाद के साथ कई कंपनियों के लेजर को जोड़ता है।

अभ्यास में यह कहाँ विफल होता है

अधिकांश ERP समस्याएं सॉफ्टवेयर की तुलना में साझा-रिकॉर्ड सिद्धांत की विफलताएं हैं। सामान्य मामले:

  • किसी ऐसी चीज़ के लिए एक समानांतर स्प्रेडशीट जिसे ERP "नहीं कर सकता", जो तब बही-खातों से असहमत होती है।
  • दस्तावेज़ को ठीक करने के बजाय मॉड्यूल आउटपुट को ठीक करने के लिए उपयोग की जाने वाली मैनुअल जर्नल एंट्रीज, जो रिपोर्ट से स्रोत तक के ट्रेस को तोड़ती हैं।
  • एकीकरण जो दस्तावेजों के बजाय शेष राशि (balances) लिखते हैं, ताकि लेजर में ऐसे योग हों जिन्हें कोई समझा न सके।
  • खुली अवधियाँ जो महीनों तक बिना लॉक किए छोड़ दी जाती हैं, ताकि पिछली तिमाही के फाइल किए गए आंकड़े भटक जाएं।

ERP कार्यान्वयन क्यों विफल होते हैं कवर करता है कि ये आदतें रोलआउट के दौरान कैसे बनती हैं, और यथार्थवादी ERP कार्यान्वयन समयसीमा दिखाती है कि वे परियोजना में आमतौर पर कहाँ दिखाई देती हैं।

FAQ

ERP प्रणाली का मूल क्या है?

जनरल लेजर और उसके आसपास का साझा डेटा मॉडल। प्रत्येक मॉड्यूल ऐसे दस्तावेज़ लिखता है जो संतुलित जर्नल एंट्री बनाते हैं, और प्रत्येक रिपोर्ट उन प्रविष्टियों से प्राप्त होती है।

डेटा ERP के माध्यम से कैसे प्रवाहित होता है?

एक घटना को दस्तावेज़ के रूप में एक बार रिकॉर्ड किया जाता है (ऑर्डर, इनवॉइस, मूवमेंट, पे-रोल रन)। दस्तावेज़ लेजर में जर्नल एंट्री और प्रासंगिक सबलेजर में मूवमेंट बनाता है। रिपोर्ट और वैट रिटर्न उन रिकॉर्ड से गणना किए जाते हैं। मॉड्यूल के बीच कुछ भी कॉपी नहीं किया जाता है।

मॉड्यूल और एकीकरण में क्या अंतर है?

एक मॉड्यूल सिस्टम के बाकी हिस्सों के समान डेटाबेस और समान लेजर में लिखता है। एक एकीकरण एक बाहरी प्रोग्राम है जो ERP के API को कॉल करता है। API-प्रथम ERP के साथ अंतर छोटा है, क्योंकि एकीकरण उन्हीं एंडपॉइंट्स का उपयोग करता है जिनका उपयोग मॉड्यूल करते हैं।

क्या ERP स्वचालित रूप से अकाउंटिंग एंट्री पोस्ट करता है?

हाँ। इनवॉइस जारी करना, ऑर्डर पूरा करना, भुगतान का मिलान करना, पे-रोल चलाना या एसेट का मूल्यह्रास करना, प्रत्येक बिना किसी व्यक्ति के डेबिट और क्रेडिट बनाए अपनी जर्नल एंट्री उत्पन्न करता है। उपयोग किए जाने वाले खाते पोस्टिंग नियमों से आते हैं जिन्हें प्रति कंपनी बदला जा सकता है।

ERP अकाउंटिंग अवधि को लॉक क्यों करते हैं?

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

आगे की पढाई