Наследование JavaScript под открытым небом и пути

Я пишу простой сценарий на JavaScript для сообщества Alfresco. У меня есть скрипт runnign каждый раз, когда загружается новый файл.

Мне нужно проверить, есть ли конкретное имя файла (label.txt) в папке. Если он существует, я буду использовать информацию, содержащуюся в файле, для дальнейшего лечения.

Если я задаю только имя файла, оно будет работать до тех пор, пока сама папка с назначенным скриптом будет работать безупречно.

var labelFile = space.childByNamePath("label.txt");
   if (labelFile != null)
   {
   ...
   }

Когда я устанавливаю наследование скрипта для папок более низкого уровня, скрипт запускается, но все еще пытается найти label.txt файл в корневой папке. Я пытаюсь найти фактический путь к загруженному документу:

var dpath = document.displayPath  + "/label.txt";
var labelFile = space.childByNamePath(dpath);
logFile.content += "labelFile: " + labelFile.displayPath + "\r\n";
   if (labelFile != null)
   {
   ...
   }

Я получаю предположительно правильный путь в переменной dpath, но получаю нулевой результат для объекта файла, поэтому не могу прочитать файл и его содержимое.

Что я делаю не так?

2 ответа

Решение

Проблема была не в наследовании, а в space.childByNamePath, принимающем относительные пути, а не абсолютные, поэтому я должен вычислить его из пробела:

var dpath = document.displayPath;
var dpatharray = dpath.split("/");
var dpathlength = dpatharray.length;
var spath = space.displayPath;
var spatharray = spath.split("/");
var spathlength = spatharray.length;
var labelpath = "";
for (var i=spathlength + 1; i<dpathlength; i++)
{
    labelpath += dpatharray[i] + "/";
}

var labelFile = space.childByNamePath(labelpath + "label.txt");

Что такое "пространство" там? Попробуйте использовать "companyhome", посмотрите это для дальнейших идей. http://docs.alfresco.com/4.0/references/API-JS-rootscoped.html

Текущий пробел ScriptNode (если есть). Для сценария, выполняющегося из правила, пространственный объект - это пространство, в котором находится правило. Если правило наследуется, это может быть не ожидаемое пространство.

Другие вопросы по тегам