METHOD PUBLIC VOID invokeMethod (INPUT methodName AS CHAR,
INPUT szField AS CHAR,
INPUT iIndex AS INT,
INPUT iSubIndex AS INT,
INPUT szContents AS CHAR):
EMPTY TEMP-TABLE TmpPar.
/* pass parameters to the method through this temp-table which is encapsulated in a dataset */
CREATE TmpPar.
ASSIGN TmpPar.szField = szField
TmpPar.iIndex = iIndex
TmpPar.iSubIndex = iSubIndex
TmpPar.szContents = szContents .
triggerCall ( methodName, DATASET-HANDLE hDsPar).
/* here comes error handling */
END METHOD.
METHOD PRIVATE LOGICAL triggerCall (methodName AS CHAR, DATASET-HANDLE dsPar):
dsPar:set-callback("before-fill", methodName, THIS-OBJECT).
RETURN dsPar:apply-callback("before-fill").
END METHOD.