applications/content/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">
<eca service="createFile" event="in-validate">
<condition field-name="dataResource" operator="is-empty"/>
<action service="createDataResource" mode="sync"/>
</eca>
<eca service="createSurveyQuestion" event="commit">
<condition field-name="surveyId" operator="is-not-empty"/>
<action service="createSurveyQuestionAppl" mode="sync"/>
</eca>
<!-- create data resource ecas -->
<eca service="createDataResource" event="commit">
<condition field-name="partyId" operator="is-not-empty"/>
<condition field-name="roleTypeId" operator="is-not-empty"/>
<action service="createDataResourceRole" mode="sync" run-as-user="system"/>
</eca>
<eca service="createDataResource" event="commit">
<condition field-name="partyId" operator="is-not-empty"/>
<condition field-name="roleTypeId" operator="is-empty"/>
<set field-name="roleTypeId" value="OWNER"/>
<action service="createDataResourceRole" mode="sync" run-as-user="system"/>
</eca>
<eca service="createDataResource" event="commit">
<condition field-name="partyId" operator="is-empty"/>
<condition field-name="roleTypeId" operator="is-empty"/>
<condition field-name="userLogin" operator="is-not-empty"/>
<condition field="userLogin.partyId" operator="is-not-empty"/><!-- SCIPIO: 3.0.0: Added to prevent admin creation errors, now support expressions -->
<set field-name="partyId" env-name="${userLogin.partyId}"/>
<set field-name="roleTypeId" value="OWNER"/>
<action service="createDataResourceRole" mode="sync" run-as-user="system"/>
</eca>
<!-- other data resource; needs dataResourceId -->
<eca service="createOtherDataResource" event="in-validate">
<condition field-name="dataResourceId" operator="is-empty"/>
<set field-name="dataResourceTypeId" value="OTHER_OBJECT"/>
<action service="createDataResource" mode="sync" result-to-context="true"/>
</eca>
<!-- dataresource role ecas -->
<eca service="createDataResourceRole" event="invoke">
<action service="ensurePartyRole" mode="sync" run-as-user="system"/>
</eca>
<!-- create/update data text service is a route; determine which path to follow -->
<eca service="createDataText" event="invoke">
<condition field-name="dataResourceTypeId" operator="equals" value="ELECTRONIC_TEXT"/>
<set field-name="dataResourceTypeId" value="ELECTRONIC_TEXT"/>
<action service="createElectronicText" mode="sync" result-to-context="true"/>
</eca>
<eca service="createDataText" event="invoke">
<condition field-name="dataResourceTypeId" operator="is-empty"/>
<condition field-name="textData" operator="is-not-empty"/>
<set field-name="dataResourceTypeId" value="ELECTRONIC_TEXT"/>
<action service="createElectronicText" mode="sync" result-to-context="true"/>
</eca>
<eca service="createDataText" event="invoke">
<condition field-name="dataResourceTypeId" operator="equals" value="SHORT_TEXT"/>
<condition field-name="textData" operator="is-not-empty"/>
<set field-name="dataResourceTypeId" value="SHORT_TEXT"/>
<action service="createDataResource" mode="sync" result-to-context="true"/>
</eca>
<!-- This one is a bit weird, why choosing SHORT_TEXT ?-->
<eca service="createDataText" event="invoke">
<condition field-name="dataResourceTypeId" operator="is-empty"/>
<condition field-name="textData" operator="is-empty"/>
<set field-name="dataResourceTypeId" value="SHORT_TEXT"/>
<action service="createDataResource" mode="sync" result-to-context="true"/>
</eca>
<eca service="createDataText" event="invoke">
<condition field-name="dataResourceTypeId" operator="not-equals" value="ELECTRONIC_TEXT"/>
<condition field-name="dataResourceTypeId" operator="is-not-empty"/>
<condition field-name="textData" operator="is-empty"/>
<action service="createDataResource" mode="sync" result-to-context="true"/>
</eca>
<eca service="updateDataText" event="invoke">
<condition field-name="dataResourceTypeId" operator="equals" value="ELECTRONIC_TEXT"/>
<action service="updateDataResource" mode="sync" result-to-context="true"/>
<action service="updateElectronicText" mode="sync" result-to-context="true"/>
</eca>
<eca service="updateDataText" event="invoke">
<condition field-name="dataResourceTypeId" operator="not-equals" value="ELECTRONIC_TEXT"/>
<action service="updateDataResource" mode="sync" result-to-context="true"/>
</eca>
<!-- electronic text; needs dataResourceId -->
<eca service="createElectronicText" event="invoke">
<condition field-name="dataResourceId" operator="is-empty"/>
<set field-name="dataResourceTypeId" value="ELECTRONIC_TEXT"/>
<action service="createDataResource" mode="sync" result-to-context="true"/>
</eca>
<!-- create content ecas -->
<eca service="createContent" event="commit">
<condition field-name="partyId" operator="is-not-empty"/>
<condition field-name="roleTypeId" operator="is-not-empty"/>
<action service="createContentRole" mode="sync" run-as-user="system"/>
</eca>
<eca service="createContent" event="commit">
<condition field-name="partyId" operator="is-not-empty"/>
<condition field-name="roleTypeId" operator="is-empty"/>
<set field-name="roleTypeId" value="OWNER"/>
<action service="createContentRole" mode="sync" run-as-user="system"/>
</eca>
<eca service="createContent" event="commit">
<condition field-name="partyId" operator="is-empty"/>
<condition field-name="roleTypeId" operator="is-empty"/>
<condition field-name="userLogin" operator="is-not-empty"/>
<condition field="userLogin.partyId" operator="is-not-empty"/><!-- SCIPIO: 3.0.0: Added to prevent null userLogin.partyId from errors -->
<set field-name="partyId" env-name="${userLogin.partyId}"/>
<set field-name="roleTypeId" value="OWNER"/>
<action service="createContentRole" mode="sync" run-as-user="system"/>
</eca>
<eca service="createContent" event="commit">
<condition field-name="contentAssocTypeId" operator="is-not-empty"/>
<condition field-name="contentIdTo" operator="is-not-empty"/>
<action service="createContentAssoc" mode="sync" run-as-user="system"/>
</eca>
<eca service="createContent" event="commit">
<condition field-name="contentAssocTypeId" operator="is-not-empty"/>
<condition field-name="contentIdFrom" operator="is-not-empty"/>
<action service="createContentAssoc" mode="sync" run-as-user="system"/>
</eca>
<eca service="createContent" event="commit">
<condition field-name="contentPurposeTypeId" operator="is-not-empty"/>
<action service="createContentPurpose" mode="sync" run-as-user="system"/>
</eca>
<!-- content role ecas -->
<eca service="createContentRole" event="invoke">
<action service="ensurePartyRole" mode="sync" run-as-user="system"/>
</eca>
<!-- update content ecas -->
<eca service="updateContent" event="commit">
<condition field-name="contentAssocTypeId" operator="is-not-empty"/>
<condition field-name="contentIdTo" operator="is-not-empty"/>
<condition field-name="fromDate" operator="is-not-empty"/>
<action service="updateContentAssoc" mode="sync" run-as-user="system"/>
</eca>
<eca service="updateContent" event="commit">
<condition field-name="contentAssocTypeId" operator="is-not-empty"/>
<condition field-name="contentIdFrom" operator="is-not-empty"/>
<condition field-name="fromDate" operator="is-not-empty"/>
<action service="updateContentAssoc" mode="sync" run-as-user="system"/>
</eca>
<eca service="updateContent" event="commit">
<condition field-name="contentPurposeTypeId" operator="is-not-empty"/>
<action service="updateSingleContentPurpose" mode="sync" run-as-user="system"/>
</eca>
<!-- content assoc services -->
<eca service="createContentAssoc" event="in-validate">
<action service="checkContentAssocIds" mode="sync"/>
</eca>
<eca service="updateContentAssoc" event="in-validate">
<action service="checkContentAssocIds" mode="sync"/>
</eca>
<eca service="createContent" event="commit">
<condition field-name="contentId" operator="is-not-empty"/>
<action service="createContentAlternativeUrl" mode="sync" run-as-user="system"/>
</eca>
</service-eca>