脚本编写最佳做法和建议

以下是脚本编写的重要说明、最佳实践和建议。 

队列名称变量

  • The script does not know the Scripter.Queue Name variable value when the page loads. The script must request the data for the variable from the platform. As a result, the Scripter.Queue Name variable might not be available for anything other than displaying, including using its value inside a complex action. If you want to use the queue name for some conditional logic inside a script, for example, you want to use the queue name in your logic, you might have an issue. This issue is because the variable might be empty or changed by some other logic when the script runs. If you choose to use the queue name and the name changes, the action can be broken. Only use Scripter.Queue Namefor display purposes. When the data must be immediately available, we recommend relying on the Scripter.Queue IDvariable in place of Scripter.Queue Name. To directly load the queue name before calling external actions that require the name, use Scripter.Queue ID.

联系人列表数据

  • 联系人列表数据是在活动期间加载脚本时获取的。 要在检索数据后触发操作,请使用 “联系人数据加载” 操作,而不是 “脚本页面” 加载操作。 当脚本编写者获取正在打电话或接到电话的联系人时,它会影响他们的数据。 当从平台请求数据时,脚本加载时数据可能不可用。 如果您尝试在起始页的脚本加载或页面加载操作期间使用联系人数据,则数据可能不会加载到变量中。 当您要在脚本中使用联系人数据时,我们建议您使用 “出站功能” 下的 “脚本属性” 中提供的 “联系人数据加载” 操作。

页面加载操作

  • 请务必注意,每次切换页面时都会触发 “页面加载” 操作,但是,并非每次切换交互并返回该交互时都会触发 “页面加载” 操作。
  • To write a Page Load action that only triggers once and not on every page change, use a TrueFalse custom script variable such as hasTriggered. Wrap the logic that runs once with a check to that variable. 

刷新浏览器

  • 刷新浏览器时,平台不会重试正在进行的操作。 当您通过平台触发长轮询操作时,请注意,如果代理刷新浏览器但该操作尚未完成,则该操作将按原样停止,脚本将重新加载,并且不会重试该操作。 即使动作运行时间不长,浏览器也有可能在动作过程中刷新。 无法控制此刷新,也无法恢复或重试该操作。

输入变量

  • Input variables are only fetched once on script load. These variables do not update as conversation updates come in. Use the Scripter.Refresh Input Variablesaction to re-fetch the values from a conversation and update the input variables.