Show Menu
SUJETS×

Méthodes SOAP en JavaScript

Il s'agit dans ce cas du JavaScript exécuté sur le serveur Adobe Campaign.

Méthodes statiques

L'accès aux méthodes SOAPs statiques se fait par invocation d'une méthode sur l'objet représentant le schéma. Les schémas sont des propriétés des objets de type 'namespace'. Ces namespaces sont des variables globales, ainsi par exemple, les variables xtk ou nms représentent les espaces de nommage correspondant.
L'exemple suivant invoque la méthode statique PostEvent du schéma xtk:workflow :
xtk.workflow.PostEvent("WKF1", "signal", "", $recipient-id='123', false) 

Méthodes non statiques

Pour utiliser les méthodes SOAPs non statiques, il faut d'abord récupérer une entité en utilisant les méthodes "get" ou "create" sur les schémas correspondants.
L'exemple suivant invoque la méthode ExecuteQuery du schéma "xtk:queryDef" :
var query = xtk.queryDef.create(
  <queryDef schema="xtk:workflow" operation="select">
    <select>
      <node expr="@internalName"/>
    </select>
  </queryDef>
)

var res = query.ExecuteQuery()

for each (var w in res.workflow) 
  logInfo(w.@internalName)

Exemples

  • Requête sur la table des destinataires avec une opération "get" :
    var query = xtk.queryDef.create(  
      <queryDef schema="nms:recipient" operation="get">    
        <select>      
          <node expr="@firstName"/>      
          <node expr="@lastName"/>      
          <node expr="@email"/>    
        </select>    
        <where>      
          <condition expr="@email = 'peter.martinez@adobe.com'"/>    
        </where>  
      </queryDef>)
    
    var recipient = query.ExecuteQuery()
    
    logInfo(recipient.@firstName)
    logInfo(recipient.@lastName)
    
    
  • Requête sur la table des destinataires avec une opération "select" :
    var query = xtk.queryDef.create(  
      <queryDef schema="nms:recipient" operation="select">    
        <select>      
          <node expr="@email"/>      
          <node expr="@lastName"/>      
          <node expr="@firstName"/>    
        </select>    
        <where>      
          <condition expr="@age > 25"/>    
        </where>    
      </queryDef>)
    
    var res = query.ExecuteQuery()
    
    for each (var recipient in res.recipient) 
    {  
      logInfo(recipient.@email)  
      logInfo(recipient.@firstName)  
      logInfo(recipient.@lastName)
    }
    
    
  • Ecriture de données sur la table des destinataires :
    xtk.session.Write(<recipient _operation="insert" lastName="Martinez" firstName="Peter" xtkschema="nms:recipient"/>);