User Tools

Site Tools


fdata_designer_dependencies

Dependencies

Dependency between data groups is very important as it determines the sequence in which they are executed and is also used to prevent loops.

Dependencies are calculated whenever a DSD is saved or refreshed, as well as when the Designer Dependency page is displayed. The process involves checking every aspect of a DSD to discover any dependencies (see below).

Significance of Dependencies

If one data group is dependent on another (for example because the second uses a value from the first in the WHERE clause of a Sql query) then it is essential that the first data group is completed before starting the second.

Similarly if gathering is asynchronous it is crucial that a data group only starts when any on which it depends are ALL complete.

fData calculates these dependencies wherever possible, and the designer has a further option to specify a dependency manually if necessary.

Dependency Checks

The following checks are made:

Parent

Any data group that has a parent data group is dependent on that data group

Data Gatherers

Each data gatherer plugin includes properties that specify which of its parameters is the id of another data group, thereby creating a dependency on it.

Functions

All function definitions include a list of its parameters that specify the id of a data group. For example =Value([field],[dataGroup]) has its second parameter as a dependency.

All functions in each data group are inspected to establish these dependencies. The places checked are:

  • Data Items
  • Execute If
  • Filter
  • Distinct
  • Skip
  • Take
  • Inputs
  • Parameters (placeholders)
  • Access control - apply all
  • Access control attributes

User Defined

Entered manually by the designer.

Abandon

If the DSD has any Abandon data groups their firebreaks are assessed and each of the plugin's Abandon Parameters is included.