executeBatch
executeBatch(String sessionID, CommandImpl[] Befehle)
Mit der executeBatch-Methode können Sie mehrere Methoden mit einer einzelnen Anfrage an den Laufzeitserver ausführen.
*
sessionID-Eine Zeichenfolge zur Identifizierung der Sitzungs-ID. Diese Sitzungs-ID wird für alle Befehle verwendet, die dieser Methodenaufruf ausführt.
*
commandImpl[] - Ein Array aus CommandImpl-Objekten, jeweils eins für jeden Befehl, der ausgeführt werden soll.
Durch den Aufruf dieser Methode wird das gleiche Ergebnis erzielt wie durch den expliziten Aufruf jeder einzelnen Methode im Befehl-Array. Diese Methode minimiert die Anzahl der tatsächlichen Anfragen an den Laufzeitserver. Der Laufzeitserver führt jede Methode seriell aus. Für jeden Aufruf werden alle Fehler oder Warnungen im entsprechenden Response-Objekt für diesen Methodenaufruf aufgezeichnet. Wird ein Fehler gefunden, wird executeBatch mit den verbliebenen Aufrufen im Stapel fortgesetzt. Wenn der Aufruf einer beliebigen Methode in einem Fehler resultiert, wird dieser Fehler im Status auf der höchsten Ebene für das BatchResponse-Objekt angezeigt. Wenn keine Fehler aufgetreten sind, werden im Status auf der höchsten Ebene alle aufgetretenen Warnungen angezeigt. Wenn keine Warnungen aufgetreten sind, wird im Status auf der höchsten Ebene die erfolgreiche Ausführung des Stapels angezeigt.
Rückgabewert
Der Laufzeitserver beantwortet den executeBatch mit einem BatchResponse-Objekt.
Beispiel
Das folgende Beispiel zeigt, wie Sie mit einem einzigen executeBatch-Aufruf alle getOffer- und postEvent-Methoden aufrufen und danach die Antwort bearbeiten können.
/** Definieren Sie alle Variablen für alle Mitglieder von executeBatch*/
String sessionId="MySessionID-123";
String interactionPoint = "Overview Page Banner 1";
int numberRequested=1;
String eventName = "logOffer";

/** getOffers-Befehl erstellen */
Command getOffersCommand = new CommandImpl();
getOffersCommand.setMethodIdentifier(Command.COMMAND_GETOFFERS);
getOffersCommand.setInteractionPoint(interactionPoint);
getOffersCommand.setNumberRequested(numberRequested);

/** postEvent-Befehl erstellen */
Command postEventCommand = new CommandImpl();
postEventCommand.setMethodIdentifier(Command.COMMAND_POSTEVENT);
postEventCommand.setEventParameters(postEventParameters);
postEventCommand.setEvent(eventName);

/** Befehl-Array erstellen */
Command[] commands =
{
getOffersCommand,
postEventCommand,
};

/** Aufruf durchführen */
BatchResponse batchResponse = api.executeBatch(sessionId, commands);

/** Antwort entsprechend verarbeiten */
// Statuscode auf der höchsten Ebene ist eine Abkürzung, um zu bestimmen, ob // fehlgeschlagene Response-Objekte im Array vorhanden sind
if(batchResponse.getBatchStatusCode() == Response.STATUS_SUCCESS)
{
System.out.println("ExecuteBatch perfekt ausgeführt!");
}
else if(batchResponse.getBatchStatusCode() == Response.STATUS_WARNING)
{
System.out.println("ExecuteBatch-Aufruf mit mindestens einer Warnung verarbeitet");
}
else
{
System.out.println("ExecuteBatch-Aufruf mit mindestens einem Fehler verarbeitet");
}

// Array durchlaufen und die Nachricht für alle fehlgeschlagenen Instanzen ausdrucken
for(Response response : batchResponse.getResponses())
{
if(response.getStatusCode()!=Response.STATUS_SUCCESS)
{
printDetailMessageOfWarningOrError("executeBatchCommand",
response.getAdvisoryMessages());
}
}