startSession
startSession(String ID_sesión,
boolean relyOnExistingSession,
boolean debug,
String canalInteractivo,
NameValuePairImpl[] IDAudiencia,
String nivelAudiencia,
NameValuePairImpl[] parameters)
El método startSession crea y define una sesión de ejecución. startSession puede desencadenar hasta cinco acciones:
*
*
*
*
cargar datos de supresión de oferta en la sesión, si la propiedad enableOfferSuppressionLookup está establecida en true.
*
El método startSession requiere los parámetros siguientes:
*
ID_sesión: serie que identifica el ID de sesión. Debe definir el ID de sesión. Por ejemplo, podría utilizar una combinación de ID de cliente y marca de hora.
Para definir qué compone una sesión de ejecución, se debe especificar el ID de sesión. Este valor lo gestiona el cliente. El cliente debe sincronizar todas las llamadas a método para el mismo ID de sesión. El comportamiento para las llamadas a la API simultáneas con el mismo ID de sesión no está definido.
*
relyOnExistingSession: booleano que define si esta sesión utiliza una sesión nueva o existente. Los valores válidos son true o false. Si es true, debe proporcionar un ID de sesión existente con el método startSession. Si es false, debe proporcionar un nuevo ID de sesión.
Si se establece relyOnExistingSession en true y ya existe una sesión, el entorno de ejecución utiliza los datos de sesión existentes y no vuelve a cargar datos o desencadena segmentación. Si la sesión no existe, el entorno de ejecución crea una nueva sesión, lo que incluye cargar datos y desencadenar segmentación. Establecer relyOnExistingSession en true y utilizarlo con todas las llamadas a startSession resulta útil si el punto de encuentro tiene una duración de sesión superior a la sesión de ejecución. Por ejemplo, una sesión de sitio web está activa durante 2 horas, pero la sesión de ejecución solo está activa 20 minutos.
Si llama a startSession dos veces con el mismo ID de sesión, todos los datos de sesión de la primera llamada a startSession se perderán si relyOnExistingSession es false.
*
debug: booleano que habilita o inhabilita la información de depuración. Los valores válidos son true o false. Si es true, Interact registra la información de depuración en los registros del servidor de ejecución. El indicador de depuración se establece individualmente para cada sesión. Por lo tanto, puede rastrear los datos de depuración para una sesión individual.
*
canalInteractivo: serie que define el nombre del canal interactivo al que hace referencia esta sesión. Este nombre debe coincidir con el nombre del canal interactivo tal como está definido exactamente en Campaign.
*
IDAudiencia: matriz de objetos NameValuePairImpl donde los nombres deben coincidir con los nombres de columna física de cualquier tabla que contenga el ID de audiencia.
*
nivelAudiencia: serie que define el nivel de audiencia.
*
parámetros: objetos NameValuePairImpl que identifican los parámetros que es necesario pasar con startSession. Estos valores se almacenan en los datos de sesión y se pueden utilizar para la segmentación.
Si tiene varios diagramas de flujo interactivos para el mismo nivel de audiencia, debe incluir un superconjunto de todas las columnas de todas las tablas. Si configura el tiempo de ejecución para cargar la tabla de perfil, y la tabla de perfil contiene todas las columnas que necesita, no es necesario pasar ningún parámetro, a menos que desee sobrescribir los datos de la tabla de perfil. Si la tabla de perfil contiene un subconjunto de las columnas necesarias, debe incluir las columnas que faltan como parámetros.
Si IDAudiencia o nivelAudiencia no son válidos y relyOnExistingSession es false, la llamada a startSession fallará. Si interactiveChannel no es válido, startSession fallará, independientemente de si relyOnExistingSession es true o false.
Si relyOnExistingSession es true y realiza una segunda llamada a startSession utilizando el mismo ID_sesión, pero la primera sesión ha caducado, Interact creará una nueva sesión.
Si relyOnExistingSession es true y realiza una segunda llamada a startSession utilizando el mismo ID_sesión pero un IDAudiencia o nivelAudiencia distinto, el servidor de ejecución cambiará la audiencia para la sesión existente.
Si relyOnExistingSession es true y realiza una segunda llamada a startSession utilizando el mismo ID_sesión pero un canalInteractivo distinto, el servidor de ejecución creará una nueva sesión.
Valor de retorno
El servidor de ejecución responde a startSession con un objeto Response que tiene los siguientes atributos completados:
*
*
*
*
Ejemplo
El ejemplo siguiente muestra una forma de llamar a startSession.
String sessionId="MySessionID-123";
String audienceLevel="Cliente";
NameValuePair custId = new NameValuePairImpl();
custId.setName("IDCliente");
custId.setValueAsNumeric(1.0);
custId.setValueDataType(NameValuePair.DATA_TYPE_NUMERIC);
NameValuePair[] initialAudienceId = { custId };
boolean relyOnExistingSession=false;
boolean initialDebugFlag=true;
String interactiveChannel="Sitio web Cuentas";
NameValuePair parm1 = new NameValuePairImpl();
parm1.setName("SerieBúsqueda");
parm1.setValueAsString("");
parm1.setValueDataType(NameValuePair.DATA_TYPE_STRING);

NameValuePair parm2 = new NameValuePairImpl();
parm2.setName("MarcaHora");
parm2.setValueAsDate(new Date());
parm2.setValueDataType(NameValuePair.DATA_TYPE_DATETIME);

NameValuePair parm3 = new NameValuePairImpl();
parm3.setName("Navegador");
parm3.setValueAsString("IE6");
parm3.setValueDataType(NameValuePair.DATA_TYPE_STRING);

NameValuePair parm4 = new NameValuePairImpl();
parm4.setName("FlashEnabled");
parm4.setValueAsNumeric(1.0);
parm4.setValueDataType(NameValuePair.DATA_TYPE_NUMERIC);

NameValuePair parm5 = new NameValuePairImpl();
parm5.setName("TxAcctValueChange");
parm5.setValueAsNumeric(0.0);
parm5.setValueDataType(NameValuePair.DATA_TYPE_NUMERIC);

NameValuePair parm6 = new NameValuePairImpl();
parm6.setName("TemaPágina");
parm6.setValueAsString("");
parm6.setValueDataType(NameValuePair.DATA_TYPE_STRING);

/** Especificación de parámetros (opcional) */
NameValuePair[] initialParameters = { parm1,
parm2,
parm3,
parm4,
parm5,
parm6
};

/** Realizar la llamada */
response = api.startSession(sessionId, relyOnExistingSession, initialDebugFlag,
interactiveChannel, initialAudienceId, audienceLevel, initialParameters);

/** Procesar la respuesta de la forma adecuada */
processStartSessionResponse(response);
processStartSessionResponse es un método que maneja el objeto de respuesta devuelto por startSession.
public static void processStartSessionResponse(Response response)
{
// comprobar si la respuesta ha sido satisfactoria o no
if(response.getStatusCode() == Response.STATUS_SUCCESS)
{
System.out.println("llamada a startSession procesada sin avisos o errores");
}
else if(response.getStatusCode() == Response.STATUS_WARNING)
{
System.out.println("llamada a startSession procesada con un aviso");
}
else
{
System.out.println("llamada a startSession procesada con un error");
}

// Para resultados no satisfactorios, debería haber mensajes de
// recomendación que explicaran porqué
if(response.getStatusCode() != Response.STATUS_SUCCESS)
printDetailMessageOfWarningOrError("StartSession",
response.getAdvisoryMessages());
}