Show Menu
TEMAS×

Integración mediante SOAP (lado del servidor)

Los servicios web SOAP proporcionados para la administración de ofertas son diferentes de los utilizados en Adobe Campaign. Se puede acceder a ellos a través de la dirección URL de interacción descrita en la sección anterior y permiten presentar o actualizar ofertas para un contacto determinado.

Propuesta de oferta

Para una propuesta de oferta mediante SOAP, añada el comando nms:proposition#Propose seguido de los parámetros siguientes:
  • targetId : clave principal del destinatario (puede ser una clave compuesta).
  • maxCount : especifica el número de propuestas de ofertas para el contacto.
  • context : permite añadir información contextual en el esquema de espacio. Si el esquema utilizado es nms:interaction , se debe añadir <empty> .
  • categories : especifica las categorías a las que las ofertas deben pertenecer.
  • themes : especifica los tema a los que las ofertas deben pertenecer.
  • uuid : valor de la cookie permanente de Adobe Campaign (“uuid230”).
  • nli : valor de la cookie de sesión de Adobe Campaign (“nlid”).
  • noProp : utilice el valor “true” para desactivar la inserción de propuestas.
Los ajustes targetId y maxCount son obligatorios. Los demás son opcionales.
Como respuesta a la consulta, el servicio SOAP devuelve los siguientes parámetros:
  • interactionld : ID de la interacción.
  • propositions : el elemento XML, contiene la lista de propuestas, cada una con su propio ID y representación HTML.

Actualización de oferta

Añada el comando nms:interaction#UpdateStatus a la dirección URL, seguido de estos parámetros:
  • proposition : cadena de caracteres, contiene el ID de la propuesta dado como salida durante una propuesta de oferta. Consulte la Propuesta de oferta .
  • status : tipo cadena, especifica el nuevo estado de la oferta. Los valores posibles se mencionan en la enumeración propositionStatus , en el esquema nms:common. Por ejemplo, de forma predeterminada, el número 3 corresponde al estado Accepted .
  • context : el elemento XML, permite añadir información contextual en el esquema de espacio. Si el esquema utilizado es nms:interaction , se debe añadir <empty> .

Ejemplo de uso de una llamada a SOAP

A continuación, se muestra un ejemplo de código para una llamada SOAP:
<%
  var space = request.parameters.sp
  var cnx = new HttpSoapConnection(
    "https://" + request.serverName + ":" + request.serverPort + "/interaction/" + env + "/" + space,
    "utf-8",
    HttpSoapConnection.SOAP_12)
  var session = new SoapService(cnx, "nms:interaction")
  var action = request.parameters.a
  if( action == undefined )
    action = 'propose'

  try
  {
    switch( action )
    {
    case "update":
      var proposition = request.parameters.p
      var status      = request.parameters.st
      session.addMethod("UpdateStatus", "nms:interaction#UpdateStatus",
       ["proposition", "string",
        "status",      "string",
        "context",     "NLElement"],
       [])
      session.UpdateStatus(proposition, status, <undef/>)
      var redirect = request.parameters.r
      if( redirect != undefined )
        response.sendRedirect(redirect)
      break;

    case "propose":
      var count = request.parameters.n
      var target = request.parameters.t
      var categorie = request.parameters.c
      var theme = request.parameters.th
      var layout = request.parameters.l
      if( count == undefined )
        count = 1
      session.addMethod("Propose", "nms:proposition#Propose",
       ["targetId",      "string",
        "maxCount",      "string",
         "categories",    "string",
         "themes",        "string",
        "context",       "NLElement"],
       ["interactionId", "string",
        "propositions",  "NLElement"])
      response.setContentType("text/html")
      var result = session.Propose(target, count, category, theme, <empty/>)
      var props = result[1]
  %><table><tr><%
      for each( var propHtml in props.proposition.*.mdSource )
      {
        %><td><%=propHtml%></td><%
      }
  %></tr></table><%
      break;
    }
  }
  catch( e )
  {
  }
  %>