In general, a ProDataGraph directly references the following objects:
One root DataObject, which directly references the ProDataObject list for each table in the ProDataGraph
One ProChangeSummary, which contains a history of all changes to ProDataObject instances in the ProDataGraph
One ProDataGraphMetaData, which contains information about the original ABL ProDataSet, such as its name, and directly references the following objects:
One ProDataObjectMetaData for each table in the ProDataGraph that specifies the schema of the table
One ProDataRelationMetaData for each data-relation defined for the ProDataGraph
The following figure shows a ProDataGraph instance, the objects it encapsulates, and their relationships. The Root DataObject references ProDataObject lists for four tables: Customer, Order, OrderLine, and SalesRep. The ProDataGraph encapsulates two ProDataRelationMetaData objects shown as ProDataRelation1 (Order rows of each Customer) and ProDataRelation2 (OrderLine rows of each Order). Note that you can navigate through the related (parent and child) tables of a ProDataGraph using extended methods on ProDataObject. This is unlike a DataGraph, which requires that you follow reference properties directly to locate DataObject lists referenced by a DataObject.
Figure 1. ProDataGraph object model
Note: Note that the ProDataGraphMetaData and ProDataObjectMetaData objects are not shown, but the content of these objects is implied by the data in the example.