Skip to main content

Type Reference

Operation Types

TypeDescriptionExamples
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
PerformOperationOperation without predefined implementation. Can be used as a placeholder for custom business logic.#8
QueryOperationOperation 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

TypeDescriptionExamples
TargetParameterTargets the current DataElement. Can receive more than one target by setting the multiple flag.#1, #3, #5, #6, #7, #8, #9, #10
TypedParameterAdds a parameter with a give valueType.#8, #9
ValueFieldParameterLinks a parameter to a ValueField and inherits its type#1, #2, #4, #5, #7
AssociationParameterLinks parameter to a LinkField and inherits its type#1, #2, #4, #5,#7
FileUploadParameterLinks a parameter to a Field which is marked for FileUploads#1
GroupParameterAdds 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>