脚本编写最佳做法和建议

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

队列名称变量

  • 脚本不知道Scripter.Queue Name页面加载时的变量值。脚本必须从平台请求变量的数据。因此,Scripter.Queue Name变量可能无法用于除显示之外的任何其他用途,包括在复杂操作中使用其值。如果您想在脚本中的某些条件逻辑中使用队列名称,例如,您想在逻辑中使用队列名称,则可能会遇到问题。此问题是因为脚本运行时变量可能为空或被其他逻辑更改。如果您选择使用队列名称并更改名称,则操作可能会中断。仅使用Scripter.Queue Name用于显示目的。当数据必须立即可用时,我们建议依靠Scripter.Queue ID变量代替Scripter.Queue Name。要在调用需要名称的外部操作之前直接加载队列名称,请使用Scripter.Queue ID

联系人列表数据

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

页面加载操作

  • 请务必注意,每次切换页面时都会触发 “页面加载” 操作,但是,并非每次切换交互并返回该交互时都会触发 “页面加载” 操作。
  • 要编写仅触发一次(而不是每次页面更改时都触发)的页面加载操作,请使用 TrueFalse 自定义脚本变量,例如hasTriggered。将运行一次的逻辑与对该变量的检查结合起来。 

刷新浏览器

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

输入变量

  • 输入变量仅在脚本加载时获取一次。这些变量不会随着对话更新而更新。使用Scripter.Refresh Input Variables从对话中重新获取值并更新输入变量的操作。