2015-06-30 3 views
3

Я пытаюсь выполнить Javascript в своем рабочем процессе Alfresco, чтобы создать собственный тип списка данных на моем сайте под названием «Тестирование». Но прежде чем заполнить информацию о типе пользовательских данных, я попробовал просто создать список данных списка контактов на основе примеров, которые я нашел, чтобы убедиться, что он работает.Alfresco: Создание списка данных Javascript

Вот мой код:

var site = siteService.getSite("Testing"); 
var dataLists = site.childByNamePath("dataLists"); 

if (!dataLists) { 
    var dataLists = site.createNode("dataLists", "cm:folder"); 

    var dataListProps = new Array(1); 
    dataListProps["st:componentId"] = "dataLists"; 
    dataLists.addAspect("st:siteContainer", dataListProps); 
    dataLists.save(); 

    logger.log("Created new datalists folder.");' 
} 

var contactList = dataLists.childByNamePath("contactlist1"); 

if (!contactList) { 
    var contactList = dataLists.createNode("contactlist1","dl:dataList"); 

    // tells Share which type of items to create 
    contactList.properties["dl:dataListItemType"] = "dl:contact"; 
    contactList.save(); 

    var contactListProps = []; 
    contactListProps["cm:title"] = "My Contacts"; 
    contactListProps["cm:description"] = "A contact list generated by a javascript."; 
    contactList.addAspect("cm:titled", contactListProps); 

    logger.log("Created contact datalist."); 

} 

var contact = contactList.createNode(null, "dl:contact") 
contact.properties["dl:contactFirstName"] = "Florian"; 
contact.properties["dl:contactLastName"] = "Maul"; 
contact.properties["dl:contactEmail"] = "[email protected]"; 
contact.properties["dl:contactCompany"] = "fme AG"; 
contact.properties["dl:contactJobTitle"] = "Senior Consultant"; 
contact.properties["dl:contactPhoneMobile"] = "not available"; 
contact.properties["dl:contactPhoneOffice"] = "not available"; 
contact.properties["dl:contactNotes"] = "Alfresco Expert"; 
contact.save(); 
logger.log("Created new contact: " + contact.nodeRef); 

Я думаю, это не правильный выбор сайта, но я не знаю, как еще установить переменный сайт на сайт «Тестирование». Кроме того, я знаю, что этот код находится в нужном месте в моем .bpmn файле, потому что другой Javascript там работает правильно.

Что не так с моим кодом?

+0

Какая ошибка вы получаете? Возможно, у вас нет доступа к siteService. – mitpatoliya

+0

@mitpatoliya: Я не уверен, но, я не думаю, что мы можем ограничить доступ к сайту или другому сервису. Если это возможно, можете ли вы сказать мне, как это сделать? –

+0

@KrutikJayswal services и alfresco javascript objects avilablity отличаются в зависимости от контекста, в котором вы работаете, поэтому я не хотел ограничивать доступ явно. – mitpatoliya

ответ

2

Есть 2 объекта javascript, на которых у вас есть путаница. Один из них - site, а другой - node. Объект объекта не имеет метода под названием childByNamePath.

Вместо этого используется ниже для получения данных.

var dataLists = site.getContainer("dataLists"); 

Ваш код для извлечения сайта правильный. Единственное изменение для datalist.

+0

Спасибо за помощь, Крутик. Однако код все еще не работает. Будет ли метод .childByNamePath() в определении contactList быть проблемой, основанной на вашем ответе? – Alan

+0

http://pastebin.com/g55kLAPG Этот код работает на моем конце. –

+0

Он работает, спасибо! – Alan