Política SetIntegrationRequest

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

ícono de política

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 name puede contener letras, números, espacios, guiones, guiones bajos y puntos. Este valor no puede superar los 255 caracteres.

De forma opcional, usa el elemento <DisplayName> para etiquetar la política en el editor de proxy de la IU de administración con un nombre de lenguaje natural diferente.

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 Ninguna

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 Ninguna

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:
  • <ProjectId>val</ProjectId>: Usa val como el ID del proyecto.
  • <ProjectId ref="refval"/>: Resuelve refval de forma dinámica para determinar el ID del proyecto. Apigee informa una excepción si el ID del proyecto resuelto no es válido o si no se resuelve refval.
  • <ProjectId ref="refval">val</ProjectId>: Resuelve refval de forma dinámica para determinar el ID del proyecto. Apigee informa una excepción si el ID del proyecto resuelto no es válido. Si refval no se resuelve, usa val como ID del proyecto.

<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 Ninguna

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:
  • <IntegrationName>val</IntegrationName>: Usa val como el nombre de la integración.
  • <IntegrationName ref="refval"/>: Resuelve refval de forma dinámica para determinar el nombre de la integración. Apigee informa una excepción si el nombre de la integración resuelto no es válido o si no se resuelve refval.
  • <IntegrationName ref="refval">val</IntegrationName>: Resuelve refval de forma dinámica para determinar el nombre de la integración. Apigee informa una excepción si el nombre de la integración resuelto no es válido. Si refval no se resuelve, usa val como nombre de la integración.

<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 la integración de Apigee. Para obtener más información sobre las regiones compatibles de Apigee Integration, consulta Regiones admitidas.

Valor predeterminado N/A
¿Es obligatorio? Obligatorio
Tipo String
Elemento principal <SetIntegrationRequest>
Elementos secundarios Ninguna

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:
  • <IntegrationRegion>val</IntegrationRegion>: Usa val como la región de integración.
  • <IntegrationRegion ref="refval"/>: Resuelve refval de forma dinámica para determinar la región de la integración. Apigee informa una excepción si la región de la integración resuelto no es válido o si no se resuelve refval.
  • <IntegrationRegion ref="refval">val</IntegrationRegion>: Resuelve refval de forma dinámica para determinar la región de la integración. Apigee informa una excepción si la región de la integración resuelto no es válido. Si refval no se resuelve, usa val como la región de integración.

<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 Ninguna

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:
  • <ApiTrigger>val</ApiTrigger>: Usa val como el nombre del activador de la API.
  • <ApiTrigger ref="refval"/>: Resuelve refval de forma dinámica para determinar el nombre del activador. Apigee informa una excepción si el nombre del activador de la API resuelto no es válido o si no se resuelve refval.
  • <ApiTrigger ref="refval">val</ApiTrigger>: Resuelve refval de forma dinámica para determinar el nombre del activador. Apigee informa una excepción si el nombre del activador de la API resuelto no es válido. Si refval no se resuelve, usa val como nombre del activador.

<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 Ninguna

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 Optional 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:
  • Si la variable de flujo se resuelve en el entorno de ejecución y es válida, Apigee usa el valor de la variable de flujo.
  • Si la variable de flujo se resuelve en el entorno de ejecución, pero no es válida, Apigee informa una excepción.
  • Si la variable de flujo no se resuelve en el entorno de ejecución, Apigee usa el valor del elemento <Parameter>. Si el valor del elemento no es válido, Apigee informa un error.

<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 Optional 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:
  • Si la variable de flujo se resuelve en el entorno de ejecución y es válida, Apigee usa el valor de la variable de flujo.
  • Si la variable de flujo se resuelve en el entorno de ejecución, pero no es válida, Apigee informa una excepción.
  • Si la variable de flujo no se resuelve en el entorno de ejecución, Apigee usa los valores especificados en los elementos <Value>.
<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:
  • Si la variable de flujo se resuelve en el entorno de ejecución y es válida, Apigee usa el valor de la variable de flujo.
  • Si la variable de flujo se resuelve en el entorno de ejecución, pero no es válida, Apigee informa una excepción.
  • Si la variable de flujo no se resuelve en el entorno de ejecución, Apigee usa el valor del elemento <Value>. Si el valor del elemento no es válido, Apigee informa un error.

<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
(obligatorio) Opcional
Tipo String
Elemento principal <SetIntegrationRequest>
Elementos secundarios Ninguna

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 <ParameterArray> tiene los atributos name y type, pero no tiene el atributo ref ni un elemento <Value>.

steps.setintegrationrequest.EmptyParameterArrayValue 500

Este error se produce cuando el elemento <Value> está vacío y el atributo ref no está configurado.

steps.setintegrationrequest.InvalidResolvedFlowVariable 500

Este error se produce cuando la variable de flujo especificada en el atributo ref de un elemento no se resuelve como un valor válido.

  • En los elementos ProjectId, IntegrationName o ApiTrigger, este error se produce si la variable de flujo se resuelve como un valor nulo, una string vacía o un tipo de datos no válido.

    El siguiente es un valor válido para estos elementos:

    • ProjectId: consulta los requisitos para nombrar Project ID en la sección Antes de comenzar.
    • IntegrationName: Consulta los requisitos de asignación de nombres para el elemento IntegrationName.
    • ApiTrigger: El nombre debe comenzar con api_trigger/.
  • Para el elemento ParameterArray, este error se produce si la variable de flujo se resuelve en una string vacía.
steps.setintegrationrequest.MismatchedTypeAndResolvedRef 500

Este error se produce cuando la variable de flujo especificada en el atributo ref del elemento <Parameter> se resuelve, pero el tipo de datos de la variable de flujo no coincide con el tipo de datos especificado en el atributo type.

steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArray 500

Este error ocurre cuando la variable de flujo especificada en el atributo ref del elemento <ParameterArray> se resuelve, pero el tipo de datos del valor de la variable de flujo no coincide con el tipo de datos especificado en el atributo type.

steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArrayValue 500

Este error ocurre cuando la variable de flujo especificada en el atributo ref del elemento <Value> se resuelve, pero el tipo de datos del valor de la variable de flujo no coincide con el tipo de datos especificado en el atributo type de su elemento principal (<ParameterArray>).

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 <Parameter>, <ParameterArray> o <Value>.

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
Para obtener más información sobre los errores de políticas, consulta Qué debes saber sobre los errores de políticas.

Temas relacionados

Si deseas obtener más información sobre la función de integración de Apigee, consulta ¿Qué es la integración de Apigee?