एएमएल में उपयोग किया जाने वाला एक सामान्य कोडिंग पैटर्न एक अन्य एएमएल के अंदर एएमएल (मापदंडों के साथ) को चलाने के लिए था।
एक एप्लिकेशन जो मैं वर्तमान में विकसित कर रहा हूं वह एक और पायथन स्क्रिप्ट के भीतर पायथन स्क्रिप्ट (मापदंडों के साथ) को चलाने में सक्षम होने से लाभ होगा।
हालाँकि, यह बिल्कुल सीधा नहीं लगता है।
ArcGIS 10 का उपयोग करते हुए, मैं "आंतरिक" पायथन स्क्रिप्ट को एक ArcGIS टूल में लपेटने के साथ प्रयोग कर रहा हूं जिसमें पैरामीटर हैं। मुझे लगा कि टूलबॉक्स को इम्पोर्ट करने के लिए "बाहरी" पायथन स्क्रिप्ट का उपयोग करना बहुत आसान होगा। हालांकि, परीक्षण में अब तक "बाहरी" स्क्रिप्ट से "इनर" टूल को चलाने के मेरे सभी प्रयास केवल "इनर" टूल को छोड़ना प्रतीत होता है (कोई त्रुटि नहीं है)।
यहाँ कुछ परीक्षण कोड की कोशिश की गई है और बेहतर वर्णन करने के लिए कि मैं क्या वर्णन करने की कोशिश कर रहा हूँ।
मेरी testinner.py स्क्रिप्ट है:
inputString = arcpy.GetParameterAsText(0)
newFC = "C:\\Temp\\test.gdb\\" + inputString
arcpy.Copy_management("C:\\Temp\\test.gdb\\test",newFC)
मेरी टेस्ट राउटरफ़्लो स्क्रिप्ट है:
import arcpy
inputString1 = arcpy.GetParameterAsText(0)
inputString2 = arcpy.GetParameterAsText(1)
arcpy.ImportToolbox("C:\\Temp\\test.tbx")
arcpy.testinner_test(inputString1)
arcpy.testinner_test(inputString2)
Testinner.py के लिए इसके टूल को सिंगल स्ट्रिंग पैरामीटर की आवश्यकता है।
Testouter.py के लिए इसके टूल को दो स्ट्रिंग मापदंडों की आवश्यकता है
दो उपकरण एक test.tbx में रखे गए हैं।
Test.gdb को केवल एक खाली सुविधा वर्ग की आवश्यकता होती है जिसे परीक्षण कहा जाता है।
एक बार जब आप उपरोक्त इकट्ठे हो जाते हैं, तो टेस्टिनर टूल को एक स्ट्रिंग जैसे 'एबीसी' के साथ चला रहे हैं, क्योंकि इसके पैरामीटर को फीचर क्लास 'टेस्ट' में कॉपी किया जाना चाहिए, जिसे 'एबीसी' ओके कहा जाता है।
लेकिन जब आप 'uvw' और 'xyz' जैसे दो स्ट्रिंग्स के साथ टेस्टिंग राउटर टूल को अपने मापदंडों के रूप में चलाने का प्रयास करते हैं, तो टेस्ट राउटर के भीतर वाला टेस्टिकलर टूल एक बार ओके लगता है, लेकिन जब Vista SP2 पर आर्कपॉम 10 SP2 को एक सीरियस एप्लिकेशन त्रुटि के लिए भेजता है। दूसरी बार इसका उपयोग करने की कोशिश कर रहा है।
Windows XP SP3 और ArcGIS डेस्कटॉप 10 SP2 का उपयोग करने वाली समान परीक्षा भी एक ही बिंदु पर एक गंभीर एप्लिकेशन त्रुटि पैदा करती है।