The following data types are currently "supported" by the Pentaho BI Platform.
Understanding the nuances of "supported data types" in the context of an action sequence can be challenging. When you specify a data type for a parameter (input or output) in an action sequence, this does not guarantee that that parameter will be represented as that type. In fact, the solution engine and the runtime engine perform as little coercion on parameters as possible. The true usefulness of typing the parameters in an action sequence is to allow the parameters to be treated as the specified data type that they exist as when they were handed to the engines for processing, and to give simple assistance to the action sequence developer at solution design time.
So, what exactly does this mean? The list below outlines the points it is important to keep in mind regarding action sequence data types:
- When a parameter is passed to the action sequence from a HTTP request, the parameter will always be handled as a String (String array if there are multiple values for a single parameter name) in the engines and in the session, regardless of the data type specified in the action sequence. This is because we do not coerce the parameters to a particular data type. This is a typical scenario when you use the ViewAction service URL to execute an action sequence, for instance.
- If a parameter value is handed to the action sequence programmatically (via subaction, from a program that has the platform embedded, etc.), then the parameter value will keep its existing data type through the execution of the action sequence.
- If a parameter has a default value specified, then the parameter's data type dictates the data type for the parameter value. Generally. At the time of this writing, there is an open case on Big Decimal and Long data types, as they are not honoring their default values, so it's hard to validate what the data type is when the default value is set. The date data type does not honor a default value either, so it suffers the same unknown here. However, the rest of the data types do take on the type that they are defined as when they have a default value.
Refer to the documentation on each data type below for what the Java class type for each data type is when a default value is set for the parameter. This Java class type would also be the data type expected if the parameter was populated programmatically.
- bigdecimal — A java.math.BigDecimal object, which implements the java.lang.Number interface.
- content — Content is large chunk of data that is generated within a component.
- date — The java.util.Date type. This type does not currently support a default value.
- integer — The standard java.lang.Integer type.
- list — Any implementation of the java.util.List interface can be represented by this data type.
- long — The standard Java (java.lang.Long) object.
- object — This data type can represent any java.lang.object.
- property-map — A property map of Java String objects, represented by the java.util.Map interface. The concrete class used by the engines is org.apache.commons.collections.map.ListOrderedMap data type.
- property-map-list — A list of property maps of Java Strings. The list is represented as a java.util.ArrayList of java.util.Map objects.
- result-set — Any implementation of IPebtahoResultset can be represented by this data type. The default value will create a resultset of type org.pentaho.commons.connection.memory.MemoryResultSet.
- string — The standard stinky old Java String.
- string-list — A list (java.util.ArrayList) of Java String Objects.