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

Nesta seção, descrevemos códigos, mensagens de erro e variáveis de falha definidos pela Apigee quando essa política aciona um erro. Essas informações são essenciais se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.

Erros de execução

Esses erros podem ocorrer quando a política é executada.

Código de falha Status HTTP Causa
steps.setintegrationrequest.EmptyParameterArray 500

Esse erro ocorre quando o elemento <ParameterArray> tem os atributos name e type, mas não tem o atributo ref ou um elemento <Value>.

steps.setintegrationrequest.EmptyParameterArrayValue 500

Esse erro ocorre quando o elemento <Value> está vazio e o atributo ref não está definido.

steps.setintegrationrequest.InvalidResolvedFlowVariable 500

Esse erro ocorre quando a variável de fluxo especificada no atributo ref de um elemento não é resolvida para um valor válido.

  • Para os elementos ProjectId, IntegrationName ou ApiTrigger, esse erro ocorrerá se a variável do fluxo for nula, uma string vazia ou um tipo de dados inválido.

    Veja a seguir um valor válido para esses elementos:

    • ProjectId: consulte os requisitos de nomenclatura para Project ID na seção Antes de começar.
    • InegrationName: veja os requisitos de nomenclatura do elemento IntegrationName.
    • ApiTrigger: o nome precisa começar com api_trigger/.
  • Para o elemento ParameterArray, esse erro ocorrerá se a variável de fluxo for resolvida como uma string vazia.
steps.setintegrationrequest.MismatchedTypeAndResolvedRef 500

Esse erro ocorre quando a variável de fluxo especificada no atributo ref do elemento <Parameter> é resolvida, mas o tipo de dados do valor da variável de fluxo não corresponde ao tipo de dados especificado na tag type.

steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArray 500

Esse erro ocorre quando a variável de fluxo especificada no ref do atributo<ParameterArray> resolve, mas o tipo de dados do valor da variável de fluxo não corresponde ao tipo especificado natype.

steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArrayValue 500

Esse erro ocorre quando a variável de fluxo especificada no ref do atributo<Value> resolve, mas o tipo de dados do valor da variável de fluxo não corresponde ao tipo especificado natype atributo do elemento pai (<ParameterArray> .

steps.setintegrationrequest.RequestVariableNotMessageType 500 Esse erro ocorre quando a variável de fluxo especificada pelo elemento Request não é do tipo mensagem.
steps.setintegrationrequest.RequestVariableNotRequestMessageType 500 Esse erro ocorre quando a variável de fluxo especificada pelo elemento Request não é do tipo Mensagem de solicitação.
steps.setintegrationrequest.UnresolvedVariable 500

Esse erro ocorre quando a Apigee não pode resolver as variáveis de fluxo especificadas nos elementos <Parameter>, <ParameterArray> ou <Value>.

Variáveis de falha

Sempre que houver erros de execução em uma política, a Apigee gerará mensagens de erro. Essas mensagens de erro podem ser visualizadas na resposta de erro. Muitas vezes, as mensagens de erro geradas pelo sistema podem não ser relevantes no contexto do produto. Personalize as mensagens de erro com base no tipo específico para torná-las mais úteis.

Para personalizar as mensagens de erro, use regras de falha ou a política RaiseFault. Para informações sobre as diferenças entre as regras de falha e a política RaiseFault, consulte FaultRules vs. a política RaiseFault. Verifique as condições usando o elemento Condition nas regras de falha e na política RaiseFault. A Apigee fornece variáveis de falha exclusivas para cada política, e os valores das variáveis de falha são definidos quando uma política aciona erros de ambiente de execução. Ao usar essas variáveis, é possível verificar se há condições de erro específicas e agir conforme adequado. Para mais informações sobre como verificar condições de erro, consulte Como criar condições.

A tabela a seguir descreve as variáveis de falha específicas da política.

Variáveis Onde Exemplo
fault.name O fault.name pode corresponder a qualquer uma das falhas listadas na tabela Erros de ambiente de execução. O nome da falha é a última parte do código de falha. fault.name Matches "UnresolvedVariable"
SetIntegrationRequest.POLICY_NAME.failed POLICY_NAME é o nome da política especificada pelo usuário que gerou a falha. SetIntegrationRequest.set-integration-request-1.failed = true
Para mais informações sobre erros de política, consulte O que você precisa saber sobre erros de política.

Temas relacionados

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