Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la documentación de Apigee Edge.
Descripción general
La política SetIntegrationRequest te permite crear un objeto de solicitud para una integración que desees ejecutar. En la política, debes configurar los detalles del activador de la API y los parámetros de entrada necesarios para ejecutar la integración. Cuando ejecutas la política SetIntegrationRequest, esta crea un objeto de solicitud y lo guarda en una variable de flujo. El objeto de solicitud tiene toda la información necesaria para ejecutar la integración. En esta etapa, la integración aún no se ejecuta. Para ejecutar la integración, debes llamar a la política IntegrationCallout o configurar un IntegrationEndpoint. Tanto la política IntegrationCallout como la IntegrationEndpoint requieren el objeto de solicitud para poder ejecutar la integración.
Esta política es una política extensible, y el uso de esta política puede tener implicaciones de costo o uso, según tu licencia de Apigee. Para obtener información sobre los tipos de políticas y sus implicaciones de uso, consulta Tipos de políticas.
<SetIntegrationRequest>
Especifica la política SetIntegrationRequest.
Valor predeterminado | N/A |
¿Es obligatorio? | Obligatorio |
Tipo | Tipo complejo |
Elemento principal | N/A |
Elementos secundarios |
<ApiTrigger> <DisplayName> <IntegrationName> <IntegrationRegion> <Parameters> <ProjectId> <Request> <ScheduleTime> |
En la siguiente tabla, se proporciona una descripción de alto nivel de los elementos secundarios del elemento <SetIntegrationRequest>
:
Elemento secundario | ¿Es obligatorio? | Descripción |
---|---|---|
<ApiTrigger> |
Obligatorio | Nombre del activador de API al que se llamará en la integración |
<DisplayName> |
Opcional | Un nombre personalizado para la política |
<IntegrationName> |
Opcional | Nombre de la integración que se ejecutará |
<IntegrationRegion> |
Obligatorio | Nombre de la región en la que existe la integración. |
<Parameters> |
Opcional | Parámetros de entrada de la integración |
<ProjectId> |
Opcional | Nombre del proyecto de Google Cloud que tiene la integración que deseas ejecutar. |
<Request> |
Opcional | Nombre de la variable de flujo para guardar el objeto de solicitud. |
<ScheduleTime> |
Opcional | La hora en la que se debe ejecutar la integración |
La política SetIntegrationRequest usa la siguiente sintaxis:
Sintaxis
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <SetIntegrationRequest continueOnError="[true|false]" enabled="[true|false]" name="Set-Integration-Request"> <DisplayName>POLICY_DISPLAY_NAME</DisplayName> <ProjectId ref="FLOW_VARIABLE_NAME">GOOGLE_CLOUD_PROJECT_ID</ProjectId> <IntegrationName ref="FLOW_VARIABLE_NAME">INTEGRATION_NAME</IntegrationName> <IntegrationRegion ref="FLOW_VARIABLE_NAME">INTEGRATION_REGION</IntegrationRegion> <ApiTrigger ref="FLOW_VARIABLE_NAME">API_TRIGGER_NAME</ApiTrigger> <ScheduleTime>PARAMETER_VALUE</ScheduleTime> <Parameters> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE" ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Parameter> <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE" ref="FLOW_VARIABLE_NAME> <Value ref="FLOW_VARIABLE_NAME>PARAMETER_VALUE</Value> <Value ref="FLOW_VARIABLE_NAME>PARAMETER_VALUE</Value> <Value ref="FLOW_VARIABLE_NAME>PARAMETER_VALUE</Value> </ParameterArray> </Parameters> <Request>FLOW_VARIABLE_NAME</Request> </SetIntegrationRequest>
Ejemplo
En el siguiente ejemplo, se muestra la definición de la política SetIntegrationRequest:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <SetIntegrationRequest continueOnError="false" enabled="true" name="Set-Integration-Request"> <DisplayName>Set Integration Request Policy</DisplayName> <ProjectId ref="my_projectid_var">apigee_staging_1</ProjectId> <IntegrationName ref="my_integration_ref">integration_1</IntegrationName> <IntegrationRegion ref="my_integration_ref">asia-east1</IntegrationRegion> <ApiTrigger ref="my_api_trigger_ref">API-Trigger-2</ApiTrigger> <ScheduleTime>2022-01-15T01:30:15Z</ScheduleTime> <Parameters> <Parameter name="my_str_param" type="string" ref="flow_var_1">someText</Parameter> <ParameterArray name="my_array_param" type="integer" ref="flow_var_2"> <Value ref="flow_var_3">1</Value> <Value ref="flow_var_4">2</Value> <Value ref="flow_var_5">3</Value> </ParameterArray> </Parameters> <Request>my_request_var</Request> </SetIntegrationRequest>
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<SetIntegrationRequest>
.
<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.
<ProjectId>
Especifica el nombre del proyecto de Google Cloud.
Apigee asigna el valor que especificas para este elemento a la variable de flujo integration.project.id
.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | String |
Elemento principal |
<SetIntegrationRequest> |
Elementos secundarios | Ninguno |
El elemento <ProjectId>
usa la siguiente sintaxis:
Sintaxis
<ProjectId ref="FLOW_VARIABLE_NAME">GOOGLE_CLOUD_PROJECT_ID</ProjectId>
Ejemplo
En el siguiente ejemplo, se configura la política para que use la variable de flujo my_projectid_var
a fin de recuperar el ID del proyecto y, si la variable de flujo no se resuelve en el entorno de ejecución, usa apigee_staging_1
como ID del proyecto:
<ProjectId ref="my_projectid_var">apigee_staging_1</ProjectId>
En la siguiente tabla, se describen los atributos de <ProjectId>
:
Atributo | ¿Es obligatorio? | Tipo | Descripción |
---|---|---|---|
ref |
Opcional | String | Especifica la variable de flujo desde la que Apigee debe leer el ID del proyecto de Google Cloud. Puedes configurar el elemento <ProjectId> de una de las siguientes maneras:
|
<IntegrationName>
Especifica la integración que se ejecutará.
Apigee asigna el valor que especificas para este elemento a la variable de flujo integration.name
.
El nombre de la integración debe cumplir con los siguientes requisitos de denominación:
- Deben comenzar y terminar con letras o números.
- No pueden tener espacios.
- No pueden tener dos caracteres consecutivos o guiones bajos.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | String |
Elemento principal |
<SetIntegrationRequest> |
Elementos secundarios | Ninguno |
El elemento <IntegrationName>
usa la siguiente sintaxis:
Sintaxis
<IntegrationName ref="FLOW_VARIABLE_NAME">INTEGRATION_NAME</IntegrationName>
Ejemplo
En el siguiente ejemplo, se configura la política para usar la variable de flujo my_integration_ref
a fin de recuperar el nombre de la integración y, si la variable de flujo no se resuelve en el entorno de ejecución, usa integration_1
como el nombre de la integración:
<IntegrationName ref="my_integration_ref">integration_1</IntegrationName>
En la siguiente tabla, se describen los atributos de <IntegrationName>
:
Atributo | ¿Es obligatorio? | Tipo | Descripción |
---|---|---|---|
ref |
Opcional | String | Especifica la variable de flujo desde la que Apigee debe leer el nombre de la integración. Puedes configurar el elemento <IntegrationName> de una de las siguientes maneras:
|
<IntegrationRegion>
Especifica la región en la que existe la integración.
En el entorno de ejecución, Apigee asigna el valor del elemento a la variable de flujo integration.region
, crea una URL de destino basada en la región y almacena la URL en la variable de flujo integration.target.url
.
La URL de destino basada en la región tiene el siguiente formato: https://integration.region-integrations.googleapis.com
La región de integración debe ser compatible con Application Integration. Para obtener más información sobre las regiones compatibles de Application Integration, consulta Regiones admitidas.
Valor predeterminado | N/A |
¿Es obligatorio? | Obligatorio |
Tipo | String |
Elemento principal |
<SetIntegrationRequest> |
Elementos secundarios | Ninguno |
El elemento <IntegrationRegion>
usa la siguiente sintaxis:
Sintaxis
<IntegrationRegion ref="FLOW_VARIABLE_NAME">INTEGRATION_REGION</IntegrationRegion>
Ejemplo
En el siguiente ejemplo, se configura la política para usar la variable de flujo my_integration_region_ref
a fin de recuperar la región de integración y, si la variable de flujo no se resuelve en el entorno de ejecución, se usa asia-east1
como la región de la integración:
<IntegrationRegion ref="my_integration_region_ref">asia-east1</IntegrationRegion>
En la siguiente tabla, se describen los atributos de <IntegrationRegion>
:
Atributo | ¿Es obligatorio? | Tipo | Descripción |
---|---|---|---|
ref |
Opcional | String | Especifica la variable de flujo desde la que Apigee debe leer la región de la integración. Puedes configurar el elemento <IntegrationRegion> de una de las siguientes maneras:
|
<ApiTrigger>
Especifica el activador de API que se ejecutará.
Debes especificar el nombre del activador de la API en el formato api_trigger/API_TRIGGER_NAME
.
Apigee asigna el valor que especificas para este elemento a la variable de flujo integration.api.trigger
.
Si especificaste <IntegrationName>
, solo se ejecuta el activador de API de esa integración. Sin embargo, si no especificaste <IntegrationName>
, se ejecutan todas las integraciones que tienen el activador de API especificado.
Valor predeterminado | N/A |
¿Es obligatorio? | Obligatorio |
Tipo | String |
Elemento principal |
<SetIntegrationRequest> |
Elementos secundarios | Ninguno |
El elemento <ApiTrigger>
usa la siguiente sintaxis:
Sintaxis
<ApiTrigger ref="FLOW_VARIABLE_NAME">API_TRIGGER_NAME</ApiTrigger>
Ejemplo
En el siguiente ejemplo, se configura la política para usar la variable de flujo my_api_trigger_ref
a fin de recuperar el nombre del activador de la API y, si la variable de flujo no se resuelve en el entorno de ejecución, usa api_trigger/API-Trigger-2
como el nombre del activador de la API:
<ApiTrigger ref="my_api_trigger_ref">api_trigger/API-Trigger-2</ApiTrigger>
En la siguiente tabla, se describen los atributos de <ApiTrigger>
:
Atributo | ¿Es obligatorio? | Tipo | Descripción |
---|---|---|---|
ref |
Opcional | String | Especifica la variable de flujo desde la que Apigee debe leer el nombre del activador de la API. Puedes configurar el elemento <ApiTrigger> de una de las siguientes maneras:
|
<ScheduleTime>
Especifica el momento en el que se debe ejecutar la integración.
Si la hora es menor o igual que la hora actual, la integración se ejecuta de inmediato. Debes especificar la hora en el formato yyyy-mm-ddThh:mm:ssZ
, en el que Z es la zona horaria UTC.
Por ejemplo, si especificas 2022-01-15T01:30:15Z
, la integración se programa para ejecutarse el 15 de enero de 2022 a las 1:30:15 UTC. También puedes especificar la zona horaria mediante una compensación de UTC.
Por ejemplo, si especificas 2022-01-15T01:30:15-08:00
, la integración se programa para ejecutarse el 15 de enero de 2022 a las 1:30:15 PST. Para obtener más información sobre el formato de hora, consulta Representaciones de fechas y horas combinadas.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | String |
Elemento principal |
<SetIntegrationRequest> |
Elementos secundarios | Ninguno |
El elemento <ScheduleTime>
usa la siguiente sintaxis:
Sintaxis
<ScheduleTime>PARAMETER_VALUE</ScheduleTime>
Ejemplo
En el siguiente ejemplo, se programa la integración para que se ejecute el 2022-01-15T01:30:15Z
:
<ScheduleTime>2022-01-15T01:30:15Z</ScheduleTime>
<Parameters>
Especifica los parámetros de entrada necesarios para ejecutar la integración.
Puedes especificar parámetros individuales o arrays de parámetros.
- Para especificar un parámetro individual, usa el elemento
<Parameter>
. - Para especificar un array de parámetros, usa el elemento
<ParameterArray>
.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | Tipo complejo |
Elemento principal |
<SetIntegrationRequest> |
Elementos secundarios |
<Parameter> <ParameterArray> |
En la siguiente tabla, se describen los atributos de <Parameters>
:
Atributo | ¿Es obligatorio? | Tipo | Descripción |
---|---|---|---|
substitutionVariableChar |
Opcional | Caracteres | Te permite configurar delimitadores personalizados para pasar valores de variables de flujo como argumentos de plantilla en el elemento secundario <Parameter> .
|
El elemento <Parameters>
usa la siguiente sintaxis:
Sintaxis
<Parameters substitutionVariableChar="SUBSTITUTION_CHAR"> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE" ref="FLOW_VARIABLE_NAME" >PARAMETER_VALUE</Parameter> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE">SUBSTITUTION_CHAR FLOW_VARIABLE_NAME SUBSTITUTION_CHAR</Parameter> <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE ref="FLOW_VARIABLE_NAME""> <Value>PARAMETER_VALUE</Value> <Value ref="FLOW_VARIABLE_NAME"/> <Value ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Value> </ParameterArray> </Parameters>
Ejemplo
En el siguiente ejemplo, se inicializa el parámetro my_str_param
y el array de parámetros my_array_param
:
<Parameters substitutionVariableChar="#"> <Parameter name="my_str_param" type="string" ref="flow_var_1">someText</Parameter> <Parameter name="strVar" type="string">#flowvar1#</Parameter> <ParameterArray name="my_array_param" type="integer" ref="flow_var_2"> <Value>1</Value> <Value ref="flow_var_3"/> <Value ref="flow_var_4">3</Value> </ParameterArray> </Parameters>
Apigee trata los elementos <Parameter>
y <ParameterArray>
vacíos como valores null
. Por ejemplo, las declaraciones como <Parameter></Parameter>
y <ParameterArray></ParameterArray>
se tratan como valores null
.
<Parameter>
Especifica un parámetro de entrada.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | String |
Elemento principal |
<Parameters> |
Elementos secundarios | Ninguno |
Puedes especificar el valor del parámetro de las siguientes maneras:
- <Parameter name="my_param" type="string">val</Parameter>: Usa val como valor del parámetro. Si val no es válido, Apigee informa una excepción.
- <Parameter name="my_param" type="string" ref="refval"/>: Resuelve la variable de flujo refval en el entorno de ejecución y usa su valor. Apigee informa una excepción si el valor resuelto refval no es válido o si refval no está resuelto.
- <Parameter name="my_param" type="string" ref="refval">val</Parameter>: Resuelve la variable de flujo refval en el entorno de ejecución y usa su valor. Apigee informa una excepción si el valor resuelto refval no es válido. Si refval no se resuelve, Apigee usa val como el valor del parámetro.
- <Parameter name="my_param" type="json">{"name":"$#flowval#$"}</Parameter>: Usa
$#FLOW_VARIABLE_NAME#$
para pasar los valores de las variables de flujo como argumento de plantilla en Parameter Apigee resuelve la variable de flujo flowval en el entorno de ejecución y usa su valor. Se informa una excepción si el valor de flowval resuelto no es válido. - <Parameter name="my_param" type="json">{"name":"SUBSTITUTION_CHAR Flowval SUBSTITUTION_CHAR"}</Parameter>: En el ejemplo anterior, SUBSTITUTION_CHAR denota Valor especificado para el atributo
substitutionVariableChar
del elemento superior<Parameters>
. Apigee resuelve la variable de flujo flowval en el entorno de ejecución y usa su valor. Se informa una excepción si el valor de flowval resuelto no es válido.
El elemento <Parameter>
usa la siguiente sintaxis:
Sintaxis
<Parameters substitutionVariableChar="SUBSTITUTION_CHAR"> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE">PARAMETER_VALUE</Parameter> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE" ref="FLOW_VARIABLE_NAME"/> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE" ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Parameter> <Parameter name="PARAMETER_NAME" type="json">$#FLOW_VARIABLE_NAME#$</Parameter> <Parameter name="PARAMETER_NAME" type="PARAMETER_DATATYPE">SUBSTITUTION_CHAR FLOW_VARIABLE_NAME SUBSTITUTION_CHAR</Parameter> </Parameters>
Ejemplo 1
En el siguiente ejemplo, se declara el parámetro my_str_param
como una string y se establece el valor en someText
.
<Parameters> <Parameter name="my_str_param" type="string">someText</Parameter> </Parameters>
Ejemplo 2
En el siguiente ejemplo, se declara el parámetro my_double_param
como un doble y se asigna el valor de la variable de flujo flow_var
al parámetro.
<Parameters> <Parameter name="my_double_param" type="double" ref="flow_var"/> </Parameters>
Ejemplo 3
En el siguiente ejemplo, se establece el valor como el parámetro de número entero my_int_param_1
.
<Parameters> <Parameter name="my_int_param_1" type="integer" ref="flow_var_1">96</Parameter> </Parameters>
En este ejemplo, si la variable de flujo flow_var_1
se resuelve correctamente, my_int_param_1
se establece como el valor de la variable de flujo. Sin embargo, si flow_var_1
no se resuelve, my_int_param_1
se configura como 96
.
Ejemplo 4
En el siguiente ejemplo, se establecen valores para los parámetros JSON my_json_param_1
y my_json_param_2
.
<Parameters> <Parameter name="my_json_param_1" type="json" ref="flow_var_1">{name:"Apple", color:"Red"}</Parameter> <Parameter name="my_json_param_2" type="json">{name:"Banana", color:"Yellow"}</Parameter> </Parameters>
En este ejemplo, si la variable de flujo flow_var_1
se resuelve correctamente, my_json_param_1
se establece en el valor de la variable de flujo flow_var_1
. Sin embargo, si flow_var_1
no se resuelve, my_json_param_1
se configura como {name:"Apple", color:"Red"}
. El parámetro my_json_param_2
se establece en {name:"Banana", color:"Yellow"}
, ya que no hay ningún atributo ref
especificado.
Ejemplo 5
En el siguiente ejemplo, se establece el valor del parámetro JSON template_json_param
mediante el valor de la variable de flujo que se pasa en una plantilla predeterminada.
<Parameters> <Parameter name="template_json_param" type="json">{"name":"$#flow_var_1#$"}</Parameter> </Parameters>
En este ejemplo, si la variable de flujo flow_var_1
se resuelve correctamente, template_json_param
se establece en el valor de la variable de flujo flow_var_1
. Sin embargo, si flow_var_1
no se resuelve, Apigee genera una excepción.
Ejemplo 6
En el siguiente ejemplo, se establece el valor del parámetro JSON template_json_param
mediante el atributo substitutionVariableChar.
<Parameters substitutionVariableChar="#"> <Parameter name="template_json_param" type="json">{"name":"#flow_var_1#"}</Parameter> </Parameters>
En este ejemplo, si la variable de flujo flow_var_1
se resuelve correctamente, template_json_param
se establece en el valor de la variable de flujo flow_var_1
. Sin embargo, si flow_var_1
no se resuelve, Apigee genera una excepción.
En la siguiente tabla, se describen los atributos de <Parameter>
:
Atributo | ¿Es obligatorio? | Tipo | Descripción |
---|---|---|---|
name |
Obligatorio | String | Nombre del parámetro |
type |
Obligatorio | String | Tipo de datos del parámetro Los tipos admitidos son integer , string , boolean , double y json . |
ref |
Opcional | String | Especifica la variable de flujo desde la que Apigee debe leer el valor del parámetro. Apigee usa los siguientes criterios para establecer el valor del parámetro:
|
<ParameterArray>
Especifica un array de parámetros de entrada.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | Tipo complejo |
Elemento principal |
<Parameters> |
Elementos secundarios |
<Value> |
El elemento <Parameters>
puede tener varios elementos <ParameterArray>
dentro de él. Para un array de parámetros, puedes configurar el valor de los elementos del array mediante la especificación del valor real o con una variable de flujo en el atributo ref
.
Si especificas una variable de flujo, los elementos del array se establecen en el valor de la variable de flujo.
En los ejemplos de esta sección, se describen las diversas formas en las que puedes configurar el elemento <ParameterArray>
.
El elemento <ParameterArray>
usa la siguiente sintaxis:
Sintaxis
<Parameters> <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE" ref="FLOW_VARIABLE_NAME"> <Value ref="FLOW_VARIABLE_NAME"/> <Value ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Value> <Value>PARAMETER_VALUE</Value> </ParameterArray> <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE" ref="FLOW_VARIABLE_NAME"/> <ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE"> <Value ref="FLOW_VARIABLE_NAME"/> <Value ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Value> <Value>PARAMETER_VALUE</Value> </ParameterArray> <Parameters/>
Example-1
En el siguiente ejemplo, se declara my_array_param
como un array de números enteros y se establece el valor de los elementos del array como 1
, 2
y 3
:
<Parameters> <ParameterArray name="my_array_param" type="integer"> <Value>1</Value> <Value>2</Value> <Value>3</Value> </ParameterArray> <Parameters/>
Example-2
En el siguiente ejemplo, se declara my_array_param
como un array doble en el que ocurre lo siguiente:
- El primer elemento se establece en el valor de la variable de flujo
flow_var_1
. - El segundo elemento se establece en
3.0
.
<Parameters> <ParameterArray name="my_array_param" type="double"> <Value ref="flow_var_1"/> <Value>3.0</Value> </ParameterArray> <Parameters/>
Example-3
En el siguiente ejemplo, se declara my_array_param
como un array booleano y se establece en el valor de la variable de flujo flow_var_1
.
<Parameters> <ParameterArray name="my_array_param" type="boolean" ref="flow_var_1"> <Value>true</Value> <Value>false</Value> <Value>false</Value> </ParameterArray> <Parameters/>
En este ejemplo, si flow_var_1
se resuelve de forma correcta, my_array_param
se configura con los valores del array flow_var_1
. Sin embargo, si flow_var_1
no se resuelve, el array my_array_param
se configura con los valores de los elementos Value
.
Example-4
En el siguiente ejemplo, se declara my_array_param
como un array JSON y se establece en el valor de la variable de flujo flow_var_1
.
<Parameters> <ParameterArray name="my_array_param" type="json" ref="flow_var_1"/> <Parameters/>
En este ejemplo, si flow_var_1
se resuelve de forma correcta, my_array_param
se configura con los valores del array flow_var_1
. Sin embargo, si flow_var_1
no se resuelve, Apigee informa una excepción.
Example-5
En el siguiente ejemplo, se declara my_array_param
como un array de strings y se establece en los valores de la variable de flujo flow_var_1
.
<Parameters> <ParameterArray name="my_array_param" type="string" ref="flow_var_1"> <Value ref="flow_var_2"/> <Value>test_string</Value> </ParameterArray> <Parameters/>
En este ejemplo, si flow_var_1
se resuelve de forma correcta, my_array_param
se configura con los valores del array flow_var_1
. Solo si flow_var_1
no se resuelve, my_array_param
se configura con los valores especificados en los elementos <Value>
.
En la siguiente tabla, se describen los atributos de <ParameterArray>
:
Atributo | ¿Es obligatorio? | Tipo | Descripción |
---|---|---|---|
name |
Obligatorio | String | Nombre del array del parámetro |
type |
Obligatorio | String | Tipo de datos del array del parámetro Los tipos admitidos son integer , string , boolean y double . |
ref |
Opcional | String | Especifica la variable de flujo desde la que Apigee debe leer los valores del arreglo. Apigee usa los siguientes criterios para establecer el valor del parámetro:
|
<Value>
Especifica el valor de un elemento de array.
Valor predeterminado | N/A |
¿Es obligatorio? | Opcional |
Tipo | String |
Elemento principal |
<ParameterArray> |
Elementos secundarios | Ninguno |
Cada elemento del array debe ser un elemento <Value>
independiente. Puedes especificar el valor de las siguientes maneras:
- <Value>val</Value>: Usa val como valor del elemento. Si val no es válido, Apigee informa una excepción.
- <Value ref="refval"/>: Resuelve la variable de flujo refval en el entorno de ejecución y usa su valor. Apigee informa una excepción si el valor resuelto refval no es válido o si refval no está resuelto.
- <Value ref="refval">val</Value>: Resuelve la variable de flujo refval en el entorno de ejecución y usa su valor. Apigee informa una excepción si el valor resuelto refval no es válido. Si refval no se resuelve, Apigee usa val como el valor del elemento.
- <Value>val1 $#flowval#$</Value>: Usa
$#FLOW_VARIABLE_NAME#$
para pasar valores de variables de flujo como un argumento de plantilla en Value. Apigee resuelve la variable de flujo flowval en el entorno de ejecución y usa su valor. Se informa una excepción si el valor de flowval resuelto no es válido.
El elemento <Value>
usa la siguiente sintaxis:
Sintaxis
<ParameterArray name="ARRAY_NAME" type="ARRAY_DATATYPE" ref="FLOW_VARIABLE_NAME"> <Value>PARAMETER_VALUE</Value> <Value ref="FLOW_VARIABLE_NAME"/> <Value ref="FLOW_VARIABLE_NAME">PARAMETER_VALUE</Value> </ParameterArray>
Ejemplo 1
En el siguiente ejemplo, se declara my_array_param
como un array de parámetros de número entero con los valores 1
, 2
y 3
:
<ParameterArray name="my_array_param" type="integer"> <Value>1</Value> <Value>2</Value> <Value>3</Value> </ParameterArray>
Ejemplo 2
En el siguiente ejemplo, se declara my_array_param
como un array de parámetros de string con los valores de las variables de flujo flow_var_1
y flow_var_2
:
<ParameterArray name="my_array_param" type="string"> <Value ref="flow_var_1"/> <Value ref="flow_var_2"/> </ParameterArray>
Ejemplo 3
En el siguiente ejemplo, se declara my_array_param
como un array de parámetros de string:
<ParameterArray name="my_array_param" type="string"> <Value ref="flow_var_1">string_1</Value> <Value ref="flow_var_2">string_2</Value> </ParameterArray>
En este ejemplo, si la variable de flujo se resuelve correctamente, el valor del elemento del array se establece en el valor de la variable de flujo flow_var_1
. Sin embargo, si flow_var_1
no se resuelve, el valor del elemento del array se establece en string_1
.
Ejemplo 4
En el siguiente ejemplo, se establece el valor para el parámetro del array de cadenas template_strArray_param
mediante el valor de la variable de flujo que se pasa en una plantilla.
<Parameters> <ParameterArray name="template_strArray_param" type="string"> <Value>apple $#flow_var_1#$</Value> </ParameterArray> </Parameters>
En este ejemplo, si la variable de flujo se resuelve correctamente, el valor del elemento del array se establece en el valor de la variable de flujo flow_var_1
. Sin embargo, si flow_var_1
no se resuelve, Apigee arroja una excepción.
En la siguiente tabla, se describen los atributos de <Value>
:
Atributo | ¿Es obligatorio? | Tipo | Descripción |
---|---|---|---|
ref |
Opcional | String | Especifica la variable de flujo desde la que Apigee debe leer el valor del parámetro. Apigee usa los siguientes criterios para establecer el valor del parámetro:
|
<Request>
Especifica el nombre de la variable de flujo para guardar la solicitud.
Una vez que se ejecuta la política, se crea un objeto de mensaje de solicitud nuevo y se guarda el objeto en la variable FLOW_VARIABLE_NAME
que puedes consultar para leer la solicitud.
Si no especificas un nombre de variable de flujo, la política guarda la solicitud en el mensaje de solicitud y anula el mensaje de solicitud existente si corresponde.
Valor predeterminado | solicitud |
¿Es obligatorio? | Opcional |
Tipo | String |
Elemento principal |
<SetIntegrationRequest> |
Elementos secundarios | Ninguno |
El elemento <Request>
usa la siguiente sintaxis:
Sintaxis
<Request>FLOW_VARIABLE_NAME</Request>
Ejemplo
En el siguiente ejemplo, se guarda el objeto de solicitud en la variable de flujo my_request_var
:
<Request>my_request_var</Request>
Códigos de error
En esta sección, se describen los códigos de falla, los mensajes de error y las variables de falla que establece Apigee cuando esta política activa un error. Esta información es esencial si desarrollas reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Lo que necesitas saber sobre errores de políticas y Controla 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.setintegrationrequest.EmptyParameterArray |
500 |
Este error se produce cuando el elemento |
steps.setintegrationrequest.EmptyParameterArrayValue |
500 |
Este error se produce cuando el elemento |
steps.setintegrationrequest.InvalidResolvedFlowVariable |
500 |
Este error se produce cuando la variable de flujo especificada en el atributo
|
steps.setintegrationrequest.MismatchedTypeAndResolvedRef |
500 |
Este error se produce cuando la variable de flujo especificada en el atributo |
steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArray |
500 |
Este error ocurre cuando la variable de flujo especificada en el atributo |
steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArrayValue |
500 |
Este error ocurre cuando la variable de flujo especificada en el atributo |
steps.setintegrationrequest.RequestVariableNotMessageType |
500 |
Este error se produce cuando la variable de flujo especificada por el elemento Request no es del tipo mensaje. |
steps.setintegrationrequest.RequestVariableNotRequestMessageType |
500 |
Este error se produce cuando la variable de flujo especificada por el elemento Request no es del tipo de mensaje de solicitud. |
steps.setintegrationrequest.UnresolvedVariable |
500 |
Este error se produce cuando Apigee no puede resolver las variables de flujo especificadas en los elementos |
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 |
El fault.name puede coincidir con cualquiera de las fallas enumeradas 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 "UnresolvedVariable" |
SetIntegrationRequest.POLICY_NAME.failed |
POLICY_NAME es el nombre especificado por el usuario de la política que generó la falla. | SetIntegrationRequest.set-integration-request-1.failed = true |
Temas relacionados
Si deseas obtener más información sobre la función de Application Integration, consulta la descripción general de Application Integration.