Вот как структурирован Код:
void checkModule(string folderPath, string mName, Skip list, int listSize, int listLastIndex, string headers[], string heading[], string headerKey, bool uniqueKey, string combinedKey[]){
if (module mName){
Folder f = folder(folderPath)
current = f
Module m = edit(folderPath""mName, false)
current = m
Object o = first(m) // error sometimes: Se ha pasado un parametro Module null en una posición de argumento 1
if (o == null){
loadModule(m, list, listSize, listLastIndex, headers, heading)
} else {
updateModule(m, mName, list, listSize, listLastIndex, heading, headerKey, headers, uniqueKey, combinedKey)
save(m)
close(m)
}
if (lastError() != ""){
print "Error: " lastError() "\n"
}
} else {
print "No module " mName ".\n"
}
}
Точно, это ломается в линию:
current = m
Но, как сказано, только иногда, не всегда.
Кстати, я выполняю этот скрипт через пакетную, через код Java. Любопытно, что если я закрываю DOORS и выполняю скрипт, он выполняется правильно. Это как если бы его нужно было закрыть, чтобы правильно редактировать модули.
Я нажимаю текущий может использоваться более одного раза с различными типами предметов. Я думаю, это не должно быть неправильно, но это нарушает высказывание (более или менее):
Нулевое значение передано команде DXL (текущий модуль).
Очевидно, это означает, что m является нулевым, но я не вижу никакой причины для этого.