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)
  • No labels