applications/product/servicedef/secas.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
This file is subject to the terms and conditions defined in the
files 'LICENSE' and 'NOTICE', which are part of this source
code package.
-->
<service-eca xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/service-eca.xsd">
<!-- update inventory item -->
<eca service="updateInventoryItem" event="commit">
<condition field-name="statusId" operator="is-not-empty"/>
<condition-field field-name="oldStatusId" operator="not-equals" to-field-name="statusId"/>
<action service="createInventoryItemStatus" mode="sync"/>
</eca>
<eca service="updateInventoryItem" event="commit">
<condition field-name="statusId" operator="is-not-empty"/>
<condition field-name="productId" operator="is-not-empty"/>
<condition-field field-name="oldProductId" operator="not-equals" to-field-name="productId"/>
<action service="createInventoryItemStatus" mode="sync"/>
</eca>
<eca service="updateInventoryItem" event="commit">
<condition field-name="statusId" operator="is-not-empty"/>
<condition field-name="ownerPartyId" operator="is-not-empty"/>
<condition-field field-name="oldOwnerPartyId" operator="not-equals" to-field-name="ownerPartyId"/>
<action service="createInventoryItemStatus" mode="sync"/>
</eca>
<eca service="createItemIssuance" event="return"><!-- change the owner after item issuance transactions are created for old owner -->
<condition field-name="orderId" operator="is-not-empty"/>
<condition field-name="inventoryItemId" operator="is-not-empty"/>
<action service="changeOwnerUponIssuance" mode="sync"/>
</eca>
<!-- inventory transfer -->
<eca service="createInventoryTransfer" event="invoke">
<condition field-name="statusId" operator="not-equals" value="IXF_CANCELLED"/>
<action service="prepareInventoryTransfer" mode="sync"/>
</eca>
<eca service="createInventoryTransfer" event="commit">
<condition field-name="statusId" operator="equals" value="IXF_COMPLETE"/>
<action service="completeInventoryTransfer" mode="sync"/>
<action service="balanceInventoryItems" mode="sync"/>
</eca>
<eca service="updateInventoryTransfer" event="invoke">
<condition field-name="statusId" operator="equals" value="IXF_CANCELLED"/>
<action service="cancelInventoryTransfer" mode="sync"/>
</eca>
<eca service="updateInventoryTransfer" event="commit">
<condition field-name="statusId" operator="equals" value="IXF_COMPLETE"/>
<action service="completeInventoryTransfer" mode="sync"/>
<action service="balanceInventoryItems" mode="sync"/>
</eca>
<!-- inventory variance -->
<eca service="createPhysicalInventoryAndVariance" event="commit">
<action service="balanceInventoryItems" mode="sync"/>
</eca>
<!-- inventory changes -->
<eca service="balanceInventoryItems" event="commit">
<action service="updateProductIfAvailableFromShipment" mode="sync"/>
</eca>
<!-- Product Price Change ECAs -->
<eca service="createProductPrice" event="commit">
<action service="saveProductPriceChange" mode="sync"/>
</eca>
<eca service="updateProductPrice" event="commit">
<condition-field field-name="price" operator="not-equals" to-field-name="oldPrice" type="BigDecimal"/>
<action service="saveProductPriceChange" mode="sync"/>
</eca>
<eca service="deleteProductPrice" event="commit">
<action service="saveProductPriceChange" mode="sync"/>
</eca>
<!-- Product Party ECAs -->
<eca service="addPartyToCategory" event="invoke">
<condition field-name="roleTypeId" operator="equals" value="_NA_"/>
<action service="ensureNaPartyRole" mode="sync"/>
</eca>
<eca service="addPartyToFacility" event="invoke">
<condition field-name="roleTypeId" operator="equals" value="_NA_"/>
<action service="ensureNaPartyRole" mode="sync"/>
</eca>
<eca service="addPartyToFacilityGroup" event="invoke">
<condition field-name="roleTypeId" operator="equals" value="_NA_"/>
<action service="ensureNaPartyRole" mode="sync"/>
</eca>
<eca service="addProdCatalogToParty" event="invoke">
<condition field-name="roleTypeId" operator="equals" value="_NA_"/>
<action service="ensureNaPartyRole" mode="sync"/>
</eca>
<!-- Product Content ECAs -->
<eca service="createProductContent" event="in-validate">
<condition field-name="contentId" operator="is-empty"/>
<action service="createContent" mode="sync"/>
</eca>
<!-- pick list ECAs -->
<eca service="createPicklistFromOrders" event="in-validate">
<condition field-name="orderHeaderList" operator="is-empty"/>
<condition field-name="orderIdList" operator="is-not-empty"/>
<action service="convertPickOrderIdListToHeaders" mode="sync"/>
</eca>
<eca service="receiveInventoryProduct" event="commit">
<condition field-name="facilityId" operator="is-not-empty"/>
<condition field-name="orderId" operator="is-not-empty"/>
<action service="updateIssuanceShipmentAndPoOnReceiveInventory" mode="sync"/>
</eca>
<!-- Set the average cost of product -->
<eca service="receiveInventoryProduct" event="commit">
<condition field-name="inventoryItemId" operator="is-not-empty"/>
<action service="updateProductAverageCostOnReceiveInventory" mode="sync"/>
</eca>
<!-- Remove party content of image -->
<eca service="deletePartyRole" event="commit">
<condition field-name="roleTypeId" operator="equals" value="IMAGEAPPROVER"/>
<action service="removeImageContentApproval" mode="sync"/>
</eca>
<!-- ProductStoreGroup seca -->
<eca service="updateProductStoreGroup" event="commit">
<condition field-name="primaryParentGroupId" operator="not-equals" value=""/>
<action service="checkProductStoreGroupRollup" mode="sync"/>
</eca>
<eca service="createProductStoreGroupRollup" event="commit">
<action service="checkProductStoreGroupRollup" mode="sync"/>
</eca>
<!-- SCIPIO: 2017: Automatic SEO alt URL generation -->
<!-- TODO:
<eca service="createProduct" event="commit">
<action service="generateProductAlternativeUrlsCore" mode="sync" value-attr="product" reload-value="true"/>
</eca>
<eca service="updateProduct" event="commit">
<action service="generateProductAlternativeUrlsCore" mode="sync" value-attr="product" reload-value="true"/>
</eca>
-->
</service-eca>