1

我正在研究 Hybris 的 WorkFlow。我创建了具有相应工作流操作和决策的工作流模板。如果我正在使用 adminCockpit 并执行操作。然后我的工作流程工作正常。

但我现在想通过 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
}

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

4

1 回答 1

1

我也面临同样的问题。实际上,每当您通过 admincockpit 执行操作时,它都会de.hybris.platform.workflow.jobs.AutomatedWorkflowTemplateJob显示相应perform(final WorkflowActionModel action)操作的界面。

如果您将尝试通过 HMC 执行相同的任务,它将看起来不推荐使用的de.hybris.platform.workflow.jalo.AutomatedWorkflowTemplateJob界面。因此,对于 HMC,您必须实施已弃用的 AutomatedWorkflowTemplateJob。不推荐使用的接口要求WorkflowAction类覆盖执行方法。所以想法是将此对象类转换为使用modelService.

你需要做的是..

  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. 像这样你可以在 depreciated 上工作AutomatedWorkflowTemplateJob。这不会给你Incorrect type defined for automated workflow错误。您也可以通过 HMC 执行相同的操作。

希望这会帮助你。祝你好运!

于 2014-05-19T11:06:38.877 回答