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 message ditentukan dalam kolom <Source> elemen kebijakan Ekstrak Variabel adalah:

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

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

Diagnosis

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

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

  2. Dalam XML kebijakan Extract Variables yang gagal, verifikasi bahwa nama variabel atur 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>ditentukan dan tersedia dalam alur tempat kebijakan Variabel Ekstrak dijalankan.

  4. Jika variabel adalah:

    • di luar cakupan (tidak tersedia dalam 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> dari kebijakan Ekstrak Variabel. Variabel response hanya tersedia dalam alur respons.

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

Resolusi

Pastikan variabel yang ditetapkan di elemen <Source> kebijakan Extract Variables yang gagal, ditentukan dan ada dalam alur tempat kebijakan dieksekusi.

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 dimulai dengan kata yang sama dalam format bertingkat yang dipisahkan dengan titik.

Misalnya, Anda membuat/menetapkan nilai ke variabel var.color. Dalam hal ini, color dialokasikan sebagai node objek. Selanjutnya, jika Anda mencoba menetapkan nilai ke variabel lain var.color.next, variabel akan gagal karena color sudah dialokasikan, dan tidak diizinkan untuk mengalokasikan variabel lain ke variabel tersebut.

Diagnosis

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

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

  2. Dalam XML kebijakan Extract Variables yang gagal, verifikasi bahwa nama variabel cocok dengan nama variabel yang diidentifikasi dalam string fault (langkah #1 di atas). Sebagai kebijakan berikut mencoba menetapkan nilai dari kueri permintaan ke variabel bernama var.color.next (nilai yang muncul string fault):

    <?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 dalam kebijakan Ekstrak Variabel yang gagal. Jika Anda telah menetapkan nilai ke variabel lain yang namanya dimulai dengan nama yang sama dengan nama variabel yang diidentifikasi dalam string fault (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 var.color.next lainnya. Jadi, Anda menerima kode error: steps.extractvariables.SetVariableFailed

Resolusi

Pastikan Anda tidak memiliki beberapa nama variabel yang namanya diawali dengan kata yang sama yang 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> kebijakan Ekstrak Variabel. Misalnya, jika {i>payload<i} JSON tidak memiliki objek Name, tetapi Anda menentukan Name sebagai jalur di Extract Variables , maka kesalahan ini akan terjadi.

Diagnosis

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

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

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

    <?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 cari tahu dari mana Anda mencoba mengekstrak variabel Payload JSON. Misalnya, jika elemen <Source> disetel ke request, kebijakan akan mengekstrak payload JSON dari objek permintaan. Jika kebijakan ini disetel ke response, maka akan menjadi objek respons.

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

    <Source>response</Source>

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

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

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

    Karena payload respons JSON tidak memiliki objek Name, kebijakan Ekstrak Variabel akan gagal dan Anda menerima kode error: steps.extractvariables.InvalidJSONPath.

Resolusi

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

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 salah format.

Penyebab: Payload input tidak ada

Jika kebijakan Extract Variables seharusnya mengekstrak variabel dari payload JSON atau XML, tetapi konten (payload) variabel yang ditentukan dalam elemen <Source> kosong, 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 tersebut kosong, error akan terjadi.

Diagnosis

  1. Identifikasi kebijakan Ekstrak Variabel tempat error terjadi. Anda dapat menemukan informasi ini dalam elemen {i>failstring <i}dari respons {i>error<i}. Misalnya, dalam faultstring berikut, nama kebijakannya 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 ditetapkan 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 inputnya kosong, maka itulah penyebab errornya.

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

    Karena payload respons XML kosong, Anda akan menerima kode error:

    steps.extractvariables.ExecutionFailed

    Error ini juga dapat terjadi jika elemen <Source> disetel ke request, tetapi tidak ada payload yang diteruskan di 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 Sesuaikan pemilihan rute akses.

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

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 Menyesuaikan pemilihan rute akses.

Penyebab: Input Tidak Valid atau Salah Format

Jika kebijakan Extract Variables mengurai input yang tidak valid atau salah format, Anda akan mendapatkan error ini.

Misalnya, jika JSON tidak valid berikut diberikan sebagai input ke kebijakan Extract Variables, Anda akan mendapatkan 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 kebijakannya adalah ExtractJSONVariables:

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

  2. Periksa elemen <Source> dalam XML Ekstrak Variabel yang gagal dan tentukan jenis input yang digunakan untuk mengekstrak variabel. 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 adalah valid. Jika input tidak valid atau formatnya salah, itulah yang menjadi penyebab error.

    Pada 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 penerusan permintaan:

    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 Sesuaikan pemilihan rute akses.

    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> ditetapkan ke response, tetapi payload respons JSON tidak valid atau salah format.

Resolusi

Pastikan input yang diteruskan ke kebijakan Ekstrak Variabel sudah 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 tipe data ke variabel jenis data lainnya.

Misalnya, jika kebijakan Ekstrak Variabel mencoba menetapkan nilai yang telah diekstrak dari variabel String ke variabel Bilangan Bulat, maka Anda akan melihat pesan {i>error<i} tersebut.

Diagnosis

  1. Identifikasi jenis data variabel yang terkena kebijakan Ekstrak Variabel mencoba melakukan transmisi dan gagal. Anda dapat menemukan informasi ini di faultstring dari 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 variabel jenis yang ditentukan di langkah #1.

    Misalnya, kebijakan Ekstrak Variabel berikut mengekstrak nilai dari JSONPath $.latitude ke variabel jenis boolean, yang cocok dengan dalam string fault:

    <?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 sedang diekstrak. Data tersebut mungkin dalam dalam bentuk {i>header<i}, jalur URI, {i>payload<i} JSON/XML, parameter formulir, dan parameter kueri.

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

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

    Dalam contoh kebijakan Ekstrak Variabel yang ditunjukkan di atas, pertimbangkan permintaan JSON payload adalah 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 nilai yang diekstrak dan jenis data variabel untuk yang nilai yang diberikan tidak sama, Anda akan menerima kode error: steps.extractvariables.UnableToCast.

Resolusi

Pastikan bahwa jenis data nilai yang diekstrak dan variabel yang menjadi target isi yang ditugaskan adalah 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 alur saat ini.

Misalnya, kesalahan ini terjadi jika kebijakan Ekstrak Variabel dijalankan di alur respons dan diharapkan menguraikan 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 yang data tidak dapat diekstrak. Anda dapat menemukan kedua item ini di elemen faultstring dari respons error. Misalnya, dalam faultstring berikut, nama kebijakannya 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 Extract Variables yang gagal, verifikasi bahwa nama yang ditetapkan dalam elemen <Source> cocok dengan nama variabel yang diidentifikasi dalam string fault (langkah #1 di atas). Misalnya, Mengekstrak Variabel berikut kebijakan menentukan variabel bernama request.content, yang cocok dengan apa 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 alur yang digunakan dalam elemen <Source> ditentukan dan tersedia dalam alur tempat kebijakan Ekstrak Variabel dijalankan.

  4. Jika variabel adalah:

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

    maka itulah penyebab {i>error<i}.

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

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

Resolusi

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

Misalnya, asumsikan bahwa variabel bernama response.content ada dalam alur respons dan sebenarnya berisi JSON yang ingin Anda ekstrak. Untuk memperbaiki Ekstrak Dengan kebijakan 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>