executeBatch
executeBatch(String sessionID, CommandImpl[] commands)
El método executeBatch permite ejecutar varios métodos con una sola solicitud en el servidor de ejecución.
*
sessionID — una cadena que identifica el ID de sesión. Este ID de sesión se utiliza para todos los comandos ejecutados por esta llamada de método.
*
commandImpl[] — una matriz de objetos CommandImpl, uno para cada comando que desea ejecutar.
El resultado de invocar este método equivale a invocar explícitamente cada método en la matriz de comandos. Este método minimiza el número de solicitudes reales en el servidor de ejecución. El servidor de ejecución ejecuta cada método en serie; para cada llamada, se capturan los errores o avisos en el objeto de respuesta correspondiente a esa llamada de método. Si se encuentra un error, executeBatch continúa con el resto de las llamadas del lote. Si la ejecución de un método da como resultado un error, el estado de nivel superior del objeto BatchResponse refleja ese error. Si no se produce ningún error, el estado de nivel superior refleja todos los avisos que se han producido. Si no se produce ningún aviso, el estado de nivel superior refleja una ejecución satisfactoria del lote.
Valor de retorno
El servidor de ejecución responde a executeBatch con un objeto BatchResponse.
Ejemplo
El siguiente ejemplo muestra cómo llamar a todos los métodos getOffer y postEvent con una sola llamada executeBatch, y una sugerencia sobre cómo manejar la respuesta.
/** Definir todas las variables para todos los miembros de executeBatch*/
String sessionId="MySessionID-123";
String interactionPoint = "Overview Page Banner 1";
int numberRequested=1;
String eventName = "logOffer";

/** compilar el comando getOffers */
Command getOffersCommand = new CommandImpl();
getOffersCommand.setMethodIdentifier(Command.COMMAND_GETOFFERS);
getOffersCommand.setInteractionPoint(interactionPoint);
getOffersCommand.setNumberRequested(numberRequested);

/** compilar el comando postEvent */
Command postEventCommand = new CommandImpl();
postEventCommand.setMethodIdentifier(Command.COMMAND_POSTEVENT);
postEventCommand.setEventParameters(postEventParameters);
postEventCommand.setEvent(eventName);

/** Crear la matriz de comandos */
Command[] commands =
{
getOffersCommand,
postEventCommand,
};

/** Realizar la llamada */
BatchResponse batchResponse = api.executeBatch(sessionId, commands);

/** Procesar la respuesta según corresponda */
// El código de estado de nivel superior es un atajo para determinar si hay
// errores en la matriz de objetos de respuesta
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");
}

// Iterar por la matriz e imprimir el mensaje de los errores
for(Response response : batchResponse.getResponses())
{
if(response.getStatusCode()!=Response.STATUS_SUCCESS)
{
printDetailMessageOfWarningOrError("executeBatchCommand",
response.getAdvisoryMessages());
}
}