निर्भरता अवलोकन को दूर करना
समाधान घटक अक्सर अन्य समाधान घटकों पर निर्भर करते हैं. आप किसी ऐसे समाधान घटक को नहीं हटा सकते, जिसमें अन्य समाधान घटकों से निर्भरताएँ हों. निर्भरताएँ, आवश्यक फ्रेमवर्क को हटाने से रोकने के लिए समाधान फ्रेमवर्क द्वारा स्वचालित रूप से बनाए गए रिकॉर्ड हैं जबकि एक या अधिक निर्भर घटकों में अब भी उनके संदर्भ शामिल हैं. निर्भरता का एक उदाहरण इस प्रकार है: दिया गया है कि फॉर्म को कार्य करने के लिए एक फ़ील्ड की आवश्यकता होती है, यदि आप कभी भी किसी ऐसी कार्रवाई को निष्पादित करने का प्रयास करते हैं जिसके परिणामस्वरूप वह फ़ील्ड हट जाएगी, तो फॉर्म काम करना बंद कर देगा.
नोट
इस लेख में, हटाएँ का अर्थ है कि घटक को पूरी तरह से सिस्टम से हटा दिया गया है.
इस लेख में, हम चर्चा करेंगे कि इन निर्भरताओं को कैसे प्रबंधित किया जाए और उन निर्भरताओं को हटाने के लिए आप किन रणनीतियों का उपयोग कर सकते हैं जिनकी अब आपको आवश्यकता नहीं है।
मानव रहित बनाम प्रबंधित घटकों की निर्भरताएं
सबसे पहले, यह समझना महत्वपूर्ण है कि निर्भरता केवल उन संचालनों को रोकती है जो आवश्यक घटक को हटा देंगी. किसी घटक को हटा सकने वाली क्रियाएँ अलग-अलग होती हैं, जो इस बात पर निर्भर करती है कि यह अप्रबंधित है या प्रबंधित है.
अप्रबंधित घटक
इन घटकों को सक्रिय समाधान में एक परत द्वारा दर्शाया जाता है. इस तरह के घटक पर कोई हटाएं संचालन, घटक को पूरी तरह से हटा देता है.
प्रबंधित घटक
प्रबंधित घटकों का हटना कई कारकों पर निर्भर करता है: समाधान परतों की संख्या, उस परत की सापेक्ष स्थिति जिसे अनइंस्टॉल किया जा रहा है, और घटक के प्रकाशक. उदाहरण के लिए, जब कोई घटक हटा दिया जाता है, तो निम्न परिदृश्यों पर विचार करें और जब आप विभिन्न लेयर को अनइंस्टॉल करते हैं तो अपेक्षित व्यवहार क्या होगा.
उदाहरण परिदृश्य
निम्न उदाहरण परिदृश्य बताते हैं कि समाधान अनइंस्टॉल होने पर समाधान परतों का क्या होता है.
परिदृश्य 1: एकल समाधान लेयर की स्थापना रद्द करें
समाधान 1 को अनइंस्टॉल करने पर घटक हट जाता है क्योंकि यह घटक के लिए एक मात्र लेयर है.
परिदृश्य 2: विभिन्न प्रकाशकों की समाधान लेयर अन इंस्टॉल करें
- समाधान 2 को अनइंस्टॉल करने पर घटक नहीं हटता है. केवल उस लेयर को हटा दिया जाएगा.
- समाधान 1 अनइंस्टॉल करने पर घटक हट जाता है, क्योंकि कार्रवाई आधार लेयर में होती है. वास्तव में, इस परिदृश्य में समाधान 1 को अनइंस्टॉल नहीं किया जा सकता है, क्योंकि अलग प्रकाशक ने समाधान घटक का विस्तार करता है.
परिदृश्य 3: विभिन्न प्रकाशकों से कई समाधान लेयर अनइंस्टॉल करें
- समाधान 3 को अनइंस्टॉल करने पर घटक नहीं हटता है. केवल उस लेयर को हटा दिया जाएगा.
- समाधान 2 को अनइंस्टॉल करने पर घटक नहीं हटता है. केवल उस लेयर को हटा दिया जाएगा.
- समाधान 1 को अनइंस्टॉल करने पर घटक विलोपन नहीं होता है, क्योंकि इस मामले में समान प्रकाशक (प्रकाशक ए = प्रकाशक सी)) से एक और समाधान है. प्लेटफ़ॉर्म समाधान 1 से लेयर को हटाता है और समाधान 3 से लेयर को बदल देता है.
परिदृश्य 4: अप्रबंधित अनुकूलन में समाधान लेयर को अनइंस्टॉल करें
- सक्रिय (अप्रबंधित) लेयर को अनइंस्टॉल करने से घटक नहीं हटता है. केवल उस लेयर को हटा दिया जाएगा. ध्यान दें कि आप सक्रिय समाधान को अनइंस्टॉल नहीं कर सकते हैं, लेकिन आप सक्रिय अनुकूलन हटाएं सुविधा का उपयोग करके घटकों को हटा सकते हैं.
- समाधान 1 अनइंस्टॉल करने पर घटक हट जाता है. आधार लेयर में कार्रवाई होती है. परिदृश्य 2 के विपरीत, आप समाधान 1 को अनइंस्टॉल कर सकते हैं. सक्रिय समाधान को विस्तार नहीं माना जाता है, और दोनों लेयर हटा दी जाएंगी.
निर्भरता पृष्ठ दिखाएँ
निर्भरताएँ दिखाएँ आदेश चयनित समाधान या समाधान घटक के लिए निर्भरताएँ सूचीबद्ध करता है. इसके द्वारा किया जा सकता है:
- समाधान पृष्ठ पर निर्भरताएँ दिखाएँ का चयन करना.
- जब किसी समाधान घटक का चयन किया जाता है, तो समाधान के भीतर उन्नत>निर्भरताएँ दिखाएँ का चयन करना.
- समाधान को अनइंस्टॉल करने का प्रयास करना, जिससे प्लेटफ़ॉर्म को पता चलेगा कि निर्भरता मौजूद है.
निर्भरता पृष्ठ से आप घटक को खोल सकते हैं, हटा सकते हैं या मिटा सकते हैं। अधिक जानकारी: किसी घटक के लिए निर्भरताएँ देखें
निर्भरता का निदान
आइए निम्न परिदृश्य पर विचार करें. नीचे दिए गए संगठन के दो समाधान हैं: समाधान - वर्कफ़्लो और समाधान - कस्टम संस्था.
संगठन के मालिक ने निर्णय लिया कि उन्हें अब समाधान - कस्टम निकाय की आवश्यकता नहीं है, इसे हटाने की कोशिश की, और उसे निम्नलिखित पृष्ठ प्रस्तुत किया गया:
विस्तार में जाए बिना, हम यह निष्कर्ष निकाल सकते हैं कि समाधान को अनइंस्टॉल करना, निकाय को हटाने की कोशिश है जिसका नाम कस्टम निकाय और तीन फ़ील्ड—कस्टम निकाय, नाम, और नंबर फ़ील्ड है—और सभी चार घटकों पर निर्भरता है.
नोट
समाधान को अनइंस्टॉल करने से संभवतः अधिक घटक हट सकते हैं, लेकिन चूंकि उनके पास निर्भरता नहीं है, इसलिए वे सूची में दिखाई नहीं देंगे.
अगला कदम है प्रत्येक निर्भरता के लिए समाधान लेयर लिंक (सबसे दाहिना स्तंभ) की जांच करना. यह आपको यह तय करने में मदद करेगा कि निर्भरता को दूर करने के लिए क्या करना है.
निम्न चित्र निकाय (कस्टम निकाय) और प्रक्रिया (परीक्षण वर्कफ़्लो) के बीच निर्भरता विवरण दिखाता है.
प्रदर्शित डेटा के आधार पर, आप देख सकते हैं कि निर्भर घटक SolutionWorkflow नामक समाधान के अंतर्गत आता है. इस निर्भरता को दूर करने के लिए, हम या तो:
- निकाय या उसके उप-घटकों के किसी भी संदर्भ को हटाकर SolutionWorkflow में कार्यप्रवाह की परिभाषा को अपडेट करें. फिर समाधान को अद्यतन या अपग्रेड करें.
- SolutionWorkflow समाधान को अनइंस्टॉल करें.
- SolutionWorkflow समाधान के नए संस्करण से वर्कफ़्लो को निकालें, और उसके बाद अपग्रेड करें.
क्योंकि कोई भी निर्भर घटक समाधान को हटाने से रोक सकता है, हम अनुशंसा करते हैं कि आप सभी निर्भरताओं की जांच करें और एक ही ऑपरेशन में सभी आवश्यक परिवर्तन करें.
निम्न चित्र, निकाय (कस्टम निकाय) और मॉडल-संचालित अनुप्रयोग (मेरा अनुप्रयोग) के बीच निर्भरता विवरण दिखाता है.
प्रदर्शित डेटा के आधार पर, आप देख सकते हैं कि निर्भर घटक सक्रिय नामक समाधान के अंतर्गत आता है. यह इंगित करता है कि निर्भरता को अप्रबंधित समाधान को आयात करके बनाया गया था, या एक अप्रबंधित अनुकूलन के माध्यम से जिसे आधुनिक UI या API के माध्यम से निष्पादित किया गया था.
इस निर्भरता को दूर करने के लिए, आप या तो:
- निकाय या उसके उपघटकों के किसी भी संदर्भ को हटाने के लिए मॉडल-संचालित अनुप्रयोग की परिभाषा को संपादित करें. क्योंकि मॉडल-संचालित अनुप्रयोग प्रकाशन का समर्थन करते हैं, इसलिए आपको अपने परिवर्तनों को प्रकाशित करना होगा.
- मॉडल से संचालित अनुप्रयोग को हटाएं.
नोट
अप्रबंधित समाधान को अनइंस्टॉल करना इस निर्भरता को दूर करने का विकल्प नहीं है, क्योंकि अवांछित अप्रबंधित समाधान केवल समूह घटक का साधन है.
प्रबंधित निर्भरता को दूर करने के लिए कार्य
प्रबंधित निर्भरताएं वे हैं जहां आश्रित घटक प्रबंधित समाधान से जुड़ा हुआ है. इस तरह की निर्भरता को हल करने के लिए, आपको उस समाधान पर कार्य करना होगा, जहां घटक जोड़ा गया था. आप जो करने की कोशिश कर रहे हैं, उसके आधार पर यह क्रिया अलग हो सकती है.
यदि आप किसी समाधान को अनइंस्टॉल करने का प्रयास कर रहे हैं
इन चरणों का अनुसरण करें:
- लक्षित संगठन में, निर्भर घटक की सूची में सबसे पहला समाधान खोजने के लिए समाधान लेयर लिंक का निरीक्षण करें.
- स्रोत संगठन में, उस समाधान का नया संस्करण तैयार करें, जहां समाधान में या तो निर्भर घटक शामिल नहीं है, या उसके पास निर्भर घटक का अद्यतन संस्करण है जिसमें आवश्यक घटक के संदर्भ नहीं हैं. आपका लक्ष्य समाधान के नए संस्करण में आवश्यक घटकों के किसी भी संदर्भ को दूर करना है.
- समाधान के नए संस्करण का निर्यात करें.
- लक्षित संगठन में, उस समाधान को अपग्रेड करें.
- अनइंस्टॉल करने का पुन: प्रयास करें.
यदि आप किसी समाधान को अपग्रेड करने का प्रयास कर रहे हैं
इस मामले में, आपको यह पुष्टि करनी चाहिए कि आप आवश्यक घटक को हटाना चाहते थे (याद रखें कि निर्भरता केवल हटाए जा रहे घटकों पर लागू की जाती है).
यदि आप घटक को हटाना नहीं चाहते हैं, तो आप निम्नानुसार घटक को वापस जोड़कर समाधान के नए संस्करण को ठीक कर सकते हैं:
- लक्षित संगठन में, चरणबद्ध समाधान (_Upgrade में समाप्त होने वाले समाधान) को अन इंस्टॉल करें.
- स्रोत संगठन में, आवश्यक घटक (ओं) को समाधान में वापस जोड़ें.
- नए संस्करण को निर्यात करें.
- अपग्रेड करने के लिए पुन: प्रयास करें.
यदि हटाना जानबूझकर किया गया है, तो आपको निर्भरता को दूर करना होगा. पूर्ववर्ती अनुभाग में उल्लिखित चरणों का प्रयास करें, "यदि आप किसी समाधान की स्थापना रद्द करने का प्रयास कर रहे हैं."
लेयर और निर्भरताएं
निर्भर घटकों को स्तरित किया जा सकता है, इसलिए आपको निर्भरता को पूरी तरह से हटाने के लिए एक से अधिक समाधान बदलने की आवश्यकता हो सकती है. निर्भरता का ढांचा, केवल आवश्यक और निर्भर घटकों की सबसे ऊपरी परतों के बीच निर्भरता की गणना करता है. इसका अर्थ है कि आपको निर्भर घटक के ऊपर से नीचे तक सभी समाधानों पर काम करने की आवश्यकता है.
निम्न परिदृश्य पर विचार करें:
आप समाधान- कस्टम संस्था को अनइंस्टॉल करने का प्रयास करते हैं, और निर्भरता द्वारा संचालन को अवरुद्ध किया जाता है.
आप new_numberfield विशेषता पर समाधान लेयर का चयन करके निर्भरता का निदान करना शुरू करते हैं. आपको निम्न स्क्रीन दिखायी देती है:
क्योंकि निर्भरताएँ प्रत्येक घटक की केवल सबसे ऊपरी लेयर के बीच बनाई जाती हैं, पहला कदम SolutionCustomEntity में new_numberfield एट्रिब्यूट और SolutionWorkflow3 में परीक्षण वर्क फ़्लो वर्कफ़्लो के बीच निर्भरता से निपटना है.
निर्भरता को दूर करने के लिए, आप SolutionWorkflow3 को अनइंस्टॉल करने का निर्णय लेते हैं. आप ऐसा करते हैं, लेकिन जब आप समाधान को एक बार फिर से अनइंस्टॉल करने की कोशिश करते हैं, तो आपको निर्भरता का समान पृष्ठ प्रस्तुत किया जाता है:
हालाँकि, new_numberfield एट्रिब्यूट अब सूचीबद्ध नहीं है, भले ही यह अधिक लेयर में मौजूद हो.
अप्रबंधित निर्भरता को हटाने के लिए कार्य
अप्रबंधित निर्भरताओं को दूर करने के लिए, आपको घटकों पर सीधे कार्य करने की आवश्यकता है, न कि उन समाधानों में जिनसे वे संबंधित हैं. उदाहरण के लिए, यदि आप किसी विशेषता और प्रपत्र के बीच निर्भरता को हटाना चाहते हैं, तो आपको उसे प्रपत्र संपादक में संपादित करना और प्रपत्र से विशेषता को हटाना होगा. आपके द्वारा सहेजें और प्रकाशित करें का चयन करने के बाद निर्भरता हटा दी जाएगी.
नोट
- निर्भरताएँ दिखाएँ आदेश आपको निर्भरता को देखने, हटाने, घटक को संपादित करने या घटक को हटाने के लिए कार्रवाई करने देता है। अधिक जानकारी: किसी घटक के लिए निर्भरताएँ देखें
- आप आश्रित घटक को भी हटा सकते हैं. यह गतिविधि घटक के साथ साथ सभी निर्भरताओं को हटा देती है.
किसी घटक की निर्भरताएँ देखने के लिए, समाधान क्षेत्र से, इच्छित समाधान खोलें, घटक के आगे लंबवत दीर्घवृत्त चुनें, और फिर उन्नत>निर्भरताएँ दिखाएँ चुनें.
निर्भरताओं के पृष्ठ के दो अलग-अलग भाग हैं:
- आश्रित घटक: घटकों की सूची जो चयनित फील्ड पर निर्भर करती है. दूसरे शब्दों में, इन घटकों में यह फ़ील्ड उनके आवश्यक घटक के रूप में होगी.
- आवश्यक घटक: काम करने के लिए इस फ़ील्ड की आवश्यकता वाले घटकों की सूची. दूसरे शब्दों में, इन घटकों में यह फ़ील्ड उनके आश्रित घटक के रूप में होगी.