Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la documentación de Apigee Edge.
Descripción general
La política AssertCondition evalúa una declaración condicional en el entorno de ejecución en los flujos de solicitud o respuesta. Puedes definir una condición según las variables de flujo y usar esta política para confirmar la condición. Una condición siempre se evalúa como un valor booleano, ya sea verdadero o falso. Si quieres obtener más información para escribir una declaración condicional, consulta Referencia de condiciones.
Después de evaluar la condición, la política AssertCondition almacena el resultado de la evaluación en la variable de flujo assertcondition.policy-name.truthValue
.
Puedes usar la variable de flujo resultante en los textos destacados posteriores o la lógica organizada.
Si una condición se evalúa como verdadera, el valor de la variable se establece en true
, de lo contrario, en false
. Si definiste varias políticas AssertCondition, el policy-name
en el nombre de la variable te ayuda a identificar de forma única la variable.
Esta es una política estándar y se puede implementar en cualquier tipo de entorno. Para obtener información sobre los tipos de políticas y la disponibilidad con cada tipo de entorno, consulta Tipos de políticas.
<AssertCondition>
Define una política <AssertCondition>
. Con esta política, puedes evaluar una declaración condicional que tiene una o más condiciones unidas por un operador lógico. Para obtener información sobre todos los operadores compatibles en una condición, consulta Operadores.
true
o false
.
Valor predeterminado | N/A |
¿Es obligatorio? | Obligatorio |
Tipo | Tipo complejo |
Elemento principal | N/A |
Elementos secundarios |
<Condition> <DisplayName> |
En la siguiente tabla, se proporciona una descripción de alto nivel de los elementos secundarios de <AssertCondition>
.
Elemento secundario | ¿Es obligatorio? | Descripción |
---|---|---|
<Condition> |
Sí | Especifica la condición que se evaluará. |
<DisplayName> |
Opcional | Un nombre personalizado para la política |
El elemento <AssertCondition>
usa la siguiente sintaxis:
Sintaxis
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AssertCondition"> <!-- Display name for this policy --> <DisplayName>DISPLAY_NAME</DisplayName> <!-- Assertion's condition where operators are defined --> <Condition>CONDITIONAL_STATEMENT</Condition> </AssertCondition>
Ejemplo
En el siguiente ejemplo, se verifica si la variable google.dialogflow.my-prefix.claimAmount
es mayor que 0 y menor que 1,000.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AssertCondition continueOnError="false" enabled="true" name="MyAssertCondition"> <DisplayName>Assert My Condition</DisplayName> <Condition>(google.dialogflow.my-prefix.claimAmount > 0) and (google.dialogflow.my-prefix.claimAmount LesserThan 1000)</Condition> </AssertCondition>
En este ejemplo:
- Si el valor de la variable
google.dialogflow.my-prefix.claimAmount
es 500, la condición se evalúa como verdadera y, por lo tanto, la variableassertcondition.MyAssertCondition.truthValue
se establece entrue
. - Sin embargo, si el valor de la variable
google.dialogflow.my-prefix.claimAmount
es 1,200, la variableassertcondition.MyAssertCondition.truthValue
se establece enfalse
.
Este elemento tiene los siguientes atributos que son comunes a todas las políticas:
Atributo | Predeterminada | (obligatorio) | Descripción |
---|---|---|---|
name |
N/A | Obligatorio |
El nombre interno de la política. El valor del atributo De forma opcional, usa el elemento |
continueOnError |
falso | Opcional | Configúralo como false para mostrar un error cuando una política falla. Este es el comportamiento previsto para la mayoría de las políticas. Configúralo como true para continuar con la ejecución del flujo incluso después de que una política falle. También consulta:
|
enabled |
true | Opcional | Configúralo como true para aplicar la política. Configúralo como false para desactivar la política. La política no se aplicará, incluso si permanece conectada a un flujo. |
async |
falso | Obsoleta | Este atributo dejó de estar disponible. |
Referencia del elemento secundario
En esta sección, se describen los elementos secundarios de<AssertCondition>
.
<Condition>
Especifica la condición que se evaluará. Si quieres obtener más información para escribir una declaración condicional en Apigee, consulta Referencia de condiciones.
Valor predeterminado | N/A |
¿Es obligatorio? | Obligatorio |
Tipo | String |
Elemento principal |
<AssertCondition>
|
Elementos secundarios | Ninguno |
<DisplayName>
Se usan además del atributo name
para etiquetar la política en el editor de proxy de la IU de administración con un nombre de lenguaje natural diferente.
El elemento <DisplayName>
es común a todas las políticas.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional. Si omites <DisplayName> , se usa el valor del atributo name de la política. |
Tipo | String |
Elemento principal | <PolicyElement> |
Elementos secundarios | Ninguno |
El elemento <DisplayName>
usa la siguiente sintaxis:
Sintaxis
<PolicyElement> <DisplayName>POLICY_DISPLAY_NAME</DisplayName> ... </PolicyElement>
Ejemplo
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
El elemento <DisplayName>
no tiene atributos ni elementos secundarios.
Códigos de error
En esta sección, se describen los códigos de falla y los mensajes de error que se muestran, y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.
Errores de entorno de ejecución
Estos errores pueden producirse cuando se ejecuta la política.
Código de falla | Estado de HTTP | Causa |
---|---|---|
steps.assertcondition.ConditionEvaluationFailed |
500 |
No se pudo evaluar la declaración condicional. Puede haber muchas razones para este error, incluidos los valores incorrectos en las variables en el tiempo de ejecución. |
Errores en la implementación
Estos errores pueden generarse cuando implementas un proxy que contiene esta política.
Nombre del error | Causa |
---|---|
InvalidCondition |
La política no pudo validar la declaración condicional. Puede haber muchas razones para este error, incluidas condiciones de formato incorrecto o el uso de operadores no compatibles. |
Variables con fallas
Cuando hay errores de ejecución en una política, Apigee genera mensajes de error. Puedes ver estos mensajes de error en la respuesta de error. Es posible que muchos mensajes de error generados por el sistema no sean relevantes en el contexto de tu producto. Te recomendamos personalizar los mensajes de error según el tipo de error para que los mensajes sean más significativos.
Para personalizar los mensajes de error, puedes usar reglas de falla o la política RaiseFault. Para obtener información sobre las diferencias entre las reglas de fallas y la política RaiseFault, consulta Política FaultRules en comparación con la política RaiseFault.
Debes verificar las condiciones mediante el elemento Condition
en las reglas de fallas y la política RaiseFault.
Apigee proporciona variables de fallas únicas para cada política, y los valores de las variables de fallas se establecen cuando una política activa errores de entorno de ejecución.
Si usas estas variables, puedes verificar las condiciones de error específicas y tomar las medidas adecuadas. Si deseas obtener más información para verificar las condiciones de error, consulta Condiciones de compilación.
En la siguiente tabla, se describen las variables de fallas específicas de esta política.
Variables | Donde | Ejemplo |
---|---|---|
fault.name="FAULT_NAME" |
FAULT_NAME es el nombre de la falla, como se indica en la tabla Errores del entorno de ejecución. El nombre de la falla es la última parte del código de la falla. | fault.name Matches "ConditionEvaluationFailed" |
AssertCondition.POLICY_NAME.failed |
POLICY_NAME es el nombre especificado por el usuario de la política que generó la falla. | AssertCondition.My-AssertCondition.failed = true |