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.