Can anyone tell me a difference between the two ABL routines? They are both calling the same number of records because I have JobAsmbl.AssemblySeq = 0. The one without the FOR EACH on the JobAsmbl table works, the other throws an appserver error. The error is: Cannot alter a CALL object while INVOKE is running UpdateInTrans_. (10047)
FIND FIRST TTJOBASMBL WHERE TTJOBASMBL.Company = CUR-COMP AND TTJOBASMBL.RowMod = 'U'.
IF LENGTH(TTJOBASMBL.JobNum) > 6 THEN
DO:
FOR EACH JOBPROD WHERE JOBPROD.Company = TTJOBASMBL.Company AND JOBPROD.TargetJobNum = TTJOBASMBL.JobNum NO-LOCK.
FOR EACH JOBASMBL WHERE JOBASMBL.Company = JOBPROD.Company AND JOBASMBL.JobNum = JOBPROD.JobNum AND JOBASMBL.AssemblySeq = 0 EXCLUSIVE-LOCK.
ASSIGN JOBASMBL.ShortChar04 = TTJOBASMBL.ShortChar04
JOBASMBL.Number04 = TTJOBASMBL.Number04.
END.
END.
END.
FIND FIRST TTJOBASMBL WHERE TTJOBASMBL.Company = CUR-COMP AND TTJOBASMBL.RowMod = 'U'.
IF LENGTH(TTJOBASMBL.JobNum) > 6 THEN
DO:
FOR EACH JOBPROD WHERE JOBPROD.Company = TTJOBASMBL.Company AND JOBPROD.TargetJobNum = TTJOBASMBL.JobNum NO-LOCK.
FIND FIRST JOBASMBL WHERE JOBASMBL.Company = JOBPROD.Company AND JOBASMBL.JobNum = JOBPROD.JobNum AND JOBASMBL.AssemblySeq = 0 EXCLUSIVE-LOCK.
ASSIGN JOBASMBL.ShortChar04 = TTJOBASMBL.ShortChar04
JOBASMBL.Number04 = TTJOBASMBL.Number04.
END.
END.
Thanks,
-Ted
FIND FIRST TTJOBASMBL WHERE TTJOBASMBL.Company = CUR-COMP AND TTJOBASMBL.RowMod = 'U'.
IF LENGTH(TTJOBASMBL.JobNum) > 6 THEN
DO:
FOR EACH JOBPROD WHERE JOBPROD.Company = TTJOBASMBL.Company AND JOBPROD.TargetJobNum = TTJOBASMBL.JobNum NO-LOCK.
FOR EACH JOBASMBL WHERE JOBASMBL.Company = JOBPROD.Company AND JOBASMBL.JobNum = JOBPROD.JobNum AND JOBASMBL.AssemblySeq = 0 EXCLUSIVE-LOCK.
ASSIGN JOBASMBL.ShortChar04 = TTJOBASMBL.ShortChar04
JOBASMBL.Number04 = TTJOBASMBL.Number04.
END.
END.
END.
FIND FIRST TTJOBASMBL WHERE TTJOBASMBL.Company = CUR-COMP AND TTJOBASMBL.RowMod = 'U'.
IF LENGTH(TTJOBASMBL.JobNum) > 6 THEN
DO:
FOR EACH JOBPROD WHERE JOBPROD.Company = TTJOBASMBL.Company AND JOBPROD.TargetJobNum = TTJOBASMBL.JobNum NO-LOCK.
FIND FIRST JOBASMBL WHERE JOBASMBL.Company = JOBPROD.Company AND JOBASMBL.JobNum = JOBPROD.JobNum AND JOBASMBL.AssemblySeq = 0 EXCLUSIVE-LOCK.
ASSIGN JOBASMBL.ShortChar04 = TTJOBASMBL.ShortChar04
JOBASMBL.Number04 = TTJOBASMBL.Number04.
END.
END.
Thanks,
-Ted