Difference between revisions of "DES/Current/Designer/SharedMod"
m (Ed.jamer@genesys.com moved page PEC-ROU/Current/Designer/SharedMod to DES/Current/Designer/SharedMod: Text replacement - "PEC-ROU/Current/Designer/" to "DES/Current/Designer/") |
|||
Line 10: | Line 10: | ||
|Section={{Section | |Section={{Section | ||
|alignment=Vertical | |alignment=Vertical | ||
− | |structuredtext={{Link-SomewhereInThisManual|topic=SharedModulesBar|anchor=top|display text=Shared Modules}} are useful for reusing code from multiple applications, as well as for splitting larger applications into smaller and more manageable | + | |structuredtext={{Link-SomewhereInThisManual|topic=SharedModulesBar|anchor=top|display text=Shared Modules}} are useful for reusing code from multiple applications, as well as for splitting larger applications into smaller and more manageable segments. Once you have created a Shared Module, you can use the Shared Module block to invoke the module into your application. |
If you change a {{Link-SomewhereInThisManual|topic=SharedModulesBar|anchor=top|display text=Shared Module}}, you also change all of the applications that use that module. If an application uses the '''Latest''' version of a module, and the application is published, it starts using the new state of the Shared Module. If an application uses a specific version of the Shared Module (not the '''Latest'''), it does not receive the latest changes in the Shared Module, even if the application is published again. | If you change a {{Link-SomewhereInThisManual|topic=SharedModulesBar|anchor=top|display text=Shared Module}}, you also change all of the applications that use that module. If an application uses the '''Latest''' version of a module, and the application is published, it starts using the new state of the Shared Module. If an application uses a specific version of the Shared Module (not the '''Latest'''), it does not receive the latest changes in the Shared Module, even if the application is published again. | ||
− | + | From the '''Module''' tab, you can select from the following types of modules: | |
+ | |||
+ | *{{Link-SomewhereInThisVersion|manual=Designer|topic=SharedMod|anchor=SharedModules|display text=Shared Modules}} - Small applications managed from the {{Link-SomewhereInThisVersion|manual=Designer|topic=SharedModulesBar|display text=Shared modules page}}. | ||
+ | *{{Link-SomewhereInThisVersion|manual=Designer|topic=SharedMod|anchor=TemplatesModules|display text=Templates}} - Used with Callback (read-only). | ||
|Status=No | |Status=No | ||
}}{{Section | }}{{Section | ||
− | |sectionHeading= | + | |sectionHeading=Shared Modules |
− | |anchor= | + | |anchor=SharedModules |
|alignment=Vertical | |alignment=Vertical | ||
− | |structuredtext= | + | |structuredtext=All Shared Modules that have at least one version are listed. Once a Shared Module is selected, all published versions of the module are shown. Usually the latest version should be selected, unless there is an incompatibility with the latest version. |
− | + | For more information about how to create and manage shared modules, see {{Link-SomewhereInThisManual|topic=SharedModulesBar|anchor=top|display text=Shared Module}}. | |
+ | |||
+ | [[File:des_shared_module2.png]] | ||
− | + | On the '''Signature''' tab, you can then specify the values for the '''Input''' and '''Output Parameters''' to be used with the module you selected. You can use literals, variables, or expressions. | |
− | [[File: | + | [[File:des_shared_module_sigtab.png|link=https://all.docs-qa.genesys.com/File:Des_shared_module_sigtab.png]]{{NoteFormat| |
+ | In general, you should select '''Use latest unpublished save''' rather than a specific version (unless there is a specific reason to do so, such as an incompatibility issue). This allows any applications that reference the module to always point to the latest version of the module. Otherwise, if you make changes to a version of the module and create a new version, you would also need to update and republish each application (or other module) that referenced the previous version. | ||
+ | |2}}<br /> | ||
+ | |Status=No | ||
+ | }}{{Section | ||
+ | |sectionHeading=Templates modules | ||
+ | |anchor=TemplatesModules | ||
+ | |alignment=Vertical | ||
+ | |structuredtext=Templates are used only with the {{Link-SomewhereInThisManual|topic=CallbackBlocks|anchor=top|display text=Callback block}}. They are read-only and cannot be edited or deleted. | ||
|Status=No | |Status=No | ||
}}{{Section | }}{{Section | ||
− | |sectionHeading= | + | |sectionHeading=External modules |
− | |anchor= | + | |anchor=ExternalModule |
|alignment=Vertical | |alignment=Vertical | ||
− | |structuredtext= | + | |structuredtext=Selecting an '''External''' module type allows you to execute VXML code from an external web page. For example, you can use this option if you have existing VXML applications that you want to run outside of Designer. |
+ | |||
+ | [[File:Des shared module external.png]] | ||
+ | |||
+ | In the module properties, specify the variable that holds the URL of the page where the VXML code is hosted. Designer will access this variable only at runtime, so you must ensure that the URL being referenced is valid and that the external VXML code is compliant with the requirements for any input and output parameters that you've defined on the '''Signature''' tab. | ||
+ | {{AnchorDiv|InputParameters}} | ||
+ | ===Input parameters=== | ||
+ | Designer does not automatically pass any input parameters to external modules. If you need to pass parameters to the external module for processing, you can define them using the '''Input Parameters''' settings on the '''Signature''' tab. | ||
+ | |||
+ | For each input parameter defined, a corresponding <code><var></code> element must exist in the VXML code of the external module. Make sure that the names of any input parameters you define in the Shared Module block are an exact match for the input parameters expected by the external VXML page. Any mismatches can cause errors when the module executes. | ||
− | + | Here is an example of VXML code showing the defined input parameters: | |
− | |Status= | + | (insert code sample) |
+ | |||
+ | {{AnchorDiv|OutputParameters}} | ||
+ | ===Output parameters=== | ||
+ | You can define the output parameters you want to use from the '''Output Parameters''' settings on the '''Signature''' tab. To ensure that Designer is able to continue processing if certain events occur while the external module is running (such as an error or the customer disconnects), the external module must return specific properties in addition to any output parameters that are defined. These properties are specified in the table below. | ||
+ | |||
+ | {{NoteFormat|The <code>sys_externalvxml</code> variable name prefix is reserved for internal use by Designer. Do not use this prefix when defining your own output parameters.|}} | ||
+ | {{{!}} class="wikitable" | ||
+ | {{!}}+ | ||
+ | System variables required for output parameters | ||
+ | !Variable name | ||
+ | !Variable value | ||
+ | !Description | ||
+ | {{!}}- | ||
+ | {{!}}<tt>sys_externalvxml_hangup</tt> | ||
+ | {{!}}true or false | ||
+ | {{!}}The external dialog must catch the event connection.disconnect.hangup. | ||
+ | |||
+ | The <code><catch></code> element should make a call to <code><return></code> to exit the dialog and return <code>sys_externalvxml_hangup=true</code> | ||
+ | {{!}}- | ||
+ | {{!}}<tt>sys_externalvxml_error</tt> | ||
+ | {{!}}string | ||
+ | {{!}} | ||
+ | |||
+ | |||
+ | All error events must be handled by the external dialog. | ||
+ | |||
+ | Appropriate <code><catch></code> elements must be used to achieve this requirement. | ||
+ | |||
+ | The <code><catch></code> logic may be | ||
+ | |||
+ | *execute some error logic and resume processing | ||
+ | *exit the external dialog and return the error back to Designer with the <code>sys_externalvxml_error</code> variable so Designer can resume processing and implement appropriate reporting. | ||
+ | {{!}}- | ||
+ | {{!}}<tt>sys_externalvxml_error_message</tt> | ||
+ | {{!}}string | ||
+ | {{!}}additional and optional error description to be used with <code>sys_externalvxml_error</code>. | ||
+ | {{!}}} | ||
+ | |||
+ | |||
+ | Here is an example of VXML code with the output parameters defined: | ||
+ | (insert code sample) | ||
+ | {{AnchorDiv|ExtLimitations}} | ||
+ | ===Usage and limitations=== | ||
+ | As external modules are not controlled by Designer, there are certain limitations to be aware of if you plan to use them: | ||
+ | |||
+ | *External modules can only be used in the Self Service phase of the application. | ||
+ | *External modules are supported for voice interactions only. If the application is enabled for omnichannel support, Shared Module blocks using external modules are skipped for digital interactions. | ||
+ | *External modules are controlled outside of Designer, and thus do not provide reporting details to Designer Analytics. | ||
+ | *External modules are not able to use Designer resources, such as Media Collections, Business Controls, or other capabilities, such as Personas, PTE, or Application Streams. However, any runtime value, such as a Persona, Language, or system variable, may be passed to the VXML page as an input parameter. | ||
+ | *External modules cannot be used in Shared Module blocks that are being used as treatments. | ||
+ | |||
+ | <br /> | ||
+ | |Status=Yes | ||
}} | }} | ||
}} | }} |
Latest revision as of 17:45, October 11, 2022
Contents
Use this block when you want to reference a Shared Module in an application.
Shared Modules are useful for reusing code from multiple applications, as well as for splitting larger applications into smaller and more manageable segments. Once you have created a Shared Module, you can use the Shared Module block to invoke the module into your application.
If you change a Shared Module, you also change all of the applications that use that module. If an application uses the Latest version of a module, and the application is published, it starts using the new state of the Shared Module. If an application uses a specific version of the Shared Module (not the Latest), it does not receive the latest changes in the Shared Module, even if the application is published again.
From the Module tab, you can select from the following types of modules:
- Shared Modules - Small applications managed from the Shared modules page.
- Templates - Used with Callback (read-only).
Shared Modules
All Shared Modules that have at least one version are listed. Once a Shared Module is selected, all published versions of the module are shown. Usually the latest version should be selected, unless there is an incompatibility with the latest version.
For more information about how to create and manage shared modules, see Shared Module.
On the Signature tab, you can then specify the values for the Input and Output Parameters to be used with the module you selected. You can use literals, variables, or expressions.

In general, you should select Use latest unpublished save rather than a specific version (unless there is a specific reason to do so, such as an incompatibility issue). This allows any applications that reference the module to always point to the latest version of the module. Otherwise, if you make changes to a version of the module and create a new version, you would also need to update and republish each application (or other module) that referenced the previous version.
Templates modules
Templates are used only with the Callback block. They are read-only and cannot be edited or deleted.