Type Reference
Operation Types
Type | Description | Examples |
---|---|---|
CreateOperation, UpdateOperation, DeleteOperation | Create, Update or Delete a single instance of a DataElement. Any parameters with an underlying field are are automatically mapped. | #1,#2,#3 |
BatchCreateOperation, BatchUpdateOperation, BatchDeleteOperation | Create, Update or Delete multiple instances of a DataElement in a single call. Any parameters with an underlying field are automatically mapped. | #4,#5,#6,#7 |
PerformOperation | Operation without predefined implementation. Can be used as a placeholder for custom business logic. | #8 |
QueryOperation | Operation which executes a (possibly native) INSERT/UPDATE query on the dataElement. | #9 |
TriggerOperation (requires workflows) | Operation which can be used as a Workflow trigger in combination with ByDataOperation . | #10 |
Parameter Types
Type | Description | Examples |
---|---|---|
TargetParameter | Targets the current DataElement. Can receive more than one target by setting the multiple flag. | #1, #3, #5, #6, #7, #8, #9, #10 |
TypedParameter | Adds a parameter with a give valueType. | #8, #9 |
ValueFieldParameter | Links a parameter to a ValueField and inherits its type | #1, #2, #4, #5, #7 |
AssociationParameter | Links parameter to a LinkField and inherits its type | #1, #2, #4, #5,#7 |
FileUploadParameter | Links a parameter to a Field which is marked for FileUploads | #1 |
GroupParameter | Adds a list of another ParameterGroup specified on this DataOperation. | #4, #5 |
Examples
Ex1. CreateOperation
Operation which creates an Address with a street (String) and country (Ln02).
<dataOperation type="operations::CreateOperation">
<name>register</name>
<parameterGroups>
<parameterGroup>
<parameters>
<parameter type="operations::ValueFieldParameter">
<name>street</name>
<field>contacts::Address::street</field>
</parameter>
<parameter type="operations::AssociationParameter">
<name>country</name>
<field>contacts::Address::country</field>
</parameter>
<parameter type="operations::FileUploadParameter">
<name>attachment</name>
<field>contacts::Address::attachment</field>
</parameter>
</parameters>
</parameterGroup>
</parameterGroups>
</dataOperation>
Ex2. UpdateOperation
Operation which updates an Address with a street (String) and country (Ln02).
<dataOperation type="operations::UpdateOperation">
<name>update</name>
<parameterGroups>
<parameterGroup>
<parameters>
<parameter type="operations::TargetParameter">
<name>target</name>
</parameter>
<parameter type="operations::ValueFieldParameter">
<name>street</name>
<field>contacts::Address::street</field>
</parameter>
<parameter type="operations::AssociationParameter">
<name>country</name>
<field>contacts::Address::country</field>
</parameter>
</parameters>
</parameterGroup>
</parameterGroups>
</dataOperation>
Ex3. DeleteOperation
Operation which deletes an Address by reference.
<dataOperation type="operations::DeleteOperation">
<name>remove</name>
<parameterGroups>
<parameterGroup>
<parameters>
<parameter type="operations::TargetParameter">
<name>target</name>
</parameter>
</parameters>
</parameterGroup>
</parameterGroups>
</dataOperation>
Ex4. BatchCreateOperation
Operation which creates multiple Addresses.
<dataOperation type="operations::BatchCreateOperation">
<name>batchCreate</name>
<parameterGroups>
<parameterGroup>
<parameters>
<parameter type="operations::GroupParameter">
<name>addresses</name>
<targetGroup>contacts::Address::batchCreate::item</targetGroup>
</parameter>
</parameters>
</parameterGroup>
<parameterGroup>
<name>item</name>
<parameters>
<parameter type="operations::ValueFieldParameter">
<name>street</name>
<field>contacts::Address::street</field>
</parameter>
<parameter type="operations::AssociationParameter">
<name>country</name>
<field>contacts::Address::country</field>
</parameter>
</parameters>
</parameterGroup>
</parameterGroups>
</dataOperation>
Ex5. BatchUpdateOperation (items)
Operation which updates multiple Addresses.
<dataOperation type="operations::BatchCreateOperation">
<name>batchUpdate</name>
<parameterGroups>
<parameterGroup>
<parameters>
<parameter type="operations::GroupParameter">
<name>addresses</name>
<targetGroup>contacts::Address::batchCreate::item</targetGroup>
</parameter>
</parameters>
</parameterGroup>
<parameterGroup>
<name>item</name>
<parameters>
<parameter type="operations::TargetParameter">
<name>address</name>
</parameter>
<parameter type="operations::ValueFieldParameter">
<name>street</name>
<field>contacts::Address::street</field>
</parameter>
<parameter type="operations::AssociationParameter">
<name>country</name>
<field>contacts::Address::country</field>
</parameter>
</parameters>
</parameterGroup>
</parameterGroups>
</dataOperation>
Ex6. BatchDeleteOperation
Operation which deletes multiple Addresses.
<dataOperation type="operations::BatchCreateOperation">
<name>batchDelete</name>
<parameterGroups>
<parameterGroup>
<parameters>
<parameter type="operations::TargetParameter">
<name>addresses</name>
<multiple>true</multiple>
</parameter>
</parameters>
</parameterGroup>
</parameterGroups>
</dataOperation>
Ex7. BatchUpdateOperation (targets)
Operation which updates multiple Addresses with fixed values.
<dataOperation type="operations::BatchCreateOperation">
<name>batchDelete</name>
<parameterGroups>
<parameterGroup>
<parameters>
<parameter type="operations::TargetParameter">
<name>addresses</name>
<multiple>true</multiple>
</parameter>
<parameter type="operations::ValueFieldParameter">
<name>street</name>
<field>contacts::Address::street</field>
</parameter>
<parameter type="operations::AssociationParameter">
<name>country</name>
<field>contacts::Address::country</field>
</parameter>
</parameters>
</parameterGroup>
</parameterGroups>
</dataOperation>
Ex8. PerformOperation
Perform operation can do anything else you might need.
<dataOperation type="operations::PerformOperation">
<name>sendMail</name>
<parameterGroups>
<parameterGroup>
<parameters>
<parameter type="operations::TargetParameter">
<name>target</name>
</parameter>
<parameter type="operations::TypedParameter">
<name>emailAddress</name>
<type>String</type>
</parameter>
<parameter type="operations::TypedParameter">
<name>title</name>
<type>String</type>
</parameter>
<parameter type="operations::TypedParameter">
<name>contents</name>
<type>String</type>
</parameter>
</parameters>
</parameterGroup>
</parameterGroups>
</dataOperation>
Ex9. QueryOperation
Operation which executes an JPQL query.
UPDATE com.contacts.Address SET status = :newStatus WHERE status = :expectedStatus AND id = :id;
<dataOperation type="operations::QueryOperation">
<name>compareAndSetStatus</name>
<parameterGroups>
<parameterGroup>
<parameters>
<parameter type="operations::TargetParameter">
<name>id</name>
</parameter>
<parameter type="operations::TypedParameter">
<name>expectedStatus</name>
<type>String</type>
</parameter>
<parameter type="operations::TypedParameter">
<name>newStatus</name>
<type>String</type>
</parameter>
</parameters>
</parameterGroup>
</parameterGroups>
</dataOperation>
Ex10. TriggerOperation
Operation which triggers a workflow transition.
<dataOperation type="operationsWorkflow::TriggerOperation">
<name>myTrigger</name>
<parameterGroups>
<parameterGroup>
<parameters>
<parameter type="operations::TargetParameter">
<name>target</name>
</parameter>
</parameters>
</parameterGroup>
</parameterGroups>
</dataOperation>
<!-- ... workflow ... -->
<transition>
<triggers>
<trigger type="operations::ByDataOperation">
<name>by:myTrigger</name>
<dataOperation>contacts::Address::myTrigger</dataOperation>
</trigger>
</triggers>
</transition>