I am looking to call bpxwdyn from Easytrieve.
The IBM manuals state the in calling this routine from a non-REXX program, one needs to have R0 = 0.
I have constructed the calling parameters based on the manual, but I am getting a return code 20, parameter error.
The only thing I can't confirm is that when Easytrieve isues the call, R0 is zero.
If you have successfully called bpxwdyn from Easytrieve, would you mind sharing how you did it?
I have gotten it to work.I just did a dynamic allocation I have never used BPXWDYNbefore this. Perhaps if I can see the parm. Also do you have RETURNS on your call statement?
I thank you for your feedback, however, everyone can successfully do a dynamic allocation.
It’s actually the simplest function to execute. It requires a single parameter and, I suspect though haven’t tried, it can probably be done like this:
// EXEC PGM=BPXWDYN,PARM=’allocation parameters….’
However, try doing an INFO call.
Not quite as simple as doing an allocation request.
I have, since posting, been able to do everything I need to do from within an Easytrieve set of parameters.
Unfortunately, since the IBM calling convention does not identify the contents of register 0, Easytrieve support does not agree with me that R0 should be 0 on a call, so they have determined that their not passing R0 to BPXQDYN as zero does not constitute a bug.
When you try to do an INFO call, R0 needs to be passed with a value of zero in order for BPXWDYN to recognize the passed parameter format.
Each info field to be returned must be defined, in Easytrieve format, as a VARYING field whose definition must be large enough to receive the maximum value, not the actual value of the parameter and the value of the parameter must be terminated with a null or space. For example:
DEFINE INFOP1 W 47 A VALUE ‘INRTDSN ‘
Then, in the instructional parameters:
INFOP1.LENGTH = 45
Now the field, INFOP1, can be used in an INFO call to return the dataset name associated with a DD name.
(I did not show the complete calling sequence and parameters, sorry)
I ended up using a shell program which cleared R0 to zero and then passed the call on.
Works like a champ.
Thanks for your offer to help debug.
Charles (Chuck) Hardee<mailto:Chuck.Hardee@ThermoFisher.com>
Senior Systems Engineer/Database Administration
EAS Information Technology<mailto:DBA%20Engineering%20-%20DB2_IDMS>
Thermo Fisher Scientific
300 Industry Drive | Pittsburgh, PA 15275
Phone +1 (724) 517-2633 | Mobile +1 (412) 877-2809 | FAX: +1 (412) 490-9230
Chuck.Hardee@ThermoFisher.com<mailto:Chuck.Hardee@ThermoFisher.com> | www.thermofisher.com
WORLDWIDE CONFIDENTIALITY NOTE: Dissemination, distribution or copying of this e-mail or the information herein by anyone other than the intended recipient, or an employee or agent of a system responsible for delivering the message to the intended recipient, is prohibited. If you are not the intended recipient, please inform the sender and delete all copies.
Hi Chuck, yes, as we, CA Support, and you discussed already via support case - CA Easytrieve uses IBM calling conventions which do not specify anything having to do with R0.
Also, unfortunately it isn’t easy to add new keywords into a language without breaking some other user written program.
As far as we can see in your discussion here:
firstname.lastname@example.org/msg63050.html" rel="nofollow" target="_blank">https://email@example.com/msg63050.html
IBM had commented that they were working on redoing the requirement and they gave a forthcoming PTF number to watch for.
Sr. Support Engineer
CA Easytrieve and CA Testing Tools Subject Matter Expert