Kebijakan SetIntegrationRequest

Halaman ini berlaku untuk Apigee dan Apigee Hybrid.

Baca dokumentasi Apigee Edge.

ikon kebijakan

Ringkasan

Kebijakan SetIntegrationRequest memungkinkan Anda membuat objek permintaan untuk integrasi yang ingin Anda jalankan. Dalam kebijakan ini, Anda harus mengonfigurasi detail pemicu API dan parameter input yang diperlukan untuk menjalankan integrasi. Saat Anda menjalankan kebijakan SetIntegrationRequest, objek permintaan akan dibuat dan disimpan dalam variabel alur. Objek permintaan memiliki semua informasi yang diperlukan untuk menjalankan integrasi. Pada tahap ini, integrasi masih belum berjalan. Untuk menjalankan integrasi, Anda harus memanggil kebijakanIntegration atau menetapkan IntegrationEndpoint. Kebijakan IntegrationCallout dan IntegrationEndpoint memerlukan objek permintaan untuk menjalankan integrasi.

Kebijakan ini merupakan Kebijakan yang dapat diperluas, dan penggunaan kebijakan ini mungkin memiliki implikasi biaya atau pemanfaatan, bergantung pada lisensi Apigee Anda. Untuk mengetahui informasi tentang jenis kebijakan dan implikasi penggunaan, lihat Jenis kebijakan.

<SetIntegrationRequest>

Menentukan kebijakan SetIntegrationRequest.

Nilai Default T/A
Wajib? Diperlukan
Type Jenis kompleks
Elemen Induk T/A
Elemen Turunan <ApiTrigger>
<DisplayName>
<IntegrationName>
<IntegrationRegion>
<Parameters>
<ProjectId>
<Request>
<ScheduleTime>

Tabel berikut memberikan deskripsi tingkat tinggi tentang elemen turunan dari elemen <SetIntegrationRequest>:

Elemen Turunan Wajib? Deskripsi
<ApiTrigger> Diperlukan Nama pemicu API yang akan dipanggil dalam integrasi.
<DisplayName> Opsional Nama kustom untuk kebijakan.
<IntegrationName> Opsional Nama integrasi yang akan dijalankan.
<IntegrationRegion> Diperlukan Nama wilayah tempat integrasi berada.
<Parameters> Opsional Parameter input integrasi.
<ProjectId> Opsional Nama Project Google Cloud yang memiliki integrasi yang ingin Anda jalankan.
<Request> Opsional Nama variabel flow untuk menyimpan objek permintaan.
<ScheduleTime> Opsional Waktu saat integrasi harus dijalankan.

Kebijakan SetIntegrationRequest menggunakan sintaksis berikut:

Sintaksis

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

Contoh

Contoh berikut menunjukkan definisi kebijakan 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>

Elemen ini memiliki atribut berikut yang sama untuk semua kebijakan:

Atribut Default Wajib? Deskripsi
name T/A Wajib

Nama internal kebijakan. Nilai atribut name dapat berisi huruf, angka, spasi, tanda hubung, garis bawah, dan titik. Nilai ini tidak boleh melebihi 255 karakter.

Atau, gunakan elemen <DisplayName> untuk memberi label kebijakan di editor proxy UI pengelolaan dengan nama natural-language yang berbeda.

continueOnError false Opsional Setel ke false untuk menampilkan error jika kebijakan gagal. Ini adalah perilaku yang wajar untuk sebagian besar kebijakan. Setel ke true agar eksekusi alur tetap berlanjut bahkan setelah kebijakan gagal. Lihat juga:
enabled true Opsional Setel ke true untuk menerapkan kebijakan. Setel ke false untuk menonaktifkan kebijakan. Kebijakan tidak akan diterapkan meskipun tetap melekat pada alur.
async   false Tidak digunakan lagi Atribut ini sudah tidak digunakan lagi.

Referensi elemen turunan

Bagian ini menjelaskan elemen turunan <SetIntegrationRequest>.

<DisplayName>

Gunakan selain atribut name untuk memberi label kebijakan di editor proxy UI pengelolaan dengan nama yang berbeda dan lebih alami.

Elemen <DisplayName> bersifat umum untuk semua kebijakan.

Nilai Default T/A
Wajib? Opsional. Jika Anda menghilangkan <DisplayName>, nilai atribut name kebijakan akan digunakan.
Jenis String
Elemen Induk <PolicyElement>
Elemen Turunan Tidak ada

Elemen <DisplayName> menggunakan sintaksis berikut:

Sintaksis

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

Contoh

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

Elemen <DisplayName> tidak memiliki atribut atau elemen turunan.

<ProjectId>

Menentukan nama Project Google Cloud.

Apigee menetapkan nilai yang Anda tentukan untuk elemen ini ke variabel alur integration.project.id.

Nilai Default T/A
Wajib? Opsional
Type String
Elemen Induk <SetIntegrationRequest>
Elemen Turunan Tidak ada

Elemen <ProjectId> menggunakan sintaksis berikut:

Sintaksis

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

Contoh

Contoh berikut mengonfigurasi kebijakan untuk menggunakan variabel alur my_projectid_var untuk mengambil project ID, dan jika variabel alur gagal di-resolve saat runtime, gunakan apigee_staging_1 sebagai project ID:

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

Tabel berikut menjelaskan atribut <ProjectId>:

Atribut Wajib? Jenis Deskripsi
ref Opsional String Menentukan variabel flow yang menjadi asal Apigee untuk membaca Project ID Google Cloud. Anda dapat menetapkan elemen <ProjectId> dengan salah satu cara berikut:
  • <ProjectId>val</ProjectId>: Gunakan val sebagai project ID.
  • <ProjectId ref="refval"/>: Menyelesaikan refval secara dinamis untuk menentukan project ID. Apigee melaporkan pengecualian jika project ID yang di-resolve tidak valid atau jika refval tidak terselesaikan.
  • <ProjectId ref="refval">val</ProjectId>: Menyelesaikan refval secara dinamis untuk menentukan project ID. Apigee melaporkan pengecualian jika project ID yang di-resolve tidak valid. Jika refval tidak berhasil di-resolve, gunakan val sebagai project ID.

<IntegrationName>

Menentukan integrasi yang akan dijalankan.

Apigee menetapkan nilai yang Anda tentukan untuk elemen ini ke variabel alur integration.name.

Nama integrasi harus memenuhi persyaratan penamaan berikut:

  • Harus diawali dan diakhiri dengan huruf atau angka.
  • Tidak boleh berisi spasi.
  • Tidak boleh memiliki dua karakter tanda hubung atau garis bawah berturut-turut.
Nilai Default T/A
Wajib? Opsional
Type String
Elemen Induk <SetIntegrationRequest>
Elemen Turunan Tidak ada

Elemen <IntegrationName> menggunakan sintaksis berikut:

Sintaksis

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

Contoh

Contoh berikut mengonfigurasi kebijakan untuk menggunakan variabel alur my_integration_ref untuk mengambil nama integrasi, dan jika variabel flow gagal di-resolve saat runtime, gunakan integration_1 sebagai nama integrasi:

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

Tabel berikut menjelaskan atribut <IntegrationName>:

Atribut Wajib? Jenis Deskripsi
ref Opsional String Menentukan variabel alur tempat Apigee harus membaca nama integrasi. Anda dapat menetapkan elemen <IntegrationName> dengan salah satu cara berikut:
  • <IntegrationName>val</IntegrationName>: Gunakan val sebagai nama integrasi.
  • <IntegrationName ref="refval"/>: Menyelesaikan refval secara dinamis untuk menentukan nama integrasi. Apigee melaporkan pengecualian jika nama integrasi yang di-resolve tidak valid atau jika refval tidak terselesaikan.
  • <IntegrationName ref="refval">val</IntegrationName>: Menyelesaikan refval secara dinamis untuk menentukan nama integrasi. Apigee melaporkan pengecualian jika nama integrasi yang di-resolve tidak valid. Jika refval tidak di-resolve, gunakan val sebagai nama integrasi.

<IntegrationRegion>

Menentukan wilayah tempat integrasi berada.

Saat runtime, Apigee menetapkan nilai elemen ke variabel alur integration.region, membuat URL target berbasis region, dan menyimpan URL dalam variabel alur integration.target.url.

URL target berbasis wilayah memiliki format berikut: https://integration.region-integrations.googleapis.com

Region integrasi harus didukung oleh Integrasi Apigee. Untuk mengetahui informasi tentang region Integrasi Apigee yang didukung, lihat Wilayah yang didukung.

Nilai Default T/A
Wajib? Diperlukan
Type String
Elemen Induk <SetIntegrationRequest>
Elemen Turunan Tidak ada

Elemen <IntegrationRegion> menggunakan sintaksis berikut:

Sintaksis

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

Contoh

Contoh berikut mengonfigurasi kebijakan untuk menggunakan variabel alur my_integration_region_ref untuk mengambil region integrasi, dan jika variabel flow gagal di-resolve saat runtime, asia-east1 akan digunakan sebagai region integrasi:

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

Tabel berikut menjelaskan atribut <IntegrationRegion>:

Atribut Wajib? Jenis Deskripsi
ref Opsional String Menentukan variabel flow yang menjadi asal Apigee untuk membaca region integrasi. Anda dapat menetapkan elemen <IntegrationRegion> dengan salah satu cara berikut:
  • <IntegrationRegion>val</IntegrationRegion>: Gunakan val sebagai region integrasi.
  • <IntegrationRegion ref="refval"/>: Menyelesaikan refval secara dinamis untuk menentukan region integrasi. Apigee melaporkan pengecualian jika region integrasi yang di-resolve tidak valid atau jika refval tidak terselesaikan.
  • <IntegrationRegion ref="refval">val</IntegrationRegion>: Menyelesaikan refval secara dinamis untuk menentukan region integrasi. Apigee melaporkan pengecualian jika region integrasi yang di-resolve tidak valid. Jika refval tidak di-resolve, gunakan val sebagai region integrasi.

<ApiTrigger>

Menentukan pemicu API yang akan dijalankan.

Anda harus menentukan nama pemicu API dalam format api_trigger/API_TRIGGER_NAME.

Apigee menetapkan nilai yang Anda tentukan untuk elemen ini ke variabel alur integration.api.trigger.

Jika Anda telah menentukan <IntegrationName>, hanya pemicu API dari integrasi tersebut yang akan dijalankan. Namun, jika Anda belum menentukan <IntegrationName>, semua integrasi yang memiliki pemicu API yang ditentukan akan dijalankan.

Nilai Default T/A
Wajib? Diperlukan
Type String
Elemen Induk <SetIntegrationRequest>
Elemen Turunan Tidak ada

Elemen <ApiTrigger> menggunakan sintaksis berikut:

Sintaksis

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

Contoh

Contoh berikut mengonfigurasi kebijakan untuk menggunakan variabel alur my_api_trigger_ref untuk mengambil nama pemicu API, dan jika variabel alur gagal di-resolve saat runtime, gunakan api_trigger/API-Trigger-2 sebagai nama pemicu API:

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

Tabel berikut menjelaskan atribut <ApiTrigger>:

Atribut Wajib? Jenis Deskripsi
ref Opsional String Menentukan variabel alur tempat Apigee harus membaca nama pemicu API. Anda dapat menetapkan elemen <ApiTrigger> dengan salah satu cara berikut:
  • <ApiTrigger>val</ApiTrigger>: Menggunakan val sebagai nama pemicu API.
  • <ApiTrigger ref="refval"/>: Menyelesaikan refval secara dinamis untuk menentukan nama pemicu. Apigee melaporkan pengecualian jika nama pemicu API yang di-resolve tidak valid atau jika refval tidak terselesaikan.
  • <ApiTrigger ref="refval">val</ApiTrigger>: Menyelesaikan refval secara dinamis untuk menentukan nama pemicu. Apigee melaporkan pengecualian jika nama pemicu API yang di-resolve tidak valid. Jika refval tidak di-resolve, gunakan val sebagai nama pemicu.

<ScheduleTime>

Menentukan waktu integrasi harus berjalan.

Jika waktunya kurang dari atau sama dengan waktu saat ini, integrasi akan langsung berjalan. Anda harus menentukan waktu dalam format yyyy-mm-ddThh:mm:ssZ di mana Z merupakan zona waktu UTC. Misalnya, jika Anda menentukan 2022-01-15T01:30:15Z, integrasi dijadwalkan untuk berjalan pada 15-1-2022 pada pukul 13.30.15 UTC. Anda juga dapat menentukan zona waktu menggunakan offset dari UTC. Misalnya, jika Anda menentukan 2022-01-15T01:30:15-08:00, integrasi dijadwalkan untuk berjalan pada 15-1-2022 pukul 1.30.15 PST. Untuk informasi selengkapnya tentang format waktu, lihat Gabungan representasi tanggal dan waktu.

Nilai Default T/A
Wajib? Opsional
Type String
Elemen Induk <SetIntegrationRequest>
Elemen Turunan Tidak ada

Elemen <ScheduleTime> menggunakan sintaksis berikut:

Sintaksis

<ScheduleTime>PARAMETER_VALUE</ScheduleTime>

Contoh

Contoh berikut menjadwalkan integrasi untuk dijalankan di 2022-01-15T01:30:15Z:

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

<Parameters>

Menentukan parameter input yang diperlukan untuk menjalankan integrasi.

Anda dapat menentukan parameter individual atau array parameter.

  • Untuk menentukan parameter individual, gunakan elemen <Parameter>.
  • Untuk menentukan array parameter, gunakan elemen <ParameterArray>.
Nilai Default T/A
Wajib? Opsional
Type Jenis kompleks
Elemen Induk <SetIntegrationRequest>
Elemen Turunan <Parameter>
<ParameterArray>

Tabel berikut menjelaskan atribut <Parameters>:

Atribut Wajib? Jenis Deskripsi
substitutionVariableChar Opsional Karakter Memungkinkan Anda menetapkan pemisah kustom untuk meneruskan nilai variabel alur sebagai argumen template dalam elemen turunan <Parameter>.

Elemen <Parameters> menggunakan sintaksis berikut:

Sintaksis

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

Contoh

Contoh berikut menginisialisasi parameter my_str_param dan array parameter 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>

Apigee memperlakukan elemen <Parameter> dan <ParameterArray> kosong sebagai nilai null. Misalnya, deklarasi seperti <Parameter></Parameter> dan <ParameterArray></ParameterArray> diperlakukan sebagai nilai null.

<Parameter>

Menentukan parameter input.

Nilai Default T/A
Wajib? Opsional
Type String
Elemen Induk <Parameters>
Elemen Turunan Tidak ada

Anda dapat menentukan nilai parameter dengan cara berikut:

  • <Parameter name="my_param" type="string">val</Parameter>: Gunakan val sebagai nilai parameter. Jika val tidak valid, Apigee akan melaporkan pengecualian.
  • <Parameter name="my_param" type="string" ref="refval"/>: Selesaikan variabel alur refval saat runtime dan gunakan nilainya. Apigee melaporkan pengecualian jika nilai refval yang di-resolve tidak valid atau jika refval tidak terselesaikan.
  • <Parameter name="my_param" type="string" ref="refval">val</Parameter>: Selesaikan variabel alur refval saat runtime dan gunakan nilainya. Apigee melaporkan pengecualian jika nilai refval yang di-resolve tidak valid. Jika refval tidak di-resolve, Apigee akan menggunakan val sebagai parameter value.
  • <Parameter name="my_param" type="json">{"name":"$#flowval#$"}</Parameter>: Gunakan $#FLOW_VARIABLE_NAME#$ untuk meneruskan nilai variabel alur sebagai argumen template di Parameter. Apigee me-resolve variabel alur flowval saat runtime dan menggunakan nilainya. Pengecualian dilaporkan jika nilai flowval yang telah diselesaikan tidak valid.
  • <Parameter name="my_param" type="json">{"name":"SUBSTITUTION_CHAR flowval SUBSTITUTION_CHAR"}</Parameter>: Dengan SUBSTITUTION_CHAR, yang menunjukkan nilai yang ditentukan untuk atribut substitutionVariableChar dari elemen induk <Parameters>. Apigee me-resolve variabel alur flowval saat runtime dan menggunakan nilainya. Pengecualian dilaporkan jika nilai flowval yang telah diselesaikan tidak valid.

Elemen <Parameter> menggunakan sintaksis berikut:

Sintaksis
<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>
Contoh 1

Contoh berikut mendeklarasikan parameter my_str_param sebagai string dan menetapkan nilainya ke someText.

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

Contoh berikut mendeklarasikan parameter my_double_param sebagai pasangan ganda dan menetapkan nilai variabel alur flow_var ke parameter tersebut.

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

Contoh berikut menetapkan nilai ke parameter bilangan bulat my_int_param_1.

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

Dalam contoh ini, jika variabel alur flow_var_1 berhasil di-resolve, my_int_param_1 ditetapkan ke nilai variabel flow. Namun, jika flow_var_1 gagal di-resolve, my_int_param_1 akan ditetapkan ke 96.

Contoh 4

Contoh berikut menetapkan nilai untuk parameter JSON my_json_param_1 dan 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>

Dalam contoh ini, jika variabel alur flow_var_1 berhasil di-resolve, my_json_param_1 ditetapkan ke nilai variabel alur flow_var_1. Namun, jika flow_var_1 gagal di-resolve, my_json_param_1 akan ditetapkan ke {name:"Apple", color:"Red"}. Parameter my_json_param_2 disetel ke {name:"Banana", color:"Yellow"} karena tidak ada atribut ref yang ditentukan.

Contoh 5

Contoh berikut menetapkan nilai untuk parameter JSON template_json_param menggunakan nilai variabel flow yang diteruskan di template default.

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

Dalam contoh ini, jika variabel alur flow_var_1 berhasil di-resolve, template_json_param ditetapkan ke nilai variabel alur flow_var_1. Namun, jika flow_var_1 gagal di-resolve, Apigee akan menampilkan pengecualian.

Contoh 6

Contoh berikut menetapkan nilai untuk parameter JSON template_json_param menggunakan atribut substitutionVariableChar.

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

Dalam contoh ini, jika variabel alur flow_var_1 berhasil di-resolve, template_json_param ditetapkan ke nilai variabel alur flow_var_1. Namun, jika flow_var_1 gagal di-resolve, Apigee akan menampilkan pengecualian.

Tabel berikut menjelaskan atribut <Parameter>:

Atribut Wajib? Jenis Deskripsi
name Diperlukan String Nama parameter.
type Diperlukan String Jenis data parameter. Jenis yang didukung adalah integer, string, boolean, double, dan json.
ref Opsional String Menentukan variabel flow yang menjadi tujuan Apigee membaca nilai parameternya. Apigee menggunakan kriteria berikut untuk menetapkan nilai parameter:
  • Jika variabel flow me-resolve saat runtime dan valid, Apigee akan menggunakan nilai variabel flow.
  • Jika variabel alur me-resolve saat runtime tetapi tidak valid, Apigee akan melaporkan pengecualian.
  • Jika variabel flow tidak di-resolve saat runtime, Apigee akan menggunakan nilai elemen <Parameter>. Jika nilai elemen tidak valid, Apigee akan melaporkan error.

<ParameterArray>

Menentukan array parameter input.

Nilai Default T/A
Wajib? Opsional
Type Jenis kompleks
Elemen Induk <Parameters>
Elemen Turunan <Value>

Elemen <Parameters> dapat memiliki beberapa elemen <ParameterArray> di dalamnya. Untuk array parameter, Anda dapat menetapkan nilai elemen array baik dengan menentukan nilai sebenarnya maupun dengan menentukan variabel alur dalam atribut ref. Jika Anda menentukan variabel flow, elemen array disetel ke nilai variabel flow. Contoh di bagian ini menjelaskan berbagai cara yang dapat digunakan untuk mengonfigurasi elemen <ParameterArray>.

Elemen <ParameterArray> menggunakan sintaksis berikut:

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

Contoh berikut mendeklarasikan my_array_param sebagai array bilangan bulat dan menetapkan nilai elemen array ke 1, 2, dan 3:

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

Contoh berikut mendeklarasikan my_array_param sebagai array ganda, tempat:

  • Elemen pertama ditetapkan ke nilai variabel alur flow_var_1.
  • Elemen kedua ditetapkan ke 3.0.
<Parameters>
  <ParameterArray name="my_array_param" type="double">
    <Value ref="flow_var_1"/>
    <Value>3.0</Value>
  </ParameterArray>
<Parameters/>
Example-3

Contoh berikut mendeklarasikan my_array_param sebagai array boolean dan menetapkannya ke nilai variabel alur 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/>

Dalam contoh ini, jika flow_var_1 berhasil di-resolve, my_array_param ditetapkan ke nilai array flow_var_1. Namun, jika flow_var_1 gagal di-resolve, array my_array_param akan disetel ke nilai elemen Value.

Example-4

Contoh berikut mendeklarasikan my_array_param sebagai array JSON dan menetapkannya ke nilai variabel alur flow_var_1.

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

Dalam contoh ini, jika flow_var_1 berhasil di-resolve, my_array_param ditetapkan ke nilai array flow_var_1. Namun, jika flow_var_1 gagal di-resolve, Apigee akan melaporkan pengecualian.

Example-5

Contoh berikut mendeklarasikan my_array_param sebagai array string dan menetapkannya ke nilai variabel alur 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/>

Dalam contoh ini, jika flow_var_1 berhasil di-resolve, my_array_param ditetapkan ke nilai array flow_var_1. Hanya jika flow_var_1 gagal di-resolve, my_array_param akan ditetapkan ke nilai yang ditentukan dalam elemen <Value>.

Tabel berikut menjelaskan atribut <ParameterArray>:

Atribut Wajib? Jenis Deskripsi
name Diperlukan String Nama array parameter.
type Diperlukan String Jenis data array parameter. Jenis yang didukung adalah integer, string, boolean, dan double.
ref Opsional String Menentukan variabel flow yang harus digunakan Apigee untuk membaca nilai array. Apigee menggunakan kriteria berikut untuk menetapkan nilai parameter:
  • Jika variabel flow me-resolve saat runtime dan valid, Apigee akan menggunakan nilai variabel flow.
  • Jika variabel alur me-resolve saat runtime tetapi tidak valid, Apigee akan melaporkan pengecualian.
  • Jika variabel flow tidak di-resolve saat runtime, Apigee akan menggunakan nilai yang ditentukan dalam elemen <Value>.
<Value>

Menentukan nilai elemen array.

Nilai Default T/A
Wajib? Opsional
Type String
Elemen Induk <ParameterArray>
Elemen Turunan Tidak ada

Setiap elemen array harus berupa elemen <Value> yang terpisah. Anda dapat menentukan nilai ini dengan cara berikut:

  • <Value>val</Value>: Gunakan val sebagai nilai elemen. Jika val tidak valid, Apigee akan melaporkan pengecualian.
  • <Value ref="refval"/>: Selesaikan variabel alur refval saat runtime dan gunakan nilainya. Apigee melaporkan pengecualian jika nilai refval yang di-resolve tidak valid atau jika refval tidak terselesaikan.
  • <Value ref="refval">val</Value>: Selesaikan variabel alur refval saat runtime dan gunakan nilainya. Apigee melaporkan pengecualian jika nilai refval yang di-resolve tidak valid. Jika refval tidak di-resolve, Apigee akan menggunakan val sebagai nilai elemen.
  • <Value>val1 $#flowval#$</Value>: Gunakan $#FLOW_VARIABLE_NAME#$ untuk meneruskan nilai variabel alur sebagai argumen template di Nilai. Apigee me-resolve variabel alur flowval saat runtime dan menggunakan nilainya. Pengecualian dilaporkan jika nilai flowval yang telah diselesaikan tidak valid.

Elemen <Value> menggunakan sintaksis berikut:

Sintaksis
<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>
Contoh 1

Contoh berikut mendeklarasikan my_array_param sebagai array parameter bilangan bulat dengan nilai 1, 2, dan 3:

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

Contoh berikut mendeklarasikan my_array_param sebagai array parameter string dengan nilai variabel alur flow_var_1 dan flow_var_2:

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

Contoh berikut mendeklarasikan my_array_param sebagai array parameter 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>

Dalam contoh ini, jika variabel flow berhasil di-resolve, nilai elemen array ditetapkan ke nilai variabel flow flow_var_1. Namun, jika flow_var_1 gagal di-resolve, nilai elemen array akan ditetapkan ke string_1.

Contoh 4

Contoh berikut menetapkan nilai untuk parameter array string template_strArray_param menggunakan nilai variabel flow yang diteruskan dalam template.

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

Dalam contoh ini, jika variabel flow berhasil di-resolve, nilai elemen array ditetapkan ke nilai variabel flow flow_var_1. Namun, jika flow_var_1 gagal di-resolve, Apigee akan menampilkan pengecualian.

Tabel berikut menjelaskan atribut <Value>:

Atribut Wajib? Jenis Deskripsi
ref Opsional String Menentukan variabel flow yang menjadi tujuan Apigee membaca nilai parameternya. Apigee menggunakan kriteria berikut untuk menetapkan nilai parameter:
  • Jika variabel flow me-resolve saat runtime dan valid, Apigee akan menggunakan nilai variabel flow.
  • Jika variabel alur me-resolve saat runtime tetapi tidak valid, Apigee akan melaporkan pengecualian.
  • Jika variabel flow tidak di-resolve saat runtime, Apigee akan menggunakan nilai elemen <Value>. Jika nilai elemen tidak valid, Apigee akan melaporkan error.

<Request>

Menentukan nama variabel alur untuk menyimpan permintaan.

Setelah dijalankan, kebijakan akan membuat objek request message baru, dan menyimpan objek dalam variabel FLOW_VARIABLE_NAME yang dapat Anda kueri untuk membaca permintaan tersebut.

Jika nama variabel alur tidak ditetapkan, kebijakan akan menyimpan permintaan dalam pesan permintaan, dan mengganti pesan permintaan yang ada jika ada.

Nilai Default permintaan
Wajib? Opsional
Type String
Elemen Induk <SetIntegrationRequest>
Elemen Turunan Tidak ada

Elemen <Request> menggunakan sintaksis berikut:

Sintaksis

<Request>FLOW_VARIABLE_NAME</Request>

Contoh

Contoh berikut menyimpan objek permintaan dalam variabel alur my_request_var:

<Request>my_request_var</Request>

Kode error

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.

Topik terkait

Jika Anda ingin mempelajari fitur Integrasi Apigee lebih lanjut, lihat Apa yang dimaksud dengan Integrasi Apigee?