Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
ScriptEvaluationFailed
Codice di errore
steps.script.ScriptEvaluationFailed
Corpo della risposta di errore
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: error_type: error_description"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Possibili cause
Il criterio dello script Python può
vengono generati diversi tipi di errori ScriptEvaluationFailed
. Le sezioni seguenti descrivono alcuni di questi errori.
NameError
Se nel codice PythonScript è presente una variabile su cui viene fatto riferimento o su cui viene utilizzata senza essere definita, viene visualizzato l'errore Name (Nome).
Corpo della risposta di errore
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: "NameError: variable_name is not defined"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Corpo di esempio della risposta di errore
{ "fault": { "faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Diagnosi
Identifica il criterio PythonScript e il nome della variabile non definita dall'elemento faultstring della risposta di errore. Ad esempio, nella stringa di errore seguente, il nome PythonScript è
myscript.py
e il nome della variabile non definita è num3:"faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined""
Esamina il file di origine PythonScript identificato nel precedente passaggio 1 e verifica se viene fatto riferimento alla variabile non definita identificata nel passaggio 1 precedente. Ad esempio, il seguente codice PythonScript fa riferimento alla variabile non definita num3, che corrisponde alla stringa di errore:
num1 = 1.5 num2 = 6.3 sum = float(num1) + float(num3) print('The sum of {0} and {1} is {2}'.format(num1, num3 sum))
Controlla se la variabile specifica è definita all'interno del codice PythonScript. Se la variabile non è definita, è la causa dell'errore.
Nello script di esempio mostrato sopra, la variabile num3 non è definita. Di conseguenza, verrà visualizzato il seguente errore:
"faultstring": "Evaluation of script myscript.py (py) failed with reason: "NameError: 'num3' is not defined""
Risoluzione
Assicurati che tutte le variabili a cui viene fatto riferimento nel codice PythonScript siano definite correttamente.
Per risolvere il problema con il PythonScript di esempio mostrato sopra, definisci la variabile num3 prima di utilizzarla. Ad esempio:
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
Questo errore viene generato quando il secondo argomento di una divisione o un'operazione modulo è zero.
Corpo della risposta di errore
{ "fault": { "faultstring": "Evaluation of script pythonscript_name (py) failed with reason: "ZeroDivisionError: reason_for_error"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Corpo di esempio della risposta di errore
{ "fault": { "faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero"", "detail": { "errorcode": "steps.script.ScriptEvaluationFailed" } } }
Diagnosi
Identifica il nome del criterio PythonScript e il motivo dell'errore dall'elemento errorstring della risposta di errore. Ad esempio, nella stringa di errore seguente, il nome PythonScript è
myscript.py
e il motivo dell'errore èinteger division or modulo by zero
:"faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero""
Esamina il file sorgente PythonScript identificato nel passaggio 1 precedente e verifica se è presente un'operazione di divisione o modulo pari a zero. Ad esempio, il seguente codice PythonScript esegue la divisione per zero, che corrisponde a ciò che c'è nella stringa di errore:
a = 0 b = 5 c = b/a print c
Nello script di esempio mostrato sopra, poiché il secondo argomento dell'operazione di divisione è zero, viene visualizzato il seguente errore:
"faultstring": "Evaluation of script myscript.py (py) failed with reason: "ZeroDivisionError: integer division or modulo by zero""
Risoluzione
Assicurati che il secondo argomento di un'operazione di divisione o modulo non sia pari a zero in PythonScript.
Per risolvere il problema con il PythonScript di esempio mostrato sopra, utilizza un valore diverso da zero come secondo argomento di un'operazione di divisione o modulo. Ad esempio:
a = 3 b = 5 c = b/a print c
Ulteriori informazioni
Oltre a quelle descritte sopra, esistono molte altre possibili cause dell'errore steps.script.ScriptEvaluationFailed
. Per ulteriori informazioni, fai riferimento alla documentazione Python ufficiale.