gpt4 book ai didi

java - Broadleaf Commerce - 我的工作流程 Activity 被执行两次

转载 作者:行者123 更新时间:2023-12-01 08:57:02 26 4
gpt4 key购买 nike

内置工作流 Activity 似乎被执行了两次。我正在测试结账工作流程,DecrementInventoryActivity 正在从 sku 中删除数量两次。

这是一个已知的错误还是我做错了什么?

我像这样创建了工作流程:

<!-- Checkout Workflow Configuration -->
<bean id="blCheckoutWorkflow" class="org.broadleafcommerce.core.workflow.SequenceProcessor">
<property name="processContextFactory">
<bean class="org.broadleafcommerce.core.checkout.service.workflow.CheckoutProcessContextFactory"/>
</property>
<property name="activities">
<list>
<bean p:order="6000" id="blDecrementInventoryActivity" class="org.broadleafcommerce.core.checkout.service.workflow.DecrementInventoryActivity">
<property name="rollbackHandler" ref="blDecrementInventoryRollbackHandler" />
</bean>
<bean p:order="7000" id="blCompleteOrderActivity" class="org.broadleafcommerce.core.checkout.service.workflow.CompleteOrderActivity">
<property name="rollbackHandler" ref="blCompleteOrderRollbackHandler" />
</bean>
<bean p:order="9999999" class="com.mycompany.workflow.checkout.NotifyExternalInventorySystem" />
</list>
</property>
<property name="defaultErrorHandler">
<bean class="org.broadleafcommerce.core.workflow.DefaultErrorHandler">
<property name="unloggedExceptionClasses">
<list>
<value>org.broadleafcommerce.core.inventory.service.InventoryUnavailableException</value>
</list>
</property>
</bean>
</property>
</bean>

最佳答案

从 Broadleaf 4.0 开始,DecrementInventoryActivity 默认添加到 blCheckoutWorkflow 中。请参阅 3.1.10-4.0.0 迁移说明:http://www.broadleafcommerce.com/docs/core/4.0/migration-notes/3.1-to-4.0-migration/3.1.10-to-4.0-migration ,在“库存管理”部分。

这也适用于defaultErrorHandler,并且您可以删除blCompleteOrderActivity(它始终在框架中管理)。基本上,您的自定义 blCheckoutWorkflow bean 应更改为:

<bean id="blCheckoutWorkflow" class="org.broadleafcommerce.core.workflow.SequenceProcessor">
<property name="activities">
<list>
<bean p:order="9999999" class="com.mycompany.workflow.checkout.NotifyExternalInventorySystem" />
</list>
</property>
</bean>

从 Broadleaf 3.0 开始,对 blCheckoutWorkflow bean 的任何修改都会经过 Broadleaf XML 合并处理(合并像 blCheckoutWorkflowactivities 列表这样的 bean id)。在您的情况下,由于 DecrementInventoryActivity 已在核心框架 XML 文件中定义,并且您的 blCheckoutWorkflow 定义与其合并,因此最终结果是 的 2 个实例减少库存 Activity

关于java - Broadleaf Commerce - 我的工作流程 Activity 被执行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41984707/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com