Reputation: 49
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?
Upvotes: 0
Views: 3699
Reputation: 453
As far as I understand, the problem here is that the compiler cannot find the function GU_getTranslatedText This function can be located either in some service program or the program that you are trying to compile, initially consists of several modules and this function is located in another module.
Upvotes: 0
Reputation: 23823
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.
Upvotes: 2
Reputation: 3212
Maybe this will solve the problem. Compile as module then execute
UPDPGM PGM(YOURPGM) MODULE(YOURMODULE)
Upvotes: 0