× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Hi Joel

I'm wondering about using an SQL SELECT statement in a QM query - it seems a LEFT OUTER join could be used - for the records that are not found on one side, use CASE or some other construct to return the "key not found" text.

That's a very cursory response without looking at too much detail - but QMQRYs can do wonderful things!

HTH
Vern

On 6/4/2012 10:50 AM, Stone, Joel wrote:
Here is follow-up to better describe the issue, then maybe you can suggest a more appropriate method to accomplish a solution:

We do all report distribution via email. EM_Address file exists to lookup keys and send report to various recipients.

I have an email CL command SNDEMAIL which runs a CL pgm to roll thru file below and send reports to various recipients.

I want to show keys of this file in the msg of the report. I wanted to OVRDBF FILE(EM_Address) POSITION(*KEYAE 3 *N INVENTORY STATUS EOD) and RCVF all three keys for the two matching records and show them in the msg of the email. After this is done, repeat - ie there can be multiple sets of email keys to print (not just the one).

When users want to add/change recipients, it is very easy to identify which records in the EM_Address file require attention (because the keys will show on each email).

We are on v5R4, so I was not able to find an easy way to position to a group of records using CL - I could do one group, but not multiple (once OVRDBF positioned the cursor and RCVF opened the file, any additional RCVF commands would simply read the next record in key seq).

I am able to build the list of keys and print them in the email without doing anything. The trick was that they want to show "(key not found)" next to any requested keys that don't have records in the EM_Address file. RCVF would tell me if the FIRST one existed or not, but subsequent RCVF would read the next record instead of the keys that I needed to read.

I ended up using a small COBOL pgm to check for key existence and return a parm if found or not.




EM_key1 EM_key2 EM_key3 seq target em_address
------------------------------------------------------------------
AR AGING EOW 1 *TO john.doe@xxxxxxxxxxx
AR AGING EOW 2 *CC sally.doe@xxxxxxxxxxxxx
INVENTORY STATUS EOD 1 *TO warehouse.manager@xxxxxxxxxxx
INVENTORY STATUS EOD 2 *FROM sysop@xxxxxx
G/L TRIALBAL EOM 1 *FROM sysop@xxxxxx
G/L TRIALBAL EOM 1 *TO FINMGR@xxxxxxxxx




-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of CRPence
Sent: Wednesday, May 30, 2012 4:57 PM
To: midrange-l@xxxxxxxxxxxx
Subject: Re: RCVF - how to do multiple CHAINS in one CL pgm

The true intent can not be divined from what little is given to
describe the scenario, but if CL must be used, then what about using
OPNQRYF to get the desired key values. Then loop through those selected
rows with the RCVF, omitting\ignoring any values\rows that do not match
what is desired within the CL? That would be just one full-open, and
the Receive File request would share the ODP of the Open Query File.

Regards, Chuck

On 30 May 2012 14:19, Stone, Joel wrote:
Ooooh - that's it!!

Makes sense - I will give this a try.

Jeff.Nyco on Wednesday, May 30, 2012 3:51 PM wrote:
The technique requires the use of CPYF, using the record/field
selection, to copy the 1 record you need into a work-file you have
opened, then use a simple sequential RCVF.
As long as you don't hit EOF (CPF0864 I think) and close the file,
you can read any records, just like a CHAIN.

<<SNIP>>

Stone, Joel on Wednesday, May 30, 2012 1:46 PM wrote:
I have a CL loop as follows:

Top:
Load keyValue
OVRDBF FILE(TestFile) POSITION(*KEYAE 1 *N&KeyValue)
rcvf
monmsg (cpf4137 cpf0864) exec(deal-with-it) /*<ed: addendum> */
goto Top

The OVRDBF positions the file ONLY the first time thru
(apparently it only positions for the NEXT file open).

How can I read the record that I need (using keys) several
times in on CL run?


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.