Save As Functionality

Enabling both Puzzel employees and users of Puzzel customers with partners permissions to copy CFT solutions allows faster and more reliable transfer of all solution-related data, promotes introduction of the practice of template-based solution creation, and ensures quick and less error-prone implementation process.

The new CFT feature can be used by IQ admin users, and by users of customers with partner privileges, that have the “Activate” permission enabled for CFT.
This property is available in the Users->Products section, under the Call Flow group:

Within a CFT Solution, there is a corresponding "Save As.." option in the  "Save version" menu:

After clicking on the "Save as..." option above, you are presented with a popup wizard to to configure options further:

 From the screen above, you can chose to:

  • change the solution name

  • choose a (target) customer for which to save the solution copy - this can be the same or a partner of currently logged user’s customer (original customer)

  • re-map each BoundLocal Time modules with a SharedTime module to refer to:

    • leave original SharedTime module from original customer’s data or

    • choose a SharedTime module from target customer’s data or

    • choose different SharedTime module from original customer’s data - this should be done before selecting different target customer than original

  • decide whether to overwrite the solution files (KML and PresentationData files) together with all files related to the created solution copy: chosen SharedTime modules, any XSLT files for XmlRequest (ex ExternalLookup) modules:

    • when checkbox “Overwrite existing files“ is ON

      • for every SharedTime module from original customer’s data, for which SharedTime with the same identification already exists in the target customer’s data - a new file version is created with the content of original module’s data, which is afterwards immediately activated.

      • for every SharedTime module from the original customer’s data that does not exist in the target customer’s data - a new file is created in the target customer’s data in sub-folder SharedTimeConfiguration of the page Services=>Editor, which is afterwards immediately activated

      • for every XSLT file from the original customer’s data, for which XSLT file with the same URI exists in the target customer’s data - a new file version is created with content of original module’s data, which is afterwards immediately activated;

      • for every XSLT file from original customer’s data that does not exist in the target customer’s data - a new file is created in the target customer’s data in the sub-folder ControlCallflow =. xslt of the page Services=>Editor, which is afterwards immediately activated;

      • if a CFT solution with the same name as the original exists in the target customer’s data - the original solution data is saved in the latest version of the target solution, and this latest version gets activated.

    • when the checkbox “Overwrite existing files“ is OFF

      • for every SharedTime module from the original customer’s data, for which SharedTime with the same identification already exists in the target customer’s data - no changes are made to the target SharedTime module, and no message is listed for actions related to a given SharedTime module in the CFT Console;

      • for every XSLT file from the original customer’s data, for which an XSLT file with the same URI exists in target customer’s data - no changes are made to target XSLT file, an error for failed XSLT save is reported in CFT Console;

      • if a CFT solution with the same name as original exists in target customer’s data - no changes are made to target solution file, an error is reported in CFT Console for failed save operation.

The Save button in Save-as wizard gets disabled when at least one of the SharedTime modules chosen in mapping form is empty - has no exits defined in its KML data.
 

When hovering over the input field in the form, a validation hint for SharedTime module without exits is displayed, as shown below:

 

After clicking at the Save button - the CFT Console pops up and reports results from trying to save each of the needed files:

If there are any issues, they are reported as demonstrated below:

 

Typical usage scenarios

  1. Copy CFT solution into new/empty target customer’s data

    1. Recently created customer still has no data for CFT solutions: no files in page Services=>Callflow, and in page Services=>Editor; no data in page Services=>Time; no data in page Services=>Service Variables. No queues are defined for customer yet - no data are listed in page Services=>Queues. No sound files exist in customer data yet - no data is listed in the page Services=>Audio.

    2. User logged in is from a (original) customer that is managing-partner for another (target) customer.

    3. Open existing CFT solution of the original customer, that has at least one BoundLocal Time module pointing to a SharedTime module, at least one XmlRequest (ex ExternalLookup) module with request schema defined, and at least one XmlRequest module with response schema defined.

    4. Choose from “Save version” menu the “Save as…” option - The Save-as wizard displays, by default listing: original customer in field “Customer key”; a “Bind Time Modules to existing or new Shared Time Modules“ mapping between SharedTime modules from original customer’s data and the BoundLocal modules in configuration referred by them.

    5. Choose target customer in drop-down field “Customer key” - Chosen customer key displays as field value.

    6. Enter new name for the solution.

    7. Do no changes in the “Bind Time Modules to existing or new Shared Time Modules“ mapping.

    8. Ensure checkbox “Overwrite existing files” is OFF.

    9. Click the “Save” button - CTF Console pops up and reports results from attempting to save CFT solution and all related files in the data of target customer.

    10. In the event of failed files creations (because Admin portal fails to create entire folder hierarchies) - Ensure checkbox “Overwrite existing files” is ON and click the “Save” button as many times needed, until all files saving operations are successful.

    11. Enter in the context of target customer, and check all files related to CFT solution - Page Services=>Callflow lists the just saved-as solution; page Services=>Editor lists 2 folders: “ControlCallflow” and “SharedTimeConfiguration”; folder “SharedTimeConfiguration” lists unique set of SharedTime modules - transfered from original customer’s data active versions of the SharedTime modules refered in original solution; folder “ControlCallflow” lists the just saved-as solution and folder “xslt”; folder “xslt” lists all XSLT files with content for the request and response schemas of XmlRequest (ex ExternalLookup) modules from solution - transfered active versions of the XSLT files refered by XmlRequest modules from oroiginal solution; page Services=>Queues is still empty; page Services=>Audio is listing all audio modules mentioned in just saved-as solution - modules from original solution with a user-defined string as URI value have the same string value in target customer’s data as well, and modules from original solution pointing to sound files are now having string values with automatically transformed URIs pointing to (still not existing yet) sound files with the same file names, but in the context of target customer.

  2. Copy CFT solution with new name in the same customer’s data

    1. Open existing CFT solution of original customer, that has at least one BoundLocal Time module pointing to a SharedTime module, at least one XmlRequest (ex ExternalLookup) module with request schema defined, and at least one XmlRequest module with response schema defined.

    2. Choose from “Save version” menu the “Save as…” option - The Save-as wizard displays, by default listing: original customer in field “Customer key”; a “Bind Time Modules to existing or new Shared Time Modules“ mapping between SharedTime modules from original customer’s data and the BoundLocal modules in configuration referred by them.

    3. Leave field “Customer key” unchanged.

    4. Enter the new name for the solution.

    5. In the “Bind Time Modules to existing or new Shared Time Modules“ mapping change the SharedTime module for a BoundLocal Time module - only SharedTime modules from the currently chosen customer should be listed in field’s auto-suggestion list.

    6. Ensure checkbox “Overwrite existing files” is OFF.

    7. Click the “Save” button - CTF Console pops up and reports results from attempting to save CFT solution and all related files in the data of target customer - no errors or warnings are expected.

    8. Check the contеnt of page Service=>Editor - In folder “SharedTimeConfiguration” no changes or edits have occured, and no new edits have been done to either of the SharedTime module referred in Save-as wizard; in folder “ControlCallflow” file for the new solution i slisted with the name defined in Save-as wizard; in folder “ControlCallflow” => sub-folder “xslt” the same set of XSLT files as for original soution is created for the new solution as well.

    9. Check the contеnt of page Services=>Audio - The same set of Audio module as for original solution is listed for the new solution as well.

    10. Check the contеnt of page Services=>Queues - No new queue have been created; in page Service=>Service VAriables no new service variables have been created.

    11. Open the page Services=>Callflow and open the new solution - The TopLevel diagram of solution displays with same set of errors and/or warnings reported as for original solution; no new errors or warnings are expected.

Advanced usage and functionality

  1. Replace the CFT solution and all related to it files in target customer with solution data and files from original customer

    1. Recently created customer already has full set of data for CFT solutions: page Services=>Callflow contains at least one solution, page Services=>Editor lists 2 folders: “ControlCallflow” and “SharedTimeConfiguration”; page Services=>Time lists at least one SharedTime module; page Services=>Service Variables lists at least one service variable. At least one queue is defined for customer in page Services=>Queues. At least one audio file exist in customer data and is listed in page Services=>Audio.

    2. User logged in is from a (original) customer that is managing-partner for another (target) customer.

    3. Open the existing CFT solution of original customer, that has at least one BoundLocal Time module pointing to a SharedTime module, at least one XmlRequest (ex ExternalLookup) module with request schema defined, and at least one XmlRequest module with response schema defined.

    4. Choose from “Save version” menu the “Save as…” option - The Save-as wizard displays, by default listing: original customer in field “Customer key”; SharedTime modules from original customer’s data refered by the BoundLocal modules in configuration.

    5. Enter new name for the solution.

    6. Choose target customer in drop-down field “Customer key” - Chosen customer key displays as field value.

    7. Remove value of SharedTime module in a field from column “Shared Time Modules“ and click in the input field - An auto-suggestion list proposes SharedTime modules found in target customer’s data.

    8. Choose a SharedTime module from suggested list - Identification of chosen SharedTime omdule displays as value of modified field. I ffor some reason SharedTime odule chosen has no exits - field is marked as invalid and at mouse-over a proper validation hint displays.

    9. Ensure checkbox “Overwrite existing files” is OFF.

    10. Click the “Save” button - CTF Console pops up and reports results from attempting to save CFT solution and all related files in the data of target customer - no errors or warnings are expected.

    11. Enter in the context of target customer, and check all files related to CFT solution - Page Services=>Callflow lists the just saved-as solution; page Services=>Editor lists 2 folders: “ControlCallflow” and “SharedTimeConfiguration”; folder “SharedTimeConfigurationoriginal set of SharedTime modules of the target customer, otgether with any SharedTime modules with so-far new for target customer identifications transfered from original customer’s data and refered in original solution; folder “ControlCallflow” lists the just saved-as solution and folder “xslt”; folder “xslt” lists all XSLT files with content for the request and response schemas of XmlRequest (ex ExternalLookup) modules from solution - transfered active versions of the XSLT files refered by XmlRequest modules from oroiginal solution; page Services=>Queues still lists the same set of queue as before the save-as operation; page Services=>Audio is listing all audio modules mentioned in just saved-as solution - modules from original solution with a user-defined string as URI value have the same string value in target customer’s data as well, modules from original solution pointing to sound files are now having string values with automatically transformed URIs pointing to sound files with the same names but in the context of target customer (if original and target customer have sound files with the same identification - the newly created Audio modules will refer to the sound files existing in target customer’s data).

    12. Open the new solution from page Services=>Callflow - The TopLevel diagram of solution displays with same set of errors and/or warnings reported as for original solution; no new errors or warnings are expected.

    13. Mouse-over a Queue module marked as invalid, that in original solution was valid - A validation hint for queue_key value out of the set of current customer displays for diagram node.

    14. Mouse-over a CCSwitch module marked invalid, that in original solution was valid - A validation hint for service variable value out of the set of current customer displays for diagram node.

    15. Open a module (Audio, Menu, or CallerInput) that in original solution was referring to a sound file, and in target customer has a string value - DetailsDialog for module displays with string value for the sound-file referring field, field is not marked invalid, and has the same string value as listed in page Services=>Audio.

Limitations and known issues

  1. Files creation may fail when no folders exist in target customer’s page Services=>Editor

  2. No clear differentiation between original and target customer’s SharedTime modules in Save-as wizard

  3. URIs referring to non-existing sound files in target customer’s data will cause modules invalidation

  4. References to non-existing in target customer’s data queue keys will invalidate the Queue modules without deleting values in KML

  5. References to non-existing in target customer’s data service variables will invalidate CCSwitch modules without deleting values in KML

Hints and tricks

  1. Ensure the checkbox “Overwrite existing files“ is always ON

  2. Always change the original solution name

  3. Always check the data of a target customer before copying solutions from other customers data

  4. Ensure BoundTime modules in the original solution are referring to the latest versions of their SharedTime modules

Published

03/05/2022 - 08:31

Last updated

29/09/2023 - 11:49
0
2