CTIOperationRequest: Bereichsbezogen, global

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 33 Minuten Lesedauer
  • Die CTIOperationRequest- Skripteinbindung stellt Methoden zum Festlegen und Abrufen von Daten für das aktuelle CTIOperationRequest-Objekt bereit.

    Sie verwenden CTIOperationRequest-Objekte, um Informationen zwischen einem Nachrichtenumwandler und einem Vorgangshandler im Framework ServiceNow Sprachfunktionen zu übergeben.

    Normalerweise ist ein Nachrichtenumwandler für die Analyse einer eingehenden CTI-spezifischen Nutzlast und das Festlegen der Nutzlastdaten für ein zugeordnetes CTIOperationRequest-Objekt verantwortlich. Ein Vorgangs-Handler ist dann dafür verantwortlich, die Informationen aus dem CTIOperationRequest-Objekt abzurufen und die Daten zur Verarbeitung des angeforderten Vorgangs zu verwenden.

    Das Basissystem ServiceNow stellt Arbeitsvorgangs-Handler und Nachrichtenumwandler bereit, die die Verbindung mit Amazon Connect ermöglichen. Bei der Erstellung von Kontakt-Flows in Amazon Connect gibt es zwei Integrationspunkte zwischen Amazon-Services und einer ServiceNow -Instanz:
    • Amazon Web Services (AWS) Lambda Proxy (AWS Lambda-Funktion aufrufen)
    • AWS Lex-Bot (Kundeneingabe abrufen)
    Die für diese Integrationspunkte verfügbaren Vorgangshandler und Nachrichtenumwandler finden Sie in den Tabellen „Vorgangshandler“ [sn_cti_operation_handler] und „Anbieter-Nachrichtenumwandler“ [sn_cti_provider_msg_transformer].

    Eine Nutzlast wird von einer externen Quelle an eine Instanz ServiceNow übergeben, z. B. von einem Anbieter von Computer-Telefonie-Integrationen (CTI), der eine Vorgangsanforderung sendet. Wenn eine Anforderung empfangen wird, analysiert ein Nachrichtenumwandler die Nutzlast und verwendet die festgelegten CTIOperationRequest-Methoden, um Nutzlastwerte, z. B. den Namen des Vorgangshandlers, auf ein vorgangs- und kontaktspezifisches CTIOperationRequest-Objekt festzulegen.

    Das folgende Nachrichtenumwandlerskript analysiert beispielsweise die übergebene JSON-Nutzlast und legt die Werte fest, die für den zugeordneten Vorgangshandler für das CTIOperationRequest-Objekt erforderlich sind.

    {	
      try {
        var jsonPayload = httpRequest.body.data;
        if (jsonPayload) {
    	var event = jsonPayload.event;
    	if (event) {
    	  var details = event.Details;
    	  if (details) {					
    	    operationRequest.setOperationName(details.Parameters['sn_operation']);
    	    var contactData = details.ContactData;
    	    if(contactData) {
    		// Call id should be surfaced in openframe call log so it can be tied to transcription later
    		operationRequest.setParameter('contact.call_id', contactData.ContactId);
    		for(var ck in contactData.CustomerEndpoint) {
    		  operationRequest.setParameter('contact.' + ck, contactData.CustomerEndpoint[ck]);
    	       }
    	       operationRequest.setParameter('contact.id', contactData.ContactId);
    	       operationRequest.setParameter('contact.phone', contactData.CustomerEndpoint.Address);
    	    }
    	    var parameters = details.Parameters;
    	    if (parameters) {
    		for (var pk in parameters) {
    		  switch(pk) {
    		    case 'interactionId':
    			operationRequest.setInteractionSysId(parameters[pk]);
    			break;
    		    case 'authToken':
    			operationRequest.setAuthToken(parameters[pk]);
    			break;
    		    case 'language':
    			operationRequest.setLanguage(parameters[pk]);
    			break;
    								
    		    default:
    			operationRequest.setParameter(pk, parameters[pk]);
    		 }						
                }
              }					
            }
          }
        }
      } catch(e) {
    		ctx.setError(e);
      }
    })(httpRequest, operationRequest, ctx);

    Nachdem der Nachrichtenumwandler die Analyse der übergebenen Nutzlast abgeschlossen hat, instanziiert das Framework ServiceNow Sprachfunktionen den angegebenen Vorgangs-Handler. Der Betriebshandler verwendet die CTIOperationResponse- Skripteinbindungs-Methoden zum Abrufen der Informationen, die er vom zugeordneten CTIOperationRequest-Objekt benötigt, um den angeforderten Vorgang zu verarbeiten.

    Das folgende Vorgangs-Handler-Skript speichert beispielsweise Werte, die für das Objekt CTIOperationRequest in dem Interaktionsdatensatz festgelegt wurden, der dem Anruf zugeordnet ist.

    (function(/*CTIOperationRequest*/ request, /*CTIOperationResponse*/ response, ctx) {
      // Returns the sys_id of the interaction record.
      var interactionSysId = request.getInteractionSysId();
      var number = request.getParameter('number');
      var addComment = request.getParameter('add_comment');
      addComment = addComment ? addComment.toLowerCase() : addComment;
      addComment = 'yes' === addComment || 'true' === addComment || '1' === addComment;
      var workNotes = request.getParameter('work_notes');
      var message = gs.getMessage('Thankyou');
      var interactionGr = request.getInteractionRecord();
      var openedFor = interactionGr ? interactionGr.getValue('opened_for') : null;
      if (openedFor && number && addComment && workNotes) {
        var now_GR = new GlideRecordSecure('incident');
        now_GR.addQuery('caller_id', openedFor);
        now_GR.addQuery('number', number);
        now_GR.query();
        if (now_GR.next()) {
          now_GR.work_notes += workNotes;
          now_GR.update();
          message = now_GR.getMessage('Your comment was added');
        }
      }
      response.setStatusCode(200);
      response.setMessage(message);
    })(request, response, ctx);

    Weitere Informationen zum Erstellen von Vorgangshandlern finden Sie unter Kontakt-Flow für automatisierte Anruferinteraktion konfigurieren.

    Diese Skripteinbindung wird im Namespace sn_cti_core ausgeführt. Bevor Sie auf die Skripteinbindung CTIOperationRequest zugreifen können, muss das Plugin ServiceNow Sprachfunktionen (sn_cti_core) aktiviert werden. Informationen zur Aktivierung von ServiceNow Sprachfunktionenfinden Sie unter ServiceNow-Sprachanwendungen installieren.

    Weitere Informationen zu ServiceNow Sprachfunktionenfinden Sie unter ServiceNow-Sprachfunktionen.

    CTIOperationRequest: CTIOperationRequest (Zeichenfolgeursprung)

    Instanziiert ein CTIOperationRequest-Objekt.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    origin Zeichenfolge Optional. Ursprung der Anforderung. Normalerweise der Name des Anbieters der Computer-Telefonie-Integration.

    Standard: null

    var request = new sn_cti_core.CTIOperationRequest('AWS Connect');
    request.setSessionAttribute('contact.phone', '+15552222345');
    request.setSessionAttribute('contact.okToCall', true);
    request.setSessionAttribute('contact.address', {
        street: '1234 Main St'
        city: 'API City',
        zip: 91335
    });

    CTIOperationRequest – getAuthToken()

    Gibt den Authentifizierungstokensatz für das zugeordnete CTIOperationRequest-Objekt zurück.

    Dieses Token wird vom Framework ServiceNow Sprachfunktionen verwendet, um den aktuellen Anwender ServiceNow Sprachfunktionen zu authentifizieren, bevor der angeforderte Vorgangshandler ausgeführt wird, wenn die Kennzeichnung auth_required des Handlers auf „wahr“ festgelegt ist. Die Kennzeichnung auth_required ist ein Feld in der Tabelle „Vorgangs-Handler“ [sn_cti_operation_handler]. Die Lebensdauer eines Authentifizierungstokens sollte für die Lebensdauer der Anrufsitzung gelten, wird jedoch vom CTI-Anbieter festgelegt.

    Sie können definieren, welche Authentifizierungs-/Autorisierungsbehandlung für Ihre -Implementierung erforderlich ist, indem Sie einen eigenen Handler für Authentifizierungsvorgänge erstellen. Unabhängig davon, wie das Authentifizierungstoken generiert wird, muss der Nachrichtenübersetzer das Token in der CTI-Nutzlast zurückgeben. Darüber hinaus muss der CTI-Anbieter dieses Authentifizierungstoken lokal speichern und in jeder Vorgangsanforderung übergeben, die eine Authentifizierung erfordert.

    Bei Verwendung des von der Instanz bereitgestellten Handlers für den Authentifizierungsvorgang initiiert der -Handler die Erstellung des Authentifizierungstokens basierend auf einer vierstelligen, vom Anwender eingegebenen PIN. Anschließend wird das Authentifizierungstoken im Objekt „sessionAttributes“ des Objekts „CTIOperationResponse“ festgelegt. Der zugeordnete Nachrichtenumwandler übersetzt das Objekt „sessionAttributes“ in die CTI-spezifische Nutzlast und sendet sie dann an den CTI-Anbieter.

    Hinweis:
    Wenn das Authentifizierungstoken nicht übergeben wird, schlagen alle Anforderungen zum Ausführen von Vorgangshandlern mit festgelegter Kennzeichnung auth_required fehl. Wenn Sie keine Authentifizierung verwenden, müssen Sie keine Authentifizierungstoken verwalten.
    Das Basissystem ServiceNow stellt Arbeitsvorgangs-Handler und Nachrichtenumwandler bereit, die die Verbindung mit Amazon Connect ermöglichen. Bei der Erstellung von Kontakt-Flows in Amazon Connect gibt es zwei Integrationspunkte zwischen Amazon-Services und einer ServiceNow -Instanz:
    • Amazon Web Services (AWS) Lambda Proxy (AWS Lambda-Funktion aufrufen)
    • AWS Lex-Bot (Kundeneingabe abrufen)
    Die für diese Integrationspunkte verfügbaren Vorgangshandler und Nachrichtenumwandler finden Sie in den Tabellen „Vorgangshandler“ [sn_cti_operation_handler] und „Anbieter-Nachrichtenumwandler“ [sn_cti_provider_msg_transformer].
    Tabelle : 2. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 3. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Das Authentifizierungstoken, das dem aktuellen Anwender ServiceNow Sprachfunktionen zugeordnet ist.
    (function( /*CTIProviderResponseExecutionContext*/ ctx, /*CTIOperationRequest*/ operationRequest, /*CTIOperationResponse*/ operationResponse, /*HTTPResponse*/ httpResponse) {
      var sessionAttributes = {},
          intentResponse;
      var statusCode = -1;
      var message = 'Unprocessed';
      if (operationResponse) {
        statusCode = operationResponse.getStatusCode();
        sessionAttributes = operationResponse.getSessionAttributes();
        message = operationResponse.getMessage();
        var error = operationResponse.getError();
        if (error) {
          sessionAttributes.error = error;
        }
      }
      if (sn_cti_core.CTIRequestDispatcher.Constants.HTTP.Status.AUTH_REQUIRED.code === statusCode) {
        //first call for a secure action without authentication token
        sessionAttributes.statusCode = 401;
        sessionAttributes.message = message;
        intentResponse = {
          sessionAttributes: sessionAttributes,
          dialogAction: {
            type: 'Close',
            fulfillmentState: 'Fulfilled',
            message: {
              contentType: 'PlainText',
              content: 'This operation requires authentication. Say authenticate for authentication.'
            }
          }
        };
      } else if ('DialogCodeHook' === operationRequest.getParameter('$$invocationSource')) {
          //pass back authToken and interactionId
          sessionAttributes.authToken = operationRequest.getAuthToken();
          sessionAttributes.interactionId = operationRequest.getInteractionSysId();
          var originalSlots = operationRequest.getParameter('$$slots');
          var responseParameters = operationResponse ? operationResponse.getParameters() : {};
          responseParameters = responseParameters ? responseParameters : {};
          // See if processing happened and we got a dialogAction
          var responseDialogAction = responseParameters['dialogAction'];
          // Default dialog action
          var dialogAction = {
            type: 'Delegate',
            slots: originalSlots
          };
          // If the response doesn't contain an override replay the inputs
          if (responseDialogAction) {
            // We bypassed dialoghook so delegate and pass through inputs
            dialogAction = responseDialogAction;
          }
          intentResponse = {
            sessionAttributes: sessionAttributes,
            dialogAction: dialogAction
          };
      } else {
        // Override required session attributes
        sessionAttributes.statusCode = statusCode;
        sessionAttributes.message = message;
        // Build response template
        intentResponse = {
          sessionAttributes: sessionAttributes,
          dialogAction: {
            type: 'Close',
            fulfillmentState: 'Fulfilled',
            message: {
              contentType: 'PlainText',
              content: message
            }
          }
        };
      }
      httpResponse.setBody(intentResponse);
    })(ctx, operationRequest, operationResponse, httpResponse);

    CTIOperationRequest – getInteractionRecord()

    Gibt den Interaktions-GlideRecord zurück, der der Vorgangsanforderung zugeordnet ist.

    Eine Interaktion stellt eine Kundenanforderung nach Unterstützung dar, die im Chat, per Telefon oder persönlich gestellt wird. Interaktionen können zur Zuweisung an Warteschlangen weitergeleitet oder direkt Service Desk-Mitarbeitern zugewiesen werden. Interaktionsdatensätze werden in der Interaktionstabelle [interaction] gespeichert und können alle Arten von Daten enthalten, die Service-Account-Interaktionen mit einem Kunden für eine bestimmte Sitzung beschreiben.

    Interaktionsdatensätze werden über die Methode „CTIOperationRequest - setInteractionSysId(String Id)“ einem CTIOperationRequest-Objekt zugeordnet. Diese Methode wird normalerweise vom Nachrichtenumwandler aufgerufen und muss vor dem Aufrufen der getInteractionRecord()- Methode aufgerufen werden.

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 5. Ergebnisse
    Typ Beschreibung
    GlideRecord GlideRecord-Objekt der Interaktion, das dem aktuellen CTIOperationRequest-Objekt zugeordnet ist. Wenn die sys_id des Interaktionsdatensatzes nicht für das CTIOperationRequest-Objekt festgelegt wurde, wird NULL zurückgegeben.
    (function(/*CTIOperationRequest*/ request, /*CTIOperationResponse*/ response, /*Context*/ ctx) {	
      var notes = '', lang = request.getLanguage();
      try { 
        // Returns the interaction record (GlideRecord) set on the passed in CTIOperationRequest object		
        var interactionGr = request.getInteractionRecord();
    
        var now_GR = new GlideRecord('sys_user');
        if(interactionGr && now_GR.get(interactionGr.opened_for.toString())) {	
        if(now_GR.locked_out == true) {
            notes += gs.getMessageLang("User record found locked. Unlocking the account.\n", lang);
            now_GR.locked_out=false;
            now_GR.update();
            response.setStatusCode(200);
            response.setMessage(gs.getMessageLang("Your account has been unlocked.", lang));
          } else {
            notes += gs.getMessageLang("User record not locked.\n", lang);
            response.setStatusCode(200);
            response.setMessage(gs.getMessageLang("Your account doesn't seem to be locked.", lang));
          }	
        } else {
          notes += gs.getMessageLang("User record not found. Transfer to agent\n", lang);
          response.setStatusCode(302);
          response.setMessage(gs.getMessageLang("I am unable to find your record. Let me transfer to someone who can help.", lang));
        }
        if(interactionGr) {
          interactionGr.work_notes = notes;
          interactionGr.update();
        }
      } catch(e) {
        ctx.setError(e);
      }
    })(request, response, ctx);

    CTIOperationRequest – getInteractionSysId()

    Gibt die sys_id des Interaktionsdatensatzes zurück, der dem aktuellen CTIOperationRequest-Objekt zugeordnet ist.

    Die Methode „CTIOperationRequest - setInteractionSysId(String Id)“ muss vor dem Aufrufen dieser Methode aufgerufen worden sein.

    Tabelle : 6. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 7. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Die sys_id des Interaktionsdatensatzes, der für das aktuelle CTIOperationRequest-Objekt festgelegt ist.

    Wenn die sys_id für das zugeordnete CTIOperationRequest-Objekt nicht festgelegt wurde, gibt die Methode NULL zurück.

    (function( /*CTIOperationRequest*/ request, /*CTIOperationResponse*/ response, ctx) {
      // Returns the sys_id of the interaction record associated with the CTIOperationRequest object.
      var interactionSysId = request.getInteractionSysId();
      var number = request.getParameter('number');
      var addComment = request.getParameter('add_comment');
      addComment = addComment ? addComment.toLowerCase() : addComment;
      addComment = 'yes' === addComment || 'true' === addComment || '1' === addComment;
      var workNotes = request.getParameter('work_notes');
      var message = gs.getMessage('Thankyou');
      var interactionGr = request.getInteractionRecord();
      var openedFor = interactionGr ? interactionGr.getValue('opened_for') : null;
      if (openedFor && number && addComment && workNotes) {
        var now_GR = new GlideRecordSecure('incident');
        now_GR.addQuery('caller_id', openedFor);
        now_GR.addQuery('number', number);
        now_GR.query();
        if (now_GR.next()) {
        now_GR.work_notes += workNotes;
        now_GR.update();
          message = gs.getMessage('Your comment was added');
        }
      }
      response.setStatusCode(200);
      response.setMessage(message);
    })(request, response, ctx);

    CTIOperationRequest – getLanguage()

    Gibt den ISO 639.1-Sprachcode zurück, der für das aktuelle CTIOperationRequest-Objekt festgelegt wurde.

    Wenn Sie die vom Kunden bevorzugte Sprache verwenden, können Sie die von der Plattform bereitgestellten Internationalisierungs- und Lokalisierungsfunktionen verwenden, um Nachrichten und andere Kommunikation mit dem zugehörigen Anrufer anzupassen.

    Normalerweise ruft ein Vorgangshandler die Methode „getLanguage()“ auf, und der Nachrichtenumwandler legt die Sprache für das Objekt „CTIOperationRequest“ fest, indem er die Methode „CTIOperationRequest - setLanguage(String LanguageCode)“ aufruft.

    Tabelle : 8. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 9. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Der ISO 639.1-Sprachcode für das aktuelle CTIOperationRequest-Objekt. Wenn der Sprachcode nicht festgelegt ist, wird enzurückgegeben.

    Das folgende Beispiel zeigt einen Vorgangshandler, der getLanguage() aufruft, um die bevorzugte Sprache des Anrufers abzurufen.

    (function(/*CTIOperationRequest*/ request, /*CTIOperationResponse*/ response) {
      // Obtain the contact's preferred language
      var notes = "", announcement, lang = request.getLanguage();
      try {
    		
        var interactionGr = request.getInteractionRecord();
    		
        announcement = gs.getMessageLang("We are currently experiencing issues with VPN. If you are calling about VPN issues, you may hang up the call.", lang);
        // Use the contact's language to customize the response messages and notes	
        if(announcement) {	
          notes = gs.getMessageLang("Listened to announcement: {0}", lang, [announcement]);
          response.setStatusCode(200);
        } else {
          announcement = gs.getMessageLang("There are currently no known outage announcements", lang);
          //use the status case as the flag to check for announcements in contact flow
          response.setStatusCode(404);
        }			
        response.setMessage(announcement);	
    			
        if(interactionGr && notes) {			
          interactionGr.work_notes = notes;		
          interactionGr.update();
        }
    		
      } catch(e) {
        ctx.setError(e);
      }
    
    })(request, response);

    CTIOperationRequest – getMajorVersion()

    Gibt die Hauptversion des Softwaresatzes für Computer-Telefonie-Integratoren (CTI) für das aktuelle CTIOperationRequest-Objekt zurück.

    Verwenden Sie diese Methode, wenn die mit Ihrer Instanz ServiceNow verbundenen CTI-Anbieter mehrere Versionen ihrer Software ausführen, da unterschiedliche Softwareversionen ein unterschiedliches Verarbeitungsverhalten erfordern können. Wenn sich das Verarbeitungsverhalten zwischen den Softwareversionen nur geringfügig unterscheidet, kann es sinnvoll sein, nur einen einzigen Vorgangshandler zu verwenden. Sie können dann die Verarbeitungsunterschiede behandeln, indem Sie einfach die Version der Software überprüfen, von der die Anforderung gestellt wird, und die Anforderung/Daten in Ihrem Vorgangs-Handler verarbeiten. Wenn sich die erforderliche Verarbeitung zwischen den Versionen erheblich unterscheidet, kann es effektiver sein, mehrere Vorgangshandler zu verwenden.

    Normalerweise legt der Nachrichtenumwandler die Softwareversion für das CTIOperationRequest-Objekt fest, indem er die Methode CTIOperationRequest - setMajorVersion(Number majorVersion) aufruft. Ein Vorgangs-Handler verbraucht dann den festgelegten Wert mit dieser Methode. Sie können den Wert der Nebenversion der Software eines Anbieters auch mit den Methoden CTIOperationRequest - getMinorVersion() und CTIOperationRequest - setMinorVersion(Number majorVersion) abrufen/festlegen.

    Tabelle : 10. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 11. Ergebnisse
    Typ Beschreibung
    Nummer Nummer der Hauptversion der CTI-Software.

    Wenn die Hauptversion nie festgelegt wurde, wird 1zurückgegeben.

    var request = new sn_cti_core.CTIOperationRequest('origin');
    var majorVersion = request.getMajorVersion();

    CTIOperationRequest – getMinorVersion()

    Gibt die Nebenversion der Software „Computer Teletelefony Integration“ (CTI) zurück, die einem CTIOperationRequest-Objekt zugeordnet ist.

    Verwenden Sie diese Methode, wenn die mit Ihrer Instanz ServiceNow verbundenen CTI-Anbieter mehrere Versionen ihrer Software ausführen, da unterschiedliche Softwareversionen ein unterschiedliches Verarbeitungsverhalten erfordern können. Wenn sich das Verarbeitungsverhalten zwischen den Softwareversionen nur geringfügig unterscheidet, kann es sinnvoll sein, nur einen einzigen Vorgangshandler zu verwenden. Sie können dann die Verarbeitungsunterschiede behandeln, indem Sie einfach die Version der Software überprüfen, von der die Anforderung gestellt wird, und die Anforderung/Daten in Ihrem Vorgangs-Handler verarbeiten. Wenn sich die erforderliche Verarbeitung zwischen den Versionen erheblich unterscheidet, kann es effektiver sein, mehrere Vorgangshandler zu verwenden.

    Normalerweise legt der Nachrichtenumwandler die Softwareversion für das CTIOperationRequest-Objekt fest, indem er die Methode „CTIOperationRequest - setMinorVersion(Number minderVersion)“ CTIOperationRequest – setMinorVersion(Number minderVersion) aufruft. Ein Vorgangs-Handler verbraucht dann den festgelegten Wert mit dieser Methode. Sie können den Wert der Hauptversion der Software eines Anbieters auch mit den Methoden CTIOperationRequest - getMajorVersion() CTIOperationRequest – getMajorVersion() und CTIOperationRequest - setMajorVersion(Number majorVersion) CTIOperationRequest – setMajorVersion(Number majorVersion) abrufen/festlegen.

    Tabelle : 12. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 13. Ergebnisse
    Typ Beschreibung
    Nummer Nebenversionsnummer der CTI-Software.

    Wenn die Nebenversion nie festgelegt wurde, wird 0zurückgegeben.

    var request = new sn_cti_core.CTIOperationRequest('origin');
    var minorVersion = request.getMinorVersion();

    CTIOperationRequest – getOperationName()

    Gibt den Namen des Vorgangs zurück, dessen Ausführung der Anbieter der Computer-Telefonie-Integration (CTI) anfordert.

    Der Vorgangsname bestimmt den Vorgangs-Handler, der zur Verarbeitung einer Anforderung verwendet wird. Normalerweise legt der Nachrichtenumwandler den Vorgangsnamen für das CTIOperationRequest-Objekt mithilfe der Methode CTIOperationRequest - setOperationName(String name) fest.

    Hinweis:
    Die getOperationName() -Methode instanziiert den zugehörigen Vorgangs-Handler nicht. Dies geschieht durch das Framework ServiceNow Sprachfunktionen. Diese Methode gibt einfach den Namen des zugehörigen Vorgangs-Handlers zurück.
    Hinweis:
    Bei Implementierungen des Amazon Connect Lex-Bots werden Absichtsnamen mit einem Suffix aus fünf Buchstaben angehängt, da verschiedene Amazon-Absichten nicht denselben Absichtsnamen haben können. Im Framework ServiceNow Sprachfunktionen entspricht der Name der Absicht dem Namen des Vorgangshandlers. Ein Vorgangs-Handler kann entweder spezifisch für eine Absicht sein und einen Vorgangs-Handler-Namen haben, der dieses Suffix (myOperation_SUFFX) enthält, oder er kann generisch sein und von mehreren CTI-Anbietern oder verschiedenen Anwendungsfällen verwendet werden, z. B. für die Verwendung desselben Handlers für die Verarbeitung einer HR -Anforderung und eine Helpdesk-Anforderung (myOperation).
    Tabelle : 14. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 15. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Der Name des Vorgangs, dessen Ausführung der CTI-Anbieter anfordert. Wenn der Vorgangsname nicht festgelegt ist, wird NULL zurückgegeben.
    var request = new sn_cti_core.CTIOperationRequest('origin');
    var name = request.getOperationName();
    

    CTIOperationRequest – getOperationSubStepName()

    Gibt den Namen des Teilschrittvorgangs-Handlers zurück, der für das aktuelle CTIOperationRequest-Objekt festgelegt ist.

    Verwenden Sie Unterschritte, um Aktionen wie Initialisieren und Validieren auszuführen, bevor Sie einen Vorgang verarbeiten. Im Gegensatz zu Vorgangshandlern, die generisch sind und von allen CTI-Anbietern verwendet werden, sind Unterschritte spezifisch für CTI-Anbieter und verwenden Terminologie und Namenskonventionen, die für den CTI-Anbieter spezifisch sind.

    Das Framework ServiceNow Sprachfunktionen führt die folgenden Schritte aus, um den erforderlichen Vorgangs-Handler und alle zugehörigen Unterschritt-Vorgangs-Handler zu finden.
    Hinweis:
    Bei Implementierungen des Amazon Connect Lex-Bots werden Absichtsnamen mit einem Suffix aus fünf Buchstaben angehängt, da verschiedene Amazon-Absichten nicht denselben Absichtsnamen haben können. Im Framework ServiceNow Sprachfunktionen entspricht der Name der Absicht dem Namen des Vorgangshandlers. Ein Vorgangs-Handler kann entweder spezifisch für eine Absicht sein und einen Vorgangs-Handler-Namen haben, der dieses Suffix (myOperation_SUFFX) enthält, oder er kann generisch sein und von mehreren CTI-Anbietern oder verschiedenen Anwendungsfällen verwendet werden, z. B. für die Verwendung desselben Handlers für die Verarbeitung einer HR -Anforderung und eine Helpdesk-Anforderung (myOperation).
    1. Versucht, den Vorgangs-Handler zu finden, der der Anforderung zugeordnet ist.
      • Sucht zuerst nach einem Vorgangs-Handler namens myOperation_SUFFX.
      • Falls nicht gefunden, wird nach dem Vorgangs-Handler myOperationgesucht. Falls nicht gefunden, Fehler aus.
    2. Wenn der -Handler gefunden wird, überprüft die Kennzeichnung auth_required im Vorgangs-Handler. Wenn festgelegt, wird überprüft, ob ein gültiges Authentifizierungstoken (abgerufen durch die getAuthToken()- Methode) in der Anforderung vorhanden ist. Wenn vorhanden und gültig, wird die Verarbeitung fortgesetzt, andernfalls wird ein Fehler ausgegeben.
    3. Sucht nach dem Vorgangs-Handler für den übergebenen Unterschritt. Für dieses Beispiel nehmen wir an , subStepName=SubStep.
      • Sucht zuerst nach einem Vorgangs-Handler namens myOperation_SUFFX.SubStep. Wenn gefunden, wird der -Handler ausgeführt.
      • Falls nicht gefunden, wird nach dem Handler myOperation.SubStepgesucht. Wenn gefunden, wird der -Handler ausgeführt.
      • Falls nicht gefunden, wird geprüft, ob für das Anforderungsobjekt ein subStepNotFoundBehavior festgelegt wurde.
      • Wenn festgelegt, wird das Verhalten ausgeführt, andernfalls tritt ein Fehler auf.
    4. Führt den primären Vorgangs-Handler (myOpersation_SUFFX oder myOperation) aus.

    Normalerweise legt der Nachrichtenumwandler den Teilschrittnamen im Objekt „CTIOperationRequest“ mithilfe der Methode „CTIOperationRequest - setOperationSubStepName(String name)“ fest. Sie können dieses Verhalten überschreiben, wenn Sie einen eigenen Umwandler erstellen, indem Sie die Methode CTIOperationRequest - setSubStepNotFoundBehaviour(Object behaviour) aufrufen.

    Tabelle : 16. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 17. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Der Name des Teilschrittvorgangs-Handlers, der für das CTIOperationRequest-Objekt festgelegt ist. Wenn nicht vorhanden, wird NULL zurückgegeben.
    var request = new sn_cti_core.CTIOperationRequest('origin');
    var name = request.getOperationSubStepName();

    CTIOperationRequest – getParameter(Zeichenfolgeschlüssel)

    Gibt den Wert eines angegebenen Schlüssels zurück, der zuvor im aktuellen CTIOperationRequest-Objekt festgelegt wurde.

    Mit den Methoden zum Abrufen/Festlegen von Parametern können praktisch alle Zeichenfolgen- oder Zahlenwerte zwischen einem Nachrichtenumwandler und einem Vorgangshandler übergeben werden. Das Parameterobjekt kann null oder mehr Schlüssel-Wert-Datenpaare enthalten, die direkt mit der aktuellen Vorgangsanforderung korrelieren. Der Vorgangs-Handler bestimmt, welche Schlüssel-Wert-Paare erforderlich sind, wenn diese Werte verbraucht werden. Normalerweise legt der Nachrichtenumwandler diese Parameter für das CTIOperationRequest-Objekt fest, indem er die Methode CTIOperationRequest - setParameter(String key, Object value) aufruft, und der Vorgangs-Handler verbraucht sie mit dieser Methode.

    Tabelle : 18. Parameter
    Name Typ Beschreibung
    key Zeichenfolge Der Name des zurückzugebenden Schlüsselwerts.
    Tabelle : 19. Rückgaben
    Typ Beschreibung
    Zeichenfolge oder Zahl Wert des angegebenen Schlüssels. Wenn kein solcher Schlüssel vorhanden ist, wird NULL zurückgegeben.
    (function( /*CTIOperationRequest*/ request, /*CTIOperationResponse*/ response, ctx) {
      var interactionSysId = request.getInteractionSysId();
      // Returns the number and add_comment parameters from the CTIOperationRequest object
      var number = request.getParameter('number');
      var addComment = request.getParameter('add_comment');
      addComment = addComment ? addComment.toLowerCase() : addComment;
      addComment = 'yes' === addComment || 'true' === addComment || '1' === addComment;
      var workNotes = request.getParameter('work_notes');
      var message = gs.getMessage('Thankyou');
      var interactionGr = request.getInteractionRecord();
      var openedFor = interactionGr ? interactionGr.getValue('opened_for') : null;
      if (openedFor && number && addComment && workNotes) {
        var now_GR = new GlideRecordSecure('incident');
        now_GR.addQuery('caller_id', openedFor);
        now_GR.addQuery('number', number);
        now_GR.query();
        if (now_GR.next()) {
        now_GR.work_notes += workNotes;
        now_GR.update();
          message = gs.getMessage('Your comment was added');
        }
      }
      response.setStatusCode(200);
      response.setMessage(message);
    })(request, response, ctx);

    CTIOperationRequest – getParameters()

    Gibt die Schlüssel-Wert-Paare für alle Parameter zurück, die zuvor für das aktuelle CTIOperationRequest-Objekt festgelegt wurden.

    Mit den Methoden zum Abrufen/Festlegen von Parametern können praktisch alle Zeichenfolgen- oder Zahlenwerte zwischen einem Nachrichtenumwandler und einem Vorgangshandler übergeben werden. Das Parameterobjekt kann null oder mehr Schlüssel-Wert-Datenpaare enthalten, die direkt mit der aktuellen Vorgangsanforderung korrelieren. Der Vorgangs-Handler bestimmt, welche Schlüssel-Wert-Paare erforderlich sind, wenn diese Werte verbraucht werden. Normalerweise legt der Nachrichtenumwandler diese Parameter für das CTIOperationRequest-Objekt fest, indem er die Methode CTIOperationRequest - setParameter(String key, Object value) aufruft, und der Vorgangs-Handler verbraucht sie mit dieser Methode.

    Tabelle : 20. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 21. Ergebnisse
    Typ Beschreibung
    Objekt Eine Zuordnung von Schlüssel-Wert-Paaren, die zuvor für das CTIOperationRequest-Objekt festgelegt wurden. Diese Schlüssel-Wert-Paare sind Freiform-Paare und werden durch die Anforderungen des Vorgangs-Handlers definiert. Die zurückgegebenen Werte sind entweder Zeichenfolgen oder Zahlen.
    var request = new sn_cti_core.CTIOperationRequest('origin');
    var parms = request.getParameters();
    for(var key in parms) {
        gs.info(key + '=' + parms[key]);
    }

    CTIOperationRequest – getSessionAttribute(Zeichenfolgeschlüssel)

    Gibt den Wert eines angegebenen Sitzungsattributschlüssels zurück, der für das aktuelle CTIOperationRequest-Objekt festgelegt ist.

    Mit den Methoden zum Abrufen/Festlegen von Sitzungsattributen können praktisch alle Zeichenfolgen- oder Zahlenwerte zwischen einem Nachrichtenumwandler und einem Vorgangshandler übergeben werden. Das SessionAttribute-Objekt kann null oder mehr Schlüssel-Wert-Datenpaare enthalten, die für die Dauer einer von einem Anbieter für Computer-Telefonie-Integrationen definierten Sitzung gültig sind, z. B. die Telefonnummer des Kontakts. Auf Sitzungsattribute kann auch innerhalb eines Kontakt-Flows zugegriffen werden. Der Vorgangs-Handler bestimmt, welche Schlüssel-Wert-Paare für Sitzungsattribute erforderlich sind, da er diese Werte verbraucht. Normalerweise legt der Nachrichtenumwandler diese Attribute für das Objekt CTIOperationRequest fest, indem er die Methode CTIOperationRequest - setSessionAttribute(String key, Object value) aufruft. Sitzungsattribute unterscheiden sich von Parametern insofern, als sie während der gesamten Sitzungsdauer (z. B. während des gesamten Anrufs) erhalten bleiben und vom CTI-Anbieter bei jeder Vorgangsanforderung innerhalb dieser Anrufsitzung zurückgegeben werden sollten.

    Tabelle : 22. Parameter
    Name Typ Beschreibung
    key Zeichenfolge Der Name des zurückzugebenden Schlüsselwerts.
    Tabelle : 23. Rückgaben
    Typ Beschreibung
    Zeichenfolge oder Zahl Wert des angegebenen Schlüssels. Wenn kein solcher Schlüssel vorhanden ist, wird NULL zurückgegeben.
    var request = new sn_cti_core.CTIOperationRequest('origin');
    var phoneAttribute = request.getSessionAttribute('contact.phone');

    CTIOperationRequest – getSessionAttributes()

    Gibt eine Schlüssel-Wert-Paarzuordnung aller Sitzungsattribute zurück, die für das aktuelle CTIOperationRequest-Objekt festgelegt sind.

    Mit den Methoden zum Abrufen/Festlegen von Sitzungsattributen können praktisch alle Zeichenfolgen- oder Zahlenwerte zwischen einem Nachrichtenumwandler und einem Vorgangshandler übergeben werden. Das SessionAttribute-Objekt kann null oder mehr Schlüssel-Wert-Datenpaare enthalten, die für die Dauer einer von einem Anbieter für Computer-Telefonie-Integrationen definierten Sitzung gültig sind, z. B. die Telefonnummer des Kontakts. Auf Sitzungsattribute kann auch innerhalb eines Kontakt-Flows zugegriffen werden. Der Vorgangs-Handler bestimmt, welche Schlüssel-Wert-Paare für Sitzungsattribute erforderlich sind, da er diese Werte verbraucht. Normalerweise legt der Nachrichtenumwandler diese Attribute für das Objekt CTIOperationRequest fest, indem er die Methode CTIOperationRequest - setSessionAttribute(String key, Object value) aufruft. Sitzungsattribute unterscheiden sich von Parametern insofern, als sie während der gesamten Sitzungsdauer (z. B. während des gesamten Anrufs) erhalten bleiben und vom CTI-Anbieter bei jeder Vorgangsanforderung innerhalb dieser Anrufsitzung zurückgegeben werden sollten.

    Tabelle : 24. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 25. Ergebnisse
    Typ Beschreibung
    Objekt Eine Zuordnung von Schlüssel-Wert-Paaren für Sitzungsattribute, die für das zugeordnete CTIOperationResponse-Objekt festgelegt wurden. Diese Zuordnung ist eine Freiformzuordnung und wird durch die Anforderungen des Vorgangs-Handlers definiert.
    var request = new sn_cti_core.CTIOperationRequest('origin');
    var parms = request.getSessionAttributes();
    for(var key in parms) {
        gs.info(key + '=' + parms[key]);
    }

    CTIOperationRequest – getSubStepNotFoundBehaviour

    Gibt das Verarbeitungsverhalten für einen Unterschritt zurück, wenn der Vorgangs-Handler eines Unterschritts nicht gefunden wurde.

    Verwenden Sie Unterschritte, um Aktionen wie Initialisieren und Validieren auszuführen, bevor Sie einen Vorgang verarbeiten. Im Gegensatz zu Vorgangshandlern, die generisch sind und von allen CTI-Anbietern verwendet werden, sind Unterschritte spezifisch für CTI-Anbieter und verwenden Terminologie und Namenskonventionen, die für den CTI-Anbieter spezifisch sind.

    Wenn der Handler für den angeforderten Teilschrittvorgang vom Framework ServiceNow Sprachfunktionen nicht gefunden werden kann, wird versucht, das Verhalten „Schritt nicht gefunden“ zu verwenden. Dieses Verhalten wird normalerweise vom Nachrichtenumwandler festgelegt, wenn ein Vorgang zum ersten Mal angefordert wird.

    Tabelle : 26. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 27. Ergebnisse
    Typ Beschreibung
    OperationNotFoundBehaviours Das auszuführende Verhalten/die auszuführende Behandlung, wenn für die Kombination aus Vorgang und Unterschritt (<operation_name>.SubStep>) kein Vorgangshandler gefunden werden soll. Wenn nicht definiert, wird null zurückgegeben.
    Mögliche Werte:
    • OperationNotFoundBehaviours.ThrowError: Löst einen Fehler aus.
    • OperationNotFoundBehaviours.PassThrough: Es wird keine weitere Verarbeitung der Anforderung durchgeführt, nur die Rückgabe erfolgt.
    • OperationNotFoundBehaviours.RouteToOperation: Übergeordneten Vorgangs-Handler <operation_name>verwenden.
    var request = new sn_cti_core.CTIOperationRequest('origin');
    var behavior = request.getSubStepNotFoundBehaviour();

    CTIOperationRequest – setAuthToken(String id)

    Legt ein Authentifizierungstoken für das aktuelle CTIOperationRequest-Objekt fest.

    Dieses Token wird vom Framework ServiceNow Sprachfunktionen verwendet, um den aktuellen Anwender ServiceNow Sprachfunktionen zu authentifizieren, bevor der angeforderte Vorgangshandler ausgeführt wird, wenn die Kennzeichnung auth_required des Handlers auf „wahr“ festgelegt ist. Die Kennzeichnung auth_required ist ein Feld in der Tabelle „Vorgangs-Handler“ [sn_cti_operation_handler]. Die Lebensdauer eines Authentifizierungstokens sollte für die Lebensdauer der Anrufsitzung gelten, wird jedoch vom CTI-Anbieter festgelegt.

    Sie können definieren, welche Authentifizierungs-/Autorisierungsbehandlung für Ihre -Implementierung erforderlich ist, indem Sie einen eigenen Handler für Authentifizierungsvorgänge erstellen. Unabhängig davon, wie das Authentifizierungstoken generiert wird, muss der Nachrichtenübersetzer das Token in der CTI-Nutzlast zurückgeben. Darüber hinaus muss der CTI-Anbieter dieses Authentifizierungstoken lokal speichern und in jeder Vorgangsanforderung übergeben, die eine Authentifizierung erfordert.

    Bei Verwendung des von der Instanz bereitgestellten Handlers für den Authentifizierungsvorgang initiiert der -Handler die Erstellung des Authentifizierungstokens basierend auf einer vierstelligen, vom Anwender eingegebenen PIN. Anschließend wird das Authentifizierungstoken im Objekt „sessionAttributes“ des Objekts „CTIOperationResponse“ festgelegt. Der zugeordnete Nachrichtenumwandler übersetzt das Objekt „sessionAttributes“ in die CTI-spezifische Nutzlast und sendet sie dann an den CTI-Anbieter.

    Hinweis:
    Wenn das Authentifizierungstoken nicht übergeben wird, schlagen alle Anforderungen zum Ausführen von Vorgangshandlern mit festgelegter Kennzeichnung auth_required fehl. Wenn Sie keine Authentifizierung verwenden, müssen Sie keine Authentifizierungstoken verwalten.
    Das Basissystem ServiceNow stellt Arbeitsvorgangs-Handler und Nachrichtenumwandler bereit, die die Verbindung mit Amazon Connect ermöglichen. Bei der Erstellung von Kontakt-Flows in Amazon Connect gibt es zwei Integrationspunkte zwischen Amazon-Services und einer ServiceNow -Instanz:
    • Amazon Web Services (AWS) Lambda Proxy (AWS Lambda-Funktion aufrufen)
    • AWS Lex-Bot (Kundeneingabe abrufen)
    Die für diese Integrationspunkte verfügbaren Vorgangshandler und Nachrichtenumwandler finden Sie in den Tabellen „Vorgangshandler“ [sn_cti_operation_handler] und „Anbieter-Nachrichtenumwandler“ [sn_cti_provider_msg_transformer].
    Tabelle : 28. Parameter
    Name Typ Beschreibung
    id Zeichenfolge Das Authentifizierungstoken für den zugeordneten Anwender ServiceNow Sprachfunktionen.
    Tabelle : 29. Rückgaben
    Typ Beschreibung
    void

    Beispiel für ein Nachrichtenumwandlerskript, das das übergebene Authentifizierungstoken speichert.

    {	
      try {
        var jsonPayload = httpRequest.body.data;
        if (jsonPayload) {
    	var event = jsonPayload.event;
    	if (event) {
    	  var details = event.Details;
    	  if (details) {					
    	    operationRequest.setOperationName(details.Parameters['sn_operation']);
    	    var contactData = details.ContactData;
    	    if(contactData) {
    		// Call id should be surfaced in openframe call log so it can be tied to transcription later
    		operationRequest.setParameter('contact.call_id', contactData.ContactId);
    		for(var ck in contactData.CustomerEndpoint) {
    		  operationRequest.setParameter('contact.' + ck, contactData.CustomerEndpoint[ck]);
    	       }
    	       operationRequest.setParameter('contact.id', contactData.ContactId);
    	       operationRequest.setParameter('contact.phone', contactData.CustomerEndpoint.Address);
    	    }
    	    var parameters = details.Parameters;
    	    if (parameters) {
    		for (var pk in parameters) {
    		  switch(pk) {
    		    case 'interactionId':
    			operationRequest.setInteractionSysId(parameters[pk]);
    			break;
    		    case 'authToken':
    			operationRequest.setAuthToken(parameters[pk]);
    			break;
    		    case 'language':
    			operationRequest.setLanguage(parameters[pk]);
    			break;
    		    case 'statusCode':
    		    case 'message':
    			break;
    								
    		    default:
    			operationRequest.setParameter(pk, parameters[pk]);
    		 }						
                }
              }					
            }
          }
        }
      } catch(e) {
    		ctx.setError(e);
      }
    })(httpRequest, operationRequest, ctx);

    CTIOperationRequest – setInteractionSysId(Zeichenfolgen-ID)

    Legt die sys_id des Interaktionsdatensatzes fest, der der Vorgangsanforderung für das aktuelle CTIOperationRequest-Objekt zugeordnet ist.

    Wenn Sie Kontaktinteraktionsinformationen in einem kontaktspezifischen Interaktionsdatensatz verwalten möchten, muss die sys_id des Interaktionsdatensatzes für die gesamte Anrufsitzung ServiceNow Sprachfunktionen verwaltet werden.

    Normalerweise erstellt ein Vorgangs-Handler einen Interaktionsdatensatz, wenn ein neuer Kontaktanruf initiiert wird. Anschließend werden die sys_id und der Tabellenname des Interaktionsdatensatzes für das zugeordnete CTIOperationResponse-Objekt als Sitzungsattribute festgelegt, indem die Methode CTIOperationRequest - setSessionAttribute(String key, Object value) verwendet wird. Der zugehörige Methodenumwandler übersetzt diese Informationen dann in die Nutzlast des Anbieters Computer-Telefonie-Integration (CTI) und sendet sie an den CTI-Anbieter zurück.

    Der CTI-Anbieter muss die sys_id des Interaktionsdatensatzes für die Kontaktsitzung lokal speichern. Jedes Mal, wenn der CTI-Anbieter mit ServiceNow Sprachfunktionen für diese Kontaktsitzung interagiert, muss er die entsprechende sys_id des Interaktionsdatensatzes in seiner Nutzlast zurückgeben. Der Umwandler für empfangende Nachrichten analysiert dann die Nutzlast und verwendet die Methode CTIOperationRequest - setInteractionSysId(), um die sys_id des Interaktionsdatensatzes für das zugehörige CTIOperationtRequest-Objekt festzulegen.

    Die Methode CTIOperationRequest - getInteractionRecord() verwendet diese sys_id, um den richtigen Interaktionsdatensatz für die Kontaktsitzung abzurufen.

    Tabelle : 30. Parameter
    Name Typ Beschreibung
    sys_id Zeichenfolge Sys_id des Interaktionsdatensatzes, der der Anforderung zugeordnet werden soll.

    Tabelle: Interaktion [interaction]

    Tabelle : 31. Rückgaben
    Typ Beschreibung
    void

    Beispiel für ein Nachrichtenumwandlerskript, das die sys_id des Interaktionsdatensatzes aus der eingehenden Nutzlast extrahiert (als Parameter übergeben) und für das zugehörige CTIOperationRequest-Objekt festlegt.

    {	
      try {
        var jsonPayload = httpRequest.body.data;
        if (jsonPayload) {
    	var event = jsonPayload.event;
    	if (event) {
    	  var details = event.Details;
    	  if (details) {					
    	    operationRequest.setOperationName(details.Parameters['sn_operation']);
    	    var contactData = details.ContactData;
    	    if(contactData) {
    		// Call id should be surfaced in openframe call log so it can be tied to transcription later
    		operationRequest.setParameter('contact.call_id', contactData.ContactId);
    		for(var ck in contactData.CustomerEndpoint) {
    		  operationRequest.setParameter('contact.' + ck, contactData.CustomerEndpoint[ck]);
    	       }
    	       operationRequest.setParameter('contact.id', contactData.ContactId);
    	       operationRequest.setParameter('contact.phone', contactData.CustomerEndpoint.Address);
    	    }
    	    var parameters = details.Parameters;
    	    if (parameters) {
    		for (var pk in parameters) {
    		  switch(pk) {
                     // Associate the existing customer interaction record with the request
    		    case 'interactionId':
    			operationRequest.setInteractionSysId(parameters[pk]);
    			break;
    		    case 'authToken':
    			operationRequest.setAuthToken(parameters[pk]);
    			break;
    		    case 'language':
    			operationRequest.setLanguage(parameters[pk]);
    			break;
    		    case 'statusCode':
    		    case 'message':
    			break;
    								
    		    default:
    			operationRequest.setParameter(pk, parameters[pk]);
    		 }						
                }
              }					
            }
          }
        }
      } catch(e) {
    		ctx.setError(e);
      }
    })(httpRequest, operationRequest, ctx);

    CTIOperationRequest – setLanguage(String LanguageCode)

    Legt den ISO 639.1-Sprachcode fest, der bei der Verarbeitung des zugehörigen Vorgangs für ein CTIOperationRequest-Objekt verwendet werden soll.

    Wenn Sie die vom Kunden bevorzugte Sprache verwenden, können Sie die von der Plattform bereitgestellten Internationalisierungs- und Lokalisierungsfunktionen verwenden, um Nachrichten und andere Kommunikation mit dem zugehörigen Anrufer anzupassen. Normalerweise legt der Nachrichtenumwandler die Sprache für das Objekt CTIOperationRequest fest.

    Tabelle : 32. Parameter
    Name Typ Beschreibung
    LanguageCode Zeichenfolge Der bei der Verarbeitung des zugeordneten Vorgangs zu verwendende ISO 639.1-Sprachcode.
    Tabelle : 33. Rückgaben
    Typ Beschreibung
    void
    {	
      try {
        var jsonPayload = httpRequest.body.data;
        if (jsonPayload) {
    	var event = jsonPayload.event;
    	if (event) {
    	  var details = event.Details;
    	  if (details) {					
    	    operationRequest.setOperationName(details.Parameters['sn_operation']);
    	    var contactData = details.ContactData;
    	    if(contactData) {
    		// Call id should be surfaced in openframe call log so it can be tied to transcription later
    		operationRequest.setParameter('contact.call_id', contactData.ContactId);
    		for(var ck in contactData.CustomerEndpoint) {
    		  operationRequest.setParameter('contact.' + ck, contactData.CustomerEndpoint[ck]);
    	       }
    	       operationRequest.setParameter('contact.id', contactData.ContactId);
    	       operationRequest.setParameter('contact.phone', contactData.CustomerEndpoint.Address);
    	    }
    	    var parameters = details.Parameters;
    	    if (parameters) {
    		for (var pk in parameters) {
    		  switch(pk) {
    		    case 'interactionId':
    			operationRequest.setInteractionSysId(parameters[pk]);
    			break;
    		    case 'authToken':
    			operationRequest.setAuthToken(parameters[pk]);
    			break;
    		    case 'language':
    			operationRequest.setLanguage(parameters[pk]);
    			break;
    		    case 'statusCode':
    		    case 'message':
    			break;
    								
    		    default:
    			operationRequest.setParameter(pk, parameters[pk]);
    		 }						
                }
              }					
            }
          }
        }
      } catch(e) {
    		ctx.setError(e);
      }
    })(httpRequest, operationRequest, ctx);

    CTIOperationRequest – setMajorVersion(Number majorVersion)

    Legt die Hauptversion der Anbietersoftware des Computer-Telefonie-Integrators (CTI) fest, die die Anforderung für das zugehörige CTIOperationRequest-Objekt sendet.

    Verwenden Sie diese Methode, wenn die mit Ihrer Instanz ServiceNow verbundenen CTI-Anbieter mehrere Versionen ihrer Software ausführen, da unterschiedliche Softwareversionen ein unterschiedliches Verarbeitungsverhalten erfordern können. Wenn sich das Verarbeitungsverhalten zwischen den Softwareversionen nur geringfügig unterscheidet, kann es sinnvoll sein, nur einen einzigen Vorgangshandler zu verwenden. Sie können dann die Verarbeitungsunterschiede behandeln, indem Sie einfach die Version der Software überprüfen, von der die Anforderung gestellt wird, und die Anforderung/Daten in Ihrem Vorgangs-Handler verarbeiten. Wenn sich die erforderliche Verarbeitung zwischen den Versionen erheblich unterscheidet, kann es effektiver sein, mehrere Vorgangshandler zu verwenden.

    Normalerweise legt der Nachrichtenumwandler die Softwareversion für das Objekt „CTIOperationRequest“ fest, indem er diese Methode aufruft. Ein Vorgangs-Handler verbraucht dann den festgelegten Wert mithilfe der Methode „CTIOperationRequest - getMajorVersion()“. Sie können den Wert der Nebenversion der Software eines Anbieters auch mit den Methoden CTIOperationRequest - getMinorVersion() und CTIOperationRequest - setMinorVersion(Number majorVersion) abrufen/festlegen.

    Tabelle : 34. Parameter
    Name Typ Beschreibung
    majorVersion Nummer Hauptversion der CTI-Anbietersoftware, von der die Vorgangsanforderung stammt.

    Wenn dieser Wert zuvor nicht festgelegt wurde, wird 1zurückgegeben.

    Tabelle : 35. Rückgaben
    Typ Beschreibung
    void
    var request = new sn_cti_core.CTIOperationRequest('origin');
    request.setMajorVersion(2);

    CTIOperationRequest – setMinorVersion(Number minderVersion)

    Legt die Nebenversion der Anbietersoftware des Computer-Telefonie-Integrators (CTI) fest, die die Anforderung für das zugehörige CTIOperationRequest-Objekt sendet.

    Verwenden Sie diese Methode, wenn die mit Ihrer Instanz ServiceNow verbundenen CTI-Anbieter mehrere Versionen ihrer Software ausführen, da unterschiedliche Softwareversionen ein unterschiedliches Verarbeitungsverhalten erfordern können. Wenn sich das Verarbeitungsverhalten zwischen den Softwareversionen nur geringfügig unterscheidet, kann es sinnvoll sein, nur einen einzigen Vorgangshandler zu verwenden. Sie können dann die Verarbeitungsunterschiede behandeln, indem Sie einfach die Version der Software überprüfen, von der die Anforderung gestellt wird, und die Anforderung/Daten in Ihrem Vorgangs-Handler verarbeiten. Wenn sich die erforderliche Verarbeitung zwischen den Versionen erheblich unterscheidet, kann es effektiver sein, mehrere Vorgangshandler zu verwenden.

    Normalerweise legt der Nachrichtenumwandler die Softwareversion für das Objekt „CTIOperationRequest“ fest, indem er diese Methode aufruft. Ein Vorgangs-Handler verbraucht dann den festgelegten Wert mithilfe der Methode „CTIOperationRequest - getMinorVersion()“. Sie können den Wert der Hauptversion der Software eines Anbieters auch mit den Methoden CTIOperationRequest - getMajorVersion() und CTIOperationRequest - setMajorVersion(Number majorVersion) abrufen/festlegen.

    Tabelle : 36. Parameter
    Name Typ Beschreibung
    minorVersion Nummer Nebenversion der CTI-Anbietersoftware, von der die Vorgangsanforderung stammt.

    Wenn dieser Wert zuvor nicht festgelegt wurde, wird 0zurückgegeben.

    Tabelle : 37. Rückgaben
    Typ Beschreibung
    void
    var request = new sn_cti_core.CTIOperationRequest('origin');
    ...
    request.setMinorVersion(3);

    CTIOperationRequest – setOperationName(String name)

    Legt den Namen des Vorgangs fest, den der Anbieter von Computer-Telefonie-Integrationen (CTI) für das aktuelle CTIOperationRequest-Objekt auszuführen versucht.

    Der Vorgangsname bestimmt den Vorgangs-Handler, der zur Verarbeitung der Anforderung verwendet wird. Rufen Sie diese Methode aus dem zugehörigen Nachrichtenumwandler auf.

    Hinweis:
    Bei Implementierungen des Amazon Connect Lex-Bots werden Absichtsnamen mit einem Suffix aus fünf Buchstaben angehängt, da verschiedene Amazon-Absichten nicht denselben Absichtsnamen haben können. Im Framework ServiceNow Sprachfunktionen entspricht der Name der Absicht dem Namen des Vorgangshandlers. Ein Vorgangs-Handler kann entweder spezifisch für eine Absicht sein und einen Vorgangs-Handler-Namen haben, der dieses Suffix (myOperation_SUFFX) enthält, oder er kann generisch sein und von mehreren CTI-Anbietern oder verschiedenen Anwendungsfällen verwendet werden, z. B. für die Verwendung desselben Handlers für die Verarbeitung einer HR -Anforderung und eine Helpdesk-Anforderung (myOperation).
    Tabelle : 38. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Der Name des Vorgangs, den der CTI-Anbieter derzeit versucht, auszuführen.

    Dieser Name muss mit dem Namen des Vorgangs-Handlers übereinstimmen, der zur Verarbeitung der Anforderung verwendet werden soll. Ist dies nicht der Fall, wird ein Fehler ausgegeben. Sie können die verfügbaren Vorgangshandler in der Tabelle „Vorgangs-Handler“ [sn_cti_operation_handler] suchen.

    Tabelle : 39. Rückgaben
    Typ Beschreibung
    void
    {	
      try {
        var jsonPayload = httpRequest.body.data;
        if (jsonPayload) {
    	var event = jsonPayload.event;
    	if (event) {
    	  var details = event.Details;
    	  if (details) {	
               // Set the operation handler to use to process the request				
    	    operationRequest.setOperationName(details.Parameters['sn_operation']);
    	    var contactData = details.ContactData;
    	    if(contactData) {
    		// Call id should be surfaced in openframe call log so it can be tied to transcription later
    		operationRequest.setParameter('contact.call_id', contactData.ContactId);
    		for(var ck in contactData.CustomerEndpoint) {
    		  operationRequest.setParameter('contact.' + ck, contactData.CustomerEndpoint[ck]);
    	       }
    	       operationRequest.setParameter('contact.id', contactData.ContactId);
    	       operationRequest.setParameter('contact.phone', contactData.CustomerEndpoint.Address);
    	    }
    	    var parameters = details.Parameters;
    	    if (parameters) {
    		for (var pk in parameters) {
    		  switch(pk) {
    		    case 'interactionId':
    			operationRequest.setInteractionSysId(parameters[pk]);
    			break;
    		    case 'authToken':
    			operationRequest.setAuthToken(parameters[pk]);
    			break;
    		    case 'language':
    			operationRequest.setLanguage(parameters[pk]);
    			break;
    		    case 'statusCode':
    		    case 'message':
    			break;
    								
    		    default:
    			operationRequest.setParameter(pk, parameters[pk]);
    		 }						
                }
              }					
            }
          }
        }
      } catch(e) {
    		ctx.setError(e);
      }
    })(httpRequest, operationRequest, ctx);

    CTIOperationRequest – setOperationSubStepName(String name)

    Legt den Namen des Vorgangsunterschritts für das aktuelle CTIOperationRequest-Objekt fest.

    Verwenden Sie Unterschritte, um Aktionen wie Initialisieren und Validieren auszuführen, bevor Sie einen Vorgang verarbeiten. Im Gegensatz zu Vorgangshandlern, die generisch sind und von allen CTI-Anbietern verwendet werden, sind Unterschritte spezifisch für CTI-Anbieter und verwenden Terminologie und Namenskonventionen, die für den CTI-Anbieter spezifisch sind.

    Das Framework ServiceNow Sprachfunktionen führt die folgenden Schritte aus, um den erforderlichen Vorgangs-Handler und alle zugehörigen Unterschritt-Vorgangs-Handler zu finden.
    Hinweis:
    Bei Implementierungen des Amazon Connect Lex-Bots werden Absichtsnamen mit einem Suffix aus fünf Buchstaben angehängt, da verschiedene Amazon-Absichten nicht denselben Absichtsnamen haben können. Im Framework ServiceNow Sprachfunktionen entspricht der Name der Absicht dem Namen des Vorgangshandlers. Ein Vorgangs-Handler kann entweder spezifisch für eine Absicht sein und einen Vorgangs-Handler-Namen haben, der dieses Suffix (myOperation_SUFFX) enthält, oder er kann generisch sein und von mehreren CTI-Anbietern oder verschiedenen Anwendungsfällen verwendet werden, z. B. für die Verwendung desselben Handlers für die Verarbeitung einer HR -Anforderung und eine Helpdesk-Anforderung (myOperation).
    1. Versucht, den Vorgangs-Handler zu finden, der der Anforderung zugeordnet ist.
      • Sucht zuerst nach einem Vorgangs-Handler namens myOperation_SUFFX.
      • Falls nicht gefunden, wird nach dem Vorgangs-Handler myOperationgesucht. Falls nicht gefunden, Fehler aus.
    2. Wenn der -Handler gefunden wird, überprüft die Kennzeichnung auth_required im Vorgangs-Handler. Wenn festgelegt, wird überprüft, ob ein gültiges Authentifizierungstoken (abgerufen durch die getAuthToken()- Methode) in der Anforderung vorhanden ist. Wenn vorhanden und gültig, wird die Verarbeitung fortgesetzt, andernfalls wird ein Fehler ausgegeben.
    3. Sucht nach dem Vorgangs-Handler für den übergebenen Unterschritt. Für dieses Beispiel nehmen wir an , subStepName=SubStep.
      • Sucht zuerst nach einem Vorgangs-Handler namens myOperation_SUFFX.SubStep. Wenn gefunden, wird der -Handler ausgeführt.
      • Falls nicht gefunden, wird nach dem Handler myOperation.SubStepgesucht. Wenn gefunden, wird der -Handler ausgeführt.
      • Falls nicht gefunden, wird geprüft, ob für das Anforderungsobjekt ein subStepNotFoundBehavior festgelegt wurde.
      • Wenn festgelegt, wird das Verhalten ausgeführt, andernfalls tritt ein Fehler auf.
    4. Führt den primären Vorgangs-Handler (myOpersation_SUFFX oder myOperation) aus.

    Sie können das Standardverhalten eines Unterschritts festlegen, indem Sie die Methode CTIOperationRequest - setSubStepNotFoundBehaviour(Object behaviour) aufrufen.

    Tabelle : 40. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Der Name des Teilschritts, den der CTI-Anbieter auszuführen versucht.
    Tabelle : 41. Rückgaben
    Typ Beschreibung
    void
    (function( /*HTTPRequest*/ httpRequest, /*CTIOperationRequest*/ operationRequest, /*Context*/ ctx) {
      try {
        var jsonPayload = httpRequest.body.data;
        if (jsonPayload) {
          var event = jsonPayload.event;
          if (event) {
            var intent = event.currentIntent;
    	 var inputTranscript = event.inputTranscript;
    	 if(inputTranscript) {
    	   operationRequest.setParameter('$utterance', inputTranscript);
    	 }
            if (intent) {
              operationRequest.setOperationName(intent.name);
    	   // Add this because intent name gets changed through the pipeline
    	   operationRequest.setParameter('$original_intent', intent.name);
              var sessionAttributes = event.sessionAttributes;
              if (sessionAttributes) {
                for (var sk in sessionAttributes) {
                  switch (sk) {
                    case 'interactionId':
                      operationRequest.setInteractionSysId(sessionAttributes[sk]);
                      break;
                    case 'authToken':
                      operationRequest.setAuthToken(sessionAttributes[sk]);
                      break;
    		  case 'language':
    		    operationRequest.setLanguage(sessionAttributes[sk]);
    		    break;
                    case 'statusCode':
                    case 'message':
                      break;
                    default:
                      operationRequest.setSessionAttribute(sk, sessionAttributes[sk]);
                  }
                }
              }
              var slots = intent.slots;
    	   // Always copy in slots they are the parameters for the operation
              if (slots) {
                for (var pk in slots) {
                  operationRequest.setParameter(pk, slots[pk]);
                }
              }
              var invocationSource = event.invocationSource;
    	   operationRequest.setParameter('$$invocationSource', invocationSource);
              // Specific handling for dialog hooks with a way to override for Amazon specific provider
              if (invocationSource === 'DialogCodeHook') {
    	     // Set substep to trigger forwarding to another handler IF it s present
    	     operationRequest.setOperationSubStepName(invocationSource);
    	     // Allow pass through behavior
    	     var behaviourToUse = sn_cti_core.CTIOperationRequest.OperationNotFoundBehaviours.PassThrough;
    	     operationRequest.setSubStepNotFoundBehaviour(behaviourToUse);
    	     // Reserved - copy slots in so we can just use delegate as default if the call isn't handled
    	     operationRequest.setParameter('$$slots', slots);
              }
            }
          }
        }
      } catch (e) {
          ctx.setError(e);
      }
      return operationRequest;
    })(httpRequest, operationRequest, ctx);

    CTIOperationRequest – setParameter(Zeichenfolgenschlüssel, Objektwert)

    Legt das angegebene Schlüssel-Wert-Paar für das Parameterobjekt des aktuellen CTIOperationRequest-Objekts fest.

    Mit den Methoden zum Abrufen/Festlegen von Parametern können praktisch alle Zeichenfolgen- oder Zahlenwerte zwischen einem Nachrichtenumwandler und einem Vorgangshandler übergeben werden. Das Parameterobjekt kann null oder mehr Schlüssel-Wert-Datenpaare enthalten, die direkt mit der aktuellen Vorgangsanforderung korrelieren. Der Vorgangs-Handler bestimmt, welche Schlüssel-Wert-Paare erforderlich sind, wenn diese Werte verbraucht werden. Normalerweise legt der Nachrichtenumwandler diese Parameter für das CTIOperationRequest-Objekt fest, indem er diese Methode aufruft, und der Vorgangs-Handler verbraucht sie mit der Methode CTIOperationRequest - getParameter(String key) oder CTIOperationRequest - getParameters().

    Hinweis:
    Sie sollten nur Objekte speichern, die einen JSON.parse(JSON.stringify(object)) -Vorgang überdauern können. Objekte, die diese Kriterien nicht erfüllen, werden möglicherweise nicht ordnungsgemäß in der gesamten Verarbeitungskette des Vorgangs verbreitet.
    Zum Beispiel:
    var x = {
      "string": 'abc',
      "int": 123,
      "float": 1.234,
      "number": new Number(3),
      "boolean": true,
      "date": new Date(2006, 0, 2, 15, 4, 5),
      "object": {
        "string": 'abc',
        "int": 123,
        "float": 1.234,
        "number": new Number(3),
        "boolean": true,
        "date": new Date(2006, 0, 2, 15, 4, 5)
      },
      "function": function(abc) {
    
      }
    }
    var stringify = JSON.stringify(x);
    gs.info(stringify);
    var hydrate = JSON.parse(stringify);
    var stringify2 = JSON.stringify(hydrate);
    gs.info(stringify2);
    
    Erzeugt:
    {"string":"abc","int":123,"float":1.234,"number":3,"boolean":true,"date":"2006-01-02T23:04:05.000Z","object":{"string":"abc","int":123,"float":1.234,"number":3,"boolean":true,"date":"2006-01-02T23:04:05.000Z"}}
    {"string":"abc","int":123,"float":1.234,"number":3,"boolean":true,"date":"2006-01-02T23:04:05.000Z","object":{"string":"abc","int":123,"float":1.234,"number":3,"boolean":true,"date":"2006-01-02T23:04:05.000Z"}}
    
    Tabelle : 42. Parameter
    Name Typ Beschreibung
    key Zeichenfolge Name des Schlüssels, unter dem der zugeordnete Wert gespeichert werden soll.
    Wert Objekt Zu speichernder Wert.
    Gültige Datentypen:
    • Zeichenfolge
    • int
    • Gleitkommazahl
    • Nummer
    • boolean
    • Datum
    • Objekt
    Tabelle : 43. Rückgaben
    Typ Beschreibung
    void
    {	
      try {
        var jsonPayload = httpRequest.body.data;
        if (jsonPayload) {
    	var event = jsonPayload.event;
    	if (event) {
    	  var details = event.Details;
    	  if (details) {					
    	    operationRequest.setOperationName(details.Parameters['sn_operation']);
    	    var contactData = details.ContactData;
    	    if(contactData) {
    		// Call id should be surfaced in openframe call log so it can be tied to transcription later
    		operationRequest.setParameter('contact.call_id', contactData.ContactId);
    		for(var ck in contactData.CustomerEndpoint) {
    		  operationRequest.setParameter('contact.' + ck, contactData.CustomerEndpoint[ck]);
    	       }
    	       operationRequest.setParameter('contact.id', contactData.ContactId);
    	       operationRequest.setParameter('contact.phone', contactData.CustomerEndpoint.Address);
    	    }
    	    var parameters = details.Parameters;
    	    if (parameters) {
    		for (var pk in parameters) {
    		  switch(pk) {
    		    case 'interactionId':
    			operationRequest.setInteractionSysId(parameters[pk]);
    			break;
    		    case 'authToken':
    			operationRequest.setAuthToken(parameters[pk]);
    			break;
    		    case 'language':
    			operationRequest.setLanguage(parameters[pk]);
    			break;
    		    case 'statusCode':
    		    case 'message':
    			break;
    								
    		    default:
    			operationRequest.setParameter(pk, parameters[pk]);
    		 }						
                }
              }					
            }
          }
        }
      } catch(e) {
    		ctx.setError(e);
      }
    })(httpRequest, operationRequest, ctx);

    CTIOperationRequest – setSessionAttribute(Zeichenfolgeschlüssel, Objektwert)

    Legt das angegebene Sitzungsattribut-Schlüssel-Wert-Paar für das aktuelle CTIOperationRequest-Objekt fest.

    Mit den Methoden zum Abrufen/Festlegen von Sitzungsattributen können praktisch alle Zeichenfolgen- oder Zahlenwerte zwischen einem Nachrichtenumwandler und einem Vorgangshandler übergeben werden. Das Objekt „sessionAttribute“ kann null oder mehr Schlüssel-Wert-Paare von Daten enthalten, die für die Dauer einer vom Anbieter definierten Sitzung für Computer-Telefonie-Integrationen gültig sind. Auf Sitzungsattribute kann auch innerhalb eines Kontakt-Flows zugegriffen werden. Der Vorgangs-Handler bestimmt, welche Schlüssel-Wert-Paare für Sitzungsattribute erforderlich sind, da er diese Werte verbraucht. Normalerweise legt der Nachrichtenumwandler diese Attribute für das CTIOperationRequest-Objekt fest, indem er diese Methode aufruft, und der Vorgangshandler ruft die Attribute mit der Methode CTIOperationRequest - getSessionAttribute(Zeichenfolgenschlüssel) oder CTIOperationRequest - getSessionAttribute() ab.

    Hinweis:
    Sie sollten nur Objekte speichern, die einen JSON.parse(JSON.stringify(object)) -Vorgang überdauern können. Objekte, die diese Kriterien nicht erfüllen, werden möglicherweise nicht ordnungsgemäß in der gesamten Verarbeitungskette des Vorgangs verbreitet.
    Zum Beispiel:
    var x = {
      "string": 'abc',
      "int": 123,
      "float": 1.234,
      "number": new Number(3),
      "boolean": true,
      "date": new Date(2006, 0, 2, 15, 4, 5),
      "object": {
        "string": 'abc',
        "int": 123,
        "float": 1.234,
        "number": new Number(3),
        "boolean": true,
        "date": new Date(2006, 0, 2, 15, 4, 5)
      },
      "function": function(abc) {
    
      }
    }
    var stringify = JSON.stringify(x);
    gs.info(stringify);
    var hydrate = JSON.parse(stringify);
    var stringify2 = JSON.stringify(hydrate);
    gs.info(stringify2);
    
    Erzeugt:
    {"string":"abc","int":123,"float":1.234,"number":3,"boolean":true,"date":"2006-01-02T23:04:05.000Z","object":{"string":"abc","int":123,"float":1.234,"number":3,"boolean":true,"date":"2006-01-02T23:04:05.000Z"}}
    {"string":"abc","int":123,"float":1.234,"number":3,"boolean":true,"date":"2006-01-02T23:04:05.000Z","object":{"string":"abc","int":123,"float":1.234,"number":3,"boolean":true,"date":"2006-01-02T23:04:05.000Z"}}
    
    Tabelle : 44. Parameter
    Name Typ Beschreibung
    key Zeichenfolge Name des Schlüssels, unter dem der zugeordnete Wert gespeichert werden soll.
    Wert Objekt Zu speichernder Wert.
    Gültige Datentypen:
    • Zeichenfolge
    • int
    • Gleitkommazahl
    • Nummer
    • boolean
    • Datum
    • Objekt
    Tabelle : 45. Rückgaben
    Typ Beschreibung
    void
    var request = new sn_cti_core.CTIOperationRequest('origin');
    request.setSessionAttribute('contact.phone', '+15552222345');
    request.setSessionAttribute('contact.okToCall', true);
    request.setSessionAttribute('contact.address', {
        street: '1234 Main St'
        city: 'API City',
        zip: 91335
    });

    CTIOperationRequest – setSubStepNotFoundBehaviour(Objektverhalten)

    Legt das Verhalten fest, das ausgeführt wird, wenn der Vorgangshandler des aktuellen Unterschritts nicht gefunden wird.

    Diese Methode sollte vom Umwandler für die Eingabenachricht aufgerufen werden.

    Tabelle : 46. Parameter
    Name Typ Beschreibung
    Verhalten OperationNotFoundBehaviours Zu verwendendes Verhalten, wenn für den Unterschritt kein Verarbeitungsverhalten angegeben ist. Dies muss ein Verhalten sein, das im Objekt „CTIOperationRequest.OperationNotFoundBehaviours“ definiert ist.
    Mögliche Werte:
    • WerfenError: Löst einen Fehler aus.
    • PassThrough: Es wird keine weitere Verarbeitung der Anforderung durchgeführt, nur die Rückgabe erfolgt.
    • RouteToOperation: Verwenden Sie den übergeordneten Vorgangs-Handler <operation_name>.
    Tabelle : 47. Rückgaben
    Typ Beschreibung
    void
    (function( /*HTTPRequest*/ httpRequest, /*CTIOperationRequest*/ operationRequest, /*Context*/ ctx) {
      try {
        var jsonPayload = httpRequest.body.data;
        if (jsonPayload) {
          var event = jsonPayload.event;
          if (event) {
            var intent = event.currentIntent;
    	 var inputTranscript = event.inputTranscript;
    	 if(inputTranscript) {
    	   operationRequest.setParameter('$utterance', inputTranscript);
    	 }
            if (intent) {
              operationRequest.setOperationName(intent.name);
    	   // Add this because intent name gets changed through the pipeline
    	   operationRequest.setParameter('$original_intent', intent.name);
              var sessionAttributes = event.sessionAttributes;
              if (sessionAttributes) {
                for (var sk in sessionAttributes) {
                  switch (sk) {
                    case 'interactionId':
                      operationRequest.setInteractionSysId(sessionAttributes[sk]);
                      break;
                    case 'authToken':
                      operationRequest.setAuthToken(sessionAttributes[sk]);
                      break;
    		  case 'language':
    		    operationRequest.setLanguage(sessionAttributes[sk]);
    		    break;
                    case 'statusCode':
                    case 'message':
                      break;
                    default:
                      operationRequest.setSessionAttribute(sk, sessionAttributes[sk]);
                  }
                }
              }
              var slots = intent.slots;
    	   // Always copy in slots they are the parameters for the operation
              if (slots) {
                for (var pk in slots) {
                  operationRequest.setParameter(pk, slots[pk]);
                }
              }
              var invocationSource = event.invocationSource;
    	   operationRequest.setParameter('$$invocationSource', invocationSource);
              // Specific handling for dialog hooks with a way to overide for Amazon specific provider
              if (invocationSource === 'DialogCodeHook') {
    	     // Set substep to trigger forwarding to another handler IF it s present
    	     operationRequest.setOperationSubStepName(invocationSource);
    	     // Allow pass through behavior
    	     var behaviourToUse = sn_cti_core.CTIOperationRequest.OperationNotFoundBehaviours.PassThrough;
    	     operationRequest.setSubStepNotFoundBehaviour(behaviourToUse);
    	     // Reserved - copy slots in so we can just use delegate as default if the call isn't handled
    	     operationRequest.setParameter('$$slots', slots);
              }
            }
          }
        }
      } catch (e) {
          ctx.setError(e);
      }
      return operationRequest;
    })(httpRequest, operationRequest, ctx);