If the ProDataSet can be filled from an OpenEdge database or OpenEdge DataServer-managed tables, then you can define Data-Source objects to handle the fill. These name the database table that is the source of data, or the query that identifies one or more tables, along with the key fields for the tables. The dsOrder ProDataSet used in the sample procedures has these Data-Source definitions:
DEFINE DATA-SOURCE srcOrder FOR QUERY qOrder
Order KEYS (OrderNum), Customer KEYS (CustNum), SalesRep KEYS (SalesRep).
DEFINE DATA-SOURCE srcOline FOR OrderLine.
DEFINE DATA-SOURCE srcItem FOR ITEM KEYS (ItemNum).
The Data-Sources in effect define the part of the FILL process that the AVM can handle automatically for you. In the simplest case this is everything, and no special FILL logic is needed. In other cases the standard FILL behavior must be supplemented by additional code. This goes into FILL event procedures that are also part of the Data Access object. In cases where there are no standard Data-Source objects, then all the FILL logic goes into the event procedures.