Pemecahan masalah error runtime Ekstrak Variabel

Anda sedang melihat dokumentasi Apigee dan Apigee Hybrid.
Lihat dokumentasi Apigee Edge.

SourceMessageNotAvailable

Kode error

steps.extractvariables.SourceMessageNotAvailable

Isi respons error

{
  "fault": {
      "faultstring": "[variable_name] message is not available for ExtractVariable: [policy_name]",
      "detail": {
          "errorcode": "steps.extractvariables.SourceMessageNotAvailable"
      }
  }
}

Penyebab

Error ini terjadi jika variabel pesan yang ditentukan dalam elemen<Source> kebijakan Ekstrak Variabel adalah:

  • di luar cakupan (tidak tersedia di alur tertentu tempat kebijakan dijalankan) atau
  • tidak dapat diselesaikan (tidak ditentukan)

Misalnya, error ini terjadi jika kebijakan Ekstrak Variabel dijalankan dalam alur permintaan, tetapi elemen <Source> disetel ke variabel response atau error yang tidak ada di alur permintaan.

Diagnosis

  1. Identifikasi kebijakan Ekstrak Variabel tempat error terjadi dan nama variabel yang tidak tersedia. Anda dapat menemukan kedua item ini dalam elemen faultstring respons error. Misalnya, dalam faultstring berikut, nama kebijakan adalah ExtractVariables-1 dan variabelnya adalah response:

    "faultstring": "response message is not available for ExtractVariable: ExtractVariables-1"

  2. Dalam XML kebijakan Ekstrak Variabel yang gagal, pastikan nama variabel yang ditetapkan dalam elemen cocok dengan nama variabel yang diidentifikasi dalam string kesalahan (langkah #1 di atas). Misalnya, kebijakan Ekstrak Variabel berikut menentukan variabel bernama response dalam elemen, yang cocok dengan yang ada di string fault:

    <ExtractVariables name="ExtractVariables-1">
        <Source>response</Source>
        <URIPath>
            <Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
        </URIPath>
        <VariablePrefix>urirequest</VariablePrefix>
    </ExtractVariables>
    
  3. Tentukan apakah variabel yang digunakan dalam elemen <Source> telah ditentukan dan tersedia dalam alur tempat kebijakan Ekstrak Variabel dijalankan.

  4. Jika variabelnya:

    • di luar cakupan (tidak tersedia di alur tertentu tempat kebijakan dijalankan) atau
    • tidak dapat diselesaikan (tidak ditentukan)

    maka itulah penyebab {i>error<i}.

    Sebagai contoh, misalkan kebijakan Ekstrak Variabel yang ditampilkan di atas dijalankan dalam alur permintaan. Ingat kembali bahwa variabel response digunakan dalam elemen <Source> dalam kebijakan Ekstrak Variabel. Variabel response hanya tersedia di alur respons.

    Karena variabel response tidak ada dalam alur permintaan, Anda menerima kode error: steps.extractvariables.SourceMessageNotAvailable.

Resolusi

Pastikan variabel yang ditetapkan di elemen <Source> dari kebijakan Ekstrak Variabel yang gagal, ditentukan dan ada di flow tempat kebijakan dijalankan.

Untuk memperbaiki contoh kebijakan Ekstrak Variabel yang ditampilkan di atas, Anda dapat mengubah elemen <Source> untuk menggunakan variabel request seperti yang ada dalam alur permintaan:

<ExtractVariables name="ExtractVariables-1">
    <Source>request</Source>
    <URIPath>
        <Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
    </URIPath>
    <VariablePrefix>urirequest</VariablePrefix>
</ExtractVariables>

SetVariableFailed

Kode error

steps.extractvariables.SetVariableFailed

Isi respons error

{
    "fault": {
        "faultstring": "Failed to set variable [variable_name] value [variable_value] from ExtractVariables: [policy_name]",
        "detail": {
            "errorcode": "steps.extractvariables.SetVariableFailed"
        }
    }
}

Penyebab

Error ini terjadi jika kebijakan Ekstrak Variabel tidak dapat menetapkan nilai ke variabel. Hal ini umumnya terjadi jika Anda mencoba menetapkan nilai ke beberapa variabel yang namanya diawali dengan kata yang sama dalam format bertingkat yang dipisahkan titik.

Sebagai contoh, misalkan Anda membuat/menetapkan nilai ke variabel var.color. Dalam hal ini, color dialokasikan sebagai node objek. Jika Anda kemudian mencoba menetapkan nilai ke variabel lain var.color.next, nilai tersebut akan gagal karena color sudah dialokasikan, dan tidak diizinkan untuk mengalokasikan variabel lain ke variabel tersebut.

Diagnosis

  1. Identifikasi kebijakan Ekstrak Variabel tempat error terjadi dan nama variabel yang nilainya tidak dapat ditetapkan. Anda dapat menemukan kedua item ini dalam elemen faultstring respons error. Misalnya, dalam string kesalahan berikut, nama kebijakan adalah ExtractColors dan variabelnya adalah var.color.next:

    "faultstring": "Failed to set variable var.color.next value red from ExtractVariables: ExtractColors"

  2. Di XML kebijakan Ekstrak Variabel yang gagal, pastikan nama variabel cocok dengan nama variabel yang diidentifikasi di string kesalahan (langkah #1 di atas). Misalnya, kebijakan berikut mencoba menetapkan nilai dari parameter kueri permintaan ke variabel bernama var.color.next (nilai yang muncul di string kesalahan):

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables name="ExtractColors">
        <DisplayName>ExtractColors</DisplayName>
        <Source>request</Source>
        <QueryParam name="color">
            <Pattern ignoreCase="true">{color}</Pattern>
        </QueryParam>
        <QueryParam name="nextcolor">
            <Pattern ignoreCase="true">{color.next}</Pattern>
        </QueryParam>
        <VariablePrefix>var</VariablePrefix>
    </ExtractVariables>
    
  3. Periksa semua nama variabel yang digunakan di kebijakan Ekstrak Variabel yang gagal. Jika Anda telah menetapkan nilai ke variabel lain yang namanya diawali dengan nama yang sama seperti nama variabel yang diidentifikasi dalam string kesalahan (langkah #1 di atas), maka itulah penyebab error.

    Dalam contoh kebijakan Ekstrak Variabel yang ditampilkan di atas, perhatikan bahwa:

    • Nilai parameter kueri bernama color pertama kali ditetapkan ke variabel var.color (Catatan: var adalah awalan untuk semua variabel seperti yang ditetapkan dalam elemen <VariablePrefix>)
    • Pada tugas berikutnya, nilai parameter kueri nextcolor ditetapkan ke variabel lain var.color.next.
    • Karena var.color sudah dialokasikan, kebijakan Ekstrak Variabel tidak dapat mengalokasikan variabel bertingkat lainnya var.color.next. Jadi, Anda menerima kode error: steps.extractvariables.SetVariableFailed

Resolusi

Pastikan Anda tidak memiliki beberapa nama variabel yang namanya diawali dengan kata yang sama dan disusun bertingkat dalam format yang dipisahkan titik.

Untuk memperbaiki kebijakan Ekstrak Variabel yang ditampilkan di atas, Anda dapat mengubah nama variabel var.color.next untuk menggunakan nama variabel var.nextcolor.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractColors">
    <DisplayName>ExtractColors</DisplayName>
    <Source>request</Source>
    <QueryParam name="color">
        <Pattern ignoreCase="true">{color}</Pattern>
    </QueryParam>
    <QueryParam name="nextcolor">
        <Pattern ignoreCase="true">{nextcolor}</Pattern>
    </QueryParam>
    <VariablePrefix>var</VariablePrefix>
</ExtractVariables>

Informasi Selengkapnya

Untuk mengetahui detail selengkapnya, lihat postingan komunitas ini.

InvalidJSONPath

Kode error

steps.extractvariables.InvalidJSONPath

Isi respons error

{
    "fault": {
        "faultstring": "Invalid JSON path [path_name] in policy [policy_name].",
        "detail": {
            "errorcode": "steps.extractvariables.InvalidJSONPath"
        }
    }
}

Penyebab

Error ini terjadi jika jalur JSON yang tidak valid digunakan dalam elemen <JSONPath> pada kebijakan Ekstrak Variabel. Misalnya, jika payload JSON tidak memiliki objek Name, tetapi Anda menentukan Name sebagai jalur dalam kebijakan Ekstrak Variabel, error ini akan terjadi.

Diagnosis

  1. Identifikasi kebijakan Ekstrak Variabel tempat error terjadi dan jalur JSON yang tidak valid. Anda dapat menemukan kedua item ini dalam elemen faultstring respons error. Misalnya, dalam string kesalahan berikut, nama kebijakan adalah ExtractJSONVariables dan jalur JSON yang tidak valid adalah $.Name:

    "faultstring": "Invalid JSON path $.Name in policy ExtractJSONVariables."

  2. Dalam XML kebijakan Ekstrak Variabel yang gagal, pastikan jalur JSON yang ditetapkan dalam elemen <JSONPath> cocok dengan jalur yang diidentifikasi di string kesalahan (langkah #1 di atas). Misalnya, kebijakan Ekstrak Variabel berikut menentukan jalur JSON $.Name, yang cocok dengan yang ada di string kesalahan:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables name="ExtractJSONVariables">
        <Source>response</Source>
        <JSONPayload>
            <Variable name="name" type="string">
                <JSONPath>$.Name</JSONPath>
            </Variable>
        </JSONPayload>
       <VariablePrefix>employee</VariablePrefix>
    </ExtractVariables>
    
  3. Periksa elemen <Source> dan tentukan dari Payload JSON mana Anda mencoba mengekstrak variabel. Misalnya, jika elemen <Source> disetel ke request, kebijakan akan mengekstrak payload JSON dari objek permintaan. Jika disetel ke response, objek ini akan menjadi objek respons.

    Pada contoh kebijakan Ekstrak Variabel yang ditampilkan di atas, elemen <Source> ditetapkan ke response, sehingga variabel diekstrak dari payload JSON respons.

    <Source>response</Source>

  4. Periksa payload JSON yang sesuai (ditentukan dari langkah #3) dan validasikan apakah payload tersebut memiliki objek yang ditentukan dalam elemen <JSONPath>. Jika payload JSON tidak memiliki objek tersebut, berarti itulah penyebab error.

    Sebagai contoh, pertimbangkan bahwa Anda mencoba mengekstrak variabel dari payload respons JSON berikut:

    {
      "firstName":"John",
      "lastName":"Doe",
      "city":"San Jose",
      "state":"CA"
    }
    

    Karena payload respons JSON tidak memiliki objek Name, kebijakan Ekstrak Variabel akan gagal dengan menampilkan error yang Anda terima dengan kode error: steps.extractvariables.InvalidJSONPath.

Resolusi

Pastikan hanya objek yang merupakan bagian dari Payload JSON tempat variabel diekstrak yang ditentukan di elemen <JSONPath> kebijakan Ekstrak Variabel.

Untuk memperbaiki contoh kebijakan Ekstrak Variabel yang ditampilkan di atas, Anda dapat mengubah elemen <JSONPath> untuk menentukan salah satu objek yang tersedia di contoh Payload respons JSON (misalnya, objek firstName dan lastName valid):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractJSONVariables">
    <Source>response</Source>
    <JSONPayload>
        <Variable name="name" type="string">
           <JSONPath>$.firstName</JSONPath>
        </Variable>
    </JSONPayload>
    <VariablePrefix>employee</VariablePrefix>
</ExtractVariables>

ExecutionFailed

Kode error

steps.extractvariables.ExecutionFailed

Isi respons error

{
    "fault": {
        "faultstring": "Failed to execute the ExtractVariables: [policy_name]",
        "detail": {
            "errorcode": "steps.extractvariables.ExecutionFailed"
        }
    }
}

Kemungkinan penyebab

Kemungkinan penyebab error ini adalah:

Penyebab Deskripsi
Payload input tidak ada Payload input (JSON, XML) kosong.
Input Tidak Valid atau Salah Format Input (JSON, XML, dll.) yang diteruskan ke kebijakan tidak valid atau formatnya salah.

Penyebab: Payload input tidak ada

Jika kebijakan Ekstrak Variabel seharusnya mengekstrak variabel dari payload JSON atau XML, tetapi konten (payload) variabel yang ditentukan di elemen <Source> kosong, maka error ini akan terjadi.

Misalnya, jika elemen <Source> dalam kebijakan Ekstrak Variabel ditetapkan sebagai request atau response dan seharusnya berisi payload JSON atau XML, tetapi payload kosong, maka error akan terjadi.

Diagnosis

  1. Identifikasi kebijakan Ekstrak Variabel tempat error terjadi. Anda dapat menemukan informasi ini dalam elemen faultstring respons error. Misalnya, dalam faultstring berikut, nama kebijakan adalah ExtractJSONVariables:

    "faultstring": "Failed to execute the ExtractVariables: ExtractXMLVariables"

  2. Periksa elemen <Source> dalam XML Ekstrak Variabel yang gagal dan tentukan jenis input tempat variabel diekstrak. Misalnya, kebijakan Ekstrak Variabel berikut memiliki elemen <Source> yang disetel ke response dan mengekstrak variabel dari payload XML:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <ExtractVariables name="ExtractXMLVariables" async="false" continueOnError="false" enabled="true">
        <XMLPayload>
            <Namespaces/>
            <Variable name="City" type="string">
                <XPath>/city</XPath>
            </Variable>
        </XMLPayload>
        <Source clearPayload="false">response</Source>
    </ExtractVariables>
    
    
  3. Periksa apakah input yang diuraikan oleh kebijakan Ekstrak Variabel kosong. Jika input kosong, itulah penyebab error.

    Pada contoh kebijakan Ekstrak Variabel yang ditampilkan di atas, payload respons (yaitu isi respons) yang dikirim oleh server backend kosong.

    Anda akan menerima kode error karena payload respons XML kosong:

    steps.extractvariables.ExecutionFailed

    Error ini juga dapat terjadi jika elemen <Source> disetel ke request, tetapi tidak ada payload yang diteruskan dalam permintaan proxy API. Contoh:

    curl -v "http://$EXTERNAL_IP/v1/testevexecutionfailed" -H "Content-Type: application/xml"
    

    Dengan $EXTERNAL_IP adalah alamat IP load balancer eksternal. Alamat IP ini terekspos ke internet. Untuk informasi selengkapnya, lihat Mengonfigurasi pemilihan rute.

    Kebijakan Ekstrak Variabel hanya melakukan ekstraksi XML jika header Content-Type pesan adalah application/xml, text/xml, atau application/*+xml. Anda harus meneruskan header Jenis Konten sebagai application/xml, text/xml, atau application/*+xml jika ingin kebijakan Ekstrak Variabel dapat mengurai payload permintaan XML.

Resolusi

Pastikan input yang diteruskan ke kebijakan Ekstrak Variabel valid dan tidak kosong.

Untuk memperbaiki masalah pada contoh kebijakan Ekstrak Variabel yang ditampilkan di atas, teruskan payload XML yang valid. Contoh:

  1. Buat file bernama city.xml dengan konten berikut:

    <city>Bengaluru</city>
    <area>Sanjaynagar</area>
    
  2. Lakukan panggilan API menggunakan perintah cURL sebagai berikut:

    curl -v "http://$EXTERNAL_IP/v1/testevexecutionfailed" -H "Content-Type: application/xml" -X POST -d @city.xml
    
    

    Dengan $EXTERNAL_IP adalah alamat IP load balancer eksternal. Alamat IP ini terekspos ke internet. Untuk informasi selengkapnya, lihat Mengonfigurasi pemilihan rute.

Penyebab: Input Tidak Valid atau Salah

Jika kebijakan Ekstrak Variabel mengurai input yang tidak valid atau formatnya salah, error ini akan muncul.

Misalnya, jika JSON yang tidak valid berikut diberikan sebagai input ke kebijakan Ekstrak Variabel, Anda akan menerima error ini.

[
    "args": ["name" : "amar" ]
]

Diagnosis

  1. Identifikasi kebijakan Ekstrak Variabel tempat error terjadi. Anda dapat menemukan informasi ini dalam elemen faultstring respons error. Misalnya, dalam faultstring berikut, nama kebijakan adalah ExtractJSONVariables:

    "faultstring": "Failed to execute the ExtractVariables: ExtractJSONVariables"

  2. Periksa elemen <Source> dalam XML Ekstrak Variabel yang gagal dan tentukan jenis input tempat variabel diekstrak. Misalnya, kebijakan Ekstrak Variabel berikut memiliki elemen <Source> yang disetel ke request dan mengekstrak variabel dari payload JSON:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <ExtractVariables name="ExtractJSONVariables" async="false" continueOnError="false" enabled="true">
        <JSONPayload>
            <Variable name="Name" type="string">
                <JSONPath>$.args.name</JSONPath>
            </Variable>
        </JSONPayload>
        <Source clearPayload="false">request</Source>
    </ExtractVariables>
    
    
  3. Periksa apakah input yang diuraikan oleh kebijakan Ekstrak Variabel valid. Jika input tidak valid atau salah format, itulah penyebab error.

    Dalam contoh kebijakan Ekstrak Variabel yang ditampilkan di atas, JSON yang tidak valid berikut diteruskan ke kebijakan Ekstrak Variabel

    [
        "args": ["name" : "amar" ]
    ]
    

    Berikut adalah contoh panggilan API yang menunjukkan cara permintaan diteruskan:

    curl -v "http://<$EXTERNAL_IP/v1/testevexecutionfailed" -H "Content-Type: application/json" -X POST -d '[ "args" : ["name" : "amar" ]]'
    

    Dengan $EXTERNAL_IP adalah alamat IP load balancer eksternal. Alamat IP ini terekspos ke internet. Untuk informasi selengkapnya, lihat Mengonfigurasi pemilihan rute.

    Payload JSON yang diteruskan ke API tidak valid karena berisi array dengan tanda kurung siku ([ ]) , sehingga Anda menerima kode error:

    steps.extractvariables.ExecutionFailed
    

    Error ini juga dapat terjadi jika elemen <Source> disetel ke response, tetapi payload respons JSON tidak valid atau formatnya salah.

Resolusi

Pastikan input yang diteruskan ke kebijakan Ekstrak Variabel valid dan tidak memiliki format yang salah.

Untuk memperbaiki masalah pada contoh kebijakan Ekstrak Variabel yang dibahas di atas, teruskan permintaan payload JSON yang valid sebagai berikut:

{
   "args":{
      "name":"amar"
   }
}

UnableToCast

Kode error

steps.extractvariables.UnableToCast

Isi respons error

{
    "fault": {
        "faultstring": "Unable to cast value [value] as [type].",
        "detail": {
            "errorcode": "steps.extractvariables.UnableToCast"
        }
    }
}

Penyebab

Error ini terjadi jika kebijakan Ekstrak Variabel tidak dapat mentransmisikan nilai yang diekstrak ke variabel. Biasanya ini terjadi jika Anda mencoba menetapkan nilai dari satu jenis data ke variabel jenis data lain.

Misalnya, jika kebijakan Ekstrak Variabel mencoba menetapkan nilai yang telah diekstrak dari variabel String ke variabel Bilangan Bulat, Anda akan melihat error ini.

Diagnosis

  1. Identifikasi jenis data variabel yang digunakan oleh kebijakan Ekstrak Variabel yang mencoba melakukan transmisi dan gagal. Anda dapat menemukan informasi ini dalam elemen faultstring respons error. Misalnya, dalam faultstring berikut, jenis objeknya adalah BOOLEAN:

    "faultstring":"Unable to cast value 36.231 as BOOLEAN."

  2. Identifikasi kebijakan Ekstrak Variabel tempat Anda mencoba menetapkan nilai ke jenis variabel yang ditentukan di langkah #1.

    Misalnya, kebijakan Ekstrak Variabel berikut mengekstrak nilai dari $.latitude JSONPath ke variabel jenis boolean, yang cocok dengan apa yang ada di string kesalahan:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <ExtractVariables name="EV-XML-Name" async="false" continueOnError="false" enabled="true">
        <JSONPayload>
          <Variable name="latitude" type="boolean">
              <JSONPath>$.latitude</JSONPath>
          </Variable>
        </JSONPayload>
        <Source clearPayload="false">response</Source>
    </ExtractVariables>
    
    
  3. Periksa jenis data dari nilai yang diekstrak. Data tersebut dapat berupa header, jalur URI, payload JSON/XML, parameter formulir, dan parameter kueri.

  4. Verifikasi apakah jenis data yang ditentukan di langkah #3 dan jenis data variabel yang menjadi tujuan data yang ditetapkan (ditentukan di langkah #2) sama.

  5. Jika jenis data variabel sumber dan tujuan tidak sama, itulah penyebab error.

    Pada contoh kebijakan Ekstrak Variabel yang ditampilkan di atas, pertimbangkan payload permintaan JSON sebagai berikut:

    {
     "latitude":36.2312
    }
    

    Jenis data nilai yang diekstrak dari <JSONPath>, '$.latitude', adalah Bilangan Bulat, yang ditetapkan ke variabel jenis data boolean.

    Karena jenis data dari nilai yang diekstrak dan jenis data variabel yang diberi nilai tidak sama, Anda akan menerima kode error: steps.extractvariables.UnableToCast.

Resolusi

Pastikan jenis data nilai yang diekstrak dan variabel tempat konten yang ditetapkan memiliki jenis yang sama.

Untuk memperbaiki contoh kebijakan Ekstrak Variabel, Anda harus mengubah jenis variabel menjadi Bilangan Bulat:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="EV-XML-Name" async="false" continueOnError="false" enabled="true">
    <JSONPayload>
        <Variable name="latitude" type="integer">
            <JSONPath>$.latitude</JSONPath>
        </Variable>
    </JSONPayload>
    <Source clearPayload="false">response</Source>
</ExtractVariables>

JsonPathParsingFailure

Kode error

steps.extractvariables.JsonPathParsingFailure

Isi respons error

{
    "fault": {
        "faultstring": "ExtractVariables [policy_name]: Json path parsing failed for for flow variables [variable_name]",
        "detail": {
            "errorcode": "steps.extractvariables.JsonPathParsingFailure"
        }
    }
}

Penyebab

Error ini terjadi saat kebijakan Ekstrak Variabel tidak dapat mengurai jalur JSON dan mengekstrak data dari variabel alur yang ditentukan dalam elemen <Source>. Biasanya hal ini terjadi jika variabel flow yang ditentukan dalam elemen <Source> tidak ada dalam flow saat ini.

Misalnya, error ini terjadi jika kebijakan Ekstrak Variabel dapat dieksekusi dalam alur respons dan diharapkan untuk mengurai jalur JSON, tetapi elemen <Source> menentukan variabel alur request.content, yang tidak ada dalam alur respons.

Diagnosis

  1. Identifikasi kebijakan Ekstrak Variabel tempat error terjadi dan nama variabel alur tempat data tidak dapat diekstrak. Anda dapat menemukan kedua item ini dalam elemen faultstring respons error. Misalnya, dalam faultstring berikut, nama kebijakan adalah ExtractVariables-1 dan variabelnya adalah request.content:

    "faultstring": "ExtractVariables ExtractJSONVariabes: Json path parsing failed for for flow variables request.content"

  2. Dalam XML kebijakan Ekstrak Variabel yang gagal, pastikan nama variabel yang ditetapkan dalam elemen <Source> cocok dengan nama variabel yang diidentifikasi dalam string kesalahan (langkah #1 di atas). Misalnya, kebijakan Ekstrak Variabel berikut menentukan variabel bernama request.content, yang cocok dengan yang ada di faultstring:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <ExtractVariables name="ExtractJSONVariables" async="false" continueOnError="false" enabled="true">
        <JSONPayload>
            <Variable name="Name" type="string">
                <JSONPath>$.args.name</JSONPath>
            </Variable>
        </JSONPayload>
        <Source clearPayload="false">request.content</Source>
    </ExtractVariables>
    
    
  3. Validasi apakah variabel flow yang digunakan dalam elemen <Source> ditentukan dan tersedia dalam alur tempat kebijakan Ekstrak Variabel dijalankan.

  4. Jika variabelnya:

    • di luar cakupan (tidak tersedia di alur tertentu tempat kebijakan dijalankan) atau
    • tidak dapat diselesaikan (tidak ditentukan)

    maka itulah penyebab {i>error<i}.

    Sebagai contoh, misalkan kebijakan ExtractVariables yang ditampilkan di atas seharusnya dijalankan dalam alur respons. Ingat kembali bahwa variabel flow request.content digunakan dalam elemen <Source> dalam kebijakan Ekstrak Variabel. Variabel alur request.content hanya tersedia dalam alur permintaan.

    Karena variabel response tidak ada dalam alur permintaan, Anda menerima kode error: steps.extractvariables.JsonPathParsingFailure.

Resolusi

Pastikan variabel flow yang digunakan dalam elemen <Source>kebijakan Variabel Ekstrak tersedia di alur tempat kebijakan Ekstrak Variabel dijalankan.

Misalnya, anggaplah sebuah variabel bernama response.content ada dalam alur respons dan sebenarnya berisi JSON yang ingin Anda ekstrak. Untuk memperbaiki kebijakan Ekstrak Variabel yang ditampilkan di atas, Anda dapat mengubah elemen <Source> sebagai berikut:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractJSONVariables" async="false" continueOnError="false" enabled="true">
    <JSONPayload>
        <Variable name="Name" type="string">
            <JSONPath>$.args.name</JSONPath>
        </Variable>
    </JSONPayload>
    <Source clearPayload="false">response.content</Source>
</ExtractVariables>