Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Streams are a key model component. They represent a structured store of data within PhixFlow receiving data from one or more components, processing it then storing it.

Stream Properties

Insert excerpt_standard_settings_standard_settingsnopaneltrueThe tab toolbar has the following additional buttons:  Insert excerptStreams are a key model component. They represent a structured store of data within PhixFlow receiving data from one or more components, processing it then storing it.

Stream Properties

Insert excerpt
_standard_settings
_standard_settings
nopaneltrue

The tab toolbar has the following additional buttons: 

Insert excerpt
_stream_sets_show
_stream_sets_show
nopaneltrue
Insert excerpt
_stream_views
_stream_views
nopaneltrue
Insert excerpt
_run_analysis
_run_analysis
nopaneltrue
.

...

FieldDescription
NameThe name of the stream.
Enabled
Insert excerpt
_check_box_ticked
_check_box_ticked
nopaneltrue
 to include the steam during analysis runs.
Static Data

Insert excerpt
_check_box_ticked
_check_box_ticked
nopaneltrue
 to set the stream to hold static data. Static data is reference or "look up" data that is used as part of a stream calculation.

Updating a static stream

Static streams are not updated during an analysis run that is initiated on another stream in the model.

Instead, to update the data in a static stream you must run analysis directly on the stream

  • either via the model
  • or via a task plan. 
PeriodSelect the time period for the stream. This can be either a regular period, or variable.
  • Transactional: allows multiple users to run independent analysis tasks at the same time.
  • Daily: generate or collect data every day.
  • Monthly: generate or collect data every month.
  • Variable: generate or collect data since the more recent run of the stream to the current date.

As transactional streams need a UID attribute, PhixFlow automatically creates this stream attribute if it does not already exist.

Stream Type

Select the stream type. The type indicates the function that operates on the data.

  • Aggregate Stream
  • Calculate Stream
  • CalculateBySet Stream
  • Cartesian Stream
  • Merge Stream 
Supersede Items on Pipe

Select a loop pipe from the list of those available. 

A loop pipe links the stream back to itself. It compares new data records to the existing data records. If there is a repeated record PhixFlow uses the new one in the stream and marks  the old one as superseded.

Audit Manual Changes

This check box is available when the Period is Transactional.

Insert excerpt
_check_box_ticked
_check_box_ticked
nopaneltrue
 to update and delete initiated by stream actions (not those carried out by analysis runs) will automatically mark the existing record as superceded and create a new stream set. The new versions of the updated records will be placed in the new stream set. Inserts will simply create a new stream set, and add the inserted record into that stream set.

When Audit Manual Changes is first set, the attributes UpdateActionUpdatedByNameUpdatedByID and UpdatedTime will be created if they do not already exist. If you do not require these attributes, delete them.

UpdateAction must be set to the type of action, such as INSERT, UPDATE or DELETE. The other attributes will be populated if they exist on the stream:

  • UpdatedByName - the name of the user that performed the update, 
  • UpdatedByID - the internal id of the user that performed the update 
  • UpdatedTime - the date and time the update was made

Attributes

...

is first set, the attributes UpdateActionUpdatedByNameUpdatedByID and UpdatedTime will be created if they do not already exist. If you do not require these attributes, delete them.

UpdateAction must be set to the type of action, such as INSERT, UPDATE or DELETE. The other attributes will be populated if they exist on the stream:

  • UpdatedByName - the name of the user that performed the update, 
  • UpdatedByID - the internal id of the user that performed the update 
  • UpdatedTime - the date and time the update was made


Attributes

The grid contains a list of the stream attributes in the stream. This section has a toolbar with standard buttons and 

Insert excerpt
_stream_show
_stream_show
nopaneltrue
 and 
Insert excerpt
_file_collector_show
_file_collector_show
nopaneltrue
.

The grid lists the attributes (data columns) in the stream data. To edit the properties of an attribute, double-click the attribute name to open the Stream Attributes properties.

To remove an attribute from the stream, select the attribute and click 

Insert excerpt
_delete
_delete
nopaneltrue
 in the toolbar.

To add a new attribute to the list, click  

Insert excerpt
_add
_add
nopaneltrue
 to open a new Stream Attributes properties tab.

To add an existing attribute to the list:

  1. Click 
    Insert excerpt
    _stream_show
    _stream_show
    nopaneltrue
     to list the streams available in the repository.
  2. Expand a stream to show its attributes.
  3. Drag an attribute into this list to add it. 

To remove an attribute from the stream, use Insert excerpt_delete_deletenopaneltrue in the toolbar.To edit the properties of an attribute, double-click the attribute name to open the <link> properties.To edit only the expression:

  1. Right-click an attribute name to display the context menu.
  2. Select Edit the expression field.
  3. PhixFlow opens a simple text editor box
  4. Make changes to the attributes expression.
  5. Click  to save your changes.

...

  1. changes.

Anchor
multipliers
multipliers
Multipliers and Filters

If ticked, new filter conditions on this field are case-insensitive by default. The filter window → Ignore Case check box inherits this setting; see Filters on Data Views. For case-insensitive filters, there is no difference if the attribute is also indexed. 

This option affects the behaviour of filters for PhixFlow instances running on Oracle or MariaDB (MySQL) databases.
For PhixFlow instances running on a SQL Server database, filters are always case-independent.
FieldDescription
IndexedTick this option if this field should be indexed in the underlying database. An indexed field should be used to increase performance on very large streams in the following situations:-
  • When 1 or more output pipes from the stream uses the field to 'Filter' the stream.
  • When 1 or more output pipes from the stream uses the field in a 'Sort/Group' by action.
Filter conditions are
case-independent by default
Note
KeyFor in-memory streams, whether this field will be used as a key value. See How To: Summarise unsorted data with In Memory Streams.
Cache KeyIf a cache key is set, the value of this attribute persists throughout the stream calculation, rather than being created from scratch for each stream item as normal. This allows you to keep track of the calculation as it progresses. The cache key is an expression that is evaluated for each stream item, and of course it can use the existing value of the attribute, in other words, to value it had in the previous stream item processed in the stream calculation. This allows expressions to use the "persistent" attribute value on subsequent stream items. The expression provided in the Cache Key is evaluated for each stream item so that this "persistent" attribute can refer to multiple value keyed on the "Cache Key".

Description

??

...

do ( $aRange = [], addElement($aRange, rng.RangeFrom), addElement($aRange, rng.RangeTo), $bRange = [], addElement($bRange, $aRange), $bRange )

...

ifNull(in.ASSET, [1,10,12] , // else do [5,7] )

...

do( lookup(lkin, $num = in.BNumber), lkin )

will return a list of records which match the lookup on the lkin pipe. In this case the required data can be extracted from the Output Multiplier using the following expression :

do ( $values = _type, $values.account_num )

If the output multiplier expression evaluates to _NULL, an empty list of values or an empty list of records then a single output record will be produced with _type set to _NULL, _NULL or an empty record respectively.

...

Actions

A list of the stream actions on the stream. See Action.

Views

...

Input MultiplierThe input multiplier expression should evaluate to a list of one or more values. For each value in the list, the internal variable _inputMultiplier will be set to that value and the whole stream processing will be repeated i.e. the pull pipes will be read and the data from those pipes processed to generate output stream items to be added to the current stream set. For example :

do ( $aRange = [], addElement($aRange, rng.RangeFrom), addElement($aRange, rng.RangeTo), $bRange = [], addElement($bRange, $aRange), $bRange )

Where rng.RangeFrom = 500 and rng.RangeTo = 1000, the above example evaluates to [[500,1000]], which is a list containing 1 element, which is itself a list containing 2 elements. An Input Multiplier that evaluates to [3,4,7,8] would run the Stream 4 times.
Because Input Multipliers are evaluated first in the PhixFlow Timing Cycle they are often used to look up values that can be passed to Database or other Collectors.
Output MultiplierThis field is an expression which should evaluate to an array of values. A separate output record will be produced for each value in the array and this value is available as _outputMultiplier in each of the stream output attribute expressions (each value in the array is also available through _type, although this is not recommended usage). In effect this will multiply each of the output records by the number of elements from the returned list.
For example :

ifNull(in.ASSET, [1,10,12] , // else do [5,7] )

will create 3 records for every record in the stream if in.ASSET contains a value (setting _type = 1, 10 and 12 in each case). Otherwise it will create 2 records for every record in the stream (and set _type = 5 and 7). An Output Multiplier may also evaluate to a record, or a group of records. For example an Output Multiplier with the expression:

do( lookup(lkin, $num = in.BNumber), lkin )

will return a list of records which match the lookup on the lkin pipe. In this case the required data can be extracted from the Output Multiplier using the following expression :

do ( $values = _type, $values.account_num )

If the output multiplier expression evaluates to _NULL, an empty list of values or an empty list of records then a single output record will be produced with _type set to _NULL, _NULL or an empty record respectively.

Output FilterThis field is an expression which should evaluate to true or false (equivalently 1 or 0). Records created as output from the stream function can be filtered before they are written to the stream. Any attribute of the output record can be used in the expression. If an output filter expression is provided then the output record will only be written to the database if the expression evaluates to true or 1. A common pattern for example is to have an attribute on the output record (for example called 'keep') which evaluates to 1 if you wish to keep the record and 0 if you wish to discard it. The output filter expression is then _out.keep.


Actions

The grid contains a list of actions that use the stream. This section has a toolbar with standard buttons.

To edit the properties of an action, double-click the attribute name to open the Action properties.

To add an action to the list, click  

Insert excerpt
_add
_add
nopaneltrue
 to open a new Action properties tab.

To remove an action from the stream, select the action and click 

Insert excerpt
_delete
_delete
nopaneltrue
 in the toolbar.

Stream Item Actions

The grid contains a list of actions that use the stream. This section has a toolbar with standard buttons.

To edit the properties of an action, double-click the attribute name to open the Action properties.

To add an action to the list, click  

Insert excerpt
_add
_add
nopaneltrue
 to open a new Action properties tab.

To remove an action from the stream, select the action and click 

Insert excerpt
_delete
_delete
nopaneltrue
 in the toolbar.


Views

The grid contains a list of the data views for this stream. This section has a toolbar with standard buttons.

o edit the properties of an stream view, double-click the attribute name to open its Stream View properties tab.

To add an stream view to the list, click  

Insert excerpt
_add
_add
nopaneltrue
 to open a new its Stream View properties tab.

To remove a view from the stream, select the view and click 

Insert excerpt
_delete
_delete
nopaneltrue
 in the toolbar.


...

First pass draft done to here...

Sort Orders

A list of the sort orders on the stream. See Stream View Order.

...

A list of the analysis models that this stream appears on.

Advanced 

The advanced properties field should only be set by, or under the guidance of, PhixFlow support.

...