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.
/** Define all variables for all members of the executeBatch*/
String sessionId="MySessionID-123";
String interactionPoint = "Overview Page Banner 1";
int numberRequested=1;
String eventName = "logOffer";

/** build the getOffers command */
Command getOffersCommand = new CommandImpl();
getOffersCommand.setMethodIdentifier(Command.COMMAND_GETOFFERS);
getOffersCommand.setInteractionPoint(interactionPoint);
getOffersCommand.setNumberRequested(numberRequested);

/** build the postEvent command */
Command postEventCommand = new CommandImpl();
postEventCommand.setMethodIdentifier(Command.COMMAND_POSTEVENT);
postEventCommand.setEventParameters(postEventParameters);
postEventCommand.setEvent(eventName);

/** Build command array */
Command[] commands =
{
getOffersCommand,
postEventCommand,
};

/** Make the call */
BatchResponse batchResponse = api.executeBatch(sessionId, commands);

/** Process the response appropriately */
// Top level status code is a short cut to determine if there
// are any non-successes in the array of Response objects
if(batchResponse.getBatchStatusCode() == Response.STATUS_SUCCESS)
{
System.out.println("ExecuteBatch ran perfectly!");
}
else if(batchResponse.getBatchStatusCode() == Response.STATUS_WARNING)
{
System.out.println("ExecuteBatch call processed with at least one warning");
}
else
{
System.out.println("ExecuteBatch call processed with at least one error");
}

// Iterate through the array, and print out the message for any non-successes
for(Response response : batchResponse.getResponses())
{
if(response.getStatusCode()!=Response.STATUS_SUCCESS)
{
printDetailMessageOfWarningOrError("executeBatchCommand",
response.getAdvisoryMessages());
}
}