An ABL ProDataSet encapsulates a set of temp-tables through a collection of buffers that refer to these temp-tables. Each temp-table can hold a specified subset of data that it receives from one or more data sources, as determined by the application service. These data sources can include database tables, operating system files, and just about any source of data suitable for retrieval and storage as a well-defined set of fields in tabular form. The ProDataSet can optionally include data-relations, which specify parent-child relationships among the temp-table buffers, and indexes to manage large sets of data efficiently. Data-relations and indexes allow the application service to more easily fill and navigate the ProDataSet with data.