Skip to main content

CREATE TYPE

CREATE TYPE <name> ( <field name> <data type> [KEY], ... );

KEY defines the field that will be used to relate events in WActions when the type is specified as the CONTEXT OF in the CREATE WACTIONSTORE statement.

Example from the PosApp sample application:

CREATE TYPE ProductTrackingType (
  sku String KEY, 
  salesAmount double, 
  Count Integer, 
  startTime DateTime 
  );

Unlike other components, types do not need to be deployed. They are available for use in running applications as soon as they are created.

You cannot specify a composite key directly. Instead, create a CQ that concatenates two or more fields into a new field, then make that field the key. For example, if inputStream has this type:

CREATE TYPE inputType(
  SubKey1 String,
  SubKey2 String,
  Name String,
  UniqueID String KEY
  );

The following will create a composite key on the first two fields:

CREATE TYPE outputType(
  SubKey1 String,
  SubKey2 String,
  Name String,
  CompKey String KEY
  );
CREATE STREAM outputStream OF outputType;
CREATE CQ makeCompositeKey
  INSERT INTO outputStream
  SELECT SubKey1,
    SubKey2,
    Name,
    SubKey1 + SubKey2 KEY
  FROM inputStream;