AutomatedWorkflowActionException:为Hybris中的自动化工作流程定义的类型不正确

时间:2014-05-17 08:15:37

标签: java hybris

我正在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
}

任何人都可以深入研究这个错误。请帮我解决这个问题。

1 个答案:

答案 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类转换为模型。

你要做的就是......

  1. 在自动作业类中实施了已弃用的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 ..........
        }
    
    }
    
  2. 就像那样你可以处理折旧的AutomatedWorkflowTemplateJob。这不会给您Incorrect type defined for automated workflow错误。您也可以通过HMC执行相同的操作。

  3. 希望这会对你有所帮助。祝你好运!