Show Menu
TÓPICOS×

Integração via SOAP (lado do servidor)

Os serviços da Web SOAP fornecidos para o gerenciamento de ofertas são diferentes daqueles normalmente usados no Adobe Campaign. Eles podem ser acessados por meio da URL de interação descrita na seção anterior e permitem apresentar ou atualizar ofertas para um determinado contato.

Apresentação de oferta

Para uma apresentação de oferta via SOAP, adicione o comando nms:proposta#Propose seguido pelos seguintes parâmetros:
  • targetId : chave primária do recipient (pode ser uma chave composta).
  • maxCount : especifica o número de apresentações de oferta para o contato.
  • contexto : permite adicionar informações de contexto no schema de espaço. Se o schema usado for nms:interaction , <empty> deverá ser adicionado.
  • categories : especifica a(s) categoria(s) que as ofertas devem pertencer.
  • themes : especifica o(s) tema(s) aos quais a(s) oferta(s) deve pertencer.
  • uuid : valor do cookie permanente do Adobe Campaign ("uuid230").
  • nli : valor do cookie da sessão do Adobe Campaign ("nlid").
  • noProp : use o valor "true" para desativar a inserção de proposta.
As configurações targetId e maxCount são obrigatórias. As outras são opcionais.
Em resposta à query, o serviço SOAP retorna os seguintes parâmetros:
  • interactionId : ID da interação.
  • propositions : o elemento XML contém a lista de propostas, cada uma com sua própria identificação e representação HTML.

Atualização de oferta

Adicione o comando nms:interação#UpdateStatus à URL, seguido desses parâmetros:
  • proposition : cadeia de caracteres, ele contém o ID de proposta fornecida como uma saída durante uma apresentação de oferta. Consulte Apresentação da oferta .
  • status : tipo string, ele especifica o novo status da oferta. Os valores possíveis são listados na enumeração propositionStatus , no schema nms:common. Por exemplo, inicialmente, o número 3 corresponde ao status Accepted .
  • context : o elemento XML permite adicionar informações de contexto no schema de espaço. Se o schema usado for nms:interaction , <empty> deverá ser adicionado.

Exemplo usando uma chamada SOAP

Veja um exemplo de código para uma chamada 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 )
  {
  }
  %>