Typically, the output is send to a single file name. With this punctation the output can be send to different output files.
Parameter
- predicate: If evaluated to true, a NewFilenamePunctuation will be created.
- filename: An expression that constructs the new filename. Return value will be interpreted as string.
Example
#PARSER PQL
#ADDQUERY
/// Just a trigger, that fire every second
heart = TIMER({PERIOD = 1000, SOURCE = 'source'})
/// A counter to simulate values
prep = MAP({
expressions = [['counter()','count']],
evaluateonpunctuation = true
},
heart
)
/// Create a new punctuation each time count is higher than 0 and count MOD 10 is 0
/// Create filename from count-Attribute (important: use full path!)
punc = CreateNewFilenamePunctuation({
filename = '"${WORKSPACEPROJECT}/out/"+toString(count)+".csv"',
predicate = 'count % 10 = 0 && count > 0'
},
prep
)
/// File sink automatically reacts on new punctuation and replaces the filename with the one
/// generated from CreateNewFilenamePunctuation, a new filename will only be used, if the
/// filename differs from last filename!
out = CSVFILESINK({FILENAME = '${WORKSPACEPROJECT}/out/0.csv', SINK = 'sink'}, punc)