Using IBM i? Need to create Excel, CSV, HTML, JSON, PDF, SPOOL reports? Learn more about the fastest and least expensive tool for the job: SQL iQuery.
Hello all. I'm having a problem coding with the new "DCL-" when it comes to passing a data structure to a program that is being called within a program. I'm sure I just have the syntax wrong. Can someone please give me the correct way to code it? The error is telling me that the attributes of PARM4 don't match the prototype. It appears that maybe the program sees PARM4 as a data structure, but the prototype sees it as a CHAR(256) field, right? If so, how should I adress this? I don't think I can define the parm in the prototype as a data structure. Thanks in advance!! Here's an example of one:
dcl-pr prcTypCurrSearch extpgm('TBL170');
parm4 char(256);
end-pr;
dcl-ds parm4 extname('TBL170ED') inz end-ds;
dsevnt = sevent;
dsmod = 'PRC';
dsact = '1';
dstrn = '1';
dsnact = '0';
dshom = '0';
prcTypCurrSearch(parm4);
Um... LIKEDS can be used on Parameters since V5R3 (or was it V5R4).
So yes, you can define it as a DS, and probably should.
If your example is how your code is, then your issue could be that you have the prototyped parameter name as PARM4 and a data structure name of PARM4. So LIKEDS(PARM4) (which is also your data structure name) is not permitted. Since parameter names on Prototypes are just comments except for their definition, then change the parm name to something else on the prototype.