Definir política SetIntegrationRequest

Esta página aplica-se ao Apigee e ao Apigee Hybrid.

Veja a documentação do Apigee Edge.

Ícone de política

Vista geral

A política SetIntegrationRequest permite-lhe criar um objeto de pedido para uma integração que quer executar. Na política, tem de configurar os detalhes do acionador da API e os parâmetros de entrada necessários para executar a integração. Quando executa a política SetIntegrationRequest, cria um objeto de pedido e guarda-o numa variável de fluxo. O objeto de pedido tem todas as informações necessárias para executar a integração. Nesta fase, a integração ainda não é executada. Para executar a integração, tem de chamar a política IntegrationCallout ou definir um IntegrationEndpoint. A política IntegrationCallout e o IntegrationEndpoint requerem o objeto de pedido para executar a integração.

Esta política é uma política extensível e a utilização desta política pode ter implicações de custo ou utilização, consoante a sua licença do Apigee. Para ver informações sobre os tipos de políticas e as implicações de utilização, consulte Tipos de políticas.

<SetIntegrationRequest>

Especifica a política SetIntegrationRequest.

Valor predefinido N/A
Obrigatório? Obrigatória
Tipo Tipo complexo
Elemento principal N/A
Elementos subordinados <ApiTrigger>
<DisplayName>
<IntegrationName>
<IntegrationRegion>
<Parameters>
<ProjectId>
<Request>
<ScheduleTime>

A tabela seguinte fornece uma descrição geral dos elementos subordinados do elemento <SetIntegrationRequest>:

Elemento secundário Obrigatório? Descrição
<ApiTrigger> Obrigatória Nome do acionador da API a chamar na integração.
<DisplayName> Opcional Um nome personalizado para a política.
<IntegrationName> Opcional Nome da integração a executar.
<IntegrationRegion> Obrigatória Nome da região onde a integração existe.
<Parameters> Opcional Introduza os parâmetros da integração.
<ProjectId> Opcional Nome do projeto do Google Cloud que tem a integração que quer executar.
<Request> Opcional Nome da variável de fluxo para guardar o objeto de pedido.
<ScheduleTime> Opcional A hora em que a integração tem de 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 seguinte 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 Predefinição Obrigatório? Descrição
name N/A Obrigatório

O nome interno da política. O valor do atributo name pode conter letras, números, espaços, hífenes, sublinhados e pontos finais. Este valor não pode exceder 255 carateres.

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

continueOnError falso Opcional Definido como false para devolver um erro quando uma política falha. Este comportamento é o esperado para a maioria das políticas. Definido como true para que a execução do fluxo continue mesmo depois de uma política falhar. Veja também:
enabled verdadeiro Opcional Defina como true para aplicar a política. Defina como false para desativar a política. A política não é aplicada, mesmo que permaneça anexada a um fluxo.
async   falso Descontinuado Este atributo foi descontinuado.

Referência de elemento secundário

Esta secção descreve os elementos subordinados de <SetIntegrationRequest>.

<DisplayName>

Use em conjunto com o atributo name para etiquetar a política no editor de proxy da IU de gestão com um nome diferente e mais natural.

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

Valor predefinido N/A
Obrigatório? Opcional. Se omitir <DisplayName>, é usado o valor do atributo name da política.
Tipo String
Elemento principal <PolicyElement>
Elementos subordinados 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 nem elementos subordinados.

<ProjectId>

Especifica o nome do projeto do Google Cloud.

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

Valor predefinido N/A
Obrigatório? Opcional
Tipo String
Elemento principal <SetIntegrationRequest>
Elementos subordinados Nenhum

O elemento <ProjectId> usa a seguinte sintaxe:

Sintaxe

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

Exemplo

O exemplo seguinte configura a política para usar a variável de fluxo my_projectid_var para obter o ID do projeto e, se a variável de fluxo não for resolvida no tempo de execução, usar apigee_staging_1 como o ID do projeto:

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

A tabela seguinte descreve os atributos de <ProjectId>:

Atributo Obrigatório? Tipo Descrição
ref Opcional String Especifica a variável de fluxo a partir da qual o Apigee deve ler o ID do projeto do Google Cloud. Pode definir o elemento <ProjectId> de uma das seguintes formas:
  • <ProjectId>val</ProjectId>: use val como ID do projeto.
  • <ProjectId ref="refval"/>: Resolve refval dinamicamente para determinar o ID do projeto. O Apigee comunica uma exceção se o ID do projeto resolvido for inválido ou se refval não for resolvido.
  • <ProjectId ref="refval">val</ProjectId>: Resolve refval dinamicamente para determinar o ID do projeto. O Apigee comunica uma exceção se o ID do projeto resolvido for inválido. Se refval não resolver o problema, use val como ID do projeto.

<IntegrationName>

Especifica a integração a executar.

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

O nome da integração tem de cumprir os seguintes requisitos de nomenclatura:

  • Tem de começar e terminar com letras ou números.
  • Não pode ter espaços.
  • Não pode ter dois carateres de travessão ou sublinhado consecutivos.
Valor predefinido N/A
Obrigatório? Opcional
Tipo String
Elemento principal <SetIntegrationRequest>
Elementos subordinados Nenhum

O elemento <IntegrationName> usa a seguinte sintaxe:

Sintaxe

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

Exemplo

O exemplo seguinte configura a política para usar a variável de fluxo my_integration_ref para obter o nome da integração e, se a variável de fluxo não for resolvida no tempo de execução, usar integration_1 como o nome da integração:

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

A tabela seguinte descreve os atributos de <IntegrationName>:

Atributo Obrigatório? Tipo Descrição
ref Opcional String Especifica a variável de fluxo a partir da qual o Apigee deve ler o nome da integração. Pode definir o elemento <IntegrationName> de uma das seguintes formas:
  • <IntegrationName>val</IntegrationName>: use val como nome da integração.
  • <IntegrationName ref="refval"/>: Resolva refval dinamicamente para determinar o nome da integração. O Apigee comunica uma exceção se o nome da integração resolvido 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. O Apigee comunica uma exceção se o nome da integração resolvido for inválido. Se refval não for resolvido, use val como nome da integração.

<IntegrationRegion>

Especifica a região onde existe a integração.

Em tempo de execução, o Apigee atribui o valor do elemento à variável de fluxo integration.region, cria um URL de destino baseado na região e armazena o URL na variável de fluxo integration.target.url.

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

A região de integração tem de ser suportada pela integração de aplicações. Para obter informações sobre as regiões suportadas da integração de aplicações, consulte o artigo Regiões suportadas.

Valor predefinido N/A
Obrigatório? Obrigatória
Tipo String
Elemento principal <SetIntegrationRequest>
Elementos subordinados Nenhum

O elemento <IntegrationRegion> usa a seguinte sintaxe:

Sintaxe

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

Exemplo

O exemplo seguinte configura a política para usar a variável de fluxo my_integration_region_ref para obter a região de integração e, se a variável de fluxo não for resolvida no tempo de execução, asia-east1 é usada como a região da integração:

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

A tabela seguinte descreve os atributos de <IntegrationRegion>:

Atributo Obrigatório? Tipo Descrição
ref Opcional String Especifica a variável de fluxo a partir da qual o Apigee deve ler a região de integração. Pode definir o elemento <IntegrationRegion> de uma das seguintes formas:
  • <IntegrationRegion>val</IntegrationRegion>: use val como região de integração.
  • <IntegrationRegion ref="refval"/>: Resolva refval dinamicamente para determinar a região de integração. O Apigee comunica uma exceção se a região de integração resolvida for inválida ou se refval não for resolvida.
  • <IntegrationRegion ref="refval">val</IntegrationRegion>: Resolva refval dinamicamente para determinar a região de integração. O Apigee comunica uma exceção se a região de integração resolvida for inválida. Se refval não for resolvido, use val como região de integração.

<ApiTrigger>

Especifica o acionador da API a executar.

Tem de especificar o nome do acionador da API no formato api_trigger/API_TRIGGER_NAME.

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

Se tiver especificado o <IntegrationName>, apenas o acionador da API dessa integração é executado. No entanto, se não tiver especificado o <IntegrationName>, são executadas todas as integrações que têm o acionador da API especificado.

Valor predefinido N/A
Obrigatório? Obrigatória
Tipo String
Elemento principal <SetIntegrationRequest>
Elementos subordinados Nenhum

O elemento <ApiTrigger> usa a seguinte sintaxe:

Sintaxe

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

Exemplo

O exemplo seguinte configura a política para usar a variável de fluxo my_api_trigger_ref para obter o nome do acionador da API e, se a variável de fluxo não for resolvida no tempo de execução, usar 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 seguinte descreve os atributos de <ApiTrigger>:

Atributo Obrigatório? Tipo Descrição
ref Opcional String Especifica a variável de fluxo a partir da qual o Apigee deve ler o nome do acionador de API. Pode definir o elemento <ApiTrigger> de uma das seguintes formas:
  • <ApiTrigger>val</ApiTrigger>: use val como o nome do acionador da API.
  • <ApiTrigger ref="refval"/>: Resolva refval dinamicamente para determinar o nome do acionador. O Apigee comunica uma exceção se o nome do acionador da API resolvido for inválido ou se refval não estiver resolvido.
  • <ApiTrigger ref="refval">val</ApiTrigger>: Resolva refval dinamicamente para determinar o nome do acionador. O Apigee comunica 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 acionador.

<ScheduleTime>

Especifica a hora em que a integração tem de ser executada.

Se a hora for inferior ou igual à hora atual, a integração é executada imediatamente. Tem de especificar a hora no formato yyyy-mm-ddThh:mm:ssZ, em que Z é o fuso horário UTC. Por exemplo, se especificar 2022-01-15T01:30:15Z, a integração está agendada para ser executada a 15-01-2022 às 01:30:15 UTC. Também pode especificar o fuso horário através de uma diferença para UTC. Por exemplo, se especificar 2022-01-15T01:30:15-08:00, a integração é agendada para ser executada a 15-01-2022 às 01:30:15 PST. Para mais informações sobre o formato de hora, consulte o artigo Representações combinadas de data e hora.

Valor predefinido N/A
Obrigatório? Opcional
Tipo String
Elemento principal <SetIntegrationRequest>
Elementos subordinados Nenhum

O elemento <ScheduleTime> usa a seguinte sintaxe:

Sintaxe

<ScheduleTime>PARAMETER_VALUE</ScheduleTime>

Exemplo

O exemplo seguinte agenda a execução da integração às 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.

Pode especificar parâmetros individuais ou matrizes de parâmetros.

  • Para especificar um parâmetro individual, use o elemento <Parameter>.
  • Para especificar uma matriz de parâmetros, use o elemento <ParameterArray>.
Valor predefinido N/A
Obrigatório? Opcional
Tipo Tipo complexo
Elemento principal <SetIntegrationRequest>
Elementos subordinados <Parameter>
<ParameterArray>

A tabela seguinte descreve os atributos de <Parameters>:

Atributo Obrigatório? Tipo Descrição
substitutionVariableChar Opcional Char Permite-lhe definir delimitadores personalizados para transmitir valores de variáveis de fluxo como argumentos de modelos 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 seguinte 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>

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

<Parameter>

Especifica um parâmetro de entrada.

Valor predefinido N/A
Obrigatório? Opcional
Tipo String
Elemento principal <Parameters>
Elementos subordinados Nenhum

Pode especificar o valor do parâmetro das seguintes formas:

  • <Parameter name="my_param" type="string">val</Parameter>: use val como valor do parâmetro. Se val for inválido, o Apigee comunica uma exceção.
  • <Parameter name="my_param" type="string" ref="refval"/>: resolve a variável de fluxo refval no momento da execução e usa o respetivo valor. O Apigee comunica uma exceção se o valor refval resolvido for inválido ou se refval não for resolvido.
  • <Parameter name="my_param" type="string" ref="refval">val</Parameter>: resolve a variável de fluxo refval no tempo de execução e usa o respetivo valor. O Apigee comunica uma exceção se o valor refval resolvido for inválido. Se refval não for resolvido, o Apigee usa 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 de fluxo como um argumento de modelo no parâmetro. O Apigee resolve a variável de fluxo flowval no tempo de execução e usa o respetivo valor. É comunicada uma exceção se o valor flowval resolvido for inválido.
  • <Parameter name="my_param" type="json">{"name":"SUBSTITUTION_CHAR flowval SUBSTITUTION_CHAR"}</Parameter>: onde SUBSTITUTION_CHAR denota o valor especificado para o atributo substitutionVariableChar do elemento principal <Parameters>. O Apigee resolve a variável de fluxo flowval no tempo de execução e usa o respetivo valor. É comunicada uma exceção se o valor de 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

O exemplo seguinte declara o parâmetro my_str_param como uma string e define o valor como someText.

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

O exemplo seguinte declara o parâmetro my_double_param como um valor duplo e atribui o valor da variável de fluxo flow_var ao parâmetro.

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

O exemplo seguinte define o valor para 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 for resolvida com êxito, my_int_param_1 é definida como o valor da variável de fluxo. No entanto, se flow_var_1 não conseguir resolver, my_int_param_1 é definido como 96.

Exemplo 4

O exemplo seguinte 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 for resolvida com êxito, my_json_param_1 é definida como o valor da variável de fluxo flow_var_1. No entanto, se a flow_var_1 não conseguir resolver o problema, my_json_param_1 é definida como {name:"Apple", color:"Red"}. O parâmetro my_json_param_2 está definido como {name:"Banana", color:"Yellow"}, uma vez que não existe nenhum atributo ref especificado.

Exemplo 5

O exemplo seguinte define o valor do parâmetro JSON template_json_param usando o valor da variável de fluxo transmitido no modelo predefinido.

  <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 for resolvida com êxito, template_json_param é definida como o valor da variável de fluxo flow_var_1. No entanto, se o flow_var_1 não conseguir resolver, o Apigee aciona uma exceção.

Exemplo 6

O exemplo seguinte define o valor do parâmetro JSON template_json_param através do 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 for resolvida com êxito, template_json_param é definida como o valor da variável de fluxo flow_var_1. No entanto, se o flow_var_1 não conseguir resolver, o Apigee aciona uma exceção.

A tabela seguinte descreve os atributos de <Parameter>:

Atributo Obrigatório? Tipo Descrição
name Obrigatória String Nome do parâmetro.
type Obrigatória String Tipo de dados do parâmetro. Os tipos suportados são: integer, string, boolean, double e json.
ref Opcional String Especifica a variável de fluxo a partir da qual o Apigee deve ler o valor do parâmetro. O Apigee usa os seguintes critérios para definir o valor do parâmetro:
  • Se a variável de fluxo for resolvida no tempo de execução e for válida, o Apigee usa o valor da variável de fluxo.
  • Se a variável de fluxo for resolvida no tempo de execução, mas for inválida, o Apigee comunica uma exceção.
  • Se a variável de fluxo não for resolvida no tempo de execução, o Apigee usa o valor do elemento <Parameter>. Se o valor do elemento for inválido, o Apigee comunica um erro.

<ParameterArray>

Especifica uma matriz de parâmetros de entrada.

Valor predefinido N/A
Obrigatório? Opcional
Tipo Tipo complexo
Elemento principal <Parameters>
Elementos subordinados <Value>

O elemento <Parameters> pode ter vários elementos <ParameterArray>. Para uma matriz de parâmetros, pode definir o valor dos elementos da matriz especificando o valor real ou especificando uma variável de fluxo no atributo ref. Se especificar uma variável de fluxo, os elementos da matriz são definidos com o valor da variável de fluxo. Os exemplos nesta secção descrevem as várias formas 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 seguinte 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 seguinte 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/>
Example-3

O exemplo seguinte declara my_array_param como uma matriz booleana e define-a com 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 com êxito, my_array_param é definido para os valores da matriz flow_var_1. No entanto, se o elemento flow_var_1 não for resolvido, a matriz my_array_param é definida para os valores dos elementos Value.

Example-4

O exemplo seguinte declara my_array_param como uma matriz JSON e define-a com 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 com êxito, my_array_param é definido para os valores da matriz flow_var_1. No entanto, se flow_var_1 não for resolvido, o Apigee comunica uma exceção.

Example-5

O exemplo seguinte declara my_array_param como uma matriz de strings e define-a para 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 com êxito, my_array_param é definido para os valores da matriz flow_var_1. Apenas se flow_var_1 não conseguir resolver, my_array_param é definido para os valores especificados nos elementos <Value>.

A tabela seguinte descreve os atributos de <ParameterArray>:

Atributo Obrigatório? Tipo Descrição
name Obrigatória String Nome da matriz de parâmetros.
type Obrigatória String Tipo de dados da matriz de parâmetros. Os tipos suportados são: integer, string, boolean e double.
ref Opcional String Especifica a variável de fluxo a partir da qual o Apigee deve ler os valores da matriz. O Apigee usa os seguintes critérios para definir o valor do parâmetro:
  • Se a variável de fluxo for resolvida no tempo de execução e for válida, o Apigee usa o valor da variável de fluxo.
  • Se a variável de fluxo for resolvida no tempo de execução, mas for inválida, o Apigee comunica uma exceção.
  • Se a variável de fluxo não for resolvida no tempo de execução, o Apigee usa os valores especificados nos elementos <Value>.
<Value>

Especifica o valor de um elemento de matriz.

Valor predefinido N/A
Obrigatório? Opcional
Tipo String
Elemento principal <ParameterArray>
Elementos subordinados Nenhum

Cada elemento da matriz tem de ser um elemento <Value> separado. Pode especificar o valor das seguintes formas:

  • <Value>val</Value>: use val como o valor do elemento. Se val for inválido, o Apigee comunica uma exceção.
  • <Value ref="refval"/>: resolve a variável de fluxo refval no tempo de execução e usa o respetivo valor. O Apigee comunica uma exceção se o valor refval resolvido for inválido ou se refval não for resolvido.
  • <Value ref="refval">val</Value>: resolve a variável de fluxo refval no momento da execução e usa o respetivo valor. O Apigee comunica uma exceção se o valor refval resolvido for inválido. Se refval não for resolvido, o Apigee usa val como o valor do elemento.
  • <Value>val1 $#flowval#$</Value>: use $#FLOW_VARIABLE_NAME#$ para transmitir valores de variáveis de fluxo como um argumento de modelo em Value. O Apigee resolve a variável de fluxo flowval no tempo de execução e usa o respetivo valor. É comunicada uma exceção 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 seguinte 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 seguinte 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 seguinte 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 com êxito, o valor do elemento da matriz é definido como o valor da variável de fluxo flow_var_1. No entanto, se flow_var_1 não conseguir resolver, o valor do elemento da matriz é definido como string_1.

Exemplo 4

O exemplo seguinte define o valor para o parâmetro de matriz de strings template_strArray_param através do valor da variável de fluxo transmitido num 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 com êxito, o valor do elemento da matriz é definido como o valor da variável de fluxo flow_var_1. No entanto, se flow_var_1 não conseguir resolver o problema, o Apigee gera uma exceção.

A tabela seguinte descreve os atributos de <Value>:

Atributo Obrigatório? Tipo Descrição
ref Opcional String Especifica a variável de fluxo a partir da qual o Apigee deve ler o valor do parâmetro. O Apigee usa os seguintes critérios para definir o valor do parâmetro:
  • Se a variável de fluxo for resolvida no tempo de execução e for válida, o Apigee usa o valor da variável de fluxo.
  • Se a variável de fluxo for resolvida no tempo de execução, mas for inválida, o Apigee comunica uma exceção.
  • Se a variável de fluxo não for resolvida no tempo de execução, o Apigee usa o valor do elemento <Value>. Se o valor do elemento for inválido, o Apigee comunica um erro.

<Request>

Especifica o nome da variável de fluxo para guardar o pedido.

Após a execução da política, é criado um novo objeto de mensagem de pedido e o objeto é guardado na variável FLOW_VARIABLE_NAME, que pode consultar para ler o pedido.

Se não especificar um nome de variável de fluxo, a política guarda o pedido na mensagem de pedido, substituindo a mensagem de pedido existente, se existir.

Valor predefinido pedido
Obrigatório? Opcional
Tipo String
Elemento principal <SetIntegrationRequest>
Elementos subordinados Nenhum

O elemento <Request> usa a seguinte sintaxe:

Sintaxe

<Request>FLOW_VARIABLE_NAME</Request>

Exemplo

O exemplo seguinte guarda o objeto de pedido 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.

Tópicos relacionados

Se quiser saber mais sobre a funcionalidade Application Integration, consulte o artigo Vista geral da Application Integration