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