Política SetIntegrationRequest

Esta página se aplica à Apigee e à Apigee híbrida.

Confira a documentação da Apigee Edge.

Ícone da política

Visão geral

A política SetIntegrationRequest permite criar um objeto de solicitação para a integração que você quer executar. Na política, você precisa configurar os detalhes do gatilho da API e os parâmetros de entrada necessários para executar a integração. Quando você executa a política SetIntegrationRequest, ela cria um objeto de solicitação e o salva em uma variável de fluxo. O objeto da solicitação tem todas as informações necessárias para executar a integração. Nessa etapa, a integração ainda não é executada. Para executar a integração, chame a política IntegrationIntegration ou defina uma IntegrationEndpoint. A política IntegrationCallout e a IntegrationEndpoint exigem que o objeto de solicitação execute a integração.

Esta é uma política extensível. O uso dela pode ter implicações no custo ou na utilização, dependendo da sua licença da Apigee. Para informações sobre tipos de política e implicações de uso, consulte Tipos de política.

<SetIntegrationRequest>

Especifica a política SetIntegrationRequest.

Valor padrão N/A
Obrigatório? Obrigatório
Tipo Tipo complexo
Elemento pai N/A
Elemento filho <ApiTrigger>
<DisplayName>
<IntegrationName>
<IntegrationRegion>
<Parameters>
<ProjectId>
<Request>
<ScheduleTime>

A tabela a seguir fornece uma descrição de alto nível dos elementos filhos do elemento <SetIntegrationRequest>:

Elemento filho Obrigatório? Descrição
<ApiTrigger> Obrigatório Nome do gatilho da API a ser chamado na integração.
<DisplayName> Opcional Um nome personalizado para a política.
<IntegrationName> Opcional Nome da integração a ser executada.
<IntegrationRegion> Obrigatória Nome da região em que a integração existe.
<Parameters> Opcional Parâmetros de entrada da integração.
<ProjectId> Opcional Nome do projeto do Google Cloud que tem a integração que você quer executar.
<Request> Opcional Nome da variável de fluxo para salvar o objeto da solicitação.
<ScheduleTime> Opcional O horário em que a integração precisa ser executada.

A política SetIntegrationRequest usa a seguinte sintaxe:

Sintaxe

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

Exemplo

O exemplo a seguir mostra a definição da 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 tem os seguintes atributos comuns a todas as políticas:

Atributo Padrão Obrigatório? Descrição
name N/A Valor

O nome interno da política. O valor do atributo name pode conter letras, números, espaços, hifens, sublinhados e pontos. Esse valor não pode exceder 255 caracteres.

Opcionalmente, use o elemento <DisplayName> para rotular a política no editor de proxy da IU de gerenciamento com um nome de linguagem natural diferente.

continueOnError falso Opcional Defina como false para retornar um erro quando uma política falhar. Esse é o comportamento esperado para a maioria das políticas. Defina como true para que a execução do fluxo continue, mesmo depois que uma política falhar. Consulte também:
enabled true Opcional Defina como true para aplicar a política. Defina como false para desativar a política. A política não será aplicada mesmo que permaneça vinculada a um fluxo.
async   falso Obsoleto Esse atributo está obsoleto.

Referência a elementos filhos

Esta seção descreve os elementos filhos de <SetIntegrationRequest>.

<DisplayName>

Use além do atributo name para rotular a política no editor de proxy da IU de gerenciamento com um nome de som diferente e mais natural.

O elemento <DisplayName> é comum a todas as políticas.

Valor padrão N/A
Obrigatório? Opcional. Se você omitir <DisplayName>, o valor do atributo name da política será usado
Tipo String
Elemento pai <PolicyElement>
Elemento filho Nenhuma

O elemento <DisplayName> usa a seguinte sintaxe:

Sintaxe

<PolicyElement>
  <DisplayName>POLICY_DISPLAY_NAME</DisplayName>
  ...
</PolicyElement>

Exemplo

<PolicyElement>
  <DisplayName>My Validation Policy</DisplayName>
</PolicyElement>

O elemento <DisplayName> não tem atributos ou elementos filhos.

<ProjectId>

Especifica o nome do projeto do Google Cloud.

A Apigee atribui o valor especificado para esse elemento à variável de fluxo integration.project.id.

Valor padrão N/A
Obrigatório? Opcional
Tipo String
Elemento pai <SetIntegrationRequest>
Elemento filho Nenhuma

O elemento <ProjectId> usa a seguinte sintaxe:

Sintaxe

<ProjectId ref="FLOW_VARIABLE_NAME">GOOGLE_CLOUD_PROJECT_ID</ProjectId>

Exemplo

O exemplo a seguir configura a política para usar a variável de fluxo my_projectid_var para buscar o ID do projeto. Se a variável não for resolvida no ambiente de execução, use apigee_staging_1 como o ID do projeto:

<ProjectId ref="my_projectid_var">apigee_staging_1</ProjectId>

A tabela a seguir descreve os atributos de <ProjectId>:

Atributo Obrigatório? Tipo Descrição
ref Opcional String Especifica a variável de fluxo em que a Apigee precisa ler o ID do projeto do Google Cloud. É possível definir o elemento <ProjectId> de uma das seguintes maneiras:
  • <ProjectId>val</ProjectId>: use val como o ID do projeto.
  • <ProjectId ref="refval"/>: resolva refval dinamicamente para determinar o ID do projeto. A Apigee relata uma exceção se o ID do projeto resolvido for inválido ou se refval não for resolvido.
  • <ProjectId ref="refval">val</ProjectId>: resolva refval dinamicamente para determinar o ID do projeto. A Apigee relata uma exceção se o ID do projeto resolvido for inválido. Se refval não for resolvido, use val como o ID do projeto.

<IntegrationName>

Especifica a integração a ser executada.

A Apigee atribui o valor especificado para esse elemento à variável de fluxo integration.name.

O nome da integração precisa atender aos seguintes requisitos de nomenclatura:

  • Os nomes precisam começar e terminar com letras ou números.
  • Não podem ter espaços.
  • Não podem ter dois traços ou sublinhados consecutivos.
Valor padrão N/A
Obrigatório? Opcional
Tipo String
Elemento pai <SetIntegrationRequest>
Elemento filho Nenhuma

O elemento <IntegrationName> usa a seguinte sintaxe:

Sintaxe

<IntegrationName ref="FLOW_VARIABLE_NAME">INTEGRATION_NAME</IntegrationName>

Exemplo

O exemplo a seguir configura a política para usar a variável de fluxo my_integration_ref para buscar o nome da integração. Se essa variável não for resolvida no ambiente de execução, use integration_1 como o nome da integração:

<IntegrationName ref="my_integration_ref">integration_1</IntegrationName>

A tabela a seguir descreve os atributos de <IntegrationName>:

Atributo Obrigatório? Tipo Descrição
ref Opcional String Especifica a variável de fluxo em que a Apigee precisa ler o nome da integração. É possível definir o elemento <IntegrationName> de uma das seguintes maneiras:
  • <IntegrationName>val</IntegrationName>: use val como o nome da integração.
  • <IntegrationName ref="refval"/>: resolva refval dinamicamente para determinar o nome da integração. A Apigee relata uma exceção se o nome da integração resolvida for inválido ou se refval não for resolvido.
  • <IntegrationName ref="refval">val</IntegrationName>: resolva refval dinamicamente para determinar o nome da integração. A Apigee relata uma exceção se o nome da integração resolvida for inválido. Se refval não for resolvido, use val como o nome da integração.

<IntegrationRegion>

Especifica a região em que a integração existe.

No ambiente de execução, a Apigee atribui o valor do elemento à variável de fluxo integration.region, cria um URL de destino com base na região e armazena o URL na variável de fluxo integration.target.url.

O URL de destino com base na região tem o seguinte formato: https://integration.region-integrations.googleapis.com

A região de integração precisa ser ter suporte da Integração com a Apigee. Para informações sobre as regiões que têm suporte da Integração com a Apigee, consulte Regiões suportadas.

Valor padrão N/A
Obrigatório? Obrigatório
Tipo String
Elemento pai <SetIntegrationRequest>
Elemento filho Nenhuma

O elemento <IntegrationRegion> usa a seguinte sintaxe:

Sintaxe

<IntegrationRegion ref="FLOW_VARIABLE_NAME">INTEGRATION_REGION</IntegrationRegion>

Exemplo

O exemplo a seguir configura a política para usar a variável de fluxo my_integration_region_ref para buscar a região de integração e, se a variável de fluxo não for resolvida no ambiente de execução, asia-east1 vai ser usado como a região da integração:

<IntegrationRegion ref="my_integration_region_ref">asia-east1</IntegrationRegion>

A tabela a seguir descreve os atributos de <IntegrationRegion>:

Atributo Obrigatório? Tipo Descrição
ref Opcional String Especifica a variável de fluxo em que a Apigee precisa ler o nome da região. É possível definir o elemento <IntegrationRegion> de uma das seguintes maneiras:
  • <IntegrationRegion>val</IntegrationRegion>: use val como a região da integração.
  • <IntegrationRegion ref="refval"/>: resolva refval dinamicamente para determinar a região da integração. A Apigee relata uma exceção a região da integração resolvida for inválido ou se refval não for resolvida.
  • <IntegrationRegion ref="refval">val</IntegrationRegion>: resolva refval dinamicamente para determinar a região da integração. A Apigee relata uma exceção se o nome da integração resolvida for inválido. Se refval não for resolvida, use val como a região de integração.

<ApiTrigger>

Especifica o gatilho da API a ser executado.

Especifique o nome do acionador da API no formato api_trigger/API_TRIGGER_NAME.

A Apigee atribui o valor especificado para esse elemento à variável de fluxo integration.api.trigger.

Se você tiver especificado <IntegrationName>, somente o gatilho da API dessa integração será executado. No entanto, se você não tiver especificado <IntegrationName>, todas as integrações com o acionador de API especificado serão executadas.

Valor padrão N/A
Obrigatório? Obrigatório
Tipo String
Elemento pai <SetIntegrationRequest>
Elemento filho Nenhuma

O elemento <ApiTrigger> usa a seguinte sintaxe:

Sintaxe

<ApiTrigger ref="FLOW_VARIABLE_NAME">API_TRIGGER_NAME</ApiTrigger>

Exemplo

O exemplo a seguir configura a política para usar a variável de fluxo my_api_trigger_ref para buscar o nome do acionador da API e, se a variável não for resolvida no ambiente de execução, use api_trigger/API-Trigger-2 como o nome do acionador da API:

<ApiTrigger ref="my_api_trigger_ref">api_trigger/API-Trigger-2</ApiTrigger>

A tabela a seguir descreve os atributos de <ApiTrigger>:

Atributo Obrigatório? Tipo Descrição
ref Opcional String Especifica a variável de fluxo em que a Apigee precisa ler o nome do acionador da API. É possível definir o elemento <ApiTrigger> de uma das seguintes maneiras:
  • <ApiTrigger>val</ApiTrigger>: use val como o nome do gatilho da API.
  • <ApiTrigger ref="refval"/>: resolva refval dinamicamente para determinar o nome do gatilho. A Apigee relata uma exceção se o nome do acionador da API resolvido for inválido ou se refval não for resolvido.
  • <ApiTrigger ref="refval">val</ApiTrigger>: resolva refval dinamicamente para determinar o nome do gatilho. A Apigee relata uma exceção se o nome do acionador da API resolvido for inválido. Se refval não for resolvido, use val como o nome do gatilho.

<ScheduleTime>

Especifica o horário em que a integração precisa ser executada.

Se o horário for menor ou igual ao horário atual, a integração será executada imediatamente. É necessário especificar o horário no formato yyyy-mm-ddThh:mm:ssZ, em que Z é o fuso horário UTC. Por exemplo, se você especificar 2022-01-15T01:30:15Z, a integração será programada para 15 de janeiro de 2022, às 1:30:15 UTC. Também é possível especificar o fuso horário usando um deslocamento do UTC. Por exemplo, se você especificar 2022-01-15T01:30:15-08:00, a integração será programada para 15 de janeiro de 2022, às 1:30:15 PST. Para saber mais sobre o formato do horário, consulte Representações combinadas de data e hora.

Valor padrão N/A
Obrigatório? Opcional
Tipo String
Elemento pai <SetIntegrationRequest>
Elemento filho Nenhuma

O elemento <ScheduleTime> usa a seguinte sintaxe:

Sintaxe

<ScheduleTime>PARAMETER_VALUE</ScheduleTime>

Exemplo

No exemplo a seguir, a integração é programada para ser executada em 2022-01-15T01:30:15Z:

<ScheduleTime>2022-01-15T01:30:15Z</ScheduleTime>

<Parameters>

Especifica os parâmetros de entrada necessários para executar a integração.

Você pode especificar parâmetros ou matrizes de parâmetros individuais.

  • Para especificar um parâmetro individual, use o elemento <Parameter>.
  • Para especificar um parâmetro, use o elemento <ParameterArray>.
Valor padrão N/A
Obrigatório? Opcional
Tipo Tipo complexo
Elemento pai <SetIntegrationRequest>
Elemento filho <Parameter>
<ParameterArray>

A tabela a seguir descreve os atributos de <Parameters>:

Atributo Obrigatório? Tipo Descrição
substitutionVariableChar Opcional Caracteres Permite definir delimitadores personalizados para transmitir valores de variáveis de fluxo como argumentos de modelo no elemento filho <Parameter>.

O elemento <Parameters> usa a seguinte sintaxe:

Sintaxe

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

Exemplo

O exemplo a seguir inicializa o parâmetro my_str_param e a matriz 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>

A Apigee trata elementos <Parameter> e <ParameterArray> vazios como valores null. Por exemplo, declarações como <Parameter></Parameter> e <ParameterArray></ParameterArray> são tratadas como valores null.

<Parameter>

Especifica um parâmetro de entrada.

Valor padrão N/A
Obrigatório? Opcional
Tipo String
Elemento pai <Parameters>
Elemento filho None

É possível especificar o valor do parâmetro das seguintes maneiras:

  • <Parameter name="my_param" type="string">val</Parameter>: use val como o valor do parâmetro. Se val for inválido, a Apigee informará uma exceção.
  • <Parameter name="my_param" type="string" ref="refval"/>: resolve a variável do fluxo refval no tempo de execução e usa o valor dela. A Apigee informará uma exceção se o valor resolvido de refval for inválido ou se o refval não tiver sido resolvido.
  • <Parameter name="my_param" type="string" ref="refval">val</Parameter>: resolver a variável do fluxo refval no momento da execução e usar o valor dela. A Apigee informará uma exceção se o valor resolvido de refval for inválido. Se refval não for resolvido, a Apigee usará val como o valor do parâmetro.
  • <Parameter name="my_param" type="json">{"name":"$#flowval#$"}</Parameter>: use $#FLOW_VARIABLE_NAME#$ para transmitir valores de variáveis do fluxo como um argumento de modelo em Parâmetro. A Apigee resolve a variável de fluxo flowval no ambiente de execução e usa o valor dela. Uma exceção será informada se o valor flowval resolvido for inválido.
  • <Parameter name="my_param" type="json">{"name":"SUBSTITUTION_CHAR fluxoval SUBSTITUTION_CHAR"}</Parameter>: onde SUBSTITUTION_CHAR indica o valor especificado para o atributo substitutionVariableChar do elemento pai <Parameters>. A Apigee resolve a variável de fluxo flowval no ambiente de execução e usa o valor dela. Uma exceção será informada se o valor flowval resolvido for inválido. .

O elemento <Parameter> usa a seguinte sintaxe:

Sintaxe
<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>
Exemplo 1

No exemplo a seguir, o parâmetro my_str_param é declarado como string e define o valor como someText.

<Parameters>
  <Parameter name="my_str_param" type="string">someText</Parameter>
</Parameters>
Exemplo 2

O exemplo a seguir declara o parâmetro my_double_param como duplo e atribui o valor da variável de fluxo flow_var para o parâmetro.

<Parameters>
  <Parameter name="my_double_param" type="double" ref="flow_var"/>
</Parameters>
Exemplo 3

O exemplo a seguir define o valor como o parâmetro inteiro my_int_param_1.

<Parameters>
  <Parameter name="my_int_param_1" type="integer" ref="flow_var_1">96</Parameter>
</Parameters>

Neste exemplo, se a variável de fluxo flow_var_1 é resolvida com sucesso, my_int_param_1 é definido como o valor da variável de fluxo. No entanto, se flow_var_1 não for resolvido, my_int_param_1 será definido como 96.

Exemplo 4

O exemplo a seguir define valores para os parâmetros JSON my_json_param_1 e 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>

Neste exemplo, se a variável de fluxo flow_var_1 é resolvida com sucesso, my_json_param_1 é definido como o valor da variável de fluxo flow_var_1. No entanto, se o flow_var_1 não for resolvido, my_json_param_1 será definido como {name:"Apple", color:"Red"}. O parâmetro my_json_param_2 está definido como {name:"Banana", color:"Yellow"} porque não há um atributo ref especificado.

Exemplo 5

O exemplo a seguir define o valor do parâmetro JSON template_json_param usando o valor da variável do fluxo transmitido em um modelo padrão.

  <Parameters>
    <Parameter name="template_json_param" type="json">{"name":"$#flow_var_1#$"}</Parameter>
</Parameters>
  

Neste exemplo, se a variável de fluxo flow_var_1 é resolvida com sucesso, template_json_param é definido como o valor da variável de fluxo flow_var_1. No entanto, se a flow_var_1 não for resolvida, a Apigee vai gerar uma exceção.

Exemplo 6

O exemplo a seguir define o valor para o parâmetro JSON template_json_param usando o atributo substitutionVariableChar.

<Parameters substitutionVariableChar="#">
    <Parameter name="template_json_param" type="json">{"name":"#flow_var_1#"}</Parameter>
</Parameters>
  

Neste exemplo, se a variável de fluxo flow_var_1 é resolvida com sucesso, template_json_param é definido como o valor da variável de fluxo flow_var_1. No entanto, se a flow_var_1 não for resolvida, a Apigee vai gerar uma exceção.

A tabela a seguir descreve os atributos de <Parameter>:

Atributo Obrigatório? Tipo Descrição
name Obrigatório String Nome do parâmetro.
type Obrigatório String Tipo de dados do parâmetro. Os tipos compatíveis são integer, string, boolean, double e json.
ref Opcional String Especifica a variável de fluxo em que a Apigee lerá o valor do parâmetro. A Apigee usa os seguintes critérios para definir o valor dos parâmetros:
  • Se a variável de fluxo for resolvida no momento da execução e for válida, a Apigee usará o valor dela.
  • Se a variável de fluxo for resolvida no ambiente de execução, mas for inválida, a Apigee informará uma exceção.
  • Se a variável de fluxo não for resolvida no ambiente de execução, a Apigee usará o valor do elemento <Parameter>. Se o valor do elemento for inválido, a Apigee informará um erro.

<ParameterArray>

Especifica uma matriz de parâmetros de entrada.

Valor padrão N/A
Obrigatório? Opcional
Tipo Tipo complexo
Elemento pai <Parameters>
Elemento filho <Value>

O elemento <Parameters> pode ter vários elementos <ParameterArray> dentro dele. Para uma matriz de parâmetros, defina o valor dos elementos da matriz especificando o valor real ou uma variável de fluxo no atributo ref. Se você especificar uma variável de fluxo, os elementos da matriz serão definidos como o valor dessa variável. Os exemplos nesta seção descrevem as várias maneiras de configurar o elemento <ParameterArray>.

O elemento <ParameterArray> usa a seguinte sintaxe:

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

O exemplo a seguir declara my_array_param como uma matriz de números inteiros e define o valor dos elementos da matriz como 1, 2 e 3:

<Parameters>
  <ParameterArray name="my_array_param" type="integer">
    <Value>1</Value>
    <Value>2</Value>
    <Value>3</Value>
  </ParameterArray>
<Parameters/>
Example-2

O exemplo a seguir declara my_array_param como uma matriz dupla, em que:

  • O primeiro elemento é definido como o valor da variável de fluxo flow_var_1.
  • O segundo elemento está definido como 3.0.
<Parameters>
  <ParameterArray name="my_array_param" type="double">
    <Value ref="flow_var_1"/>
    <Value>3.0</Value>
  </ParameterArray>
<Parameters/>
Exemplo-3

O exemplo a seguir declara my_array_param como uma matriz booleana e a define como o valor da variável de fluxo 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/>

Neste exemplo, se flow_var_1 for resolvido, my_array_param será definido como os valores da matriz flow_var_1. No entanto, se flow_var_1 não for resolvida, a matriz my_array_param será definida como os valores dos elementos Value.

Exemplo-4

O exemplo a seguir declara my_array_param como uma matriz JSON e a define como o valor da variável de fluxo flow_var_1.

<Parameters>
  <ParameterArray name="my_array_param" type="json" ref="flow_var_1"/>
<Parameters/>

Neste exemplo, se flow_var_1 for resolvido, my_array_param será definido como os valores da matriz flow_var_1. No entanto, se flow_var_1 não for resolvido, a Apigee relata uma exceção.

Exemplo-5

O exemplo a seguir declara my_array_param como uma matriz de strings e a define como os valores da variável de fluxo 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/>

Neste exemplo, se flow_var_1 for resolvido, my_array_param será definido como os valores da matriz flow_var_1. Somente se flow_var_1 não for resolvido, my_array_param é definido como os valores especificados nos elementos <Value>.

A tabela a seguir descreve os atributos de <ParameterArray>:

Atributo Obrigatório? Tipo Descrição
name Obrigatório String Nome da matriz de parâmetros.
type Obrigatório String Tipo de dados da matriz de parâmetros. Os tipos compatíveis são integer, string, boolean e double.
ref Opcional String Especifica a variável de fluxo em que a Apigee precisa ler os valores da matriz. A Apigee usa os seguintes critérios para definir o valor dos parâmetros:
  • Se a variável de fluxo for resolvida no momento da execução e for válida, a Apigee usará o valor dela.
  • Se a variável de fluxo for resolvida no ambiente de execução, mas for inválida, a Apigee informará uma exceção.
  • Se a variável de fluxo não for resolvida no ambiente de execução, a Apigee usará os valores especificados nos elementos <Value>.
<Value>

Especifica o valor de um elemento da matriz.

Valor padrão N/A
Obrigatório? Opcional
Tipo String
Elemento pai <ParameterArray>
Elemento filho None

Cada elemento da matriz precisa ser um elemento <Value> separado. É possível especificar o valor das seguintes maneiras:

  • <Value>val</Value>: use val como o valor do elemento. Se val for inválido, a Apigee informará uma exceção.
  • <Value ref="refval"/>: resolva a variável de fluxo de refval no ambiente de execução e use o valor dela. A Apigee informará uma exceção se o valor resolvido de refval for inválido ou se o refval não tiver sido resolvido.
  • <Value ref="refval">val</Value>: resolva a variável de fluxo de refval no ambiente de execução e use o valor dela. A Apigee informará uma exceção se o valor resolvido de refval for inválido. Se refval não for resolvido, a Apigee vai usar val como o valor do elemento.
  • <Value>val1 $#flowval#$</Value>: use $#FLOW_VARIABLE_NAME#$ para transmitir valores de variáveis do fluxo como um argumento de modelo em Valor. A Apigee resolve a variável de fluxo flowval no ambiente de execução e usa o valor dela. Uma exceção será informada se o valor flowval resolvido for inválido.

O elemento <Value> usa a seguinte sintaxe:

Sintaxe
<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>
Exemplo 1

O exemplo a seguir declara my_array_param como uma matriz de parâmetros inteiros com os valores 1, 2 e 3:

<ParameterArray name="my_array_param" type="integer">
  <Value>1</Value>
  <Value>2</Value>
  <Value>3</Value>
</ParameterArray>
Exemplo 2

O exemplo a seguir declara my_array_param como uma matriz de parâmetros de string com valores das variáveis de fluxo flow_var_1 e flow_var_2:

<ParameterArray name="my_array_param" type="string">
  <Value ref="flow_var_1"/>
  <Value ref="flow_var_2"/>
</ParameterArray>
Exemplo 3

O exemplo a seguir declara my_array_param como uma matriz 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>

Neste exemplo, se a variável de fluxo for resolvida, o valor do elemento da matriz será definido como o valor da variável de fluxo flow_var_1. No entanto, se flow_var_1 não for resolvido, o valor do elemento da matriz será definido como string_1.

Exemplo 4

O exemplo a seguir define o valor do parâmetro da matriz de strings template_strArray_param usando o valor da variável de fluxo transmitido em um modelo.

  <Parameters>
    <ParameterArray name="template_strArray_param" type="string">
    <Value>apple $#flow_var_1#$</Value>
    </ParameterArray>
  </Parameters>
  

Neste exemplo, se a variável de fluxo for resolvida, o valor do elemento da matriz será definido como o valor da variável de fluxo flow_var_1. No entanto, se flow_var_1 não for resolvido, a Apigee vai gerar uma exceção.

A tabela a seguir descreve os atributos de <Value>:

Atributo Obrigatório? Tipo Descrição
ref Opcional String Especifica a variável de fluxo em que a Apigee lerá o valor do parâmetro. A Apigee usa os seguintes critérios para definir o valor dos parâmetros:
  • Se a variável de fluxo for resolvida no momento da execução e for válida, a Apigee usará o valor dela.
  • Se a variável de fluxo for resolvida no ambiente de execução, mas for inválida, a Apigee informará uma exceção.
  • Se a variável de fluxo não for resolvida no ambiente de execução, a Apigee vai usar o valor do elemento <Value>. Se o valor do elemento for inválido, a Apigee informará um erro.

<Request>

Especifica o nome da variável de fluxo para salvar a solicitação.

Após a execução da política, ele cria um novo objeto de mensagem de solicitação e salva o objeto na variável FLOW_VARIABLE_NAME que você pode consultar para ler a solicitação.

Se você não especificar um nome de variável de fluxo, a política salvará a solicitação na mensagem de solicitação, substituindo a mensagem de solicitação atual, se houver.

Valor padrão request
Obrigatório? Opcional
Tipo String
Elemento pai <SetIntegrationRequest>
Elemento filho Nenhuma

O elemento <Request> usa a seguinte sintaxe:

Sintaxe

<Request>FLOW_VARIABLE_NAME</Request>

Exemplo

No exemplo a seguir, o objeto de solicitação é salvo na variável de fluxo my_request_var:

<Request>my_request_var</Request>

Códigos de erro

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 <ParameterArray> element has the name and type attributes, but doesn't have the ref attribute or a <Value> element.

steps.setintegrationrequest.EmptyParameterArrayValue 500

This error occurs when the <Value> element is empty and the ref attribute is not set.

steps.setintegrationrequest.InvalidResolvedFlowVariable 500

This error occurs when the flow variable specified in the ref attribute of an element fails to resolve to a valid value.

  • For the ProjectId, IntegrationName, or the ApiTrigger elements, this error occurs if the flow variable resolves to a null, an empty string, or an invalid data type.

    A valid value for these elements is as follows:

    • ProjectId: See the naming requirements for Project ID in the Before you begin section.
    • IntegrationName: See the naming requirements for the IntegrationName element.
    • ApiTrigger: The name should start with api_trigger/.
  • For the ParameterArray element, this error occurs if the flow variable resolves to an empty string.
steps.setintegrationrequest.MismatchedTypeAndResolvedRef 500

This error occurs when the flow variable specified in the ref attribute of the <Parameter> element resolves, but the flow variable value's data type doesn't match the data type specified in the type attribute.

steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArray 500

This error occurs when the flow variable specified in the ref attribute of the <ParameterArray> element resolves, but the flow variable value's data type doesn't match with the data type specified in the type attribute.

steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArrayValue 500

This error occurs when the flow variable specified in the ref attribute of the <Value> element resolves, but the flow variable value's data type doesn't match with the data type specified in the type attribute of its parent element (<ParameterArray>).

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 <Parameter>, <ParameterArray>, or the <Value> elements.

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
For more information about policy errors, see What you need to know about policy errors.

Temas relacionados

Para saber mais sobre o recurso de integração da Apigee, consulte O que é integração da Apigee?.