OpenEdge.BusinessLogic.BusinessEntity

Posted by Thomas Wurl on 19-May-2016 01:07

I looked into OpenEdge.BusinessLogic.BusinessEntity.cls and there is something that I don't understand.

A business entity like "CustomerEntity" has a contructor like:

{"customerentity.i"}

CONSTRUCTOR PUBLIC CustomerEntity():

SUPER (DATASET dsCustomer:HANDLE).

Super (ds) sets the ProDataSet property to the static dataset of the CustomerEntity. 

CONSTRUCTOR PROTECTED BusinessEntity(INPUT hDS AS HANDLE):

      ProDataSet = hDS.

END CONSTRUCTOR.

Methods like CreateCustomerEntity, get a (change) dataset from outside as input-output. So the actual content of the static dataset is the changed content and this data is also what ProDatasetHandle sees.

METHOD PUBLIC VOID CreateCustomerEntity(INPUT-OUTPUT DATASET dsCustomer): 

SUPER:CreateData(DATASET dsCustomer BY-REFERENCE).

END METHOD.

The Super:CreateData() method passes the static dataset again to the super class, but it's never used. The super logic always seems to use ProDatasetHandle.

METHOD PROTECTED VOID CreateData(INPUT-OUTPUT DATASET-HANDLE hDataSet):

THIS-OBJECT:AttachDataSources().


THIS-OBJECT:CommitData(ROW-CREATED).

FINALLY:
THIS-OBJECT:DetachDataSources().
END FINALLY.

END METHOD.

Am I missing something here?

All Replies

This thread is closed