Ask the Experts - 7

Posted by Nitin Pai
July 14th, 2008

I am working on a CI currently and I am facing a problem.
I have 2 records at the same level,when I run the App engine the process runs to success but in the log file I am geting an error stating the rec.field is not defined.But the issue is the CI is treating the 2nd record as the field of the 1st record.
How to resolve this issue.  
Any help would be appreciated.
Thanks in advance


Thanks for posting your question!

Here are our comments

§ First make an instance of CI, and call the first record (&Level_1 = &CI.recname1). Then call the second record in the same way (&Level_1 = &recname_2).

§ Check if the record is passed in the form of a variable and is getting assigned dynamically. If that is the case then ensure that assignment is correct.

§ Try using the CI tester in application designer. This can be done by first opening the CI and then going to Tools -> Test Component Interface. Try to retrieve or insert data using CI tester.

If this is does not solve the problem, please post the piece of code you have written for our review.


Shekar Goel

Sachin Deshmukh

Kannappan Krishnan

Gautam Subhedar

Additional Notes:

Consider the following example:


Level1 Record : LIMIT_TBL

Level 2 – Record1: LIMIT_INCLD_TBL

Level 2 – Record2: LIMIT_EXCLD_TBL

&oTestLimitTbl = &oSession.GetCompIntfc(CompIntfc.TEST_LIMIT_TBL);

&oLimitTblCollection = &oTestLimitTbl.LIMIT_TBL;

&oLimitIncldTblCollection = &oLimitTbl.LIMIT_INCLD_TBL;

Local integer &i;

For &i = 1 To &oLimitIncldTblCollection.Count;

&oLimitIncldTbl = &oLimitIncldTblCollection.Item(&i);

&oLimitIncldTbl.BENEFIT_PLAN = “AAAAAA”;

&oLimitIncldTbl.DED_CLASS =’B’;

&oLimitIncldTbl.PLAN_TYPE = ’00’;


&oLimitExcldTblCollection = &oLimitTbl.LIMIT_EXCLD_TBL;

Local integer &j;

For &j = 1 To &oLimitExcldTblCollection.Count;

&oLimitExcldTbl = &oLimitExcldTblCollection.Item(&i230);

&oLimitExcldTbl.BENEFIT_PLAN_3 = ‘XXXXXX’;

&oLimitExcldTbl.DEDCD_3 = ‘AAA’;

&oLimitExcldTbl.DED_CLASS_3 = ‘B’;


As we see, the Level2-Second Record(LIMIT_EXCLD_TBL) has to be accessed by level1 Record(LIMIT_TBL), not by Level2-First Record(LIMIT_INCLD_TBL) .


Hariharan Gopal

Hi I need a help in SQR.

I would like to make a change of file program in sqr to send to third party.

Is any one can tell me the logic of this program?

I will be appreciate those who has generous mind.

Thank you in advance


Thanks for posting your question!

Here are our comments

§ First we should have Last Run Date in our Run Control Record

§ Based on Last Run Date value, we can get the Changed Values from the Target Record by using Last Update Datetime field. (Say for example, SELECT * FROM Target Record WHERE Last Update Datetime field > Last Run Date value)

§ If we are not having the Last Update Datetime field in our Target Record, then we need to have Audit Record for Target Record. In this case, we should use AUDIT_STAMP field to get the Changed values

§ Finally every time when the process runs to success, we should update this Last Run Date value of the Run Control Record


Kannappan Krishnan

Comments (0)