startSession
startSession(String sessionID, 
boolean relyOnExistingSession,
boolean debug,
String interactiveChannel,
NameValuePairImpl[] audienceID,
String audienceLevel,
NameValuePairImpl[] parameters)
Die startSession-Methode erstellt und definiert eine Laufzeitsitzung. startSession kann bis zu fünf Aktionen auslösen:
*
*
*
*
Laden von Angebotsunterdrückungsdaten in der Sitzung, wenn dieenableOfferSuppressionLookup-Eigenschaft auf wahr gesetzt ist.
*
Laden vonBewertungsüberschreibungsdaten in der Sitzung, wenn dieenableScoreOverrideLookup-Eigenschaft auf wahr gesetzt ist.
Die startSession-Methode benötigt die folgenden Parameter:
*
sessionID - eine Zeichenfolge zur Identifizierung der Sitzungs-ID. Sie müssen die Sitzungs-ID definieren. Sie können zum Beispiel eine Kombination aus Kunden-ID und Zeitmarke verwenden.
Sie müssen eine Sitzungs-ID angeben, um zu definieren, was eine Laufzeitsitzung auszeichnet. Dieser Wert wird vom Client verwaltet. Alle Methodenaufrufe für die gleiche Sitzungs-ID müssen vom Client synchronisiert werden. Das Verhalten für gleichzeitige API-Aufrufe mit der gleichen Sitzungs-ID ist nicht definiert.
*
relyOnExistingSession - eine boolesche Variable, die definiert, ob diese Sitzung eine neue oder eine vorhandene Sitzung verwendet. Gültige Werte sind true oder false. Wenn der Wert true ist, müssen Sie eine vorhandene Sitzungs-ID mit der startSession-Methode angeben. Wenn der Wert false ist, müssen Sie eine neue Sitzungs-ID angeben.
Wenn Sie relyOnExistingSession auf true setzen und eine Sitzung vorhanden ist, verwendet die Laufzeitumgebung die vorhandenen Sitzungsdaten. Es werden keine Daten erneut geladen und es wird keine Segmentierung ausgelöst. Wenn die Sitzung nicht vorhanden ist, erstellt die Laufzeitumgebung eine neue Sitzung inklusive Laden der Daten und Auslösen der Segmentierung. Wenn die Sitzungsdauer des Touchpoints länger als die Laufzeitsitzung ist, kann es sinnvoll sein, relyOnExistingSession auf true zu setzen und mit allen startSession-Aufrufen zu verwenden. Beispiel: Die Sitzung einer Website ist 2 Stunden lang aktiv, während die Laufzeitsitzung nur 20 Minuten lang aktiv ist.
Wenn Sie startSession zweimal mit der gleichen Sitzungs-ID aufrufen, gehen alle Sitzungsdaten des ersten startSession-Aufrufs verloren, wenn relyOnExistingSession auf false gesetzt ist.
*
debug - eine boolesche Variable zum Aktivieren oder inaktivieren von Daten zur Fehlerbehebung. Gültige Werte sind true oder false. Wenn der Wert wahr ist, protokolliert Interact die Daten zur Fehlerbehebung in den Protokollen des Laufzeitservers. Das Debugflag wird für jede Sitzung individuell gesetzt. Somit können Sie die Daten zur Fehlerbehebung für einzelne Sitzungen verfolgen.
*
interactiveChannel - eine Zeichenfolge, die den Namen des interaktiven Kanals definiert, auf den diese Sitzung verweist. Dieser Name muss exakt mit dem in Campaign definierten Namen des interaktiven Kanals übereinstimmen.
*
audienceID - ein Array aus NameValuePairImpl-Objekten, wobei die Namen mit den physischen Spaltennamen aller Tabellen übereinstimmen müssen, in denen die Zielgruppen-ID enthalten ist.
*
audienceLevel - eine Zeichenfolge, die die Zielgruppenebene definiert.
*
parameters - NameValuePairImpl-Objekte zum Identifizieren aller Parameter, die mit startSession übergeben werden müssen. Diese Werte werden in den Sitzungsdaten gespeichert und können zur Segmentierung verwendet werden.
Wenn Sie mehrere interaktive Ablaufdiagramme für die gleiche Zielgruppenebene haben, müssen Sie eine Obermenge mit allen Spalten in allen Tabellen einschließen. Wenn Sie die Laufzeit so konfigurieren, dass die Profiltabelle geladen wird, und die Profiltabelle alle benötigten Spalten enthält, ist es nicht erforderlich, Parameter zu übergeben, es sei denn, Sie möchten die Daten in der Profiltabelle überschreiben. Wenn die Profiltabelle eine Untermenge der benötigten Spalten enthält, müssen Sie die fehlenden Spalten als Parameter einschließen.
Wenn audienceID oder audienceLevel ungültig und relyOnExistingSession false ist, schlägt der startSession-Aufruf fehl. Wenn interactiveChannel ungültig ist, schlägt startSession fehl, unabhängig davon, ob relyOnExistingSession true oder false ist.
Wenn relyOnExistingSession true ist und Sie einen zweiten startSession-Aufruf mit der gleichen sessionID durchführen, nachdem die erste Sitzung bereits abgelaufen ist, erstellt Interact eine neue Sitzung.
Wenn relyOnExistingSession true ist und Sie einen zweiten startSession-Aufruf mit der gleichen sessionID, aber mit einer anderen audienceID oder audienceLevel durchführen, ändert der Laufzeitserver die Zielgruppe für die vorhandene Sitzung.
Wenn relyOnExistingSession true ist und Sie einen zweiten startSession-Aufruf mit der gleichen sessionID, aber mit einem anderen interactiveChannel durchführen, erstellt der Laufzeitserver eine neue Sitzung.
Rückgabewert
Der Laufzeitserver beantwortet startSession mit einem Response-Objekt, das die folgenden Attribute enthält:
*
*
*
*
Beispiel
Das folgende Beispiel zeigt eine Möglichkeit zum Aufrufen von 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 ist eine Methode, um das von startSession zurückgegebene Antwortobjekt zu bearbeiten.
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());
}