executeBatch
executeBatch(String sessionID, CommandImpl[] commands)
La méthode executeBatch vous permet d'exécuter plusieurs méthodes via une seule demande au serveur d'exécution.
*
sessionID — Chaîne identifiant l'ID session. Cet ID de session est utilisé pour toutes les commandes exécutées par cet appel de méthode.
*
commandImpl[] — Tableau d'objets CommandImpl, un pour chaque commande que vous souhaitez exécuter.
Le résultat de l'appel de cette méthode équivaut à appeler explicitement chaque méthode dans la table Commande. Cette méthode réduit le nombre de demandes réel au serveur d'exécution. Le serveur d'exécution exécute chaque méthode en série. Pour chaque appel, toute erreur ou tout avertissement est capturé dans l'objet de réponse qui correspond à cet appel de méthode. Si une erreur est détectée, executeBatch continue à traiter le reste des appels dans le lot. Si l'exécution de toute méthode aboutit à une erreur, le statut de niveau supérieur de l'objet BatchResponse indique l'erreur. Si aucune erreur ne s'est produite, le statut de niveau supérieur reflète les avertissements qui ont pu se produire. Si aucun avertissement ne s'est produit, le statut de niveau supérieur indique une exécution réussie du lot.
Valeur de retour
Le serveur d'exécution répond à executeBatch avec un objet BatchResponse.
Exemple
L'exemple suivant montre comment appeler toutes les méthodes getOffer et postEvent avec un seul appel executeBatch, et donne une suggestion de gestion de la réponse.
/** 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());
}
}