আপনি 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 কোডে যদি এমন কোনও ভেরিয়েবল থাকে যা সংজ্ঞায়িত না করেই রেফারেন্স করা বা অপারেট করা হয়, তাহলে আপনি নামের সমস্যা পাবেন।
সমস্যার উত্তরের বডি
{ "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 নীতি এবং ত্রুটি সংক্রান্ত উত্তরের faultstring এলিমেন্ট থেকে অনির্দিষ্ট ভেরিয়েবলের নাম শনাক্ত করুন। যেমন, নিম্নলিখিত faultstring-এ, PythonScript-এর নাম হল
myscript.pyএবং অনির্ধারিত ভেরিয়েবলের নাম হল num3:"faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined""
উপরে #১ ধাপে চিহ্নিত করা PythonScript সোর্স ফাইলটি পরীক্ষা করুন এবং উপরে #১ ধাপে চিহ্নিত করা অনির্দিষ্ট ভেরিয়েবলটি রেফার করা হচ্ছে কিনা তা যাচাই করুন। যেমন, নিম্নলিখিত PythonScript কোডটি একটি অনির্দিষ্ট ভেরিয়েবল num3-কে রেফার করে, যা faultstring-এর সাথে ম্যাচ করে:
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 নীতির নাম এবং ব্যর্থতার কারণ ত্রুটির উত্তরের faultstring এলিমেন্ট থেকে শনাক্ত করুন। যেমন, নিম্নলিখিত faultstring-এ, 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""
উপরে #১ ধাপে শনাক্ত করা PythonScript সোর্স ফাইলটি পরীক্ষা করুন এবং যাচাই করুন যে সেখানে শূন্য দিয়ে ভাগ বা মডুলাস অপারেশন আছে কিনা। যেমন, নিম্নলিখিত PythonScript কোডটি শূন্য দিয়ে ভাগ করে, যা faultstring-এ থাকা তথ্যের সাথে মিলে যায়:
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 ডকুমেন্টেশন দেখুন।