ilscipio/scipio-erp

View on GitHub
applications/content/servicedef/secas.xml

Summary

Maintainability
Test Coverage
<?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>