So führen Sie SOAP-Aufrufe von PushEvent und PushEvents aus | ACC
Dieser Artikel gibt Ihnen eine Problemumgehung, wenn Sie PushEvent und PushEvents SOAP -Aufrufe in der Adobe Campaign und Adobe Campaign Classic.
Beschreibung description
Umgebung
- Campaign Classic
- Campaign
- Campaign Classic v7
- Campaign v8
Probleme/Symptome
Voraussetzungen:
-
Laden Sie die SOAP-Benutzeroberfläche zum Auslösen der Aufrufe herunter
-
Hochladen der WSDL (
<
server url>
/nl/jsp/schemawsdl.jsp?schema=nms:rtEvent) auf SOAP UI -
IP des Testrechners muss autorisiert sein. Andernfalls wird der Fehler "Zugriff verweigert" angezeigt.
-
Gültige Anmeldeinformationen für die Authentifizierung (im Allgemeinen mc-Benutzer), die eingegeben werden sollen
<
urn:sessiontoken>
login/password<
/urn:sessiontoken>
Auflösung resolution
Push-Ereignis:
Dieser Aufruf soll beim Auslösen eines eindeutig-Ereignis in der RT-Instanz.
Die Vorlage ("test" im Beispiel) erfolgreich auf RT veröffentlicht werden, aus der Kontrollinstanz.
In <
urn:domEvent>
, ein Ereignis vom Typ <
rtEvent>
muss definiert werden mit type Vorlagentyp und email die E-Mail-Adresse des Empfängers.
In <
ctx>
festgelegt ist, muss das gesamte in der Vorlage verwendete Attribut definiert sein. In diesem Beispiel enthält die Vorlage Folgendes:
<
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
Beispiel eines Aufrufs:
<
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>
Erfolgsantwort:
<
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>
Das Empfangen einer PID bedeutet, dass das Ereignis erfolgreich empfangen wurde und verarbeitet wird.
PushEvents:
Dieser Aufruf soll beim Auslösen von multiple-Ereignisse in der RT-Instanz.
Alle Anforderungen sind mit dem ersten Aufruf identisch.
Mehrfach <
rtEvent>
muss im Abschnitt <
urn:domEventCollection>
.
Beispiel eines Aufrufs:
<
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>
<
!- Sie können an dieser Stelle BELIEBIGE Elemente eingeben. Mehr als 1 Element ist erforderlich —>
<
/urn:domEventCollection>
<
/urn:PushEvents>
<
/soapenv:body>
<
/soapenv:Envelope>
Hinweis: Wenn in diesem Aufruf nur ein Element definiert ist, wird es von der RT-Instanz empfangen, Antwort 200 OK, aber Es wird kein Ereignis ausgelöst, verarbeitet oder in den Ereignissen angezeigt und nichts wird in den Weblogs angezeigt.
Sie erhalten diese Art von Antwort, was bedeutet, dass sie den RT erreicht hat, aber dass nichts passiert:
<
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>
Der Grund, warum das Ereignis nicht ausgelöst wird, ist, dass PUSH-EREIGNISSE funktioniert nur bei mehreren Ereignissen. Wenn der Aufruf mit nur einem Ereignis erfolgt, wird die PUSH-EREIGNIS -Aufruf erforderlich.