Мне нужно программно создать структуру и шаблон с помощью java-кода. Я использовал следующие фрагменты кода.
Структура:
public void createStructure(String userName,long userId){
log_.info("Inside create structure ");
long structureId=115203;
DDMStructure ddmStructure=DDMStructureLocalServiceUtil.createDDMStructure(structureId);
ddmStructure.setName("MigrationStructure");
ddmStructure.setDescription("This Structure created programatically");
ddmStructure.setUserId(userId);
ddmStructure.setUserName(userName);
File fXmlFile = new File("D:/FilesDataMigration/structure.xml");
try {
Document document = SAXReaderUtil.read(fXmlFile);
ddmStructure.setDocument(document);
DDMStructureLocalServiceUtil.addDDMStructure(ddmStructure);
}catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SystemException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
log_.info("Inside create structure done");
}
Шаблон:
public void createTemplate(String userName,long userId){
log_.info("Inside create template ");
long templateId=12504;
DDMTemplate ddmTemplate=DDMTemplateLocalServiceUtil.createDDMTemplate(templateId);
ddmTemplate.setName("MigrationTemplate");
ddmTemplate.setDescription("This Template created programatically");
ddmTemplate.setUserId(userId);
ddmTemplate.setUserName(userName);
try {
BufferedReader br = new BufferedReader(new FileReader("D:/FilesDataMigration/template.txt"));
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
String script = sb.toString();
ddmTemplate.setScript(script);
DDMTemplateLocalServiceUtil.addDDMTemplate(ddmTemplate);
}catch(IOException e){
e.printStackTrace();
} catch (SystemException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
log_.info("Inside create template done");
}
Приведенные выше фрагменты выполняются правильно, без каких-либо исключений, но не могут отображаться в разделе содержимого панели управления. Предложите мне, если что-то не так
classNameId
,language
и т. д. - person Parkash Kumar   schedule 06.04.2016DDMStructure ddmStructure = DDMStructureUtil.create(CounterLocalServiceUtil.increment());
иDDMTemplate ddmTemplate = DDMTemplateUtil.create(CounterLocalServiceUtil.increment());
вместо жестко заданных идентификаторов. - person Parkash Kumar   schedule 06.04.2016ClassName
с помощьюClassName className = ClassNameLocalServiceUtil.getClassName(""com.liferay.portlet.journal.model.JournalArticle"");
, затем использоватьclassName.getClassNameId()
для установкиclassNameId
для структуры/шаблона. - person Parkash Kumar   schedule 07.04.2016DDMStructureUtil.update(ddmStructure);
вместоDDMStructureLocalServiceUtil.addDDMStructure(ddmStructure);
, когда вы закончите настройку необходимых свойств. То же самое касается иDDMTemplate
. - person Parkash Kumar   schedule 07.04.2016ddmStructure.setGroupId(groupId);
- person Nicolas Raoul   schedule 29.05.2017ddmStructure.setCompanyId(PortalUtil.getDefaultCompanyId());
- person Nicolas Raoul   schedule 29.05.2017