Adapt Text

The Imixs WorkflowService provides the method ‘adaptText(text, document)’ which can be called when a text fragment should be adapted to a custom format or custom values.

The Imixs WorkflowService includes two custom text adapters:

  • TextItemValueAdapter
  • TextPropertyAdapter

Adapting Item Values

The TextItemValueAdapter adapts a text fragment containing the XML tag <itemvalue> with the item values of a given Document. This adapter is useful if a string constant need to be updated with values from the current workitem.

For example, a BPMN mail message text can be adapted with information from the current workitem.

 The invoice was generated by <itemvalue>namcreator</itemvalue> 
 at <itemvalue format="EEE, MMM d, yyyy">$created</itemvalue>

This message text-block will be automatically adapted with the workitem properties ‘namcreator’ and ‘$created’ into:

 The invoice was generated by Ralph 
 at Wed, Jul 4, 2010

Format multi-value Items

If a item contains a multi-value list, all the values can be separated by a character sequence defined by the tag ‘separator’. For example the following message text based on an item ‘_parts’ with the values {“pants”, “shirt”, “jacket”} and a separator ‘, ’:

The following item has been ordered: <itemvalue separator=", ">_parts</itemvalue>

will be replaced with:

The following item has been ordered: pants, shirt, jacket

Note: If no separator is defined, only the first value will be returned.

To get the last value of a multi-value list the tag ‘position’ can be set to ‘last’

The last order item was: <itemvalue position="last">_parts</itemvalue>

This example extract the last value of the mulit-value item ‘_parts’.

Format date/number values by locale

To format a date or number value into a language specific format the tags ‘format’ and ‘locale’ can be used. The following example shows how to format a date value into the German date format:

 The Date in german format is: <itemvalue format=\"EEEE, d. MMMM yyyy\" locale=\"de_DE\">datdate</itemvalue>.";

Adapting Property Values

The TextPropertyAdapter adapts a text fragment adapts text blocks with values stored in the imixs.property file. A static message text will be automatically replaced with the values ​​from the imixs.property file if the tag “propertyvalue” is used.

Please use the following Link to open the Application: 
<propertyvalue>dbRootURL</propertyvalue>

The values from the imixs.prperties file are accessed by the PropertyService.

Custom Text Adapters

A application can extend the AdaptText method by implementing a service with the CDI Observer pattern. The CDI Event TextEvent is send to registered observers. See the following example:

@Stateless
public class CustomTextAdapter {
    // Observer method for CDI TextEvetns
    public void onEvent(@Observes TextEvent event) {
       String text = event.getText();
       text+=" Hello World";
       event.setText(text);
    }
}