我正在Hybris的WorkFlow工作。我创建了具有相应工作流操作和决策的工作流模板如果我正在使用adminCockpit并执行操作。然后我的workFlow工作正常。
但我现在想通过HMC执行相应的操作。假设Action1已分配给用户A.现在,用户A将通过HMC登录并检查其收件箱。他也可以接受或拒绝工作流程。
当我通过HMC执行工作流操作时,我收到此错误:
de.hybris.platform.workflow.jalo.AutomatedWorkflowActionException: Incorrect type defined for automated workflow. containerCreationJob should implement de.hybris.platform.workflow.jalo.AutomatedWorkflowTemplateJob[HY--1]
代码:
import de.hybris.platform.workflow.jobs.AutomatedWorkflowTemplateJob;
public class AbstractOrderCreationJob implements AutomatedWorkflowTemplateJob
{
// some code
}
任何人都可以深入研究这个错误。请帮我解决这个问题。
答案 0 :(得分:1)
我也面临同样的问题。实际上,每当您通过admincockpit执行操作时,它会看到de.hybris.platform.workflow.jobs.AutomatedWorkflowTemplateJob
接口与相应的perform(final WorkflowActionModel action)
操作。
如果您尝试通过HMC执行相同的任务,它将看起来已弃用de.hybris.platform.workflow.jalo.AutomatedWorkflowTemplateJob
界面。因此,对于HMC,您必须实现已弃用的AutomatedWorkflowTemplateJob。不推荐使用的接口要求WorkflowAction
类覆盖执行方法。因此,Idea是使用modelService
将此obeject类转换为模型。
你要做的就是......
在自动作业类中实施了已弃用的AutomatedWorkflowTemplateJob
。
import de.hybris.platform.workflow.jalo.AutomatedWorkflowTemplateJob;
import de.hybris.platform.workflow.jalo.WorkflowAction;
import de.hybris.platform.workflow.jalo.WorkflowDecision;
public class xyzJob implements AutomatedWorkflowTemplateJob
{
@Override
public WorkflowDecision perform(final WorkflowAction action)
{
//suppose you want to get Order
final WorkflowActionModel workflowActionModel = modelService.get(action);
final OrderModel order = getAttachedOrder(workflowActionModel);
........ more code ..........
}
}
就像那样你可以处理折旧的AutomatedWorkflowTemplateJob
。这不会给您Incorrect type defined for automated workflow
错误。您也可以通过HMC执行相同的操作。
希望这会对你有所帮助。祝你好运!