Creating Data for a Child Class From Another Data Class Using an Operation
This document provides information on how to use an operation to create data for a child data class from a different data class (not necessarily its parent class).
The process described below demonstrates how to add data to the child class (MYCLASS1.CL1) of a data class (MYCLASS1) from a different data class (MYCLASS2). This is done by adding a script that will create an operation on (MYCLASS1), called from (MYCLASS2):
$Structure MYCLASS1###########################################METHODS ###########################################$METHODSCase CURPTHWhen ""Case ACTIONWhen "MYMETHOD" Gosub MYMETHOD # Update MYPROP1 method Endcase EndcaseReturn# Update MYPROP1 using MYPRAM1 which is passed# KEY1 and MYPARAM1 are passed and used in this operation$MYMETHODLocal Integer NEWLINE# Use standard method CRUD to read MYCLASS1ASTATUS=fmet this.AREAD(MYCLASS1)If ASTATUS<>[V]CST_AOKARET_VALUE= CST_AFALSEReturnElseARET_VALUE= CST_ATRUE# create a new line for MYCLASS1.CL1 at last positionNEWLINE=fmet this.ADDLINE("CL1",[V]CST_ALASTPOS)If NEWLINE=[V]CST_ANOTDEFINED # check status after creating lineARET_VALUE = CST_AFALSEEndifIf ARET_VALUE = CST_ATRUE# update CL1 with values passed this.CL1(NEWLINE).MYPROP1 = MYPARAM1ASTATUS=fmet this.AUPDATEIf ASTATUS<>[V]CST_AOKARET_VALUE= CST_AFALSEEndifEndifEndifReturn
############################################### Data Class - MYCLASS2 ##############################################################################################METHODS ###############################################$METHODSCase CURPROWhen ""Case ACTIONWhen "AINSERT_AFTER" : Gosub AINSERT_AFTEREndcaseEndcaseReturn# Action After insert$AINSERT_AFTER# Declaration new instance of MYCLASS2 data classLocal Instance MYCLASS Using C_MYCLASS2MYCLASS = NewInstance C_MYCLASS2 AllocGroup NullASTATUS=fmet MYCLASS.MYMETHOD(KEYID,MYPARM1)If ASTATUS<>[V]CST_ATRUEASTATUS = fmet THIS.ASETERROR ("", "Not updated.", [V]CST_AERROR) Endif# Free instancesFreeGroup MYCLASSReturn