startSession
startSession(String sessionID, 
boolean relyOnExistingSession,
boolean debug,
String interactiveChannel,
NameValuePairImpl[] audienceID,
String audienceLevel,
NameValuePairImpl[] parameters)
La méthode startSession crée et définit une session d'exécution. startSession peut déclencher cinq actions au maximum :
*
*
*
*
*
La méthode startSession nécessite les paramètres suivants :
*
sessionID — chaîne identifiant l'ID session. Vous devez définir l'ID session. Par exemple, vous pouvez utiliser une combinaison de l'ID client et de l'horodatage.
Pour définir ce qui constitue une session d'exécution, un ID session doit être indiqué. Cette valeur est gérée par le client. Tous les appels de méthode au même ID de session doivent être synchronisés par le client. Le comportement des appels API simultanés ayant le même ID de session n'est pas défini.
*
relyOnExistingSession — valeur booléenne qui définit si cette session utilise une session nouvelle ou existante. Les valeurs admises sont true ou false. Si elle est true, vous devez fournir un ID de session existant avec la méthode startSession. Si elle est false, vous devez fournir un nouvel ID de session.
Si vous définissez relyOnExistingSession sur true et s'il existe une session, l'environnement d'exécution utilise les données de la session existante et ne recharge pas les données ou la segmentation de déclenchement. Si la session n'existe pas, l'environnement d'exécution crée une nouvelle session, y compris les données de chargement et la segmentation de déclenchement. Le fait de définir relyOnExistingSession sur true et de l'utiliser avec tous les appels startSession est utile si votre point de contact a une durée de session plus longue que celle de la session d'exécution. Par exemple, une session de site Web est active pendant 2 heures, mais la session d'exécution est uniquement active pendant 20 minutes.
Si vous appelez startSession deux fois avec le même ID session, tous les données de session du premier appel startSession sont perdues si relyOnExistingSession a la valeur false.
*
debug — valeur booléenne qui active ou désactive les informations de débogage. Les valeurs admises sont true ou false. Si elle est true, Interact journalise les informations de débogage dans les journaux du serveur d'exécution. L'indicateur de débogage est défini individuellement pour chaque session. Par conséquent, vous pouvez effectuer le suivi des des données de débogage pour une session individuelle.
*
interactiveChannel — chaîne définissant le nom du canal interactif auquel cette session fait référence. Ce nom doit correspondre exactement au nom du canal interactif défini dans Campaign.
*
audienceID — tableau d'objets NameValuePairImpl, dans lequel les noms doivent correspondre aux noms de colonne physique de toute table contenant l'ID d'audience.
*
audienceLevel — Chaîne définissant le référentiel.
*
parameters — Objets NameValuePairImpl identifiant tous les paramètres à passer avec startSession. Ces valeurs sont stockées dans les données de session et peuvent être utilisées pour la segmentation.
Si vous avez plusieurs diagrammes temps réél pour le même niveau d'audience, vous devez inclure un sur-ensemble de toutes les colonnes dans toutes les tables. Si vous configurez l'exécution de façon à ce qu'elle change la table de profil, et si la table de profil contient toutes les colonnes requises, il n'est pas nécessaire de passer de paramètres, sauf si vous souhaitez écraser les données dans la table de profil. Si votre table de profil contient un sous-ensemble des colonnes requises, vous devez inclure les colonnes manquantes en tant que paramètres.
Si le audienceID ou audienceLevel ne sont pas valides et si relyOnExistingSession a la valeur false, l'appel startSession échoue. Si le interactiveChannel est non valide, startSession échoue, que la valeur de relyOnExistingSession soit true ou false.
Si relyOnExistingSession a la valeur true, et si vous effectuez un deuxième appel startSession avec le même sessionID, alors que la première session a expiré, Interact crée une nouvelle session.
Si relyOnExistingSession a la valeur et si vous effectuez un deuxième appel startSession avec le même sessionID, mais avec un autre audienceID ou audienceLevel, le serveur d'exécution change le référentiel de la session existante.
Si relyOnExistingSession a la valeur true, et si vous effectuez un deuxième appel startSession avec le même sessionID mais un autre interactiveChannel, le serveur d'exécution crée une nouvelle session.
Valeur de retour
Le serveur d'exécution répond à startSession avec un objet de réponse dans lequel les attributs suivants sont renseignés :
*
*
*
*
Exemple
L'exemple suivant montre une façon d'appeler startSession.
String sessionId="MySessionID-123";
String audienceLevel="Customer";
NameValuePair custId = new NameValuePairImpl();
custId.setName("CustomerId");
custId.setValueAsNumeric(1.0);
custId.setValueDataType(NameValuePair.DATA_TYPE_NUMERIC);
NameValuePair[] initialAudienceId = { custId };
boolean relyOnExistingSession=false;
boolean initialDebugFlag=true;
String interactiveChannel="Accounts Website";
NameValuePair parm1 = new NameValuePairImpl();
parm1.setName("SearchString");
parm1.setValueAsString("");
parm1.setValueDataType(NameValuePair.DATA_TYPE_STRING);

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

NameValuePair parm3 = new NameValuePairImpl();
parm3.setName("Browser");
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("PageTopic");
parm6.setValueAsString("");
parm6.setValueDataType(NameValuePair.DATA_TYPE_STRING);

/** Specifying the parameters (optional) */
NameValuePair[] initialParameters = { parm1,
parm2,
parm3,
parm4,
parm5,
parm6
};

/** Make the call */
response = api.startSession(sessionId, relyOnExistingSession, initialDebugFlag,
interactiveChannel, initialAudienceId, audienceLevel, initialParameters);

/** Process the response appropriately */
processStartSessionResponse(response);
processStartSessionResponse is a method which handles the response object returned by startSession.
public static void processStartSessionResponse(Response response)
{
// check if response is successful or not
if(response.getStatusCode() == Response.STATUS_SUCCESS)
{
System.out.println("startSession call processed with no warnings or errors");
}
else if(response.getStatusCode() == Response.STATUS_WARNING)
{
System.out.println("startSession call processed with a warning");
}
else
{
System.out.println("startSession call processed with an error");
}

// For any non-successes, there should be advisory messages explaining why
if(response.getStatusCode() != Response.STATUS_SUCCESS)
printDetailMessageOfWarningOrError("StartSession",
response.getAdvisoryMessages());
}