Pulsos con atributos multivaluados

En la construcción del pulso se permite el envío de múltiples valores para los atributos que se hayan definido como “number” o “character”

Previamente se mostró como construir pulsos, ahora se mostrará la creación del mensaje protobuf de pulso para permitir el envío de múltiples valores para un atributo.

Un ejemplo de construcción de un pulso con atributo multivaluado (“city”, “numAdults”, “clientId”, “initDate”, “endDate”, “hotels”, … )

En este caso el cliente de la plataforma es “clientex” que previamente configuró un pulso llamado “availability” cuyo id generado en la plataforma BPulse es “bpulse_clientex_availability”.

El atributo que tendrá multivalues es “hotels” al cual se le pasarán los valores “Hotel Real” y “Hotel Hispano”

PulsesRQ
PulsesRQ.Builder pulses = PulsesRQ.newBuilder();
pulses.setVersion("1.0"); //versión de la mensajería
 
Pulse.Builder pulse = Pulse.newBuilder();
pulse.setTypeId("bpulse_clientex_availability"); //El id generado en la plataforma BPulse
pulse.setInstanceId("B2BIntegration-01"); // Permite identificar desde que servidor o aplicación del cliente se generó el pulso.
pulse.setTime(System.currentTimeMillis()); //Representa el instante de tiempo en el que ocurre el evento availability
 
//values
// city attribute
Value.Builder value =  Value.newBuilder();
value.setName("city"); //Nombre de atributo previamente configurado en la definición del pulso "availability"
value.addValues("BCN"); //Valor asociado al atributo "city"
pulse.addValues(value);
 
// numAdults attribute
value =  Value.newBuilder();
value.setName("numAdults"); //Nombre de atributo previamente configurado en la definición del pulso "availability"
value.addValues("2"); //Valor asociado al atributo "numAdults"
pulse.addValues(value);
 
// clientId attribute
value =  Value.newBuilder();
value.setName("clientId"); //Nombre de atributo previamente configurado en la definición del pulso "availability"
value.addValues("viajeros"); //Valor asociado al atributo "clientId"
pulse.addValues(value);
 
// initDate attribute
value =  Value.newBuilder();
value.setName("initDate"); //Nombre de atributo previamente configurado en la definición del pulso "availability"
value.addValues("2015-06-03T12:00:00"); //Valor asociado al atributo "initDate" se debe usar el formato "yyyy-mm-ddThh:mm:ss"
pulse.addValues(value);
 
// endDate attribute
value =  Value.newBuilder();
value.setName("endDate"); //Nombre de atributo previamente configurado en la definición del pulso "availability"
value.addValues("2015-06-08T13:00:00"); //Valor asociado al atributo "endDate" se debe usar el formato "yyyy-mm-ddThh:mm:ss"
pulse.addValues(value);
 
// hotels attribute - multiples valores
value =  Value.newBuilder();
value.setName("hotesl"); //Nombre de atributo previamente configurado en la definición del pulso "availability"
value.addValues("Hotel Real"); //Valor asociado al atributo "hotesl"
value.addValues("Hotel Hispano"); //Valor asociado al atributo "hotesl"
pulse.addValues(value);
 
pulses.addPulse(pulse);