ArchSettingsSupportedLanguage(coreLanguageOptionsViewModel)

new ArchSettingsSupportedLanguage(coreLanguageOptionsViewModel)

Creates an instance of ArchSettingsSupportedLanguage. Instances of this class will be automatically created by Architect Scripting.

Parameters:
Name Type Description
coreLanguageOptionsViewModel object

( Internal ) an Architect core language options object.

See:

Extends

Members

static, readonly displayTypeName :string

Returns the display type name string 'ArchSettingsSupportedLanguage'.

readonly defaultLanguageSkill :ArchValueLanguageSkill

The default language skill configured for this flow supported language. If the parent flow for this supported language setting does not have supported languages or the language does not support the notion of a default language skill because it's not applicable then null will be returned.

readonly isArchBaseCoreObject :boolean

Returns true indicating that this is an ArchBaseCoreObject instance.

Inherited From:

readonly isArchSettingsSupportedLanguage :boolean

Returns true indicating that this is an ArchSettingsSupportedLanguage instance.

readonly knowledgeBaseId :string

Returns the knowledge base id for this supported language setting. If this supported language setting's language is the default language, we return the knowledge base id of the flow's default knowledge base.

readonly knowledgeBaseName :string

Returns the knowledge base name for this supported language setting. If this is the default language, we return the knowledge base name of the flow's default knowledge base.

readonly language :ArchLanguage

The language for this supported language setting.

readonly logStr :string

A logging string for the ArchSettingsSupportedLanguage instance.

Overrides:

readonly logStrTypeOnly :string

This is a string suitable for logging information about this object where it's just the object's type. This is normally used when logging errors that occur in constructor parameter checking because the scripting object isn't set up and the normal logging str contents wouldn't be set up.

Inherited From:

readonly speechToTextEngine :ArchSpeechToTextEngine

The speech to text engine currently set for this supported language setting. If the parent flow does not support speech to text, it will return null.

readonly ttsEngine :ArchTtsEngine

The text to speech engine currently set for this supported language setting. If the parent flow does not support audio, it will return null.

readonly ttsVoice :ArchTtsVoice

The text to speech voice currently set for this supported language setting. If the parent flow does not support audio, it will return null.

Methods

isFilterMatch(archFilterObject) → {boolean}

Returns whether or not this Architect Scripting object is a match for the supplied ArchFilterObject instance.

Parameters:
Name Type Description
archFilterObject ArchFilterObject

the object filter to use to determine if it's a match.

Returns:
boolean
Inherited From:

logError(errorStr)

Logs an error to the logging service with a log header from this object's logStr property value when ArchLogging#logErrors is true.

Parameters:
Name Type Description
errorStr string

the error string to log.

Inherited From:

logErrorAndThrow(errorStr)

Logs an error to the logging service with a log header from this object's logStr property value when ArchLogging#logErrors is true and then throws the string in the errorStr parameter.

Parameters:
Name Type Description
errorStr string

the error string to log. This should be a non-blank string.

Throws:
  • Throws the submitted error string.
Inherited From:

logNote(noteStr)

Logs a note to the logging service with a log header from this object's logStr property value when ArchLogging#logNotes is true.

Parameters:
Name Type Description
noteStr string

the note string to log. This should be a non-blank string.

Inherited From:

logNoteVerbose(noteStr)

Logs a note to the logging service with a log header from this object's logStr property value when ArchLogging#logNotesVerbose is true.

Parameters:
Name Type Description
noteStr string

the note string to log. This should be a non-blank string.

Inherited From:

logWarning(warningStr)

Logs a warning to the logging service with a log header from this object's logStr property value when ArchLogging#logWarnings is true.

Parameters:
Name Type Description
warningStr string

the warning string to log. This should be a non-blank string.

Inherited From:

setKnowledgeBaseByIdAsync(knowledgeBaseId, callbackFunctionopt) → {Promise.<ArchSettingsSupportedLanguage>}

This sets the knowledge base for this supported language setting by the knowledge base id.

Parameters:
Name Type Attributes Description
knowledgeBaseId string

the id of the Knowledge Base to set.

callbackFunction callbackArchSettingsSupportedLanguage <optional>

a callback function to call if the Knowledge Base is successfully looked up and configured on this action. The first parameter passed to the callback function will be this supported language instance.

Returns:
Promise.<ArchSettingsSupportedLanguage>

setKnowledgeBaseByNameAsync(knowledgeBaseName, callbackFunctionopt) → {Promise.<ArchSettingsSupportedLanguage>}

This sets the knowledge base for this supported language setting by the knowledge base name.

Parameters:
Name Type Attributes Description
knowledgeBaseName string

the name of the Knowledge Base to set.

callbackFunction callbackArchSettingsSupportedLanguage <optional>

a callback function to call if the Knowledge Base is successfully looked up and configured on this action. The first parameter passed to the callback function will be this supported language instance.

Returns:
Promise.<ArchSettingsSupportedLanguage>

setSpeechToTextEngineByIdAsync(engineId, callbackFunctionopt) → {Promise.<ArchSettingsSupportedLanguage>}

Sets the speech to text engine with the specified id for this supported language setting.

Parameters:
Name Type Attributes Description
engineId string

the identifier of the speech to text engine to set. Only non-grammar based speech to text engines are allowed.

callbackFunction callbackArchSettingsSupportedLanguage <optional>

a function to call if the speech to text engine is successfully looked up and configured on this language. The first parameter passed to the callback function will be this supported language instance.

Returns:
Promise.<ArchSettingsSupportedLanguage>

setSpeechToTextEngineByNameAsync(engineName, callbackFunctionopt) → {Promise.<ArchSettingsSupportedLanguage>}

Sets the speech to text engine with the specified name for this supported language setting.

Parameters:
Name Type Attributes Description
engineName string

the name of the speech to text engine to set. Only non-grammar based speech to text engines are allowed. Speech to text engine name lookups are performed case insensitively.

callbackFunction callbackArchSettingsSupportedLanguage <optional>

a function to call if the speech to text engine is successfully looked up and configured on this language. The first parameter passed to the callback function will be this supported language instance.

Returns:
Promise.<ArchSettingsSupportedLanguage>

setTtsEngine(archTtsEngine)

Set a text to speech engine selection for this supported language setting. Calling this function also sets the current voice to 'None'.

Parameters:
Name Type Description
archTtsEngine ArchTtsEngine

the text to speech engine to set for this language.

Throws:

If the call flow doesn't support audio or the engine doesn't support this language, this method will throw.

setTtsEngineDefault() → {ArchTtsEngine}

Sets the text to speech engine selection for this supported language setting to the default engine. The default engine per language is defined at the org level in Genesys Cloud Admin. Calling this function also sets the current voice to 'None'.

Throws:

If the call flow doesn't support audio or a default engine is not found, this method will throw.

Returns:
ArchTtsEngine -

the default engine for this language

setTtsEngineNone()

Sets the text to speech engine selection to 'None' for this supported language setting. Calling this function also sets the current voice to 'None'.

Throws:

If the call flow doesn't support audio, this method will throw.

setTtsVoice()

Sets the text to speech voice selection for this supported language setting. The default voice and engine per language are defined at the org level in Genesys Cloud Admin. This function also sets the voice's parent engine on this language if it's not already selected.

Throws:

If the call flow doesn't support audio or the voice does not support this language, this method will throw.

setTtsVoiceDefaultForCurrentEngine() → {ArchTtsVoice}

Sets the text to speech voice selection for this supported language setting to the default voice for the currently-selected engine. The default voice and engine per language are defined at the org level in Genesys Cloud Admin.

Throws:

If the call flow doesn't support audio, an engine is not already set for this language, or a default voice is not found for the currently-selected engine on this language, this method will throw.

Returns:
ArchTtsVoice -

the default voice that was set for this language

setTtsVoiceNone()

Sets the text to speech voice selection to 'None' for this supported language setting.

Throws:

If the call flow doesn't support audio, this method will throw.

traverse(callbackFunction, traverseFilteropt) → {number}

This method iterates over this object and ArchBaseCoreObject instances within it. For each object it will call the ArchBaseObject#isFilterMatch method with a filter and call the supplied callback function if isMatch returns true. The callback will be passed an ArchTraverseInfo with details about the match such as the match object itself along with current contextual information such as the object hierarchy for the match object relative to the object on which this traverse call is being made.

The traverse filter is one which you can create by calling ArchFactoryFilters#createFilterObject and then add desired clauses or clause containers to it. If not specified, this function will use a default filter.

Here is an example that does a simple flow traversal using the default filter and logs information about objects in the callback from the traverse object that's passed back:

archInboundCallFlow.traverse(function(traverseInfo) {
   archLogging.logNote('  Object     : ' + traverseInfo.matchObject.logStr);
   archLogging.logNote('    Hierarchy: ' + traverseInfo.context.hierarchyStr);
});

This might be enough for most uses and you can check various aspects about the object in the callback such as "is this an Architect action?" by seeing if traverseInfo.matchObject.isArchBaseAction is true. You can specify a filter for the traversal code to use as well and only have it call your callback when the object's ArchBaseCoreObject#isFilterMatch method returns true for the filter. Here's an example that creates a filter for callbacks on any type of transfer action, any decision action or objects whose name property case insensitively matches the word 'foo'. While this could all be done with one property callback clause the example will use multiple clauses for the sake of simplicity:

const myTraverseFilter = filterFactory.createFilterObject(archEnums.FILTER_CONTAINER_OPERATORS.or);
myTraverseFilter.addClausePropertyValueEquals('isArchBaseActionTransfer', true);
myTraverseFilter.addClausePropertyValueEquals('isArchActionDecision',     true);
myTraverseFilter.addClausePropertyCallback('name', function(propValue, archContainingObject, propName) {
      // We fully spelled out the function signature above but archContainingObject and propName are
      // not needed in this case.  The archContainingObject is the object that contains the
      // property and propName is the property name itself.  We pass in propName because the same
      // function could be used for multiple property callback clauses.
      // Remember to return a boolean true, false or undefined from ths callback.  :)
      return propValue && propValue.toLowerCase() === 'foo';
});
archTask.traverse(function(traverseContext) {
   // You will only be called back here for ArchBaseCoreObject instances that
   // have the isArchBaseActionTransfer or isArchActionDecision property values equal to true.
}, myTraverseFilter);

If you supply a filter with no clauses, this tells the traverse method to call the supplied callback function for every ArchBaseCoreObject it traverses.

If you want traversal itself to stop after a callback, simply return boolean false from the callback function you supply to the traverse call.

The traverse method does not process deprecated property names such as orgId, orgName or languageSettings. Additionally it does not traverse in to properties that would "jump out" of the current traversal. An example of this would be if the code was traversing an ArchActionJumpToMenu action that it would not start traversing in to the menu that it jumps to. Another example would be a ArchActionChangeState action where it would not traverse in to the target state of the action. This also means traversal does not traverse in to the ArchBaseValue#flowLevelDefault property.

And lastly, as Scripting evolves over time with new versions, you can expect to get callbacks for new object types such as new actions or new properties on objects. As such, it's important not to assume any particular order in callbacks to keep code most compatible with traversal callbacks. Or if you use inequality checks in filter clauses remember that new "stuff" may satisfy an inequality check which may or may not be anticipated in your logic.

Note: This traverse method is a helper method and is very handy for iterating over Architect Scripting objects and their properties in a generic fashion with filtering capabilities. Obviously you can write your own custom traversal code if this implementation doesn't cut it for some reason. :)

This function returns the number of times it called the callback function.

Parameters:
Name Type Attributes Default Description
callbackFunction callbackTraverseInfo

the callback function to call for objects that match the traverse filter.

traverseFilter ArchFilterObject <optional>
ArchFactoryFilters#createFilterTraverseDefault

the filter to use when performing the traversal to determine which ArchBaseCoreObject instances you wish to be called back for. If no filter is specified, this function will call ArchFactoryFilters#createFilterTraverseDefault and use that traversal default filter. The wantArchBaseValues parameter on that call is set to true.

Returns:
number
Inherited From: