Python 1 脚本中任务索引超出范围

问题描述 投票:0回答:1

我的问题与此处发布的上一期非常相似:

IndexError:索引超出范围

我正在改编为 XL-Release 社区插件开发的代码。这个原始的社区“插件”只不过是一个迭代列表并创建与列表项一样多的任务的任务。我们对这个原始代码做了一些小改动,以便迭代 python 字典的列表,但我在这个方法上遇到了错误:

def addTaskToChangeVariable(value):
    scriptTask = taskApi.newTask("xlrelease.ScriptTask")
    print("The task is {} ".format(scriptTask))
    scriptTask.script = "releaseVariables.update({})".format(value)
    scriptTask.title = "{} ".format(value)
    scriptTask = phaseApi.addTask(task.container.id, scriptTask, position)
    # taskApi.lockTask(scriptTask.id)

错误是:

javax.script.ScriptException:com.xebialabs.deployit.checks.Checks$In CorrectArgumentException:com.xebialabs.deployit.checks.Checks$In CorrectArgumentException:第103行的任务索引超出范围

我仍在对 XL-Release 上的此错误进行故障排除

indexing python-2.x
1个回答
0
投票

我相信您发生越界错误是因为该位置超出了您阶段内的任务索引。 如果您的自定义任务位于阶段顶部且索引 = 0,则此脚本可将值“bar”分配给文本变量“foo”。您只需要知道或计算有效位置即可。

def addTaskToChangeVariable(varname, value):
    scriptTask = taskApi.newTask("xlrelease.ScriptTask")
    print("The task is {} ".format(scriptTask))
    scriptTask.script = "releaseVariables['{}'] = '{}'".format(varname, value)
    scriptTask.title = "{} ".format(varname)
    scriptTask = phaseApi.addTask(task.container.id, scriptTask, position)
    # taskApi.lockTask(scriptTask.id)

position = 1
addTaskToChangeVariable("foo", "bar")
© www.soinside.com 2019 - 2024. All rights reserved.