Definir política SetIntegrationRequest

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

Ver documentação do Apigee Edge.

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>

This element has the following attributes that are common to all policies:

Attribute Default Required? Description
name N/A Required

The internal name of the policy. The value of the name attribute can contain letters, numbers, spaces, hyphens, underscores, and periods. This value cannot exceed 255 characters.

Optionally, use the <DisplayName> element to label the policy in the management UI proxy editor with a different, natural-language name.

continueOnError false Optional Set to false to return an error when a policy fails. This is expected behavior for most policies. Set to true to have flow execution continue even after a policy fails. See also:
enabled true Optional Set to true to enforce the policy. Set to false to turn off the policy. The policy will not be enforced even if it remains attached to a flow.
async   false Deprecated This attribute is deprecated.

Referência de elemento secundário

Esta secção descreve os elementos subordinados 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.

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 estiver 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 traç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 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 de 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 de 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 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 flow_var_1. 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 é definido como {name:"Apple", color:"Red"}. O parâmetro my_json_param_2 está definido como {name:"Banana", color:"Yellow"}, uma vez que não foi especificado nenhum atributo ref.

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 flow_var_1 não conseguir resolver, 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 conseguir resolver, 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 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.
  • <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 de 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 de 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 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

This section describes the fault codes, error messages, and the fault variables set by Apigee when this policy triggers an error. This information is essential if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause
steps.setintegrationrequest.EmptyParameterArray 500

This error occurs when the <ParameterArray> element has the name and type attributes, but doesn't have the ref attribute or a <Value> element.

steps.setintegrationrequest.EmptyParameterArrayValue 500

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

steps.setintegrationrequest.InvalidResolvedFlowVariable 500

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

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

    A valid value for these elements is as follows:

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

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

steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArray 500

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

steps.setintegrationrequest.MismatchedTypeAndResolvedRefOfParameterArrayValue 500

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

steps.setintegrationrequest.RequestVariableNotMessageType 500 This error occurs when the flow variable specified by the Request element is not of message type.
steps.setintegrationrequest.RequestVariableNotRequestMessageType 500 This error occurs when the flow variable specified by the Request element is not of Request message type.
steps.setintegrationrequest.UnresolvedVariable 500

This error occurs when Apigee can't resolve the flow variables specified in the <Parameter>, <ParameterArray>, or the <Value> elements.

Fault variables

Whenever there are execution errors in a policy, Apigee generates error messages. You can view these error messages in the error response. Many a time, system generated error messages might not be relevant in the context of your product. You might want to customize the error messages based on the type of error to make the messages more meaningful.

To customize the error messages, you can use either fault rules or the RaiseFault policy. For information about differences between fault rules and the RaiseFault policy, see FaultRules vs. the RaiseFault policy. You must check for conditions using the Condition element in both the fault rules and the RaiseFault policy. Apigee provides fault variables unique to each policy and the values of the fault variables are set when a policy triggers runtime errors. By using these variables, you can check for specific error conditions and take appropriate actions. For more information about checking error conditions, see Building conditions.

The following table describes the fault variables specific to this policy.

Variables Where Example
fault.name The fault.name can match to any of the faults listed in the Runtime errors table. The fault name is the last part of the fault code. fault.name Matches "UnresolvedVariable"
SetIntegrationRequest.POLICY_NAME.failed POLICY_NAME is the user-specified name of the policy that threw the fault. SetIntegrationRequest.set-integration-request-1.failed = true
For more information about policy errors, see What you need to know about policy errors.

Tópicos relacionados

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