示例:脚本示例所执行的操作

当上报运行操作时,操作将启动脚本。脚本确定将服务请求分配至的组。

以下脚本用于自动将服务请求分配给服务组:
#Check if the SR is classified as a pipe leakage
if v_srclassif=='PIPE_LEAK':
        #Now calculate total volume of the pipe-formula is:3.14 * length * (diameter / 24) ^ 2
        volume = 3.14 * v_srattrlen * (v_srattrdiameter / 24)**2
        if volume < 1000:
                #If volume is less than 1000 cubic feet, just assign SR to GROUP A
                v_servicegroup = 'GROUP A'
        else:
                #If vol is greater than 1000 cubic ft, assign SR to GROUP B and create worklog
                v_servicegroup = 'GROUP B'
                # Now add the MBO API code to create a new record in the work log for the SR
                worklogset = mbo.getMboSet ('WORKLOG')
                 worklog = worklogset.add()
                 worklog.setValue('clientviewable',1)
                 worklog.setValue('logtype','WORK')
                 worklog.setValue('description','System initiated processing-work assigned to GROUP B')
当上报运行时,该脚本将执行以下逻辑:
  1. 检查服务请求的分类是否为“PIPE_LEAK”。如果找到匹配项,那么将继续执行。
  2. 通过使用公式计算管道体积,并将结果存储在本地变量中。
  3. 如果体积小于 1000 立方英尺,那么将服务请求分配给“GROUP A”。
  4. 如果体积大于 1000 立方英尺,那么将服务请求分配给“GROUP B”。创建工作日志以指示服务请求处理已启动。
脚本将指示何时必须使用记录的 MBO API。为了进行计算,您可以定义输入变量来提供脚本需要的数据。用于计算管道体积的公式可在许多公用 Web 站点上获取。在此示例中,脚本中使用了输入变量 v_srclassifv_srattrdiameterv_srattrlen。这些输入变量基于 SR、TICKETSPECCLASS 和 CLASSSTRUCTURE 业务对象中的绑定。
表 1. 脚本示例中使用的变量
变量 绑定 解析绑定的方式
v_srclassif CLASSSTRUCTURE.CLASSIFICATIONID 脚本编制框架遍历从 SR 对象到 CLASSSTRUCTURE 对象的 CLASSSTRUCTURE 关系,并检索字符串值 CLASSIFICATIONID。
srattrdiameter TICKETSPECCLASS[ASSETATTRID='DIAMETER'].NUMVALUE 脚本编制框架遍历从 SR 对象到 TICKETSPECCLASS 对象的 TICKETSPECCLASS 关系,并且检索直径属性的值。为了检索一个属性,绑定在方括号中指定过滤器 [ASSETATTRID= 'DIAMETER']。
v_srattrlen TICKETSPECCLASS[ASSETATTRID='LENGTH'].NUMVALUE 脚本编制框架从绑定和过滤器中检索长度属性的单一值。

计算管道体积时,脚本将检查值是大于还是小于 1000 立方英尺。根据脚本中 ifelse 条件的结果,输出变量 v_servicegroup 将设置为服务组 A 或服务组 B。脚本将从 v_servicegroup 变量中检索值,并将该值输入到服务请求中。