No Entry in Workflow Instance Link
No Entry in Workflow Instance Link
https://liferay.dev/en/c/message_boards/find_thread?p_l_id=119785333&threadId=117444165
2024-03-29T14:57:48Z
2024-03-29T14:57:48Z
RE: No Entry in Workflow Instance Link
Arun Pandian
https://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=117488925
2019-10-18T13:11:54Z
2019-10-18T13:11:54Z
can you please help me on the this to find the issue. i have shared the code in below post
Arun Pandian
2019-10-18T13:11:54Z
RE: No Entry in Workflow Instance Link
Arun Pandian
https://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=117446071
2019-10-14T12:38:35Z
2019-10-14T12:38:35Z
<strong>Post Asset Renderer : </strong><br /><br />package Post.Web.asset;<br />import java.util.Date;<br />import java.util.Locale;<br />import javax.portlet.PortletRequest;<br />import javax.portlet.PortletResponse;<br />import javax.portlet.PortletURL;<br />import javax.portlet.WindowState;<br />import javax.servlet.http.HttpServletRequest;<br />import javax.servlet.http.HttpServletResponse;import com.liferay.asset.kernel.model.AssetRendererFactory;<br />import com.liferay.asset.kernel.model.BaseJSPAssetRenderer;<br />import com.liferay.portal.kernel.model.Group;<br />import com.liferay.portal.kernel.portlet.FriendlyURLMapper;<br />import com.liferay.portal.kernel.portlet.LiferayPortletRequest;<br />import com.liferay.portal.kernel.portlet.LiferayPortletResponse;<br />import com.liferay.portal.kernel.security.permission.PermissionChecker;<br />import com.liferay.portal.kernel.service.GroupLocalServiceUtil;<br />import com.liferay.portal.kernel.trash.TrashRenderer;<br />import com.liferay.portal.kernel.util.GetterUtil;<br />import com.liferay.portal.kernel.util.HtmlUtil;<br />import com.liferay.portal.kernel.util.PortalUtil;<br />import com.liferay.portal.kernel.util.ResourceBundleLoader;<br />import com.liferay.portal.kernel.util.StringUtil;<br />import com.liferay.portal.kernel.util.Validator;<br />import com.liferay.portal.kernel.util.WebKeys;<br />import com.post.builder.model.post;import Post.Web.constants.PostWebPortletKeys;public class PostAssetRenderer extends BaseJSPAssetRenderer<post> implements TrashRenderer { private final post p;<br /> private final ResourceBundleLoader resourceBundleLoader; public PostAssetRenderer(post po, ResourceBundleLoader resourceBundleLoader) {<br /> this.p = po;<br /> this.resourceBundleLoader = resourceBundleLoader;<br /> } @Override<br /> public post getAssetObject() {<br /> return p;<br /> } @Override<br /> public long getGroupId() {<br /> return p.getGroupId();<br /> } @Override<br /> public long getUserId() {<br /> return p.getUserId();<br /> } @Override<br /> public String getUserName() {<br /> return p.getUserName();<br /> } @Override<br /> public String getUuid() {<br /> return p.getUuid();<br /> } @Override<br /> public String getClassName() {<br /> return post.class.getName();<br /> } @Override<br /> public long getClassPK() {<br /> return p.getPostId();<br /> } @Override<br /> public String getSummary(PortletRequest portletRequest, PortletResponse portletResponse) {<br /> int abstractLength = 200; if (portletRequest != null) {<br /> abstractLength = GetterUtil.getInteger(portletRequest.getAttribute(WebKeys.ASSET_ENTRY_ABSTRACT_LENGTH),<br /> 200);<br /> } String summary = p.getShort_content(); if (Validator.isNull(summary)) {<br /> summary = HtmlUtil.stripHtml(StringUtil.shorten(p.getShort_content(), abstractLength));<br /> }<br /> return summary;<br /> } @Override<br /> public int getStatus() {<br /> return p.getStatus();<br /> } @Override<br /> public String getTitle(Locale locale) {<br /> return p.getTitle();<br /> } public String getCoverImage() {<br /> return p.getCover_image();<br /> } public String getLanguageId() {<br /> return p.getLanguageId();<br /> } public Date getPublishedAt() {<br /> return p.getPublished_dt();<br /> } public String getShortDesc() {<br /> return p.getShort_content();<br /> }<br /> @Override<br /> public int getAssetRendererType() {<br /> return super.getAssetRendererType();<br /> } @Override<br /> public String getJspPath(HttpServletRequest request, String template) {<br /> System.out.println("Get JSP PATH : " + TEMPLATE_FULL_CONTENT);<br /> if (template.equals(TEMPLATE_ABSTRACT) || template.equals(TEMPLATE_FULL_CONTENT)) { return "/asset/" + template + ".jsp";<br /> } else { return null;<br /> }<br /> }<br /><br /> @Override<br /> public boolean include(HttpServletRequest request, HttpServletResponse response, String template) throws Exception {<br /> System.out.println("include Template " + template);<br /> request.setAttribute(PostAssetRenderFactory.TYPE, p);<br /> return super.include(request, response, template);<br /> } @Override<br /> public String getPortletId() {<br /> AssetRendererFactory<post> assetRendererFactory = getAssetRendererFactory(); return assetRendererFactory.getPortletId();<br /> }<br /> @Override<br /> public String getType() {<br /> // TODO Auto-generated method stub<br /> return PostAssetRenderFactory.TYPE;<br /> }<br /> @SuppressWarnings("deprecation")<br /> @Override<br /> public PortletURL getURLEdit(LiferayPortletRequest liferayPortletRequest,<br /> LiferayPortletResponse liferayPortletResponse) throws Exception { System.out.println("into urledit");<br /> Group group = GroupLocalServiceUtil.fetchGroup(p.getGroupId()); PortletURL portletURL = PortalUtil.getControlPanelPortletURL(liferayPortletRequest, group,<br /> PostWebPortletKeys.POSTWEB, 0, 0, PortletRequest.RENDER_PHASE); portletURL.setParameter("mvcRenderCommandName", "/blogs/edit_entry");<br /> portletURL.setParameter("entryId", String.valueOf(p.getPostId())); return portletURL;<br /> } @SuppressWarnings("deprecation")<br /> @Override<br /> public String getURLView(LiferayPortletResponse liferayPortletResponse, WindowState windowState) throws Exception { AssetRendererFactory<post> assetRendererFactory = getAssetRendererFactory(); PortletURL portletURL = assetRendererFactory.getURLView(liferayPortletResponse, windowState); portletURL.setParameter("mvcRenderCommandName", "view");<br /> portletURL.setParameter("PostId", String.valueOf(p.getPostId()));<br /> portletURL.setWindowState(windowState);<br /> System.out.println("GeTURLVIEW : " + portletURL.toString());<br /> return portletURL.toString();<br /> } @Override<br /> public String getURLViewInContext(LiferayPortletRequest liferayPortletRequest,<br /> LiferayPortletResponse liferayPortletResponse, String noSuchEntryRedirect) {<br /> return getURLViewInContext(liferayPortletRequest, noSuchEntryRedirect, "/asset/view_context", "entryId",<br /> p.getPostId());<br /> } @Override<br /> public boolean hasEditPermission(PermissionChecker permissionChecker) { return false;<br /> } @Override<br /> public boolean hasViewPermission(PermissionChecker permissionChecker) { return true;<br /> }}<br /><strong>Asset Renderer Factory : <br /></strong><br />import javax.servlet.ServletContext;import org.osgi.service.component.annotations.Component;<br />import org.osgi.service.component.annotations.Reference;import com.liferay.asset.kernel.model.AssetRenderer;<br />import com.liferay.asset.kernel.model.AssetRendererFactory;<br />import com.liferay.asset.kernel.model.BaseAssetRendererFactory;<br />import com.liferay.portal.kernel.exception.PortalException;<br />import com.liferay.portal.kernel.security.permission.ActionKeys;<br />import com.liferay.portal.kernel.security.permission.PermissionChecker;<br />import com.liferay.portal.kernel.util.ResourceBundleLoader;<br />import com.post.builder.model.post;<br />import com.post.builder.service.postLocalService;<br />import Post.Web.constants.PostWebPortletKeys;@Component(immediate = true, property = {<br /> "javax.portlet.name=" + PostWebPortletKeys.POSTWEB }, service = AssetRendererFactory.class)public class PostAssetRenderFactory extends BaseAssetRendererFactory<post> { private postLocalService leaveService;<br /> private ResourceBundleLoader resourceBundleLoader;<br /> private ServletContext servletContext; public static final String TYPE = "Post Entry"; @Reference(unbind = "-")<br /> protected void setLeaveService(postLocalService leaveService) {<br /> this.leaveService = leaveService;<br /> } @Reference(unbind = "-")<br /> public void setResourceBundleLoader(ResourceBundleLoader resourceBundleLoader) {<br /> this.resourceBundleLoader = resourceBundleLoader;<br /> } @Reference(unbind = "-")<br /> public void setServletContext(ServletContext servletContext) {<br /> this.servletContext = servletContext;<br /> } public PostAssetRenderFactory() {<br /> setClassName(post.class.getName());<br /> setCategorizable(true);<br /> setLinkable(true);<br /> setPortletId(PostWebPortletKeys.POSTWE<img alt="emoticon" src="@theme_images_path@/emoticons/cool.gif" >;<br /> setSearchable(true);<br /> setSelectable(true);<br /> } @Override<br /> public AssetRenderer<post> getAssetRenderer(long classPK, int type) throws PortalException {<br /> post leave = leaveService.getpost(classPK);<br /> PostAssetRenderer assetRenders = new PostAssetRenderer(leave, resourceBundleLoader);<br /> assetRenders.setAssetRendererType(type);<br /> assetRenders.setServletContext(servletContext);<br /> return assetRenders;<br /> } @Override<br /> public String getType() {<br /> return TYPE;<br /> } @Override<br /> public String getClassName() {<br /> return post.class.getName();<br /> }<br /> <br /> @Override<br /> public String getIconCssClass() {<br /> return "blogs";<br /> }<br /> <br /> <br /> @Override<br /> public boolean hasPermission(PermissionChecker permissionChecker,<br /> long entryClassPK, String actionId) throws Exception {<br /> return true;<br /> }<br />}<br /><br /><strong>Workflow Handler :</strong> <br />package com.post.builder.workflow;<br />import org.osgi.service.component.annotations.Component;<br />import org.osgi.service.component.annotations.Reference;<br />import com.liferay.portal.kernel.exception.PortalException;<br />import com.liferay.portal.kernel.model.WorkflowDefinitionLink;<br />import com.liferay.portal.kernel.security.permission.ResourceActions;<br />import com.liferay.portal.kernel.security.permission.ResourceActionsUtil;<br />import com.liferay.portal.kernel.service.ServiceContext;<br />import com.liferay.portal.kernel.service.WorkflowDefinitionLinkLocalServiceUtil;<br />import com.liferay.portal.kernel.util.GetterUtil;<br />import com.liferay.portal.kernel.workflow.BaseWorkflowHandler;<br />import com.liferay.portal.kernel.workflow.WorkflowConstants;<br />import com.liferay.portal.kernel.workflow.WorkflowHandler;<br />import com.post.builder.model.post;<br />import com.post.builder.service.postLocalService;<br />import java.io.Serializable;<br />import java.util.Locale;<br />import java.util.Map;import javax.servlet.http.HttpServletRequest;<br />import javax.servlet.http.HttpServletResponse;@SuppressWarnings("unused")<br />@Component(immediate = true,property= {"model.class.name=com.post.builder.model.post"},<br />service = WorkflowHandler.class)public class PostWorkflowHandler extends BaseWorkflowHandler<post> { @Override<br /> public String getClassName() {<br /> // TODO Auto-generated method stub<br /> return post.class.getName();<br /> } @Override<br /> public String getType(Locale locale) {<br /> return ResourceActionsUtil.getModelResource(locale, getClassName());<br /> }<br /> @Override<br /> public post updateStatus(int status, Map<String, Serializable> workflowContext) throws PortalException { long userId = GetterUtil.getLong((String) workflowContext.get(WorkflowConstants.CONTEXT_USER_ID));<br /> long resourcePrimKey = GetterUtil<br /> .getLong((String) workflowContext.get(WorkflowConstants.CONTEXT_ENTRY_CLASS_PK)); ServiceContext serviceContext = (ServiceContext) workflowContext.get(WorkflowConstants.CONTEXT_SERVICE_CONTEXT); return _postLocalService.updateStatus(userId, resourcePrimKey, status, serviceContext);<br /> <br /> } @Reference(unbind = "-")<br /> protected void setPostLocalService(postLocalService postLocalService) { _postLocalService = postLocalService;<br /> } @Reference(unbind = "-")<br /> protected void setResourceActions(ResourceActions resourceActions) { _resourceActions = resourceActions;<br /> } private postLocalService _postLocalService;<br /> private ResourceActions _resourceActions;}
Arun Pandian
2019-10-14T12:38:35Z
RE: No Entry in Workflow Instance Link
Mohammed Yasin
https://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=117442833
2019-10-14T11:32:15Z
2019-10-14T11:32:15Z
Can u please share your Workflowhandler, AssetRenderer and AssetRedendererFactory ?
Mohammed Yasin
2019-10-14T11:32:15Z
RE: No Entry in Workflow Instance Link
Arun Pandian
https://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=117445364
2019-10-14T11:11:40Z
2019-10-14T11:11:40Z
And tell me a thing my post entity is showing in asset entry type <br /><br />but when i select a entity using asset renderer it says there is no results.<br /><br />but the my assets get displayed in asset publisher when using asset renderer factory.<br /><br />And my Assets are not get displayed in content under the Add portal panel and so as my post entity<br /><br />am i doing anything wrong?
Arun Pandian
2019-10-14T11:11:40Z
RE: No Entry in Workflow Instance Link
Mohammed Yasin
https://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=117442492
2019-10-14T10:56:38Z
2019-10-14T10:56:38Z
Ok.. If your AssetRenderer and AssetRendererFactory refers to post entity that should be enough .
Mohammed Yasin
2019-10-14T10:56:38Z
RE: No Entry in Workflow Instance Link
Arun Pandian
https://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=117444619
2019-10-14T10:10:35Z
2019-10-14T10:10:35Z
<p>Yea i have implemented AssetRenderer and Factory But in different MVC portlet not in post Entity Service.<br /><br />But i have implemented workflow in Post Entity Service.<br /><br />&nbsp;</p>
Arun Pandian
2019-10-14T10:10:35Z
RE: No Entry in Workflow Instance Link
Mohammed Yasin
https://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=117442138
2019-10-14T09:56:01Z
2019-10-14T09:56:01Z
Hi ,<br />Have your implemented AssetRenderer and AssetRendererFactory for post entity ? if not please try doing it. <br />You can refer this <a href="https://portal.liferay.dev/docs/7-1/tutorials/-/knowledge_base/t/creating-an-asset-renderer">https://portal.liferay.dev/docs/7-1/tutorials/-/knowledge_base/t/creating-an-asset-renderer</a>
Mohammed Yasin
2019-10-14T09:56:01Z
No Entry in Workflow Instance Link
Arun Pandian
https://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=117444164
2019-10-14T08:19:39Z
2019-10-14T08:19:39Z
Hi,<br /><br />I have enabled the workflow for custom entity and the entity with single approver status is present in workflow definition table <br />i have added the entity in asset <br /> AssetEntry assetEntry = assetEntryLocalService.updateEntry(p.getUserId(), p.getGroupId(), p.getCreateDate(),<br /> p.getModifiedDate(), post.class.getName(), p.getPrimaryKey(), p.getUuid(), 0,<br /> serviceContext.getAssetCategoryIds(), serviceContext.getAssetTagNames(), true, p.isApproved(), null,<br /> null, p.getPublished_dt(), null, ContentTypes.TEXT_HTML, p.getTitle(), p.getShort_content(), null, null,<br /> null, 0, 0, serviceContext.getAssetPriority());<br /> <br /> System.out.println("workflow actions : " + serviceContext.getWorkflowAction()); Indexer<post> indexer = IndexerRegistryUtil.nullSafeGetIndexer(post.class);