I need to make a change to an existing and working RPGLE program. When I do a straight compile (option 14 from PDM), the error I get is "DFTACTGRP(*NO) must be specified for a prototype that does not have the EXTPGM keyword."
I change DFTACTGRP to *NO and recompile to get "Errors were found during the binding step. See the job log for more information." Which shows "Cause . . . . . : No definition was found for reference
GU_getTranslatedText in *MODULE object OR404XX in library QTEMP. The
definition either does not exist or is not of the same data or procedure
type as the reference. "
In the compile I see:
+D GU_getTranslatedText...
+D pr 198a extproc('GU_-
+D getTranslatedText')
+D varying
+D inText 198a value varying
C eval XNAM =
C GU_getTranslatedText('MONTHLY')
There are about 30 or so of these errors on the calls. I made no to the existing program other than copy the source to a test library and try to compile it.
I tried contacting the original person that wrote it and the only helpful information I received was "No binding directory needed"...which I was not specifying anyway.
Any ideas on what I am doing wrong and how I can compile it?
Do a DSPPGM to see what ACTGRP is being used then add the following control (H) spec
ctl-opt dftactgrp(*NO) actgrp('xxxx');
or if you're stuck with fixed form...
h dftactgrp(*no) actgrp('xxxx')
where 'XXXX' is the activation group found using DSPPGM.
You might look to see if there's an existing binding directory with the reference service programs WRKOBJ OBJ(*LIBL/*ALL) OBJTYPE(*BNDDIR)
. You can specify binding directories to be used by using the bnddir('xxxxx')
clause on the control spec.