To be more correct, the TransactionManager of the GenericXaResource
enlist() service is not set to the STATUS_ACTIVE value which causes the
error to be thrown. The setInvoiceStatus eca works fine when called for
the auto-invoicing functions of the shipment status changing services.
On 04/09/2014 03:01 PM, Christian Carlow wrote:
> This error occurs when trying to change an invoice status to ready:
> Error calling event: org.ofbiz.webapp.event.EventHandlerException:
> Service invocation error (No transaction manager or invalid status)
>
> The setInvoiceStatus eca rule at
> applications/accounting/servicedef/secas_olap.xml seems to be causing
> the problem. The event="global-commit-post-run" which is handled
> differently by the runAction service of
> framework/service/src/org/ofbiz/service/eca/ServiceEcaAction.java.
> Events with prefix "global-" create a ServiceXaWrapper with its active
> field set to false by default which is never set to true before the
> enlist() method is called which requires the status to be active.
>
> I'm not very familiar with what is going on in the code but according
> to the GenericXaResource extended ServiceXaWrapper, the active field
> doesn't get set to true unless the start method is called. Should a
> call to the start method of the ServiceXaWrapper be added after being
> created?