Reputation: 280
I have created structure and template through portal UI. Now I am creating the journal article programmatically in the action class. While creating a journal article in the action class I want to set the existing structure and template to this journal article. I am trying to use the following method but here what is meant by ddmStructureKey and ddmTemplateKey.
Are those related to my requirement only?
JournalArticleLocalServiceUtil.addArticle(userId, groupId, folderId, titleMap, descriptionMap, content, ddmStructureKey, ddmTemplateKey, serviceContext)
Help me out on this unknown thing. Thanks.
Upvotes: 3
Views: 2157
Reputation: 280
The following code i written to answer the above question and it worked out for me.Thanks to @Romeo Sheshi. I have hard coded some of the things.As per your requirement you can do whatever yo want.
ThemeDisplay themeDisplay = (ThemeDisplay)actionRequest.getAttribute(WebKeys.THEME_DISPLAY);
Long parentFolderId = DLFolderConstants.DEFAULT_PARENT_FOLDER_ID;
DDMStructure ddmStructure=DDMStructureLocalServiceUtil.getDDMStructure(11515);
DDMTemplate ddmTemplate=DDMTemplateLocalServiceUtil.getDDMTemplate(11517);
Map<Locale,String> titleMap=new HashMap<Locale,String>();
titleMap.put(themeDisplay.getLocale(), "First Record");
String content=
"<root available-locales='en_US' default-locale='en_US'>"
+"<dynamic-element dataType='string' indexType='keyword' name='Title' readOnly='false' repeatable='false' required='false' showLabel='true' type='text' width='small'>"
+"<dynamic-content>FirstRecord</dynamic-content>"
+"</dynamic-element>"
+"<dynamic-element dataType='string' indexType='keyword' name='Description' readOnly='false' repeatable='false' required='false' showLabel='true' type='textarea' width='small'>"
+" <dynamic-content>This the first one doing by programatically</dynamic-content>"
+"</dynamic-element>"
+"<dynamic-element dataType='image' fieldNamespace='wcm' indexType='keyword' name='DamImage' readOnly='false' repeatable='false' required='false' showLabel='true' type='wcm-image' width=''>"
+" <dynamic-content>http://localhost:8080/documents/10184/0/welcome_community/0dc0adb1-b565-409a-b766-96d1e42b04fb?t=1459163274526</dynamic-content>"
+"</dynamic-element>"
+"<dynamic-element dataType='string' indexType='keyword' name='UserIdExcel' readOnly='false' repeatable='false' required='false' showLabel='true' type='text' width='small'>"
+" <dynamic-content>458155</dynamic-content>"
+"</dynamic-element>"
+"<dynamic-element dataType='string' indexType='keyword' name='Username' readOnly='false' repeatable='false' required='false' showLabel='true' type='text' width='small'>"
+" <dynamic-content>LaxmanDeepak</dynamic-content>"
+"</dynamic-element>"
+"<dynamic-element dataType='date' fieldNamespace='ddm' indexType='keyword' name='DateFromExcel' readOnly='false' repeatable='false' required='false' showLabel='true' type='ddm-date' width='small'>"
+"<dynamic-content>03/29/2016</dynamic-content>"
+"</dynamic-element>"
+"</root>";
ServiceContext serviceContext = new ServiceContext();
serviceContext.setScopeGroupId(themeDisplay.getScopeGroupId());
serviceContext.setWorkflowAction(WorkflowConstants.ACTION_PUBLISH);
JournalArticleLocalServiceUtil.addArticle(themeDisplay.getUserId(), themeDisplay.getScopeGroupId(), parentFolderId, titleMap, null, content, ddmStructure.getStructureKey(), ddmTemplate.getTemplateKey(), serviceContext);
Upvotes: 2
Reputation: 931
the ddmStructure and ddmTemplateKey are the structure of the article and the template(velocity,freemarker) to render that article. if you use an empty string you pick up the default template and the default structure otherwise if you wont to use an your structure and template you have to fetch them with these services
DDMStructureLocalServiceUtil
DDMTemplateLocalServiceUtil
Upvotes: 0