The language used in Data Providers can be defined as output-based declarative language. It has three main components: Groups, Elements, and Variables. For example:
Customers // this is a Group
&StartTime = now() // this is a Variable
Customer // this is a Group
Code = CustomerId // this is an Element
Name = CustomerName // this is an Element
'Customers' and 'Customer' are Groups, 'Code' and 'Name' are Elements, and '&StartTime' is a variable.
Remember that the output will be hierarchical data, loaded in an SDT or BC that is specified in the Output property. The hierarchical structure that is obtained with the names of groups and elements must exactly match this structure.
<mainGroupList> ::= <group> | <mainGroupList><group>
That is: a list of groups (Data provider Group statement)
An optional list of subgroups (Data Provider Subgroup statement), in order to be invoked by means of a Data Provider Subgroup statement inside some group of <mainGroupList> instead of a Data provider Element statement.