Signal DSL

From OS.bee documentation
Revision as of 12:34, 29 October 2018 by Yang (Talk | contribs) (Scheduler)

Jump to: navigation, search

Purpose

POS master data updates over signal watchers, to execute a list of tasks (for now only import and/or export via datainterchange) depending on newly created files. This so called trigger-file will be deleted after the execution of all the tasks (or actions) weither they are be executed sequentially or parallel.

A client wishes to export a certain amount of data (sales, reports, master data...) on a specific working day (or not) at a certain time, either once or several time on this date. Therefore, it should now be possible to define such characteristic inside a model.

SignalDSL

The SingalDSL defines the java functions for Os.bee and the functions will be used in other Os.bee models. The main semantic elements of the SingalDSL are:

  • package - The root element that contains all the other elements. (now in one file only one package could be defined, the grammar could be altered to support several packages in one file, if needed)
  • import declarations - Used to import external models or other Java classes.
  • watcher - define which directory to watch and all detail about the trigger.
  • filemask - define a group of files to watch and all detail about the trigger.
  • filename - define a file to watch and detail about the trigger.
  • scheduler - define the simple or complex schedules for executing tens, hundreds, or even tens-of-thousands of jobs.

package defintion

With the keyword package followed by a qualified name, you define the root element that contains all the other elements. A model can contain multiple packages.

Syntax:

package <packagename>[{ 
	(
	  watcher <watchername>
		  filemask <filemask> . . .
		| filename <filename> . . .

	| scheduler <schedulername> . . .
	)* 
}]

Watcher

Syntax:

watcher <watchername>
	filemask <filemask>
		sequential|parallel
		from <data:DataInterchange Group>
	{
		import|export <data:DataInterchange Unit> [applyon]
	}

	| 
	filename <filename>
		sequential|parallel
		from <data:DataInterchangeGroup>
	{
		(import|export <data:DataInterchange Unit> [applyon])*
	}

Scheduler

Syntax:

scheduler <schedulername>
	  cron <expressionSTRING> 
	| hourlyat <minuteINT>
	| dailyat <hourINT> : <minuteINT>
	| weeklyon DayOfWeekEnum at <hourINT> : <minuteINT>
	| monthlyon <dayofmonthINT> at <hourINT> : <minuteINT>
	[sequential|parallel]
	from <data:DataInterchange Group>
{
	(import|export <data:DataInterchange Unit> [applyon])*
}
  • DayOfWeekEnum is including sunday, monday, tuesday, wednesday, thursday, friday and saturday.

Copyright Notice

All rights are reserved by Compex Systemhaus GmbH. In particular, duplications, translations, microfilming, saving and processing in electronic systems are protected by copyright. Use of this manual is only authorized with the permission of Compex Systemhaus GmbH. Infringements of the law shall be punished in accordance with civil and penal laws. We have taken utmost care in putting together texts and images. Nevertheless, the possibility of errors cannot be completely ruled out. The Figures and information in this manual are only given as approximations unless expressly indicated as binding. Amendments to the manual due to amendments to the standard software remain reserved. Please note that the latest amendments to the manual can be accessed through our helpdesk at any time. The contractually agreed regulations of the licensing and maintenance of the standard software shall apply with regard to liability for any errors in the documentation. Guarantees, particularly guarantees of quality or durability can only be assumed for the manual insofar as its quality or durability are expressly stipulated as guaranteed. If you would like to make a suggestion, the Compex Team would be very pleased to hear from you.

(c) 2016-2024 Compex Systemhaus GmbH