Der Aufruf Set_Client_Context (CMSCC) setzt den Wert für den Client-Kontext. Um den Wiederanlauf auf Client-Seite zu erleichtern, kann der Client einen von ihm selbst spezifizierten, sogenannten Client-Kontext bei openUTM hinterlegen. Immer wenn der Client Benutzerdaten an die UTM-Partner-Anwendung sendet, wird auch der letzte mit der Funktion Set_Client_Context gesetzte Client-Kontext an die UTM-Anwendung gesendet. Der Kontext wird von openUTM bis zum Ende der Conversation gesichert, falls er nicht durch einen neuen Kontext überschrieben wird.
Wird vom Client ein Wiederanlauf gefordert, so wird der zuletzt gesicherte Kontext zusammen mit der letzten Dialog-Nachricht an den Client zurück übertragen.
Der Client-Kontext wird von openUTM nur gesichert, wenn der Client über eine UTM-Benutzerkennung mit Restartfunktionalität angemeldet ist, da nur in diesem Fall ein Vorgangswiederanlauf möglich ist. In allen anderen Fällen wird der Kontext ignoriert.
Der Aufruf Set_Client_Context ist nur im Zustand "Send" erlaubt.
Diese Funktion ist nicht Bestandteil der CPI-C Spezifikation, sondern eine zusätzliche Funktion des UPIC-Trägersystems.
CMSCC (conversation_ID, client_context, client_context_length, return_code)
Parameter
--> conversation_ID | Identifikation der Conversation. |
--> client_context | gibt den Kontext an, den der Client an openUTM senden will. |
--> client_context_length | Länge des Kontexts. |
<-- return_code | Ergebnis des Funktionsaufrufs. |
Ergebnis ( return_code )
CM_OK
Aufruf ok
CM_PROGRAM_STATE_CHECK
Die Conversation ist nicht im Zustand "Send".
CM_PROGRAM_PARAMETER_CHECK
Der Wert in conversation_ID ist ungültig oder der Wert von client_context_length ist kleiner als 0 oder größer als 8.
CM_PRODUCT_SPECIFIC_ERROR
Die UPIC-Instanz konnte nicht gefunden werden.
Zustandsänderung
Im fehlerfreien Fall liefert die Funktion das Ergebnis CM_OK zurück. Der Aufruf ändert den Zustand der Conversation nicht.
Hinweis
Falls der Returncode von CM_OK verschieden ist, bleibt client_context unverändert.
Der interne Puffer für den Client-Kontext ist derzeit auf 8 Bytes beschränkt.
Verhalten im Fehlerfall
CM_PROGRAM_STATE_CHECK
Programm ändern.
CM_PROGRAM_PARAMETER_CHECK
Programm ändern.
CM_PRODUCT_SPECIFIC_ERROR
Das Betriebssystem kann nicht genügend Speicherplatz für interne Puffer bereitstellen. Überprüfen Sie Ihr Programm auf zu hohe Speicherplatzanforderung und starten Sie ggf. Ihr System neu.
CM_ENTRY Set_Client_Context ( unsigned char CM_PTR conversation_ID, unsigned char CM_PTR client_context, CM_INT32 CM_PTR client_context_length, CM_RETURN_CODE CM_PTR return_code )