Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं. जानकारी
ScriptEvaluationFailed
गड़बड़ी का कोड
steps.script.ScriptEvaluationFailed
गड़बड़ी के जवाब का मुख्य हिस्सा
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: error_type: error_description"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
संभावित कारण
Python स्क्रिप्ट नीति में कई तरह की ScriptEvaluationFailed
गड़बड़ियां हो सकती हैं. यहां दिए गए सेक्शन में, इनमें से कुछ गड़बड़ियों के बारे में बताया गया है.
NameError
अगर PythonScript कोड में कोई ऐसा वैरिएबल है जिसका रेफ़रंस दिया गया है या उसे इस्तेमाल किया जा रहा है, लेकिन उसे तय नहीं किया गया है, तो आपको Name की गड़बड़ी मिलेगी.
गड़बड़ी के जवाब का मुख्य हिस्सा
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: "NameError: variable_name is not defined"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
गड़बड़ी के जवाब का मुख्य हिस्सा
{ "fault": { "faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
संक्रमण की जांच
PythonScript नीति और गड़बड़ी के रिस्पॉन्स के बेकरी एलिमेंट से वैरिएबल के नाम की पहचान करें. उदाहरण के लिए, नीचे दी गई समस्या में PythonScript का नाम
myscript.py
है और वैरिएबल का नाम num3 है."faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined""
ऊपर दिए गए चरण #1 में पहचानी गई PythonScript सोर्स फ़ाइल की जांच करें. साथ ही, पुष्टि करें कि ऊपर दिए गए चरण #1 में पहचाने गए 'तय नहीं किए गए वैरिएबल' का रेफ़रंस दिया जा रहा है या नहीं. उदाहरण के लिए, नीचे दिया गया Pythonscript कोड, तय नहीं किए गए वैरिएबल num3 का रेफ़रंस देता है, जो flowstring से मेल खाता है:
num1 = 1.5 num2 = 6.3 sum = float(num1) + float(num3) print('The sum of {0} and {1} is {2}'.format(num1, num3 sum))
देखें कि PythonScript कोड में कोई वैरिएबल तय किया गया है या नहीं. अगर वैरिएबल तय नहीं है, तो यही गड़बड़ी है.
ऊपर उदाहरण के तौर पर दिखाई गई स्क्रिप्ट में, वैरिएबल num3 के बारे में जानकारी नहीं दी गई है. इसलिए, आपको यह गड़बड़ी दिखेगी:
"faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined""
रिज़ॉल्यूशन
पक्का करें कि PythonScript कोड में रेफ़र किए गए सभी वैरिएबल सही तरीके से तय किए गए हैं.
ऊपर दिखाए गए उदाहरण PythonScript की मदद से समस्या को ठीक करने के लिए, वैरिएबल num3 का इस्तेमाल करने से पहले उसे तय करें. उदाहरण के लिए:
num1 = 1.5 num2 = 6.3 num3 = 8.7 sum = float(num1) + float(num3) print('The sum of {0} and {1} is {2}'.format(num1, num3, sum))
ZeroDivisionError
यह गड़बड़ी तब दिखती है, जब किसी डिवीज़न या मॉड्यूलो ऑपरेशन का दूसरा आर्ग्युमेंट शून्य होता है.
गड़बड़ी के जवाब का मुख्य हिस्सा
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: "ZeroDivisionError: reason_for_error"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
गड़बड़ी के जवाब का मुख्य हिस्सा
{ "fault": { "faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
संक्रमण की जांच
PythonScript नीति के नाम का पता लगाएं. साथ ही, गड़बड़ी के रिस्पॉन्स में, गड़बड़ी वाले एलिमेंट की वजह से फ़ेल होने की वजह बताएं. उदाहरण के लिए, नीचे दी गई गड़बड़ी में PythonScript का नाम
myscript.py
है और फ़ेल होने की वजहinteger division or modulo by zero
है:"faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero""
ऊपर दिए गए चरण #1 में पहचानी गई PythonScript सोर्स फ़ाइल की जांच करें और पुष्टि करें कि कोई विभाजन या मॉड्यूलस ऑपरेशन है या नहीं, यह शून्य से है. उदाहरण के लिए, नीचे दिया गया PythonScript कोड, शून्य से डिवीज़न करता है, जो फ़ॉल्टस्ट्रिंग में मौजूद वैल्यू से मैच करता है:
a = 0 b = 5 c = b/a print c
ऊपर दिखाई गई उदाहरण स्क्रिप्ट में, विभाजन कार्रवाई का दूसरा तर्क शून्य होने की वजह से, आपको यह गड़बड़ी मिलती है:
"faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero""
रिज़ॉल्यूशन
पक्का करें कि PythonScript में किसी डिवीज़न या मॉड्यूलो ऑपरेशन का दूसरा आर्ग्युमेंट शून्य न हो.
ऊपर दिखाए गए PythonScript के उदाहरण से समस्या को ठीक करने के लिए, किसी डिवीज़न या मॉड्यूलो ऑपरेशन के दूसरे आर्ग्युमेंट के तौर पर, बिना शून्य वाली वैल्यू का इस्तेमाल करें. उदाहरण के लिए:
a = 3 b = 5 c = b/a print c
ज़्यादा जानकारी
ऊपर बताई गई वजहों के अलावा, steps.script.ScriptEvaluationFailed
गड़बड़ी की कई और वजहें भी हो सकती हैं. ज़्यादा जानकारी के लिए, कृपया आधिकारिक Python दस्तावेज़ देखें.