Criterio ExtractVariables

Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione Documentazione di Apigee X.
Informazioni

Cosa

Il criterio ExtractVariables estrae contenuti da una richiesta o risposta e imposta il valore di una variabile per quei contenuti. Puoi estrarre qualsiasi parte del messaggio, tra cui intestazioni, percorsi URI, payload JSON/XML, parametri e parametri di ricerca. Il criterio funziona applicando un pattern di testo al messaggio e, quando viene trovata una corrispondenza, imposta una variabile con il contenuto del messaggio specificato.

Anche se spesso utilizzi questo criterio per estrarre informazioni da un messaggio di richiesta o di risposta, puoi utilizzarlo anche per estrarre informazioni da altre fonti, comprese le entità create criteri di AccessEntity, oggetti XML o JSON.

Dopo aver estratto i contenuti specificati del messaggio, puoi fare riferimento alla variabile in altri nell'ambito dell'elaborazione di richieste e risposte.

Video

Guarda i seguenti video per scoprire di più sul criterio ExtractVariables.

Video Descrizione
Estrazione delle variabili dal payload XML Estrai variabili da un payload XML utilizzando il criterio Estrai variabile.
Estrazione delle variabili dal payload JSON Estrai variabili da un payload JSON utilizzando il criterio Estrai variabile.
Estrazione delle variabili da parametri Estrai variabili dai parametri, ad esempio parametri di query, intestazione, modulo o URI.
Estrazione delle variabili da parametri con più valori Estrai variabili da parametri multivalore.
Estrazione delle variabili dal parametro di query (Classic Edge) Estrai variabili da un parametro di query utilizzando l'interfaccia utente di Edge classico.
Estrazione delle variabili dal payload XML o JSON (Classic Edge) Estrai variabili da un payload XML o JSON utilizzando la UI di Edge Classic.

Esempi

Questi esempi di codice dei criteri illustrano come estrarre variabili dai seguenti tipi di artefatti:

GitHub

Questi link puntano a esempi di proxy API funzionanti di cui puoi eseguire il deployment ed eseguire su Edge. Loro utilizzano ExtractVariables e si trovano nel repository api-platform-samples di Apigee in GitHub. I file README spiegano come viene utilizzato ExtractVariables in ciascun caso e come eseguire il deployment per eseguire ciascun campione.

URI

<ExtractVariables name="ExtractVariables-1">
   <DisplayName>Extract a portion of the url path</DisplayName>
   <Source>request</Source>
   <URIPath>
      <Pattern ignoreCase="true">/accounts/{id}</Pattern>
   </URIPath>
   <VariablePrefix>urirequest</VariablePrefix>
   <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ExtractVariables>

Considera il codice campione del criterio riportato sopra. L'elemento <URIPath> indica Criterio ExtractVariables per estrarre informazioni dal percorso URI. La L'elemento <Pattern> specifica il pattern da applicare al percorso dell'URI. La viene trattato come un semplice modello, con le parentesi graffe che indicano la parte variabile del percorso dell'URI.

Il nome della variabile da impostare è determinato dal valore specificato nel <VariablePrefix>, nonché il valore racchiuso tra parentesi graffe {} nell'elemento <Pattern>. I due valori sono uniti da un punto intermedio, generando, ad esempio, il nome di variabile urirequest.id. In caso contrario, <VariablePrefix>, il nome della variabile è solo il valore racchiuse tra parentesi graffe.

Considera che il codice del criterio di esempio riportato sopra funziona con la seguente richiesta in entrata:

GET http://org1-test.apigee.net/svc1/accounts/12797282

Supponiamo che il percorso base per il proxy API sia /svc1. Quando Apigee Edge applica Il codice del criterio ExtractVariables riportato sopra per questa richiesta in entrata imposta la variabile Da urirequest.id a 12797282. Dopo che Apigee Edge ha eseguito il criterio, I criteri o il codice successivi nel flusso di elaborazione possono fare riferimento alla variabile denominata urirequest.id per ottenere il valore della stringa 12797282.

Ad esempio, il seguente criterioAssignMessage incorpora il valore di quella variabile nel campo payload di un nuovo messaggio di richiesta:

<AssignMessage async="false" continueOnError="false" enabled="true" name="AssignPayload">
 <DisplayName>AssignPayload</DisplayName>
  <Set>
   <Payload contentType="text/xml">
    <IdExtractedFromURI>{urirequest.id}</IdExtractedFromURI>
   </Payload>
  </Set>
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
  <AssignTo createNew="true" transport="http" type="request">newRequest</AssignTo>
</AssignMessage>

Parametri di query

<ExtractVariables name="ExtractVariables-2">
   <DisplayName>Extract a value from a query parameter</DisplayName>
   <Source>request</Source>
   <QueryParam name="code">
      <Pattern ignoreCase="true">DBN{dbncode}</Pattern>
   </QueryParam>
   <VariablePrefix>queryinfo</VariablePrefix>
   <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ExtractVariables>

Considera che il codice del criterio di esempio riportato sopra funziona con la seguente richiesta in entrata:

GET http://org1-test.apigee.net/accounts/12797282?code=DBN88271

Quando Apigee Edge applica il codice del criterio ExtractVariables riportato sopra a questa richiesta in entrata, imposta la variabile queryinfo.dbncode su 88271. Dopo Apigee Edge esegue il criterio, i criteri o il codice successivi nel flusso di elaborazione possono fare riferimento denominata queryinfo.dbncode per ottenere il valore della stringa 88271.

Ora puoi accedere alla variabile queryinfo.dbncode nel tuo proxy. Ad esempio, il seguente criterioAssignMessage lo copia nel payload della richiesta:

<AssignMessage async="false" continueOnError="false" enabled="true" name="GetURIPath">
 <DisplayName>GetQP</DisplayName>
  <Set>
   <Payload contentType="text/xml">
    <ExtractQP>{queryinfo.dbncode}</ExtractQP>
   </Payload>
  </Set>
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

Più parametri

<ExtractVariables name="ExtractVariables-2">
   <DisplayName>Extract a value from a query parameter</DisplayName>
   <Source>request</Source>
   <QueryParam name="w">
      <Pattern ignoreCase="true">{firstWeather}</Pattern>
   </QueryParam>
   <QueryParam name="w.2">
     <Pattern ignoreCase="true">{secondWeather}</Pattern>
   </QueryParam>
   <VariablePrefix>queryinfo</VariablePrefix>
 <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ExtractVariables>

Supponiamo che la progettazione dell'API consenta di specificare più parametri di ricerca con lo stesso nome. Puoi utilizzare questo criterio per estrarre il valore di più istanze della query parametro "w". Per fare riferimento a questi parametri di query nel criterio ExtractVariables, usano indici, dove la prima istanza del parametro di query non ha un indice, la seconda si trova indice 2, il terzo indice 3 e così via.

Considera che il codice del criterio di esempio riportato sopra funziona con la seguente richiesta in entrata:

GET http://org1-test.apigee.net/weather?w=Boston&w=Chicago

Quando Apigee Edge applica il codice del criterio ExtractVariables riportato sopra a questa richiesta in entrata, Imposta la variabile queryinfo.firstWeather su Boston e da queryInfo.secondWeather a Chicago.

Ora puoi accedere alla variabile queryinfo.firstWeather e queryinfo.secondWeather in il proxy. Ad esempio, il seguente criterioAssignMessage lo copia nel payload del servizio richiesta:

<AssignMessage async="false" continueOnError="false" enabled="true" name="GetURIPath">
 <DisplayName>GetQP</DisplayName>
  <Set>
   <Payload contentType="text/xml">
    <ExtractQP1>{queryinfo.firstWeather}</ExtractQP1>
    <ExtractQP2>{queryinfo.secondWeather}</ExtractQP2>
   </Payload>
  </Set>
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

Intestazioni

<ExtractVariables name='ExtractVariable-OauthToken'>
  <Source>request</Source>
  <Header name="Authorization">
    <Pattern ignoreCase="false">Bearer {oauthtoken}</Pattern>
  </Header>
  <VariablePrefix>clientrequest</VariablePrefix>
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ExtractVariables>

Supponiamo che l'API utilizzi token di connessione OAuth 2.0. Considera il codice del criterio di esempio riportato sopra lavora con una richiesta contenente un token OAuth v2.0 che include un'intestazione come la seguente: Authorization: Bearer TU08xptfFfeM7aS0xHqlxTgEAdAM.

In qualità di progettista dell'API, supponiamo di voler utilizzare il valore del token, ma non l'intero intestazione) come chiave in una ricerca cache. Puoi usare il codice del criterio ExtractVariables qui sopra per per estrarre il token.

Quando Apigee Edge applica il codice del criterio ExtractVariables riportato sopra a questa intestazione, imposta la variabile clientrequest.oauthtoken su TU08xptfFfeM7aS0xHqlxTgEAdAM.

Ora puoi accedere alla variabile clientrequest.oauthtoken nel tuo proxy. Ad esempio, il seguente criterioAssignMessage lo copia nel payload del servizio richiesta:

<AssignMessage async="false" continueOnError="false" enabled="true" name="GetURIPath">
 <DisplayName>GetHeader</DisplayName>
  <Set>
   <Payload contentType="text/xml">
    <ExtractHeader>{clientrequest.oauthtoken}</ExtractHeader>
   </Payload>
  </Set>
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

JSON

<ExtractVariables name="ExtractVariables-3">
   <Source>response</Source>
   <JSONPayload>
      <Variable name="latitude" type="float">
         <JSONPath>$.results[0].geometry.location.lat</JSONPath>
      </Variable>
      <Variable name="longitude" type="float">
         <JSONPath>$.results[0].geometry.location.lng</JSONPath>
      </Variable>
   </JSONPayload>
   <VariablePrefix>geocoderesponse</VariablePrefix>
</ExtractVariables>
<JSONPayload>$

Considera il seguente payload per la risposta JSON:

{
  "results": [{
    "geometry": {
      "location": {
        "lat": 37.42291810,
        "lng": -122.08542120
      },
      "location_type": "ROOFTOP",
      "viewport": {
        "northeast": {
          "lat": 37.42426708029149,
          "lng": -122.0840722197085
        },
        "southwest": {
          "lat": 37.42156911970850,
          "lng": -122.0867701802915
        }
      }
    }
  }]
}

Quando Apigee Edge applica il codice del criterio ExtractVariables riportato sopra a questo messaggio JSON, imposta due variabili: geocoderesponse.latitude e geocoderesponse.longitude. Entrambe le variabili utilizzano lo stesso prefisso di variabile geocoderesponse. Il suffisso per queste variabili è specificato esplicitamente dal Attributo name dell'elemento <Variable>.

La variabile geocoderesponse.latitude ottiene il valore 37.42291810. La variabile geocoderesponse.longitude ottiene il valore -122.08542120.

Ora puoi accedere alla variabile geocoderesponse.latitude nel tuo proxy. Ad esempio, il seguente criterioAssignMessage lo copia in un'intestazione denominata "latitude" nella risposta:

<AssignMessage async="false" continueOnError="false" enabled="true" name="GetURIPath">
  <DisplayName>GetJSONVar</DisplayName>
  <Add>
    <Headers>
      <Header name="latitude">{geocoderesponse.latitude}</Header>
    </Headers>
  </Add> 
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
  <AssignTo createNew="false" transport="http" type="response"/> 
</AssignMessage>

XML

<ExtractVariables name="ExtractVariables-4">
   <Source>response</Source>
   <XMLPayload>
      <Namespaces>
         <Namespace prefix="dir">urn:43BFF88D-D204-4427-B6BA-140AF393142F</Namespace>
      </Namespaces>
      <Variable name="travelmode" type="string">
         <XPath>/dir:Directions/dir:route/dir:leg/dir:step/@mode</XPath>
      </Variable>
      <Variable name="duration" type="string">
         <XPath>/dir:Directions/dir:route/dir:leg/dir:step/dir:duration/dir:value</XPath>
      </Variable>
      <Variable name="timeunit" type="string">
         <XPath>/dir:Directions/dir:route/dir:leg/dir:step/dir:duration/dir:text</XPath>
      </Variable>
   </XMLPayload>
   <VariablePrefix>directionsresponse</VariablePrefix>
</ExtractVariables>
<XMLPayload>

Considera il seguente payload di risposta XML:

<Directions xmlns="urn:43BFF88D-D204-4427-B6BA-140AF393142F">
   <status>OK</status>
   <route>
      <summary>I-40 W</summary>
      <leg>
         <step mode="DRIVING">
            <start_location>
               <lat>41.8507300</lat>
               <lng>-87.6512600</lng>
            </start_location>
            <end_location>
               <lat>41.8525800</lat>
               <lng>-87.6514100</lng>
            </end_location>
            <duration>
                <value>19</value>
                <text>minutes</text>
            </duration>
         </step>
      </leg>
   </route>
</Directions>

Quando Apigee Edge applica il codice del criterio ExtractVariables riportato sopra a questo messaggio XML, imposta tre variabili: directionsresponse.travelmode, directionsresponse.duration e directionsresponse.timeunit. Tutti utilizzano lo stesso prefisso di variabile directionsresponse. Il suffisso per queste variabili sono specificate esplicitamente dall'elemento <Variable> Attributo name.

La variabile directionsresponse.travelmode ottiene il valore DRIVING. La variabile directionsresponse.duration ottiene il valore 19. La variabile directionsresponse.timeunit ottiene il valore minutes.

Ora puoi accedere alla variabile directionresponse.travelmode in il proxy. Ad esempio, il seguente criterioAssignMessage lo copia in un'intestazione denominata "modalità tmode" nella risposta:

<AssignMessage async="false" continueOnError="false" enabled="true" name="GetURIPath">
  <DisplayName>GetXMLVar</DisplayName>
  <Add>
    <Headers>
      <Header name="tmode">{directionsresponse.travelmode}</Header>
    </Headers>
  </Add>
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

Informazioni sul criterio ExtractVariables

Gli sviluppatori di API creano proxy API che si comportano diversamente in base ai contenuti dei messaggi. come intestazioni, percorsi URI, payload e parametri di ricerca. Spesso, il proxy estrae alcune di questi contenuti per l'utilizzo in un'istruzione di condizione. Per farlo, utilizza il criterio ExtractVariables. questo.

Quando definisci il criterio ExtractVariables, puoi scegliere:

  • Nomi delle variabili da impostare
  • Origine delle variabili
  • Numero di variabili da estrarre e impostare

Una volta eseguita, la norma applica un pattern di testo ai contenuti e, quando viene trovata una corrispondenza, imposta il valore della variabile designata con i contenuti. Altri criteri e codice possono quindi consumare per abilitare il comportamento dinamico o inviare dati aziendali all'analisi API Edge.

Per informazioni su come utilizzare ExtractVariables per creare report di Analytics basati sui contenuti, consulta Analisi Contenuti dei messaggi delle API mediante analisi personalizzate.

Ambito

Le variabili impostate con il criterio ExtractVariables hanno un ambito globale. Cioè, dopo che Il criterio ExtractVariables definisce una nuova variabile, puoi accedervi da qualsiasi criterio o in qualsiasi fase del flusso (che viene eseguita dopo il criterio ExtractVariables). Questo include:

  • PreFlow: ProxyEndpoint e TargetEndpoint (richiesta e risposta)
  • PostFlow: ProxyEndpoint e TargetEndpoint (richiesta e risposta)
  • PostClientFlow: ProxyEndpoint (solo risposta, utilizzando criterio di logging dei messaggi)
  • Flussi di errori
di Gemini Advanced.

Informazioni sulla corrispondenza e sulla creazione di variabili

Il criterio ExtractVariables estrae informazioni da una richiesta o risposta e scrive che a una variabile. Per ogni tipo di informazione che si può estrarre, come il percorso URI dati XML, devi specificare il pattern da abbinare e il nome della variabile utilizzata per contenere le informazioni estratte.

Tuttavia, il funzionamento della corrispondenza dei pattern dipende dall'origine dell'estrazione. Le seguenti descrivono le due categorie base di informazioni che è possibile estrarre.

Percorsi degli URI, parametri di ricerca, intestazioni, parametri del modulo e variabili corrispondenti

Quando si estrae informazioni da un percorso URI, parametri di ricerca, le intestazioni, i parametri del modulo variabili che utilizzi il tag &lt;Pattern&gt; per specificare una o più pattern corrispondenti. Il seguente criterio di esempio mostra un singolo pattern di corrispondenza per il percorso dell'URI:

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

In questo esempio, la variabile urirequest.pathSeg è impostata a qualsiasi elemento visualizzato nel proxy.pathsuffix dopo "/a/". Ad esempio, supponiamo che il percorso di base il proxy API è /basepath/v1 . Con una richiesta in entrata alla pagina http://myCo.com/basepath/v1/a/b il sia impostata su "b".

Specificare più pattern

Puoi specificare più pattern da abbinare, corrispondenti ai tag &lt;Pattern&gt;, dove:

  • Tutti i pattern vengono testati per rilevare la corrispondenza.
  • Se nessuno dei pattern corrisponde, il criterio non fa nulla e la variabile o le variabili non è stato creato.
  • Se più pattern corrispondono, quello con i segmenti di percorso più lunghi viene utilizzato l'estrazione dei contenuti.
  • Se due pattern corrispondenti hanno gli stessi segmenti di percorso più lunghi, il pattern specificato per primo in il criterio viene usato per l'estrazione.

Nel prossimo esempio creerai un criterio che contiene tre pattern corrispondenti per l'URI percorso:

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

Supponi, per un proxy API con percorso base /basepath/v1 , che l'URL della richiesta in entrata al proxy API ha il seguente formato:

http://myCo.com/basepath/v1/a/b

In questo esempio, il primo pattern corrisponde all'URI e la variabile urirequest.pathSeg è impostato su "b".

Se l'URL della richiesta è:

http://myCo.com/basepath/v1/a/b/c/d

...il terzo pattern corrisponde e la variabile urirequest.pathSeg è impostato su "d".

Specificare i pattern con più variabili

Puoi specificare più variabili nel pattern corrispondente. Ad esempio, specifichi un pattern corrispondente con due variabili:

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

Supponendo di nuovo un proxy API con un percorso di base /basepath/v1 per la richiesta in entrata URL:

http://myCo.com/basepath/v1/a/b/c/d

...la variabile urirequest.pathSeg1 è imposta su "b" e la variabile urirequest.pathSeg2 è impostato su "d".

Corrispondenza di più istanze nel pattern

Puoi anche far corrispondere i pattern quando sono presenti più istanze di un elemento con lo stesso nome. Ad esempio, puoi effettuare una richiesta contenente più parametri di ricerca o più intestazioni con lo stesso nome. La seguente richiesta contiene due parametri di ricerca denominati "w":

http://myCo.com/basepath/v1/a/b/c/d?w=1&w=2

Per fare riferimento a questi parametri di query nel criterio ExtractVariables, puoi usare gli indici, dove la prima istanza del parametro di query non ha un indice, la seconda si trova all'indice 2, la terza all'indice indice 3 e così via. Ad esempio, il seguente criterio estrae il valore del secondo parametro di query denominato "w" nella richiesta:

<ExtractVariables name="ExtractVariables-1">
   <Source>request</Source>
   <QueryParam name="w.2">
      <Pattern ignoreCase="true">{secondW}</Pattern>
   </QueryParam>
   <VariablePrefix>urirequest</VariablePrefix>
   <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ExtractVariables>

La variabile urirequest.secondW è impostato su "2". Se il secondo parametro di query viene omesso dalla richiesta, la variabile urirequest.secondW è vuoto. Utilizza l'indicizzazione ogni volta che nella richiesta sono presenti più elementi con lo stesso nome.

Utilizzo di caratteri speciali nel pattern

Quando cerchi corrispondenze per i percorsi URI, puoi utilizzare il carattere "*" e "**" caratteri jolly nel pattern, dove:

  • "*" corrisponde a qualsiasi segmento del percorso
  • "**" corrisponde a più segmenti del percorso

Ad esempio, specifichi i pattern per l'elemento &lt;URIPath&gt; come illustrato sotto:

<URIPath>
  <Pattern ignoreCase="true">/a/*/{id}</Pattern>
  <Pattern ignoreCase="true">/a/**/{id}</Pattern>
</URIPath>

Il primo pattern associa le richieste ai pathuffix (la parte del percorso dell'URI che segue basepath) come "/a/b/c", "/a/foo/bar" e così via. Il secondo pattern corrisponde a un numero qualsiasi di percorsi segmenti dopo "/a/", ad esempio "/a/foo/bar/baz/c", nonché "/a/b/c" e "/a/foo/bar".

Quando specifichi i pattern per parametri di ricerca, le intestazioni e i parametri del modulo, il carattere "*" che deve corrispondere a un qualsiasi numero di caratteri. Ad esempio, quando cerchi una corrispondenza per un'intestazione, specifica come:

*;charset={encoding}

Questo pattern corrisponde ai valori "text/xml;charset=UTF-16" e "application/xml;charset=ASCII".

Se il valore passato al criterio ExtractVariables contiene un carattere speciale, come "{", utilizza "%" come carattere di escape. L'esempio seguente esegue il escape in "{" e "}" caratteri nel pattern perché vengono usati come caratteri letterali nel valore della query :

<QueryParam>
  <Pattern ignoreCase="true">%{user%} {name}</Pattern>
</QueryParam>

In questo esempio, il pattern corrisponde al valore "{user}" Steve" ma non il valore "utente Stefano".

JSON e XML corrispondenti

Quando estrai i dati da JSON e XML, specifichi uno o più tag &lt;Variable&gt; nel criterio. Il tag &lt;Variable&gt; specifica la nome della variabile di destinazione in cui sono archiviate le informazioni estratte e JsonPath (JSON) o XPATH (XML) alle informazioni estratte.

Tutti i tag &lt;Variable&gt; nel criterio. vengono valutati, in modo da poter completare più variabili da un unico criterio. Se Il tag &lt;Variable&gt; non restituisce un campo valido nel file JSON o XML, la variabile corrispondente non è stato creato.

L'esempio seguente mostra un criterio ExtractVariables che compila due variabili dalla Corpo JSON di una risposta:

<ExtractVariables name="ExtractVariables-3">
   <Source>response</Source>
   <JSONPayload>
      <Variable name="latitude" type="float">
         <JSONPath>$.results[0].geometry.location.lat</JSONPath>
      </Variable>
      <Variable name="longitude" type="float">
         <JSONPath>$.results[0].geometry.location.lng</JSONPath>
      </Variable>
   </JSONPayload>
   <VariablePrefix>geocoderesponse</VariablePrefix>
</ExtractVariables>

Scrivendo al stessa variabile in più posizioni

Fai attenzione quando scegli i nomi delle variabili da impostare. Il criterio viene eseguito in sequenza da dal primo pattern di estrazione all'ultimo. Se il criterio scrive un valore nella stessa variabile da più posizioni, l'ultima scrittura nel criterio determina il valore della variabile. (Potrebbe trattarsi ovvero ciò che vuoi.

Ad esempio, vuoi estrarre un valore del token che può essere passato in un parametro di query o in un'intestazione, come mostrato di seguito:

<!-- If token only in query param, the query param determines the value. 
     If token is found in both the query param and header, header sets value. -->
<QueryParam name="token">
  <Pattern ignoreCase="true">{tokenValue}</Pattern>
</QueryParam>
 
<!-- Overwrite tokenValue even if it was found in query parameter. -->
<Header name="Token">
  <Pattern ignoreCase="true">{tokenValue}</Pattern>
</Header>

Controllo di ciò che accade in assenza di corrispondenze

Se il pattern non corrisponde, la variabile corrispondente non viene creata. Pertanto, se un altro criterio fa riferimento alla variabile, questo può causare un errore.

Un'opzione è impostare <IgnoreUnresolvedVariables> su true in un criterio che fa riferimento alla variabile per configurare il criterio da trattare qualsiasi variabile non risolvibile come stringa vuota (null):

<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>

Riferimento elemento

Il riferimento all'elemento descrive gli elementi e gli attributi di ExtractVariables .

<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
   <DisplayName>Extract Variables 1</DisplayName>
   <Source clearPayload="true|false">request</Source>
   <VariablePrefix>myprefix</VariablePrefix>
   <IgnoreUnresolvedVariables>true|false</IgnoreUnresolvedVariables>
   <URIPath>
      <Pattern ignoreCase="false">/accounts/{id}</Pattern>
   </URIPath>
   <QueryParam name="code">
      <Pattern ignoreCase="true">DBN{dbncode}</Pattern>
   </QueryParam>
   <Header name="Authorization">
      <Pattern ignoreCase="false">Bearer {oauthtoken}</Pattern>
   </Header>
   <FormParam name="greeting">
      <Pattern>hello {user}</Pattern>
   </FormParam>
   <Variable name="request.content">
       <Pattern>hello {user}</Pattern>
   </Variable>
   <JSONPayload>
      <Variable name="name">
         <JSONPath>{example}</JSONPath>
      </Variable>
   </JSONPayload>
   <XMLPayload stopPayloadProcessing="false">
      <Namespaces/>
      <Variable name="name" type="boolean">
         <XPath>/test/example</XPath>
      </Variable>
   </XMLPayload>
</ExtractVariables>

&lt;ExtractVariables&gt; attributi

<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">

La tabella seguente descrive gli attributi comuni a tutti gli elementi principali del criterio:

Attributo Descrizione Predefinito Presenza
name

Il nome interno del criterio. Il valore dell'attributo name può Deve contenere lettere, numeri, spazi, trattini, trattini bassi e punti. Questo valore non può superare i 255 caratteri.

Se vuoi, puoi utilizzare l'elemento <DisplayName> per etichettare il criterio in l'editor proxy della UI di gestione con un nome diverso in linguaggio naturale.

N/D Obbligatorio
continueOnError

Imposta il valore su false per restituire un errore quando un criterio non viene eseguito. Si tratta di un comportamento previsto per la maggior parte dei criteri.

Imposta su true per fare in modo che l'esecuzione del flusso continui anche dopo un criterio non riesce.

falso Facoltativo
enabled

Imposta il valore su true per applicare il criterio.

Imposta false per disattivare il criterio. Il criterio non verrà applicata anche se rimane collegata a un flusso.

true Facoltativo
async

Questo attributo è obsoleto.

falso Deprecato

&lt;DisplayName&gt; elemento

Da utilizzare in aggiunta all'attributo name per etichettare il criterio in editor proxy della UI di gestione con un nome diverso e in linguaggio naturale.

<DisplayName>Policy Display Name</DisplayName>
Predefinito

N/D

Se ometti questo elemento, il valore dell'attributo name del criterio è in uso.

Presenza Facoltativo
Tipo Stringa

&lt;Source&gt; elemento

(Facoltativo) Specifica la variabile da analizzare. Il valore di Il valore predefinito di <Source> è message. Il valore message è sensibile al contesto. In un flusso di richiesta, message si risolve nel messaggio di richiesta. Nella un flusso di risposta, message si risolve nel messaggio di risposta.

Anche se spesso utilizzi questo criterio per estrarre informazioni da un messaggio di richiesta o di risposta, puoi utilizzarlo per estrarre informazioni da qualsiasi variabile. Ad esempio, puoi usarlo per estrarre informazioni di un'entità creata dal criterio AccessEntity, dai dati restituito dal servizio criterio callout o estrarre informazioni da un oggetto XML o JSON.

Se non è possibile risolvere <Source> o se viene risolto in un tipo non messaggio, il criterio non risponderà.

<Source clearPayload="true|false">request</Source>
Predefinita: messaggio
Presenza: Facoltativo
Tipo: Stringa

Attributi

Attributo Descrizione Predefinito Presenza Tipo
clearPayload

Impostalo su true se vuoi cancellare il payload specificato in &lt;Source&gt; dopo aver estratto i dati.

Utilizza l'opzione <clearPayload> solo se il messaggio di origine non è richiesta dopo l'esecuzione di ExtractVariables. L'impostazione su true libera la memoria utilizzata dal messaggio.

falso

Facoltativo Booleano

&lt;VariablePrefix&gt; elemento

(Facoltativo) Il nome completo della variabile viene creato unendo il valore <VariablePrefix>, un punto e il nome che definisci tra {parentesi graffe} in Elemento <Pattern> o elemento &lt;Variable&gt;. Ad esempio: myprefix.id, myprefix.dbncode o myprefix.oauthtoken.

<VariablePrefix>myprefix</VariablePrefix>

Ad esempio, supponiamo che il valore del nome sia "utente".

  • Se <VariablePrefix> non viene specificato, i valori estratti vengono assegnato a una variabile denominata user.
  • Se <VariablePrefix> viene specificato come mioprefisso, il valore estratto I valori sono assegnati a una variabile denominata myprefix.user.
Predefinita: N/D
Presenza: Facoltativo
Tipo: Stringa

&lt;IgnoreUnresolvedVariables&gt; elemento

(Facoltativo) Imposta su true per trattare qualsiasi variabile non risolvibile come stringa vuota (nullo). Imposta su false se vuoi che il criterio generi un errore quando viene fatto riferimento non è risolvibile.

<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
Predefinita: Falso
Presenza: Facoltativo
Tipo: Booleano

Se un riferimento XPath non è risolto in un <XMLPayload>, il criterio genera il seguente errore:

{
   "fault":{
      "faultstring":"Unresolved xpath path in policy policy_name.",
      "detail":{
         "errorcode":"steps.extractvariables.InvalidXPath"
      }
   }
}

&lt;URIPath&gt; elemento

(Facoltativo, ma per saperne di più consulta la riga Presenza nella tabella seguente). Estrae un valore dal proxy.pathsuffix di un messaggio di origine request. Il percorso applicato a il pattern è proxy.pathsuffix, che non include il basepath per il proxy API. Se il messaggio di origine si risolve in un tipo di messaggio response, questo elemento non produce alcun effetto.

<URIPath>
   <Pattern ignoreCase="false">/accounts/{id}</Pattern>
</URIPath>

È possibile utilizzare più elementi &lt;Pattern&gt;:

<URIPath>
   <Pattern ignoreCase="false">/accounts/{id}</Pattern>
   <Pattern ignoreCase="false">/accounts/{id}/transactions/{index}</Pattern>
</URIPath>
Predefinita: N/D
Presenza: (Facoltativo) Tuttavia, devi includere almeno uno dei seguenti elementi: <URIPath>, <QueryParam>, <Header> <FormParam>, <JSONPayload> o <XMLPayload>.
Tipo: N/D

Attributi

Attributo Descrizione Predefinito Presenza Tipo
ignoreCase Specifica di ignorare le maiuscole e le minuscole quando corrisponde alla descrizione.

falso

Facoltativo Booleano

&lt;QueryParam&gt; elemento

(Facoltativo, ma per saperne di più consulta la riga Presenza nella tabella seguente). Estrae un valore dal parametro di query specificato di un messaggio di origine request. Se il messaggio di origine si risolve in un tipo di messaggio response, questo elemento niente.

<QueryParam name="code">
   <Pattern ignoreCase="true">DBN{dbncode}</Pattern>
</QueryParam>

Se più parametri di ricerca hanno lo stesso nome, utilizza gli indici per fare riferimento ai parametri:

<QueryParam name="w.2">
   <Pattern ignoreCase="true">{secondW}</Pattern>
</QueryParam>
Predefinita: N/D
Presenza: (Facoltativo) Tuttavia, devi includere almeno uno dei seguenti elementi: <URIPath>, <QueryParam>, <Header> <FormParam>, <JSONPayload> o <XMLPayload>.
Tipo: N/D

Attributi

Attributo Descrizione Predefinito Presenza Tipo
nome Specifica il nome del parametro di query. Se più parametri di ricerca hanno lo stesso nome, usa i riferimenti indicizzati, in cui la prima istanza del parametro di query non ha un indice, il secondo è all'indice 2, il terzo all'indice 3, ecc.

N/D

Obbligatorio Stringa

&lt;Header&gt; elemento

(Facoltativo, ma per saperne di più consulta la riga Presenza nella tabella seguente). Estrae un valore dall'intestazione HTTP specificata del messaggio request o response specificato. Se più intestazioni contengono con lo stesso nome, i relativi valori sono archiviati in un array.

<!-- The name is the actual header name. -->
<Header name="Authorization">
<!-- Provide a name for your new custom variable here. -->
   <Pattern ignoreCase="false">Bearer {oauthtoken}</Pattern>
</Header>

Se più intestazioni hanno lo stesso nome, utilizza gli indici per fare riferimento alle singole intestazioni nella array:

<Header name="myHeader.2">
   <Pattern ignoreCase="true">{secondHeader}</Pattern>
</Header>

o di seguito per elencare tutte le intestazioni nell'array:

<Header name="myHeader.values">
   <Pattern ignoreCase="true">{myHeaders}</Pattern>
</Header>
Predefinita: N/D
Presenza: (Facoltativo) Tuttavia, devi includere almeno uno dei seguenti elementi: <URIPath>, <QueryParam>, <Header> <FormParam>, <JSONPayload> o <XMLPayload>.
Tipo: N/D

Attributi

Attributo Descrizione Predefinito Presenza Tipo
nome Specifica il nome dell'intestazione da cui estrai il valore. Se più hanno lo stesso nome, usa riferimenti indicizzati, in cui la prima istanza intestazione non ha un indice, la seconda è all'indice 2, la terza all'indice 3 e così via. .values per ottenere tutte le intestazioni nell'array.

N/D

Obbligatorio Stringa

&lt;FormParam&gt; elemento

(Facoltativo, ma per saperne di più consulta la riga Presenza nella tabella seguente). Estrae un valore dal parametro di modulo specificato del messaggio request o response specificato. Parametri modulo può essere estratta solo quando l'intestazione Content-Type del messaggio specificato è application/x-www-form-urlencoded.

<FormParam name="greeting">
    <Pattern>hello {user}</Pattern>
</FormParam>
Predefinita: N/D
Presenza: (Facoltativo) Tuttavia, devi includere almeno uno dei seguenti elementi: <URIPath>, <QueryParam>, <Header> <FormParam>, <JSONPayload> o <XMLPayload>.
Tipo: N/D

Attributi

Attributo Descrizione Predefinito Presenza Tipo
nome Il nome del parametro del modulo da cui estrai il valore.

N/D

Obbligatorio Stringa

&lt;Variable&gt; elemento

(Facoltativo, ma per saperne di più consulta la riga Presenza nella tabella seguente). Specifica il parametro il nome di una variabile da cui estrarre un valore.

<Variable name="myVar">
    <Pattern>hello {user}</Pattern>
</Variable>

Per estrarre due valori dalla variabile:

<Variable name="myVar">
   <Pattern>hello {firstName} {lastName}</Pattern>
</Variable>
Predefinita: N/D
Presenza: (Facoltativo) Tuttavia, devi includere almeno uno dei seguenti elementi: <URIPath>, <QueryParam>, <Header> <FormParam>, <JSONPayload> o <XMLPayload>.
Tipo: N/D

Attributi

Attributo Descrizione Predefinito Presenza Tipo
nome Il nome della variabile da cui estrarre il valore.

N/D

Obbligatorio Stringa

&lt;JSONPayload&gt; elemento

(Facoltativo, ma per saperne di più consulta la riga Presenza nella tabella seguente). Specifica il parametro Messaggio in formato JSON da cui verrà estratto il valore della variabile. JSON viene eseguita solo quando l'intestazione Content-Type del messaggio è application/json.

<JSONPayload>
   <Variable name="name" type="string">
      <JSONPath>{example}</JSONPath>
   </Variable>
</JSONPayload>
Predefinita: N/D
Presenza: (Facoltativo) Tuttavia, devi includere almeno uno dei seguenti elementi: <URIPath>, <QueryParam>, <Header> <FormParam>, <JSONPayload> o <XMLPayload>.
Tipo: N/D

&lt;JSONPayload&gt;/&lt;Variable&gt; elemento

(Obbligatorio all'interno dell'elemento JSONPayload). Specifica la variabile in cui il valore estratto è assegnati. Puoi includere più tag &lt;Variable&gt; nell'elemento &lt;Variable&gt; da compilare più variabili.

<Variable name="name" type="string">
   <JSONPath>{example}</JSONPath>
</Variable>
Predefinita: N/D
Presenza: Obbligatorio all'interno dell'elemento JSONPayload.
Tipo: N/D

Attributi

Attributo Descrizione Predefinito Presenza Tipo
nome

Specifica il nome della variabile in cui verrà estratto il valore assegnati.

nome

Obbligatorio Stringa
tipo Specifica il tipo di dati del valore della variabile. N/D Facoltativo

Stringa. Seleziona una delle seguenti opzioni:

  • stringa
  • booleano
  • integer
  • Lungo
  • numero in virgola mobile
  • double
  • nodeset (restituisce un frammento JSON)

&lt;JSONPayload&gt;/&lt;Variable&gt;/&lt;JSONPath&gt; elemento

(Obbligatorio all'interno dell'elemento JSONPayload:Variable.) Specifica il percorso JSON utilizzato per estrarre un da un messaggio in formato JSON.

<Variable name="name">
   <JSONPath>$.rss.channel.title</JSONPath>
</Variable>
Predefinita: N/D
Presenza: Obbligatorio
Tipo: Stringa

&lt;XMLPayload&gt; elemento

(Facoltativo, ma per saperne di più consulta la riga Presenza nella tabella seguente). Specifica il parametro Messaggio in formato XML da cui verrà estratto il valore della variabile. Payload XML vengono estratte solo quando l'intestazione Content-Type del messaggio è text/xml, application/xml, o application/*+xml.

<XMLPayload stopPayloadProcessing="false">
  <Namespaces>
     <Namespace prefix="apigee">http://www.apigee.com</Namespace>
     <Namespace prefix="gmail">http://mail.google.com</Namespace>
  </Namespaces>
  <Variable name="name" type="boolean">
     <XPath>/apigee:test/apigee:example</XPath>
  </Variable>
</XMLPayload>
Predefinita: N/D
Presenza: (Facoltativo) Tuttavia, devi includere almeno uno dei seguenti elementi: <URIPath>, <QueryParam>, <Header> <FormParam>, <JSONPayload> o <XMLPayload>.
Tipo: N/D

Attributi

Attributo Descrizione Predefinito Presenza Tipo
stopPayloadProcessing

Imposta su true per interrompere la valutazione XPath dopo che è stata compilata una variabile. Ciò significa che il criterio compila una sola variabile.

falso

Facoltativo Booleano

&lt;XMLPayload&gt;/&lt;Namespaces&gt; elemento

(Facoltativo) Specifica lo spazio dei nomi da utilizzare nella valutazione di XPath. Se utilizzi nelle tue espressioni XPath, devi dichiarare gli spazi dei nomi qui, come mostrato dall'esempio seguente.

<XMLPayload stopPayloadProcessing="false">
  <Namespaces>
     <Namespace prefix="apigee">http://www.apigee.com</Namespace>
     <Namespace prefix="gmail">http://mail.google.com</Namespace>
  </Namespaces>
  <Variable name="legName" type="string">
    <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
  </Variable>
</XMLPayload>

Se non utilizzi gli spazi dei nomi nelle espressioni XPath, puoi omettere o commentare il <Namespaces>, come mostrato nell'esempio seguente:

<XMLPayload stopPayloadProcessing="false">
  <!-- <Namespaces/> -->
  <Variable name="legName" type="string">
    <XPath>/Directions/route/leg/name</XPath>
  </Variable>
</XMLPayload>
Predefinita: N/D
Presenza: Facoltativo
Tipo: Stringa

Attributi

Attributo Descrizione Predefinito Presenza Tipo
prefix

Il prefisso dello spazio dei nomi.

N/D

Obbligatorio Stringa

&lt;XMLPayload&gt;/&lt;Variable&gt; elemento

(Facoltativo) Specifica la variabile a cui verrà assegnato il valore estratto.

<Variable name="name" type="boolean">
   <XPath>/test/example</XPath>
</Variable>
Predefinita: N/D
Presenza: Facoltativo
Tipo: N/D

Attributi

Attributo Descrizione Predefinito Presenza Tipo
nome

Specifica il nome della variabile in cui verrà estratto il valore assegnati.

nome

Obbligatorio Stringa
tipo Specifica il tipo di dati del valore della variabile. Booleano Facoltativo

Stringa. Seleziona una delle seguenti opzioni:

  • stringa
  • booleano
  • integer
  • Lungo
  • numero in virgola mobile
  • double
  • nodeset (restituisce un frammento XML)

&lt;XMLPayload&gt;/&lt;Variable&gt;/&lt;XPath&gt; elemento

(Obbligatorio all'interno dell'elemento XMLPayload:Variable.) Specifica l'XPath definito per . Sono supportate solo espressioni XPath 1.0.

<Variable name="name" type="boolean">
   <XPath>/test/example</XPath>
</Variable>

Esempio con uno spazio dei nomi. Se utilizzi gli spazi dei nomi nelle espressioni XPath, devi dichiarare gli spazi dei nomi nella sezione <XMLPayload><Namespaces> delle norme.

<Variable name="name" type="boolean">
   <XPath>/foo:test/foo:example</XPath>
</Variable>
Predefinita: N/D
Presenza: Obbligatorio
Tipo: Stringa

Messaggi di errore

Questa sezione descrive i codici e i messaggi di errore restituiti, nonché le variabili di errore impostate da Edge quando questo criterio attiva un errore. È importante sapere se stai sviluppando regole di errore per per gestire gli errori. Per saperne di più, consulta Cosa devi sapere sugli errori relativi ai criteri e sulla gestione di errore.

Errori di runtime

Questi errori possono verificarsi quando il criterio viene eseguito.

Codice di errore Stato HTTP Causa Correggi
steps.extractvariables.ExecutionFailed 500

Questo errore si verifica quando:

  • Il payload di input (JSON, XML) è vuoto.
  • L'input (JSON, XML e così via) trasmesso al criterio non è valido o è in un formato non corretto.
steps.extractvariables.ImmutableVariable 500 Una variabile utilizzata nel criterio è immutabile. Il criterio non è stato in grado di impostare questa impostazione .
steps.extractvariables.InvalidJSONPath 500 Questo errore si verifica se viene utilizzato un percorso JSON non valido nell'elemento JSONPath della . Ad esempio, se un payload JSON non include l'oggetto Name, ma specifichi Name come percorso nel criterio, si verifica questo errore.
steps.extractvariables.JsonPathParsingFailure 500 Questo errore si verifica quando il criterio non è in grado di analizzare un percorso JSON e Estrai i dati dalla variabile di flusso specificata nell'elemento Source. In genere questo si verifica se la variabile di flusso specificata nell'elemento Source non esiste nell'elemento attuale flusso di lavoro.
steps.extractvariables.SetVariableFailed 500 Questo errore si verifica se il criterio non può impostare il valore su una variabile. In genere l'errore si verifica quando tenti di assegnare valori a più variabili i cui nomi iniziano con le stesse parole in un formato nidificato separato da punti.
steps.extractvariables.SourceMessageNotAvailable 500 Questo errore si verifica se il messaggio specificata nell'elemento Source del criterio è:
  • Fuori ambito (non disponibile nel flusso specifico in cui viene eseguito il criterio) o
  • Impossibile risolvere (non è definito)
steps.extractvariables.UnableToCast 500 Questo errore si verifica se il criterio non è riuscito a trasmettere i contenuti estratti a una variabile. In genere ciò si verifica se tenti di impostare il valore da un tipo di dati a una variabile di un altro tipo.

Errori di deployment

Questi errori possono verificarsi quando esegui il deployment di un proxy contenente questo criterio.

Nome errore Causa Correggi
NothingToExtract Se il criterio non include gli elementi URIPath, QueryParam, Header, FormParam, XMLPayload o JSONPayload, la distribuzione del proxy API ha esito negativo perché non c'è nulla da estrarre.
NONEmptyPrefixMappedToEmptyURI Questo errore si verifica se il criterio ha un prefisso definito nel L'elemento Namespace sotto l'elemento XMLPayload, ma nessun URI è definito.
DuplicatePrefix Questo errore si verifica se il criterio ha lo stesso prefisso definito più di una volta nell'elemento Namespace sotto l'elemento XMLPayload.
NoXPathsToEvaluate Se il criterio non include l'elemento XPath all'interno della sezione XMLPayload, il deployment del proxy API non va a buon fine e restituisce questo errore.
EmptyXPathExpression Se il criterio ha un'espressione XPath vuota all'interno di XMLPayload , il deployment del proxy API non va a buon fine.
NoJSONPathsToEvaluate Se il criterio non include l'elemento JSONPath all'interno della sezione JSONPayload, il deployment del proxy API non va a buon fine e restituisce questo errore.
EmptyJSONPathExpression Se il criterio ha un'espressione XPath vuota all'interno della sezione XMLPayload, il deployment del proxy API non va a buon fine.
MissingName Se il criterio non ha l'attributo name in nessuno dei criteri elementi come QueryParam, Header, FormParam o Variable, dove richiesto, il deployment del proxy API non va a buon fine.
PatternWithoutVariable Se il criterio non ha una variabile specificata all'interno dell'elemento Pattern, il deployment del proxy API non va a buon fine. L'elemento Pattern richiede il nome di la variabile in cui verranno archiviati i dati estratti.
CannotBeConvertedToNodeset Se il criterio ha un'espressione XPath in cui il tipo Variable è definito come nodeset, ma l'espressione non può essere convertita in set di nodi, il deployment del proxy API non va a buon fine.
JSONPathCompilationFailed Il criterio non può compilare un percorso JSON specificato.
InstantiationFailed Impossibile creare un'istanza del criterio.
XPathCompilationFailed Se il prefisso o il valore utilizzato nell'elemento XPath non fa parte di nessuno degli gli spazi dei nomi dichiarati nel criterio, il deployment del proxy API non riesce.
InvalidPattern Se la definizione dell'elemento Pattern non è valida in uno qualsiasi degli elementi come URIPath, QueryParam, Header, FormParam e XMLPayload o JSONPayload all'interno del criterio, il deployment Il proxy API non funziona.

Variabili di errore

Queste variabili vengono impostate quando il criterio attiva un errore in fase di runtime. Per ulteriori informazioni, consulta Cosa che devi conoscere sugli errori relativi alle norme.

Variabili Dove Esempio
fault.name="fault_name" fault_name è il nome dell'errore, come elencato nella precedente tabella Errori di runtime. Il nome dell'errore è l'ultima parte del codice di errore. fault.name = "SourceMessageNotAvailable"
extractvariables.policy_name.failed policy_name è il nome specificato dall'utente del criterio che ha generato l'errore. extractvariables.EV-ParseJsonResponse.failed = true

Esempio di risposta di errore

{
   "fault":{
      "detail":{
         "errorcode":"steps.extractvariables.SourceMessageNotAvailable"
      },
      "faultstring":"request message is not available for ExtractVariable: EV-ParseJsonResponse"
   }
}

Esempio di regola di errore

<FaultRule name="Extract Variable Faults">
    <Step>
        <Name>AM-CustomErrorMessage</Name>
        <Condition>(fault.name = "SourceMessageNotAvailable") </Condition>
    </Step>
    <Condition>(extractvariables.EM-ParseJsonResponse.failed = true) </Condition>
</FaultRule>

Schemi

Argomenti correlati

API Analyze dei messaggi usando dati e analisi personalizzati

Riferimento per le variabili