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>
This element has the following attributes that are common to all policies:
| Attribute | Default | Required? | Description |
|---|---|---|---|
name |
N/A | Required |
The internal name of the policy. The value of the Optionally, use the |
continueOnError |
false | Optional | Set to false to return an error when a policy fails. This is expected behavior for
most policies. Set to true to have flow execution continue even after a policy
fails. See also:
|
enabled |
true | Optional | Set to true to enforce the policy. Set to false to turn off the
policy. The policy will not be enforced even if it remains attached to a flow. |
async |
false | Deprecated | This attribute is deprecated. |
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
substitutionVariableChardel 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/>
Ejemplo-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/>
Ejemplo-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/>
Ejemplo-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.
Ejemplo-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.
Ejemplo-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
This section describes the fault codes, error messages, and the fault variables set by Apigee when this policy triggers an error. This information is essential if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
| Fault code | HTTP status | Cause |
|---|---|---|
steps.setintegrationrequest.EmptyParameterArray |
500 |
This error occurs when the |
steps.setintegrationrequest.EmptyParameterArrayValue |
500 |
This error occurs when the |
steps.setintegrationrequest.InvalidResolvedFlowVariable |
500 |
This error occurs when the flow variable specified in the
|
steps.setintegrationrequest.MismatchedTypeAndResolvedRef |
500 |
This error occurs when the flow variable specified in
the |
steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArray |
500 |
This error occurs when the flow variable specified in
the |
steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArrayValue |
500 |
This error occurs when the flow variable specified in
the |
steps.setintegrationrequest.RequestVariableNotMessageType |
500 |
This error occurs when the flow variable specified by the Request element
is not of message type. |
steps.setintegrationrequest.RequestVariableNotRequestMessageType |
500 |
This error occurs when the flow variable specified by the Request element
is not of Request message type. |
steps.setintegrationrequest.UnresolvedVariable |
500 |
This error occurs when Apigee can't resolve the flow variables specified in the
|
Fault variables
Whenever there are execution errors in a policy, Apigee generates error messages. You can view these error messages in the error response. Many a time, system generated error messages might not be relevant in the context of your product. You might want to customize the error messages based on the type of error to make the messages more meaningful.
To customize the error messages, you can use either fault rules or the RaiseFault policy. For
information about differences between fault rules and the RaiseFault policy, see
FaultRules vs. the RaiseFault policy.
You must check for conditions using the Condition element in both the fault rules and the RaiseFault policy.
Apigee provides fault variables unique to each policy and the values of the fault variables are set when a policy triggers runtime errors.
By using these variables, you can check for specific error conditions and take appropriate actions. For more information about checking error
conditions, see Building conditions.
The following table describes the fault variables specific to this policy.
| Variables | Where | Example |
|---|---|---|
fault.name |
The fault.name can match to any of the faults listed in the Runtime errors table.
The fault name is the last part of the fault code. |
fault.name Matches "UnresolvedVariable" |
SetIntegrationRequest.POLICY_NAME.failed |
POLICY_NAME is the user-specified name of the policy that threw the fault. | 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.