FILL operations
- Last Updated: February 11, 2026
- 2 minute read
- OpenEdge
- Version 13.0
- Documentation
A ProDataSet is exactly what its name implies—a set
of related data. It is typically populated in a single operation,
where one or more top-level records and all their related records
are retrieved at once. This is called a FILL operation,
or just a FILL. You can define a query for the
top-level buffer (or for each top-level buffer if there is more
than one) and execute a FILL on the ProDataSet itself,
in which case all of its tables are loaded. The AVM executes the
queries for top-level buffers and also for other buffers that have
specific queries. The ProDataSet follows the Data-Relations to identify
and load the children for each parent. A simple example is a purchase
order header (where the top-level query identifies a single Order by
its key), plus all of the OrderLines for the Order,
plus Items for the OrderLines,
plus Inventory for the OrderLines, and
so on.
In other cases, you might want to populate only a part of a ProDataSet
at one time. To do this, you can run the FILL method
on a buffer rather than on the ProDataSet as a whole, and it is
filled from there on down. When you do this, you can also deactivate
Data-Relations in order to limit the scope of the FILL.
You can also execute a FILL multiple times to add
more data to a ProDataSet that already has data. Each temp-table
has a FILL-MODE that allows you to specify that
a table should be emptied before it is filled again, or that it
should be skipped altogether, or that new records are simply to
be appended to existing ones, or merged with existing ones by checking
for duplicates.