How to make PushEvent and PushEvents SOAP calls | ACC

This article will give you a workaround if you want to make PushEvent and PushEvents SOAP calls in the Adobe Campaign and Adobe Campaign Classic.

Description description

Environment

  • Campaign Classic
  • Campaign
  • Campaign Classic v7
  • Campaign v8

Issues/Symptoms

Pre-requisites:

  • Download SOAP UI for triggering the calls

  • Uploading the WSDL (< server url> /nl/jsp/schemawsdl.jsp?schema=nms:rtEvent) onto SOAP UI

  • IP of testing computer must be authorized otherwise you will get an error “Access Denied”.

  • Valid credentials for authentication (generally mc user), to be put in  < urn:sessiontoken> login/password< /urn:sessiontoken>

Resolution resolution

Push Event:

This call is to be used when triggering a  unique event on the RT instance.

The template (“test”  in the example) needs to be published successfully on RT, from the control instance.

In < urn:domEvent> , an event of type  < rtEvent> must be defined with  type being the template type and  email being the recipient email address.

In < ctx> , all the attribute used on the template must be defined. In this example, the template contain this:

< P >Your email is: <%= rtEvent.email %>< P > -> is using the attribute email directly as email in define within rtEvent

< P >Your first name: <%= rtEvent.ctx.firstName %>< P > -> is using ctx.firstname as ctx is an inner element of rtEvent

< P >Your last name: <%= rtEvent.ctx.lastName %>< P> -> is using ctx.lastname as ctx is an inner element of rtEvent

Example of call:

< soapenv:Envelope xmlns:soapenv=“http://schemas.xmlsoap.org/soap/envelope/” xmlns:urn=“urn:nms:rtEvent”>
   < soapenv:Header/>
   < soapenv:Body>
      < urn:PushEvent>
         < urn:sessiontoken> login/password< /urn:sessiontoken>
         < urn:domEvent>
            < rtEvent type=“test” email=“xxx@gmail.com”>
                < ctx>
                    < firstName> ABC< /firstName>
                   < lastName> DEF< /lastName>
                < /ctx>
            < /rtEvent>
         < /urn:domEvent>
      < /urn:PushEvent>
   < /soapenv:Body>
< /soapenv:Envelope>

Success response:

< SOAP-ENV:Envelope xmlns:xsd=“http://www.w3.org/2001/XMLSchema” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:ns=“urn:nms:rtEvent” xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/”>
   < SOAP-ENV:Body>
      < PushEventResponse SOAP-ENV:encodingStyle=“http://schemas.xmlsoap.org/soap/encoding/” xmlns=“urn:nms:rtEvent”>
         < plId xsi:type=“xsd:long”> 0000000000< /plId>
      < /PushEventResponse>
   < /SOAP-ENV:Body>
< /SOAP-ENV:Envelope>

Receiving a PIID means that the event has been received successfully and is being processed.

PushEvents:

This call is to be used when triggering  multiple events on the RT instance.

All the requirements are the same as the first call.

Mutiple < rtEvent> must be defined in the  < urn:domEventCollection> .

Example of a call:

< soapenv:Envelope xmlns:soapenv=“http://schemas.xmlsoap.org/soap/envelope/” xmlns:urn=“urn:nms:rtEvent”>
   < soapenv:Header/>
   < soapenv:Body>
      < urn:PushEvents>
         < urn:sessiontoken> ?< /urn:sessiontoken>
         < urn:domEventCollection>
             < !–You may enter ANY elements at this point. More than 1 element is Required –>
         < /urn:domEventCollection>
      < /urn:PushEvents>
   < /soapenv:Body>
< /soapenv:Envelope>

Note: If only 1 element is defined in this call, it will be received by RT instance, response 200 OK, but  no event will be triggered, processed nor appear in the events  and nothing will show in the weblogs.

You will get this type of response, which means that it reached the RT, but that nothing will happen:

< SOAP-ENV:Envelope xmlns:xsd=“http://www.w3.org/2001/XMLSchema” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:ns=“urn:nms:rtEvent” xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/”>
   < SOAP-ENV:Body>
      < PushEventsResponse SOAP-ENV:encodingStyle=“http://schemas.xmlsoap.org/soap/encoding/” xmlns=“urn:nms:rtEvent”>
         < pdomIds xsi:type=“ns:Element” SOAP-ENV:encodingStyle=“http://xml.apache.org/xml-soap/literalxml”>
            < rtEvent email=“xxx@gmail.com” type=“test”/>
         < /pdomIds>
      < /PushEventsResponse>
   < /SOAP-ENV:Body>
< /SOAP-ENV:Envelope>

The reason the event is not triggered is that  PUSH EVENTS  only works in case of multiple events. If the call is made with only one event, the  PUSH EVENT  call is required.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f