Sobre serviços da Web

Definição de APIs da Adobe Campaign

O servidor de aplicativos Adobe Campaign foi projetado para abertura e fácil integração com sistemas de informações de empresa cada vez mais diversificados e complexos.

As APIs da Adobe Campaign são usadas em JavaScript no aplicativo e em SOAP fora dele. Eles compõem uma biblioteca de funções genéricas que podem ser enriquecidas. Para obter mais informações, consulte Implementação de métodos SOAP.

IMPORTANTE

O número de chamadas de mecanismo autorizadas por dia varia de acordo com o contrato de licença. Para obter mais informações, consulte esta página.
Uma lista de todas as APIs, incluindo sua descrição completa, está disponível em esta documentação dedicada.

Pré-requisitos

Antes de usar as APIs da Adobe Campaign, é necessário conhecer os seguintes tópicos:

  • Javascript
  • Protocolo SOAP
  • Adobe Campaign datamodel

Usando APIs da Adobe Campaign

A Adobe Campaign usa dois tipos de APIs:

Para desenvolver APIs e interagir com a Adobe Campaign, é necessário conhecer seu modelo de dados. A Adobe Campaign permite que você gere uma descrição completa da base. Consulte Descrição do modelo.

Chamadas SOAP

O protocolo SOAP permite que você chame métodos de API, por meio do cliente avançado, aplicativos de terceiros usando serviços da Web ou JSP usando esses métodos nativamente.

A estrutura de uma mensagem SOAP é a seguinte:

  • um envelope que define a estrutura da mensagem,
  • um cabeçalho opcional,
  • um organismo que contenha as informações sobre a chamada e a resposta,
  • gerenciamento de erros que define a condição de erro.

Recursos e trocas

O schema a seguir mostra os vários recursos envolvidos no uso das APIs do Adobe Campaign:

Exemplo de uma mensagem SOAP no método 'ExecuteQuery'

Neste exemplo, um query SOAP chama o método "ExecuteQuery", que utiliza uma string de caracteres como parâmetro para autenticação (token de sessão) e um conteúdo XML para a descrição do query a ser executado.

Para obter mais informações, consulte ExecuteQuery (xtk:queryDef).

OBSERVAÇÃO

A descrição WSDL deste serviço é concluída no exemplo mostrado aqui: Descrição do serviço Web: WSDL.

QUERY SOAP

<?xml version='1.0' encoding='ISO-8859-1'?>
  <SOAP-ENV:Envelope xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:ns='http://xml.apache.org/xml-soap' xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'>
    <SOAP-ENV:Body>
      <ExecuteQuery xmlns='urn:xtk:queryDef' SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'>
        <__sessiontoken xsi:type='xsd:string'/>
        <entity xsi:type='ns:Element' SOAP-ENV:encodingStyle='http://xml.apache.org/xml-soap/literalxml'>
          <queryDef firstRows="true" lineCount="200" operation="select" schema="nms:rcpGrpRel" startLine="0" startPath="/" xtkschema="xtk:queryDef">
          ...
          </queryDef>
        </entity>
      </ExecuteQuery>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

O elemento <soap-env:envelope> é o primeiro elemento da mensagem que representa o envelope SOAP.

O elemento <soap-env:body> é o primeiro elemento filho do envelope. Ele contém a descrição da mensagem, ou seja, o conteúdo do query ou a resposta.

O método a ser chamado é inserido no elemento <executequery> a partir do corpo da mensagem SOAP.

No SOAP, os parâmetros são reconhecidos por ordem de aparência. O primeiro parâmetro, <__sessiontoken>, pega a cadeia de autenticação, o segundo parâmetro é a descrição XML do query do elemento <querydef>.

Resposta SOAP

<?xml version='1.0' encoding='ISO-8859-1'?>
  <SOAP-ENV:Envelope xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:ns='http://xml.apache.org/xml-soap' xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'>
    <SOAP-ENV:Body>
      <ExecuteQueryResponse xmlns='urn:xtk:queryDef' SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'>
        <pdomOutput xsi:type='ns:Element' SOAP-ENV:encodingStyle='http://xml.apache.org/xml-soap/literalxml'>
          <rcpGrpRel-collection><rcpGrpRel group-id="1872" recipient-id="1362"></rcpGrpRel></rcpGrpRel-collection>
        </pdomOutput>
      </ExecuteQueryResponse>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

O resultado do query é inserido a partir do elemento <pdomoutput>.

Gerenciamento de erros

Exemplo de resposta de erro SOAP:

<?xml version='1.0' encoding='ISO-8859-1'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'>
  <SOAP-ENV:Body>
    <SOAP-ENV:Fault>
      <faultcode>SOAP-ENV:Server</faultcode>
      <faultstring>Error while executing 'Write' of the 'xtk:persist'.</faultstring> service
      <detail>ODBC error: [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot insert duplicate key row in object 'XtkOption' with unique index 'XtkOption_name'. SQLSTate: 23000
ODBC error: [Microsoft][ODBC SQL Server Driver][SQL Server]The statement has been terminated. SQLSTate: 01000 Cannot save the 'Options (xtk:option)' document </detail>
    </SOAP-ENV:Fault>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

O elemento <soap-env:fault> no corpo da mensagem SOAP é usado para transmitir os sinais de erro que surgem durante o processamento do serviço da Web. É composto pelos seguintes subelementos:

  • <faultcode> : indica o tipo de erro. Os tipos de erro são:

    • "VersionMismatch" no evento de incompatibilidade com a versão SOAP usada,
    • "mustUnderstand" no evento de um problema no cabeçalho da mensagem,
    • "Cliente" no evento de que faltam algumas informações ao cliente,
    • "Servidor" no evento de que o servidor tem um problema ao executar o processamento.
  • <faultstring> : mensagem que descreve o erro

  • <detail> : mensagem de erro longa

O sucesso ou falha da invocação do serviço é identificado quando o elemento <faultcode> é verificado.

IMPORTANTE

Todos os serviços Web da Adobe Campaign lidam com erros. Portanto, é altamente recomendável testar cada chamada para lidar com os erros retornados.

Exemplo de tratamento de erros em C#:

try 
{
  // Invocation of method
  ...
}
catch (SoapException e)
{
  System.Console.WriteLine("Soap exception: " + e.Message);        
  if (e.Detail != null)
    System.Console.WriteLine(e.Detail.InnerText);
}

URL do servidor de serviço Web (ou EndPoint)

Para enviar o serviço da Web, é necessário entrar em contato com o servidor Adobe Campaign que implementa o método de serviço correspondente.

O URL do servidor é o seguinte:

https://serverName/nl/jsp/soaprouter.jsp

Com <server> o servidor de aplicativos Adobe Campaign (nlserver web).

Nesta página

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now