Política SetIntegrationRequest

Política extensível

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

Confira a documentação da Apigee Edge.

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ório 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 Nenhum

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 Nenhum

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 Nenhum

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 Application Integration. Para informações sobre as regiões que têm suporte da Application Integration, consulte Regiões suportadas.

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

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 Nenhum

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 Nenhum

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 Nenhum

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

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 solicitação
Obrigatório? Opcional
Tipo String
Elemento pai <SetIntegrationRequest>
Elemento filho Nenhum

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

Esta secção descreve os códigos de falhas, as mensagens de erro e as variáveis de falhas definidas pelo Apigee quando esta política aciona um erro. Estas informações são essenciais se estiver a desenvolver regras de falhas para resolver falhas. Para saber mais, consulte o artigo O que precisa de saber acerca dos erros de políticas e o artigo Processamento de falhas.

Erros de tempo de execução

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

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

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

steps.setintegrationrequest.EmptyParameterArrayValue 500

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

steps.setintegrationrequest.InvalidResolvedFlowVariable 500

Este 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, este erro ocorre se a variável de fluxo for resolvida como nula, uma string vazia ou um tipo de dados inválido.

    Um valor válido para estes elementos é o seguinte:

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

Este 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 no atributo type.

steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArray 500

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

steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArrayValue 500

Este erro ocorre quando a variável de fluxo especificada no atributo ref do elemento <Value> é resolvida, mas o tipo de dados do valor da variável de fluxo não corresponde ao tipo de dados especificado no atributo type do respetivo elemento principal (<ParameterArray>).

steps.setintegrationrequest.RequestVariableNotMessageType 500 Este erro ocorre quando a variável de fluxo especificada pelo elemento Request não é do tipo message.
steps.setintegrationrequest.RequestVariableNotRequestMessageType 500 Este erro ocorre quando a variável de fluxo especificada pelo elemento Request não é do tipo mensagem de pedido.
steps.setintegrationrequest.UnresolvedVariable 500

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

Variáveis de falha

Sempre que existem erros de execução numa política, o Apigee gera mensagens de erro. Pode ver estas mensagens de erro na resposta de erro. Muitas vezes, as mensagens de erro geradas pelo sistema podem não ser relevantes no contexto do seu produto. Pode personalizar as mensagens de erro com base no tipo de erro para tornar as mensagens mais significativas.

Para personalizar as mensagens de erro, pode usar regras de falhas ou a política RaiseFault. Para informações sobre as diferenças entre as regras de falhas e a política RaiseFault, consulte Regras de falhas vs. a política RaiseFault. Tem de verificar as condições através do elemento Condition nas regras de falhas e na política RaiseFault. O Apigee fornece variáveis de falhas exclusivas para cada política, e os valores das variáveis de falhas são definidos quando uma política aciona erros de tempo de execução. Ao usar estas variáveis, pode verificar condições de erro específicas e tomar as medidas adequadas. Para mais informações sobre a verificação das condições de erro, consulte o artigo Criar condições.

A tabela seguinte descreve as variáveis de falha específicas desta política.

Variáveis Onde Exemplo
fault.name O fault.name pode corresponder a qualquer uma das falhas indicadas na tabela Erros de tempo 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 especificado pelo utilizador da política que gerou a falha. SetIntegrationRequest.set-integration-request-1.failed = true
Para mais informações sobre erros de políticas, consulte o artigo O que precisa de saber sobre erros de políticas.

Temas relacionados

Para saber mais sobre o recurso de integração de aplicativos, consulte Visão geral da integração de aplicativos.